Hi Jeanne, @reusing basic portlet-stylesheet: ok, but my assumption holds true that this will only do the most basic styling, as there are not many styles defined in the portlet spec? In any case, I must have done something wrong - cause I never got 'portlet_form_label' to show up - it was always Trinidad-styleClass-names, I'll check again.
@passing down renderer-parameters: this will only work if the portlet container supports the Trinidad-stylesheet. Realistically, this will only be implemented in one or two portlet container implementations anytime soon. @dynamically adding trinidad stylesheet: you have a good point with interfering style-classes. I'd still say this is the only route I can go as for the above reasons, I'll need to edit the portlet-container stylesheet (or reconfigure it) so that no conflicts occur. Anyways, with this point you're right that this is not a generally useful solution, so I'll keep the hack I have right now and be happy with it. regards, Martin On 7/30/07, Jeanne Waldman <[EMAIL PROTECTED]> wrote: > When you are in a portlet environment, we render the 'portlet' skin. > If your skin is set to simple (which is the default), then you'll get the > simple.portlet skin instead of the simple.desktop skin that you would > normally get if you are not in a portlet. > > If your skin is set to 'foo', you'll get the 'foo.portlet' skin. If the > app hasn't > defined a 'foo.portlet' skin, you'll get the default 'simple.portlet' skin. > > The SimplePortlet skin maps (see getStyleClassMap in the > SimplePortletSkin.java code) > Trinidad selectors to Portlet selectors where applicable. > For example, we map af|inputText::label to portlet-form-label. > > You can see what we are doing by using Firebug and looking at the > generated html and the > css selectors. > > We are expecting a stylesheet on the page where the portlet styles > (e.g., portlet-form-label {font-family: Tahoma; font-size: 11px} are > defined. > Otherwise it will look like your picture - no styling. > > Now if you have a usecase where you want to use a skin like > 'purple.desktop' EVEN if you > are in a portlet environment, then you can send request parameters to > let us know. > > See StyleSheetRenderer for this. Here is the comment: > > // If the requestMap has a skin-id, a skin's stylesheet's id and > suppressStylesheet > // is true, and the skin information matches our current skin, > then it is safe > // to not write out the css. This means that it will be written > out by the external > // source, like the portal container. > > This is from CoreRenderingContext.java: > > /** > * Returns the skin that is requested on the request map if the exact > skin exists. > * <p> > * If we are in a portlet, then we might need to recalculate the skin. > * The portal container might have its own skin that it wants us to > use instead > * of what we picked based on the skin-family and render-kit-id. > * If it does, it will send the skin-id and the skin's > styleSheetDocument id > * in the request map. > * </p> > * <p> > * If we have the skin with that id and the stylesheetdocument's id match, > * then we return that skin; else we return null, indicating that > there is no > * requestMap skin. > * </p> > * @return null if there is no local skin that matches the requestMap > skin, if any. > * skin that is requested to be used on the requestMap if we > can find that > * exact skin with the same stylesheetdocument id locally. > */ > public Skin getRequestMapSkin() > > > Note that we will not use the skin requested if it doesn't match exactly > the portlet container's skin, > otherwise there will be conflicts in the css and weird things could happen. > > Hope this helps, > > Jeanne > > 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 > > > > 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