Well, setting the display to block works for having the span take up the whole cell if I specify width and height, but it still has the same problem that you can't vertically align block level elements. It puts me right back where I was when I was wrapping the cell contents in a div.

Thanks for the suggestion tho,
Rich

PS  Any status on that new column component?

Martin Marinschek wrote:

uhmm... you are right ;)

I obviously did that due to some other reason, basically cause I had to call a method and provide the username as a parameter, and this is not possible with the JSF EL.

as for the style: use display:block;

in your style description.

regards,

Martin



On 7/29/05, *Richard Wallace* <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:

    I'm curious tho what this actually outputs.  It seems your just
    setting
    the styleClass on the <h:outputText> element which you can do with
    <h:outputText styleClass="#{datatablevar.attr}" />.  The problem I
    have
    with that is that it uses a <span> to set the style class and you
    can't
    tell a span to take up 100% of the cell.  You can tell it to up
    all the
    width, but not the height.

    Martin Marinschek wrote:

    > I found a solution deep in my magic box ;)
    >
    > put a value-binding attribute on the outputTexts in your dataTable,
    > just like this:
    >
    > <h:outputText value="#{entry.subject}"
    > binding="#{eventsList.specializedOutputText}" />
    >
    > in eventsList.specializedOutputText,
    >
    > create a new Instance of SpecializedOutputText and return this.
    >
    > class SpecializedOutputText should look like the following:
    >
    > public class SpecializedOutputText extends HtmlOutputText
    > {
    >     private static Log log =
    > LogFactory.getLog(SpecializedOutputText.class);
    >
    >     public void encodeEnd(FacesContext context) throws IOException
    >     {
    >         String username =
    >
    CalendarFactoryFinder.getGUIContextFactory().getGUIContext().getUserName();
    >
    >         if(username!=null)
    >         {
    >             UIComponent grandParent = null;
    >
    >             if(getParent()!=null &&
    > (grandParent=getParent().getParent())!=null
    >                     && grandParent instanceof HtmlDataTable)
    >             {
    >                 HtmlDataTable table = (HtmlDataTable) grandParent;
    >                 Object data = table.getRowData();
    >
    >                 if(data instanceof CalendarEntry)
    >                 {
    >                     CalendarEntry entry = (CalendarEntry) data;
    >
    >                     if(entry.contains(username))
    >                     {
> this.setStyleClass("subject_Column_Private");
    >                     }
    >                     else
    >                     {
    >                         this.setStyleClass("subject_Column");
    >                     }
    >                 }
    >             }
    >         }
    >         else
    >         {
    >             log.error("Could not retrieve username");
    >         }
    >
    >         super.encodeEnd(context);
    >     }
    > }
    >
    > HTH!
    >
    > regards,
    >
    > Martin
    >
    > On 7/29/05, * [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
    <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>*
    > <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
    <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> >> wrote:
    >
    >     hi, i know this is proably not a solution if richard manages
    to finish
    >     the component, but is all ropes tear you could allways do it
    in plain
    >     old javaScript in an onLoad function.
    >     it would probably be the fastest, but if you have time, i would
    >     wait for
    >     the component to do the work for you ;)
    >
    >     greetings jörg
    >
    >
    >     >I will commit it into the tomahawk sources.
    >     >
    >     >Richard Wallace schrieb:
    >     >
    >     >
    >     >>Sounds awesome!  Where will you be committing it
    to?  Sandbox or
    >     Tomahawk?
    >     >>
    >     >>Thanks,
    >     >>Rich
    >     >>
    >     >>Broekelmann, Mathias wrote:
    >     >>
    >     >>
    >     >>
    >     >>>I´ve create a special column component which allows you
    to define
    >     >>>different styles and more for the cells.
    >     >>>It just needs some testing. I think I will have commited it
    >     tomorrow.
    >     >>>
    >     >>>Best Regards,
    >     >>>Mathias
    >     >>>
    >     >>>
    >     >>>
    >     >>>
    >     >>>
    >     >>>>-----Original Message-----
    >     >>>>From: Richard Wallace [mailto:
    [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
    >     <mailto:[EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>>] Sent:
    >     >>>>Thursday, July 28, 2005 5:42 PM
    >     >>>>To: MyFaces Discussion
    >     >>>>Subject: Re: Variable cell style classes in data table
    >     >>>>
    >     >>>>
    >     >>>>Alright, well my back is sort of up against a wall
    now.  I had
    >     >>>>thought I could figure out an alternative for now but I was
    >     wrong.  I
    >     >>>>had thought that wrapping the column data in a div and
    setting
    >     the
    >     >>>>width and height to fill the cell would allow me to
    change the
    >     >>>>background color on a per cell basis.  And it does, but
    with a big
    >     >>>>but.  Apparently you can't use vertical alignment on
    block level
    >     >>>>elements.  So, rather than the text being centered
    vertically and
    >     >>>>horizontally as it needs to be, it's up at the top of
    the cell.
    >     >>>>We've tried several workarounds, none of which seem to work
    >     quite right.
    >     >>>>
    >     >>>>So, I'm back to needing to set table cell style classes
    based
    >     on the
    >     >>>>content of the cell.  I looked at maybe modifying the data
    >     table so
    >     >>>>that the column classes attribute could be a list of EL
    >     statements
    >     >>>>that get interpreted when each cell is rendered, but
    they are
    >     >>>>interpreted instead when the table itself is created it
    looks
    >     like,
    >     >>>>so that's out.  I'm not sure what could be the best way
    to do
    >     it now,
    >     >>>>maybe create a new facet type named "style" or "styleClass"
    >     for the
    >     >>>>column component.
    >     >>>>
    >     >>>>This is my first bout at trying to create custom components,
    >     so I'm
    >     >>>>not sure what that would involve, but I'm more than
    willing to
    >     give
    >     >>>>it a shot if someone could maybe give me some advice.
    >     >>>>
    >     >>>>Thanks,
    >     >>>>Rich
    >     >>>>
    >     >>>>Richard Wallace wrote:
    >     >>>>
    >     >>>>
    >     >>>>
    >     >>>>
    >     >>>>
    >     >>>>>Jesse Alexander (KBSA 21) wrote:
    >     >>>>>
    >     >>>>>
    >     >>>>>
    >     >>>>>
    >     >>>>>
    >     >>>>>>I did something similar, but I just needed to render an
    >     >>>>>>
    >     >>>>>>
    >     >>>>image according
    >     >>>>
    >     >>>>
    >     >>>>
    >     >>>>
    >     >>>>>>the content of a field.
    >     >>>>>>
    >     >>>>>>I ended up writing a Lookup-image component. Nothing
    >     complicated.
    >     >>>>>>
    >     >>>>>>hope this helps
    >     >>>>>>Alexander
    >     >>>>>>
    >     >>>>>>PS: I'll be offline for a week!  But after august 2nd
    i can
    >     scetch
    >     >>>>>>up a component that does this trick, if you can wait
    till then.
    >     >>>>>>
    >     >>>>>>
    >     >>>>>>
    >     >>>>>>
    >     >>>>>>
    >     >>>>>Sounds good.  I can probably figure something out until
    >     >>>>>
    >     >>>>>
    >     >>>>then.  Thanks
    >     >>>>
    >     >>>>
    >     >>>>
    >     >>>>>a ton.
    >     >>>>>
    >     >>>>>Rich
    >     >>>>>
    >     >>>>>
    >     >>>>>
    >     >>>>>
    >     >>>>>
    >     >>>>>>-----Original Message-----
    >     >>>>>>From: Richard Wallace
    [mailto:[EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>
    >     <mailto:[EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>>] Sent:
    >     >>>>>>Monday, July 25, 2005 7:52 PM
    >     >>>>>>To: MyFaces Discussion
    >     >>>>>>Subject: Variable cell style classes in data table
    >     >>>>>>
    >     >>>>>>Hey everyone,
    >     >>>>>>
    >     >>>>>>I've got a report that I'm displaying with <h:dataTable>.
    >     >>>>>>
    >     >>>>>>
    >     >>>>Depending
    >     >>>>
    >     >>>>
    >     >>>>
    >     >>>>>>on the value to be displayed the background color of the
    >     >>>>>>
    >     >>>>>>
    >     >>>>cell should
    >     >>>>
    >     >>>>
    >     >>>>
    >     >>>>>>be a different shade.  So for low values, it'd be like a
    >     >>>>>>
    >     >>>>>>
    >     >>>>really light
    >     >>>>
    >     >>>>
    >     >>>>
    >     >>>>>>yellow, for high values it'd be a much darker yellow,
    etc.
    >     >>>>>>
    >     >>>>>>
    >     >>>>Any ideas
    >     >>>>
    >     >>>>
    >     >>>>
    >     >>>>>>on how I can accomplish this with MyFaces?
    >     >>>>>>
    >     >>>>>>I had sort of hoped that something like the following
    would
    >     work:
    >     >>>>>>
    >     >>>>>><h:column styleClass="#{ reportHandler.styleClass}">
    >     >>>>>>
    >     >>>>>>But, as I found out, styleClass isn't a valid
    attribute for the
    >     >>>>>><h:column> element.
    >     >>>>>>
    >     >>>>>>Any ideas?  Am I stuck rendering this sucker with plain
    >     >>>>>>
    >     >>>>>>
    >     >>>>old JSP and
    >     >>>>
    >     >>>>
    >     >>>>
    >     >>>>>>JSTL?
    >     >>>>>>
    >     >>>>>>Thanks,
    >     >>>>>>Rich
    >     >>>>>>
    >     >>>>>>
    >     >>>>>>
    >     >>>>>>
    >     >>>>>>
    >     >>>>
    >     >>>>
    >     >>>>
    >     >>
    >     >>
    >     >
    >     >
    >     >
    >     >
    >     >
    >
    >
    >



Reply via email to