Hi Simon, Scott, I've made skinning work now in any container - this is the code that I've used, for other users as a reference. We should carry on the discussion if and how to integrate this into Trinidad itself, though.
regards, Martin -------------------- use a binding attribute on your tr:form: <tr:form id="helloForm" binding="#{personPage.form}"> provide a getter for this form in your backing-bean: public CoreForm getForm() { CoreForm coreForm = new MyCoreForm(); return coreForm; } write the class MyCoreForm, extending Trinidad's CoreForm - with that, you should be good. public static class MyCoreForm extends CoreForm { @Override public void encodeBegin(FacesContext context) throws IOException { StyleContext styleContext = ((CoreRenderingContext) RenderingContext.getCurrentInstance()).getStyleContext(); String uri = styleContext.getStyleProvider().getStyleSheetURI(styleContext); String contextUri = context.getExternalContext().getRequestContextPath(); String baseURL = contextUri + XhtmlConstants.STYLES_CACHE_DIRECTORY; String finalUri = context.getExternalContext ().encodeResourceURL(baseURL+uri); StringBuffer buf = new StringBuffer(); buf.append("<script type=\"text/javascript\">\n" + "\n" + "//<![CDATA[\n" + "\n" + "if(document.createStyleSheet) {\n" + "\n" + "document.createStyleSheet('"+finalUri+"');\n" + "\n" + "}\n" + "\n" + "else {\n" + "\n" + "var styles = \"@import url('"+finalUri+"');\";\n" + "\n" + "var newSS=document.createElement('link');\n" + "\n" + "newSS.rel='stylesheet';\n" + "\n" + "newSS.href='"+finalUri+"';\n" + "\n" + "document.getElementsByTagName(\"head\")[0].appendChild(newSS);\n" + "\n" + "}\n" + "\n" + "//]]>\n" + "\n" + "</script>"); context.getResponseWriter().write(buf.toString()); super.encodeBegin(context); } } On 7/26/07, Simon Lessard <[EMAIL PROTECTED]> wrote: > Thus linking Portal-Trinidad users to specific portal vendor(s)... Ok, I see > the issue now... bleh... > > > On 7/26/07, Scott O'Bryan < [EMAIL PROTECTED]> wrote: > > Simon, you are correct. The portal would be able to push a parameter to > > Trinidad. Always in a portal environment the skin is uncompressed so > > that is also not an issue. But currently changing the stylesheet > > provided by the Portal is a modification that needs to be made to the > > portal itself. I think that's where Martin is coming from. An > > unmodified portal container doesn't look very good when displaying faces > > and forcing every portal container to provide a skin that is not based > > off a standard is not going to be very successful in the general case. > > I totally agree with this, but we're sort of between a rock and a hard > > place. :) > > > > > > Simon Lessard wrote: > > > Not really, I think we detect a specific parameter pushed by the > > > container. So only container supporting skinning would push it, > > > effectively synchronizing all portlet LaF. For other container I think > > > we simply use the normal code path... That or I had some serious > > > hallucinations in the past months and imagined all this... > > > > > > On 7/26/07, *Martin Marinschek* <[EMAIL PROTECTED] > > > <mailto:[EMAIL PROTECTED] >> wrote: > > > > > > Hi Simon, > > > > > > well, but this would then be portlet container dependent, right? > You'd > > > effectively need to implement trinidad skinning in every portlet > > > container. > > > > > > regards, > > > > > > Martin > > > > > > On 7/26/07, Simon Lessard < [EMAIL PROTECTED] > > > <mailto: [EMAIL PROTECTED]>> wrote: > > > > Personally, I don't see why the portal should not be able to > > > provide all > > > > selectors. > > > > > > > > Aren't we just not compressing the selector names when we detect > > > a portal > > > > environment or did I miss something? I think that strategy > > > cannot provides > > > > the icons though. > > > > > > > > > > > > On 7/26/07, Martin Marinschek <[EMAIL PROTECTED] > > > <mailto: [EMAIL PROTECTED]>> wrote: > > > > > Does the portlet container really provide every styleclass that > is > > > > > necessary for Trinidad components to look like they normally > look? > > > > > > > > > > I'm just thinking that what is currently being done is not > > > enough to > > > > > have the full skinning features available, and that going the > > > > > direction of adding the CSS dynamically would allow to do so. > > > > > > > > > > regards, > > > > > > > > > > Martin > > > > > > > > > > On 7/26/07, Scott O'Bryan <[EMAIL PROTECTED] > > > <mailto:[EMAIL PROTECTED]>> wrote: > > > > > > Hey Martin, > > > > > > > > > > > > Does the simple-portlet skin render any better? I *THINK* > > > that when > > > > > > running in a portal environment you always get the > > > simple-portlet skin > > > > > > unless your portal provides one of the necessary skin > > > extensions which, > > > > > > right now, it trinidad proprietary. Maybe this is just a > > > case of us > > > > > > needing to bug-fix the portlet skin. > > > > > > > > > > > > That article is interesting, but I think that Trinidad has > > > attempted to > > > > > > do the same thing only in a different way. Instead of using > > > javascript > > > > > > to copy in the styles, we actually change the class names > > > that get > > > > > > rendered on the client to use the portal styles where > > > appropriate. > > > > > > Still, I'm not sure that this has been tested extensively > > > because before > > > > > > we started looking at 301, much of Trinidad's portal work > > > has been done > > > > > > with a Proof of Concept environment. > > > > > > > > > > > > Scott > > > > > > > > > > > > Martin Marinschek wrote: > > > > > > > After playing around for a while and finally finding out > > > that it was > > > > > > > as easy as setting: > > > > > > > > > > > > > > <skin-family>simple</skin-family> > > > > > > > > > > > > > > in the trinidad-config.xml I got skinning to run in the > > > portlet > > > > > > > environment. In the end, I'm not very happy with what I > > > see, though. > > > > > > > > > > > > > > I'm attaching a screenshot - basically, not much change > > > happens by > > > > > > > applying skinning - obviously due to the fact that the > portlet > > > > > > > containers don't offer many default style-class hooks. > > > > > > > Have I been getting this wrong or does it really look like > > > this? > > > > > > > > > > > > > > If I have been doing the right thing, wouldn't it be nice > > > to have a > > > > > > > way of adding the stylesheet with javascript dynamically > > > in the body? > > > > > > > > > > > > > > Something like this: > > > > > > > > > > > > > > > > > > > > > > http://cse-mjmcl.cse.bris.ac.uk/blog/2005/08/18/1124396539593.html > > > > <http://cse-mjmcl.cse.bris.ac.uk/blog/2005/08/18/1124396539593.html > > > > > > > > > > > > > > > > might be in order to have full skinning available, and > > > still be > > > > > > > standards compliant. > > > > > > > > > > > > > > I'd implement this in a component, if nobody has better > > > ideas... > > > > > > > > > > > > > > regards, > > > > > > > > > > > > > > Martin > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ------------------------------------------------------------------------ > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > > > > > http://www.irian.at > > > > > > > > > > Your JSF powerhouse - > > > > > JSF Consulting, Development and > > > > > Courses in English and German > > > > > > > > > > Professional Support for Apache MyFaces > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > http://www.irian.at > > > > > > Your JSF powerhouse - > > > JSF Consulting, Development and > > > Courses in English and German > > > > > > Professional Support for Apache MyFaces > > > > > > > > > > > > -- http://www.irian.at Your JSF powerhouse - JSF Consulting, Development and Courses in English and German Professional Support for Apache MyFaces