You are viewing a plain text version of this content. The canonical link for it is here.
Posted to adffaces-user@incubator.apache.org by Markus Heinisch <Ma...@trivadis.com> on 2006/06/28 16:24:58 UTC

AW: [SPAM] - Skin Enhancement Request - Bayesian Filter detected spam

Hi Dan,

Are you looking for a solution like this:

            <af:inputText value="#{bindings.Title.inputValue}"
                          label="#{bindings.Title.label}"
                          required="#{bindings.Title.mandatory}"
                          styleClass="#{bindings.Title.mandatory ? 'required' : 'nonrequired'}"
                          columns="#{bindings.Title.displayWidth}">
            </af:inputText>

The EL expression in the attribute styleClass makes the trick. The EL expression resolves to styleClass="required" when the Title is mandatory (example uses Oracle ADF which provides for a property like 'Title' some metadata like 'mandatory' or 'updatable').

The styleclass must be defined in a CSS or your Skin-CSS:

input.required, textarea.required, select.required {
  background-color: rgb(255,255,181);
  border-style: solid ;
}
input.nonrequired, textarea.nonrequired, select.nonrequired {
  background-color: white;
  border-style: solid ;
}

From my point of view everything you need is available to solve your styling needs. ;-)

Cheers,
Markus
------------------------------------------
Markus Heinisch      

Dipl.-Inform. 
Consultant 

Trivadis GmbH 
Freischützstrasse 92 
81927 München 
Germany 
 
Tel.: +49-89-99275930
Fax : +49-89-99275959 
Mobile: +49-162-2959616 
mailto:markus.heinisch@trivadis.com 
http://www.trivadis.com
 

> -----Ursprüngliche Nachricht-----
> Von: Dan Robinson [mailto:dannyjrobinson@gmail.com] 
> Gesendet: Mittwoch, 28. Juni 2006 18:02
> An: adffaces-user@incubator.apache.org
> Betreff: [SPAM] - Skin Enhancement Request - Bayesian Filter 
> detected spam
> 
> I don't think this is currently possible, but please prove me wrong!
> 
> We'd like to provide a skin configuration that would cause 
> certain styles to be appled when a field is marked as 
> required.  Specifically, we'd like to cause the input field 
> background colour to be changed to make it very obvious that 
> it is required.
> 
> So far we've only been able to set the background color for 
> all elements of an input field (label, tip, etc.).
> 
> I guess an extension of this would be to make the label bold etc. etc.
> 
> Thanks,
> 
> Danny
> 

Re: AW: [SPAM] - Skin Enhancement Request - Bayesian Filter detected spam

Posted by Dan Robinson <da...@gmail.com>.
Exactly, and if possible : af|inputText:required::label


On 6/28/06, Jeanne Waldman <je...@oracle.com> wrote:
>
> It sounds like you'd like it if you had a skinning key like this:
>
> af|inputText:required::content
>
> - Jeanne
>
> Dan Robinson wrote:
>
> > Thanks Guys, that seemed to work.
> >
> > We've yet to upgrade to the very latest Trinidad release, so I guess
> > that's
> > why the 'af|inputText.requiredFieldMarker::content' method didn't
> > work, but
> > we're using Markus' method and plan to switch over once we're
> up-to-date.
> >
> > I'm not a huge fan of the contentStyle approach, but would love a
> > 'contentClass' tag instead.  Having our devs understand and put styles
> > into
> > pages is not an approach I want to take.
> >
> > Better still I'd love an out-of-the-box style we can override for
> > required
> > fields that just workswhen required or showRequired are true.
> >
> > Danny
> >
> > On 6/28/06, Jeanne Waldman <je...@oracle.com> wrote:
> >
> >>
> >> The styleClass attribute for the form components goes on the root dom
> >> element of the component, which isn't the <input> or <textArea>. We
> >> should be doing this for all our components, and if we are not, we'll
> >> need to enhance them to do this. This is for consistency, and it makes
> >> it easier to write skinning rules.
> >>
> >> In the case of inputText where changing the styles of the 'content'
> (aka
> >> the input/textArea) piece of the component is common, we've added a
> >> 'contentStyle' attribute. So you can essentially do what Markus
> >> suggested, but use the contentStyle attribute. By essentially, I mean
> >> that contentStyle takes  styles, not style classes. So you would do
> >> this:
> >>
> >> contentStyle="#{bindings.Title.mandatory ? 'background-color:
> >> rgb(255,255,181);border-style: solid ;' : 'background-color: white;
> >>   border-style: solid ;'}"
> >>
> >>
> >> I just thought of another way you can do this using the skinning file.
> >> Do what Markus suggested, but I would change the name of the
> >> styleClasses:
> >>
> >>             <af:inputText value="#{bindings.Title.inputValue}"
> >>                           label="#{bindings.Title.label}"
> >>                           required="#{bindings.Title.mandatory}"
> >>                           styleClass="#{bindings.Title.mandatory ?
> >> 'requiredFieldMarker' : 'nonrequiredMarker'}"
> >>                           columns="#{bindings.Title.displayWidth}">
> >>             </af:inputText>
> >>
> >> The in the skinning file you can do this:
> >>
> >> /* When the af|inputText's component has the styleClass set to
> >> requiredFieldMarker, set its 'content' piece */
> >> af|inputText.requiredFieldMarker::content {
> >> background-color: rgb(255,255,181);
> >> border-style: solid ;
> >> }
> >>
> >> - Jeanne
> >>
> >> Markus Heinisch wrote:
> >>
> >> >Hi Dan,
> >> >
> >> >Are you looking for a solution like this:
> >> >
> >> >            <af:inputText value="#{bindings.Title.inputValue}"
> >> >                          label="#{bindings.Title.label}"
> >> >                          required="#{bindings.Title.mandatory}"
> >> >                          styleClass="#{bindings.Title.mandatory ?
> >> 'required' : 'nonrequired'}"
> >> >                          columns="#{bindings.Title.displayWidth}">
> >> >            </af:inputText>
> >> >
> >> >The EL expression in the attribute styleClass makes the trick. The EL
> >> expression resolves to styleClass="required" when the Title is
> mandatory
> >> (example uses Oracle ADF which provides for a property like 'Title'
> some
> >> metadata like 'mandatory' or 'updatable').
> >> >
> >> >The styleclass must be defined in a CSS or your Skin-CSS:
> >> >
> >> >input.required, textarea.required, select.required {
> >> >  background-color: rgb(255,255,181);
> >> >  border-style: solid ;
> >> >}
> >> >input.nonrequired, textarea.nonrequired, select.nonrequired {
> >> >  background-color: white;
> >> >  border-style: solid ;
> >> >}
> >> >
> >> >>From my point of view everything you need is available to solve your
> >> styling needs. ;-)
> >> >
> >> >Cheers,
> >> >Markus
> >> >------------------------------------------
> >> >Markus Heinisch
> >> >
> >> >Dipl.-Inform.
> >> >Consultant
> >> >
> >> >Trivadis GmbH
> >> >Freischützstrasse 92
> >> >81927 München
> >> >Germany
> >> >
> >> >Tel.: +49-89-99275930
> >> >Fax : +49-89-99275959
> >> >Mobile: +49-162-2959616
> >> >mailto:markus.heinisch@trivadis.com
> >> >http://www.trivadis.com
> >> >
> >> >
> >> >
> >> >
> >> >>-----Ursprüngliche Nachricht-----
> >> >>Von: Dan Robinson [mailto:dannyjrobinson@gmail.com]
> >> >>Gesendet: Mittwoch, 28. Juni 2006 18:02
> >> >>An: adffaces-user@incubator.apache.org
> >> >>Betreff: [SPAM] - Skin Enhancement Request - Bayesian Filter
> >> >>detected spam
> >> >>
> >> >>I don't think this is currently possible, but please prove me wrong!
> >> >>
> >> >>We'd like to provide a skin configuration that would cause
> >> >>certain styles to be appled when a field is marked as
> >> >>required.  Specifically, we'd like to cause the input field
> >> >>background colour to be changed to make it very obvious that
> >> >>it is required.
> >> >>
> >> >>So far we've only been able to set the background color for
> >> >>all elements of an input field (label, tip, etc.).
> >> >>
> >> >>I guess an extension of this would be to make the label bold etc.
> etc.
> >> >>
> >> >>Thanks,
> >> >>
> >> >>Danny
> >> >>
> >> >>
> >> >>
> >> >
> >> >
> >> >
> >>
> >>
> >
>
>

Re: ProcessTrain enhancement

Posted by Adam Winer <aw...@gmail.com>.
Check out adf-faces-build/src/main/resources/META-INF/maven-faces-plugin.
You'll see a directory structure in there that should mostly explain what's
going on.  The only one you'd need to change is the XML for the processTrain
renderer.

-- Adam


On 7/6/06, Simon_Lessard@dmr.ca <Si...@dmr.ca> wrote:
>
> Hello,
>
> Thank for the reply. I don't mind creating a new Renderer that extends
> XhtmlRenderer. However, I have a little question about the FacesBean.Type
> that I must specify to the constructor. I checked InputTextRenderer and
> saw that it was using CoreInputText.TYPE. That class seems to be
> automatically generated so I assume there's a XML file somewhere from
> which the .java is generated? Is that faces-config.xml, the .tld? A
> completely different one ? Where can I find it?
>
>
> Thanks,
>
> Simon Lessard
> Fujitsu Consulting
>
>
>
>
>
> "Adam Winer" <aw...@gmail.com>
> 2006-07-06 11:50
> Please respond to adffaces-user
>
>         To:     adffaces-user@incubator.apache.org
>         cc:
>         Subject:        Re: ProcessTrain enhancement
>
>
> These look good to me.  One thing that's important:  we really need
> a Faces-major version of this renderer - that is, instead of
> one that is in the "org.apache.myfaces.adfinternal.ui" package,
> one that is in "org.apache.myfaces.adfinternal.renderkit.core.xhtml".
> Everything in "ui" is obsolete (oooold UIX-based code), and a major
> technical goal of the project is to delete "ui" and "uinode" from the
> Apache Trinidad codebase.  So, -1 to adding this feature to the old
> renderer, +1 to adding it to a new renderer.
>
> I'm more than happy to provide lots of details on how to write
> a new-style renderer, though you can look at the existing examples
> for a pretty good clue how it works.
>
> -- Adam
>
> On 7/6/06, Simon_Lessard@dmr.ca <Si...@dmr.ca> wrote:
> >
> > Hello,
> >
> > I'm currently working to modify the processTrain to accept more skin
> > selectors in order to open all icons provided by Oracle skin. The
> > selectors I plan to add are:
> >
> >   // processTrain styles used for the disabled links
> >   public static final String AF_PROCESS_TRAIN_TEXT_STYLE_CLASS =
> >     "af|processTrain::text";
> >
> >   // For outer margins
> >   public static final String AF_PROCESS_TRAIN_MARGIN_START_STYLE_CLASS =
> >     "af|processTrain::margin-start";
> >   public static final String AF_PROCESS_TRAIN_MARGIN_END_STYLE_CLASS =
> >     "af|processTrain::margin-end";
> >
> >   // For inner spacing
> >   public static final String AF_PROCESS_TRAIN_SPACING_STYLE_CLASS =
> >     "af|processTrain::step-spacing";
> >
> >   // For active steps
> >   public static final String AF_PROCESS_TRAIN_ACTIVE_START_ICON_NAME =
> >     "af|processTrain::step-active-start-icon";
> >   public static final String AF_PROCESS_TRAIN_ACTIVE_END_ICON_NAME =
> >     "af|processTrain::step-active-end-icon";
> >
> >   // For visited steps
> >   public static final String AF_PROCESS_TRAIN_VISITED_START_ICON_NAME =
> >     "af|processTrain::step-visited-start-icon";
> >   public static final String AF_PROCESS_TRAIN_VISITED_END_ICON_NAME =
> >     "af|processTrain::step-visited-end-icon";
> >
> >   // For unvisited steps
> >   public static final String AF_PROCESS_TRAIN_UNVISITED_START_ICON_NAME
> =
> >     "af|processTrain::step-unvisited-start-icon";
> >   public static final String AF_PROCESS_TRAIN_UNVISITED_END_ICON_NAME =
> >     "af|processTrain::step-unvisited-end-icon";
> >
> >   // For disabled steps
> >   public static final String AF_PROCESS_TRAIN_DISABLED_START_ICON_NAME =
> >     "af|processTrain::step-disabled-start-icon";
> >   public static final String AF_PROCESS_TRAIN_DISABLED_END_ICON_NAME =
> >     "af|processTrain::step-disabled-end-icon";
> >
> >   // For joints
> >   public static final String AF_PROCESS_TRAIN_JOINT_VISITED_ICON_NAME =
> >     "af|processTrain::joint-visited-icon";
> >   public static final String AF_PROCESS_TRAIN_JOINT_UNVISITED_ICON_NAME
> =
> >     "af|processTrain::joint-unvisited-icon";
> >
> >   // For backward overflows
> >   public static final String
> > AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_STYLE_CLASS =
> >     "af|processTrain::overflow-backward";
> >   public static final String
> > AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_START_ICON_NAME =
> >     "af|processTrain::overflow-backward-start-icon";
> >   public static final String
> > AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_END_ICON_NAME =
> >     "af|processTrain::overflow-backward-end-icon";
> >
> >   // For forward overflows
> >   public static final String
> AF_PROCESS_TRAIN_OVERFLOW_FORWARD_STYLE_CLASS
> > =
> >     "af|processTrain::overflow-forward";
> >   public static final String
> > AF_PROCESS_TRAIN_OVERFLOW_FORWARD_START_ICON_NAME =
> >     "af|processTrain::overflow-forward-start-icon";
> >   public static final String
> > AF_PROCESS_TRAIN_OVERFLOW_FORWARD_END_ICON_NAME =
> >     "af|processTrain::overflow-forward-end-icon";
> >
> > The target HTML structure for the process train in LtR mode is:
> >
> > <table align="center" border="0" cellpadding="0" cellspacing="0"
> > class="af|processTrain">
> >   <tbody>
> >     <tr>
> >       <td class="af|processTrain::margin-start" rowspan="2"></td>
> >
> >       <td align="right" class="af|processTrain::overflow-backward">
> >         <img src="af|processTrain::overflow-backward-start-icon"
> > title="%step-label%" alt="%step-label% : previous set"/>
> >       </td>
> >       <td background="af|processTrain::joint-visited-icon" align="left"
> > class="af|processTrain::overflow-backward>
> >         <img src="af|processTrain::overflow-backward-end-icon" alt="">
> >       </td>
> >
> >       <td background="af|processTrain::joint-visited-icon" class="
> > af|processTrain::step-spacing"></td>
> >
> >       <td background="af|processTrain::joint-visited-icon" align="right"
> > class="af|processTrain::step-visited">
> >         <img src="af|processTrain::step-visited-start-icon"
> > title="%step-label%" alt="%step-label% : previous step"/>
> >       </td>
> >       <td background="af|processTrain::joint-visited-icon" align="left"
> > class="af|processTrain::step-visited">
> >         <img src="af|processTrain::step-visited-end-icon" alt="">
> >       </td>
> >
> >       <td background="af|processTrain::joint-visited-icon" class="
> > af|processTrain::step-spacing"></td>
> >
> >       <td background="af|processTrain::joint-visited-icon" align="right"
> > class="af|processTrain::step-active">
> >         <img src="af|processTrain::step-active-start-icon"
> > title="%step-label%" alt="%step-label% : active step"/>
> >       </td>
> >       <td background="af|processTrain::joint-unvisited-icon"
> align="left"
> > class="af|processTrain::step-active">
> >         <img src="af|processTrain::step-active-end-icon" alt="">
> >       </td>
> >
> >       <td background="af|processTrain::joint-unvisited-icon" class="
> > af|processTrain::step-spacing"></td>
> >
> >       <td background="af|processTrain::joint-unvisited-icon"
> align="right"
> > class="af|processTrain::step-unvisited">
> >         <img src="af|processTrain::step-unvisited-start-icon"
> > title="%step-label%" alt="%step-label% : next step"/>
> >       </td>
> >       <td background="af|processTrain::joint-unvisited-icon"
> align="left"
> > class="af|processTrain::step-unvisited">
> >         <img src="af|processTrain::step-unvisited-end-icon" alt="">
> >       </td>
> >
> >       <td background="af|processTrain::joint-unvisited-icon" class="
> > af|processTrain::step-spacing"></td>
> >
> >       <td background="af|processTrain::joint-unvisited-icon"
> align="right"
> > class="af|processTrain::overflow-forward">
> >         <img src="af|processTrain::overflow-forward-start-icon"
> > title="%step-label%" alt="%step-label% : next set"/>
> >       </td>
> >       <td align="left" class="af|processTrain::overflow-forward">
> >         <img src="af|processTrain::overflow-forward-end-icon" alt="">
> >       </td>
> >
> >       <td class="af|processTrain::margin-end" rowspan="2"></td>
> >     </tr>
> >     <tr>
> >       <td colspan="2" class="af|processTrain::overflow-backward">
> >         <a class="af|processTrain::link">%step-label%</a>
> >       </td>
> >       <td colspan="2" class="af|processTrain::step-visited">
> >         <a class="af|processTrain::link">%step-label%</a>
> >       </td>
> >       <td colspan="2" class="af|processTrain::step-active">
> >         <a class="af|processTrain::link">%step-label%</a>
> >       </td>
> >       <td colspan="2" class="af|processTrain::step-unvisited">
> >         <a class="af|processTrain::text">%step-label%</a>
> >       </td>
> >       <td colspan="2" class="af|processTrain::overflow-forward">
> >         <a class="af|processTrain::text">%step-label%</a>
> >       </td>
> >     </tr>
> >   </tbody>
> > </table>
> >
> > Is that ok with you?
> >
> > Simon Lessard
> > DMR Conseil Inc. (http://www.dmrconseil.ca)
> > Téléphone : (418) 653-6881
> >
> > Sun Certified Programmer for Java 2 Platform 1.4
> >
>
>
>

RE: ProcessTrain enhancement

Posted by Pavitra Subramaniam <pa...@oracle.com>.
Yes, that was my primary reason for delivering it in 2 phases and I'll stick to that, like you recommend. If I hear no other objections I will start working on it right away.

Thanks
- Pavitra

-----Original Message-----
From: Adam Winer [mailto:awiner@gmail.com] 
Sent: Friday, July 07, 2006 9:35 AM
To: adffaces-user@incubator.apache.org; pavitra.subramaniam@oracle.com
Subject: Re: ProcessTrain enhancement

Pavitra,

I'd appreciate seeing it in two stages, either way, especially because adding skinning selectors might lead to diffs in the golden files for the CoreRenderKitTest.

-- Adam


On 7/6/06, Pavitra Subramaniam <pa...@oracle.com> wrote:
>
> Hello,
>
> I have a task lined up to convert the existing Trinidad processTrain 
> renderer to a "faces major" version. And I plan to do it the following week.
> If you haven't already started it I would be happy to work on it. I 
> plan to deliver it in 2 phases.
> For phase 1, I simply plan to get the renderer to render the current 
> layout and in the second phase add the extra skinning selectors that 
> you requested.
>
> If it's simple enough I can deliver both changes in one shot. Is that 
> acceptable?
>
> Thanks
> - Pavitra
>
> -----Original Message-----
> From: Simon_Lessard@DMR.CA [mailto:Simon_Lessard@DMR.CA]
> Sent: Thursday, July 06, 2006 10:13 AM
> To: adffaces-user@incubator.apache.org
> Subject: Re: ProcessTrain enhancement
>
> Hello,
>
> Thank for the reply. I don't mind creating a new Renderer that extends 
> XhtmlRenderer. However, I have a little question about the 
> FacesBean.Typethat I must specify to the constructor. I checked 
> InputTextRenderer and saw that it was using CoreInputText.TYPE. That 
> class seems to be automatically generated so I assume there's a XML 
> file somewhere from which the .java is generated? Is that faces-config.xml, the .tld? A completely different one ? Where can I find it?
>
>
> Thanks,
>
> Simon Lessard
> Fujitsu Consulting
>
>
>
>
>
> "Adam Winer" <aw...@gmail.com>
> 2006-07-06 11:50
> Please respond to adffaces-user
>
>         To:     adffaces-user@incubator.apache.org
>         cc:
>         Subject:        Re: ProcessTrain enhancement
>
>
> These look good to me.  One thing that's important:  we really need a 
> Faces-major version of this renderer - that is, instead of one that is 
> in the "org.apache.myfaces.adfinternal.ui" package, one that is in "
> org.apache.myfaces.adfinternal.renderkit.core.xhtml".
> Everything in "ui" is obsolete (oooold UIX-based code), and a major 
> technical goal of the project is to delete "ui" and "uinode" from the 
> Apache Trinidad codebase.  So, -1 to adding this feature to the old 
> renderer, +1 to adding it to a new renderer.
>
> I'm more than happy to provide lots of details on how to write a 
> new-style renderer, though you can look at the existing examples for a 
> pretty good clue how it works.
>
> -- Adam
>
> On 7/6/06, Simon_Lessard@dmr.ca <Si...@dmr.ca> wrote:
> >
> > Hello,
> >
> > I'm currently working to modify the processTrain to accept more skin 
> > selectors in order to open all icons provided by Oracle skin. The 
> > selectors I plan to add are:
> >
> >   // processTrain styles used for the disabled links
> >   public static final String AF_PROCESS_TRAIN_TEXT_STYLE_CLASS =
> >     "af|processTrain::text";
> >
> >   // For outer margins
> >   public static final String AF_PROCESS_TRAIN_MARGIN_START_STYLE_CLASS =
> >     "af|processTrain::margin-start";
> >   public static final String AF_PROCESS_TRAIN_MARGIN_END_STYLE_CLASS =
> >     "af|processTrain::margin-end";
> >
> >   // For inner spacing
> >   public static final String AF_PROCESS_TRAIN_SPACING_STYLE_CLASS =
> >     "af|processTrain::step-spacing";
> >
> >   // For active steps
> >   public static final String AF_PROCESS_TRAIN_ACTIVE_START_ICON_NAME =
> >     "af|processTrain::step-active-start-icon";
> >   public static final String AF_PROCESS_TRAIN_ACTIVE_END_ICON_NAME =
> >     "af|processTrain::step-active-end-icon";
> >
> >   // For visited steps
> >   public static final String AF_PROCESS_TRAIN_VISITED_START_ICON_NAME =
> >     "af|processTrain::step-visited-start-icon";
> >   public static final String AF_PROCESS_TRAIN_VISITED_END_ICON_NAME =
> >     "af|processTrain::step-visited-end-icon";
> >
> >   // For unvisited steps
> >   public static final String AF_PROCESS_TRAIN_UNVISITED_START_ICON_NAME=
> >     "af|processTrain::step-unvisited-start-icon";
> >   public static final String AF_PROCESS_TRAIN_UNVISITED_END_ICON_NAME =
> >     "af|processTrain::step-unvisited-end-icon";
> >
> >   // For disabled steps
> >   public static final String AF_PROCESS_TRAIN_DISABLED_START_ICON_NAME =
> >     "af|processTrain::step-disabled-start-icon";
> >   public static final String AF_PROCESS_TRAIN_DISABLED_END_ICON_NAME =
> >     "af|processTrain::step-disabled-end-icon";
> >
> >   // For joints
> >   public static final String AF_PROCESS_TRAIN_JOINT_VISITED_ICON_NAME =
> >     "af|processTrain::joint-visited-icon";
> >   public static final String 
> > AF_PROCESS_TRAIN_JOINT_UNVISITED_ICON_NAME
> =
> >     "af|processTrain::joint-unvisited-icon";
> >
> >   // For backward overflows
> >   public static final String
> AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_STYLE_CLASS =
> >     "af|processTrain::overflow-backward";
> >   public static final String
> AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_START_ICON_NAME =
> >     "af|processTrain::overflow-backward-start-icon";
> >   public static final String
> AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_END_ICON_NAME =
> >     "af|processTrain::overflow-backward-end-icon";
> >
> >   // For forward overflows
> >   public static final String
> AF_PROCESS_TRAIN_OVERFLOW_FORWARD_STYLE_CLASS =
> >     "af|processTrain::overflow-forward";
> >   public static final String
> AF_PROCESS_TRAIN_OVERFLOW_FORWARD_START_ICON_NAME =
> >     "af|processTrain::overflow-forward-start-icon";
> >   public static final String
> AF_PROCESS_TRAIN_OVERFLOW_FORWARD_END_ICON_NAME =
> >     "af|processTrain::overflow-forward-end-icon";
> >
> > The target HTML structure for the process train in LtR mode is:
> >
> > <table align="center" border="0" cellpadding="0" cellspacing="0"
> > class="af|processTrain">
> >   <tbody>
> >     <tr>
> >       <td class="af|processTrain::margin-start" rowspan="2"></td>
> >
> >       <td align="right" class="af|processTrain::overflow-backward">
> >         <img src="af|processTrain::overflow-backward-start-icon"
> > title="%step-label%" alt="%step-label% : previous set"/>
> >       </td>
> >       <td background="af|processTrain::joint-visited-icon" align="left"
> > class="af|processTrain::overflow-backward>
> >         <img src="af|processTrain::overflow-backward-end-icon" alt="">
> >       </td>
> >
> >       <td background="af|processTrain::joint-visited-icon" class="
> > af|processTrain::step-spacing"></td>
> >
> >       <td background="af|processTrain::joint-visited-icon" align="right"
> > class="af|processTrain::step-visited">
> >         <img src="af|processTrain::step-visited-start-icon"
> > title="%step-label%" alt="%step-label% : previous step"/>
> >       </td>
> >       <td background="af|processTrain::joint-visited-icon" align="left"
> > class="af|processTrain::step-visited">
> >         <img src="af|processTrain::step-visited-end-icon" alt="">
> >       </td>
> >
> >       <td background="af|processTrain::joint-visited-icon" class="
> > af|processTrain::step-spacing"></td>
> >
> >       <td background="af|processTrain::joint-visited-icon" align="right"
> > class="af|processTrain::step-active">
> >         <img src="af|processTrain::step-active-start-icon"
> > title="%step-label%" alt="%step-label% : active step"/>
> >       </td>
> >       <td background="af|processTrain::joint-unvisited-icon"
> align="left"
> > class="af|processTrain::step-active">
> >         <img src="af|processTrain::step-active-end-icon" alt="">
> >       </td>
> >
> >       <td background="af|processTrain::joint-unvisited-icon" class="
> > af|processTrain::step-spacing"></td>
> >
> >       <td background="af|processTrain::joint-unvisited-icon"
> align="right"
> > class="af|processTrain::step-unvisited">
> >         <img src="af|processTrain::step-unvisited-start-icon"
> > title="%step-label%" alt="%step-label% : next step"/>
> >       </td>
> >       <td background="af|processTrain::joint-unvisited-icon"
> align="left"
> > class="af|processTrain::step-unvisited">
> >         <img src="af|processTrain::step-unvisited-end-icon" alt="">
> >       </td>
> >
> >       <td background="af|processTrain::joint-unvisited-icon" class="
> > af|processTrain::step-spacing"></td>
> >
> >       <td background="af|processTrain::joint-unvisited-icon"
> align="right"
> > class="af|processTrain::overflow-forward">
> >         <img src="af|processTrain::overflow-forward-start-icon"
> > title="%step-label%" alt="%step-label% : next set"/>
> >       </td>
> >       <td align="left" class="af|processTrain::overflow-forward">
> >         <img src="af|processTrain::overflow-forward-end-icon" alt="">
> >       </td>
> >
> >       <td class="af|processTrain::margin-end" rowspan="2"></td>
> >     </tr>
> >     <tr>
> >       <td colspan="2" class="af|processTrain::overflow-backward">
> >         <a class="af|processTrain::link">%step-label%</a>
> >       </td>
> >       <td colspan="2" class="af|processTrain::step-visited">
> >         <a class="af|processTrain::link">%step-label%</a>
> >       </td>
> >       <td colspan="2" class="af|processTrain::step-active">
> >         <a class="af|processTrain::link">%step-label%</a>
> >       </td>
> >       <td colspan="2" class="af|processTrain::step-unvisited">
> >         <a class="af|processTrain::text">%step-label%</a>
> >       </td>
> >       <td colspan="2" class="af|processTrain::overflow-forward">
> >         <a class="af|processTrain::text">%step-label%</a>
> >       </td>
> >     </tr>
> >   </tbody>
> > </table>
> >
> > Is that ok with you?
> >
> > Simon Lessard
> > DMR Conseil Inc. (http://www.dmrconseil.ca) Téléphone : (418) 
> > 653-6881
> >
> > Sun Certified Programmer for Java 2 Platform 1.4
> >
>
>
>
>



Re: ProcessTrain enhancement

Posted by Adam Winer <aw...@gmail.com>.
Pavitra,

I'd appreciate seeing it in two stages, either way, especially because
adding skinning selectors might lead to diffs in the golden files for the
CoreRenderKitTest.

-- Adam


On 7/6/06, Pavitra Subramaniam <pa...@oracle.com> wrote:
>
> Hello,
>
> I have a task lined up to convert the existing Trinidad processTrain
> renderer to a "faces major" version. And I plan to do it the following week.
> If you haven't already started it I would be happy to work on it. I plan to
> deliver it in 2 phases.
> For phase 1, I simply plan to get the renderer to render the current
> layout and in the second phase add the extra skinning selectors that you
> requested.
>
> If it's simple enough I can deliver both changes in one shot. Is that
> acceptable?
>
> Thanks
> - Pavitra
>
> -----Original Message-----
> From: Simon_Lessard@DMR.CA [mailto:Simon_Lessard@DMR.CA]
> Sent: Thursday, July 06, 2006 10:13 AM
> To: adffaces-user@incubator.apache.org
> Subject: Re: ProcessTrain enhancement
>
> Hello,
>
> Thank for the reply. I don't mind creating a new Renderer that extends
> XhtmlRenderer. However, I have a little question about the FacesBean.Typethat I must specify to the constructor. I checked InputTextRenderer and saw
> that it was using CoreInputText.TYPE. That class seems to be automatically
> generated so I assume there's a XML file somewhere from which the .java is
> generated? Is that faces-config.xml, the .tld? A completely different one
> ? Where can I find it?
>
>
> Thanks,
>
> Simon Lessard
> Fujitsu Consulting
>
>
>
>
>
> "Adam Winer" <aw...@gmail.com>
> 2006-07-06 11:50
> Please respond to adffaces-user
>
>         To:     adffaces-user@incubator.apache.org
>         cc:
>         Subject:        Re: ProcessTrain enhancement
>
>
> These look good to me.  One thing that's important:  we really need a
> Faces-major version of this renderer - that is, instead of one that is in
> the "org.apache.myfaces.adfinternal.ui" package, one that is in "
> org.apache.myfaces.adfinternal.renderkit.core.xhtml".
> Everything in "ui" is obsolete (oooold UIX-based code), and a major
> technical goal of the project is to delete "ui" and "uinode" from the Apache
> Trinidad codebase.  So, -1 to adding this feature to the old renderer, +1 to
> adding it to a new renderer.
>
> I'm more than happy to provide lots of details on how to write a new-style
> renderer, though you can look at the existing examples for a pretty good
> clue how it works.
>
> -- Adam
>
> On 7/6/06, Simon_Lessard@dmr.ca <Si...@dmr.ca> wrote:
> >
> > Hello,
> >
> > I'm currently working to modify the processTrain to accept more skin
> > selectors in order to open all icons provided by Oracle skin. The
> > selectors I plan to add are:
> >
> >   // processTrain styles used for the disabled links
> >   public static final String AF_PROCESS_TRAIN_TEXT_STYLE_CLASS =
> >     "af|processTrain::text";
> >
> >   // For outer margins
> >   public static final String AF_PROCESS_TRAIN_MARGIN_START_STYLE_CLASS =
> >     "af|processTrain::margin-start";
> >   public static final String AF_PROCESS_TRAIN_MARGIN_END_STYLE_CLASS =
> >     "af|processTrain::margin-end";
> >
> >   // For inner spacing
> >   public static final String AF_PROCESS_TRAIN_SPACING_STYLE_CLASS =
> >     "af|processTrain::step-spacing";
> >
> >   // For active steps
> >   public static final String AF_PROCESS_TRAIN_ACTIVE_START_ICON_NAME =
> >     "af|processTrain::step-active-start-icon";
> >   public static final String AF_PROCESS_TRAIN_ACTIVE_END_ICON_NAME =
> >     "af|processTrain::step-active-end-icon";
> >
> >   // For visited steps
> >   public static final String AF_PROCESS_TRAIN_VISITED_START_ICON_NAME =
> >     "af|processTrain::step-visited-start-icon";
> >   public static final String AF_PROCESS_TRAIN_VISITED_END_ICON_NAME =
> >     "af|processTrain::step-visited-end-icon";
> >
> >   // For unvisited steps
> >   public static final String AF_PROCESS_TRAIN_UNVISITED_START_ICON_NAME=
> >     "af|processTrain::step-unvisited-start-icon";
> >   public static final String AF_PROCESS_TRAIN_UNVISITED_END_ICON_NAME =
> >     "af|processTrain::step-unvisited-end-icon";
> >
> >   // For disabled steps
> >   public static final String AF_PROCESS_TRAIN_DISABLED_START_ICON_NAME =
> >     "af|processTrain::step-disabled-start-icon";
> >   public static final String AF_PROCESS_TRAIN_DISABLED_END_ICON_NAME =
> >     "af|processTrain::step-disabled-end-icon";
> >
> >   // For joints
> >   public static final String AF_PROCESS_TRAIN_JOINT_VISITED_ICON_NAME =
> >     "af|processTrain::joint-visited-icon";
> >   public static final String AF_PROCESS_TRAIN_JOINT_UNVISITED_ICON_NAME
> =
> >     "af|processTrain::joint-unvisited-icon";
> >
> >   // For backward overflows
> >   public static final String
> AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_STYLE_CLASS =
> >     "af|processTrain::overflow-backward";
> >   public static final String
> AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_START_ICON_NAME =
> >     "af|processTrain::overflow-backward-start-icon";
> >   public static final String
> AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_END_ICON_NAME =
> >     "af|processTrain::overflow-backward-end-icon";
> >
> >   // For forward overflows
> >   public static final String
> AF_PROCESS_TRAIN_OVERFLOW_FORWARD_STYLE_CLASS =
> >     "af|processTrain::overflow-forward";
> >   public static final String
> AF_PROCESS_TRAIN_OVERFLOW_FORWARD_START_ICON_NAME =
> >     "af|processTrain::overflow-forward-start-icon";
> >   public static final String
> AF_PROCESS_TRAIN_OVERFLOW_FORWARD_END_ICON_NAME =
> >     "af|processTrain::overflow-forward-end-icon";
> >
> > The target HTML structure for the process train in LtR mode is:
> >
> > <table align="center" border="0" cellpadding="0" cellspacing="0"
> > class="af|processTrain">
> >   <tbody>
> >     <tr>
> >       <td class="af|processTrain::margin-start" rowspan="2"></td>
> >
> >       <td align="right" class="af|processTrain::overflow-backward">
> >         <img src="af|processTrain::overflow-backward-start-icon"
> > title="%step-label%" alt="%step-label% : previous set"/>
> >       </td>
> >       <td background="af|processTrain::joint-visited-icon" align="left"
> > class="af|processTrain::overflow-backward>
> >         <img src="af|processTrain::overflow-backward-end-icon" alt="">
> >       </td>
> >
> >       <td background="af|processTrain::joint-visited-icon" class="
> > af|processTrain::step-spacing"></td>
> >
> >       <td background="af|processTrain::joint-visited-icon" align="right"
> > class="af|processTrain::step-visited">
> >         <img src="af|processTrain::step-visited-start-icon"
> > title="%step-label%" alt="%step-label% : previous step"/>
> >       </td>
> >       <td background="af|processTrain::joint-visited-icon" align="left"
> > class="af|processTrain::step-visited">
> >         <img src="af|processTrain::step-visited-end-icon" alt="">
> >       </td>
> >
> >       <td background="af|processTrain::joint-visited-icon" class="
> > af|processTrain::step-spacing"></td>
> >
> >       <td background="af|processTrain::joint-visited-icon" align="right"
> > class="af|processTrain::step-active">
> >         <img src="af|processTrain::step-active-start-icon"
> > title="%step-label%" alt="%step-label% : active step"/>
> >       </td>
> >       <td background="af|processTrain::joint-unvisited-icon"
> align="left"
> > class="af|processTrain::step-active">
> >         <img src="af|processTrain::step-active-end-icon" alt="">
> >       </td>
> >
> >       <td background="af|processTrain::joint-unvisited-icon" class="
> > af|processTrain::step-spacing"></td>
> >
> >       <td background="af|processTrain::joint-unvisited-icon"
> align="right"
> > class="af|processTrain::step-unvisited">
> >         <img src="af|processTrain::step-unvisited-start-icon"
> > title="%step-label%" alt="%step-label% : next step"/>
> >       </td>
> >       <td background="af|processTrain::joint-unvisited-icon"
> align="left"
> > class="af|processTrain::step-unvisited">
> >         <img src="af|processTrain::step-unvisited-end-icon" alt="">
> >       </td>
> >
> >       <td background="af|processTrain::joint-unvisited-icon" class="
> > af|processTrain::step-spacing"></td>
> >
> >       <td background="af|processTrain::joint-unvisited-icon"
> align="right"
> > class="af|processTrain::overflow-forward">
> >         <img src="af|processTrain::overflow-forward-start-icon"
> > title="%step-label%" alt="%step-label% : next set"/>
> >       </td>
> >       <td align="left" class="af|processTrain::overflow-forward">
> >         <img src="af|processTrain::overflow-forward-end-icon" alt="">
> >       </td>
> >
> >       <td class="af|processTrain::margin-end" rowspan="2"></td>
> >     </tr>
> >     <tr>
> >       <td colspan="2" class="af|processTrain::overflow-backward">
> >         <a class="af|processTrain::link">%step-label%</a>
> >       </td>
> >       <td colspan="2" class="af|processTrain::step-visited">
> >         <a class="af|processTrain::link">%step-label%</a>
> >       </td>
> >       <td colspan="2" class="af|processTrain::step-active">
> >         <a class="af|processTrain::link">%step-label%</a>
> >       </td>
> >       <td colspan="2" class="af|processTrain::step-unvisited">
> >         <a class="af|processTrain::text">%step-label%</a>
> >       </td>
> >       <td colspan="2" class="af|processTrain::overflow-forward">
> >         <a class="af|processTrain::text">%step-label%</a>
> >       </td>
> >     </tr>
> >   </tbody>
> > </table>
> >
> > Is that ok with you?
> >
> > Simon Lessard
> > DMR Conseil Inc. (http://www.dmrconseil.ca) Téléphone : (418) 653-6881
> >
> > Sun Certified Programmer for Java 2 Platform 1.4
> >
>
>
>
>

RE: ProcessTrain enhancement

Posted by Pavitra Subramaniam <pa...@oracle.com>.
Hello, 

I have merged the current ProcessRenderer.java (under 'adf-faces-impl\...\renderkit\uix') and ProcessTrainRenderer.java (under 'adf-faces-impl\...\ui\laf\base\pda\desktop') into one single renderer implementation under 'adf-faces-impl\...\renderkit\core\xhtml\ProcessTrainRenderer.java' that extends the XhtmlRenderer. Is this accurate?

I noticed that there are currently 2 implementations for ProcessTrainRenderer (under ui\laf\base\pda and ui\laf\base\pda\desktop) for different renderkits. 
Should I create a pda renderer as well as the desktop version and put them under 'renderkit\core\pda' and 'renderkit\core\desktop" ? 

Thanks
- Pavitra

-----Original Message-----
From: Pavitra Subramaniam [mailto:pavitra.subramaniam@oracle.com] 
Sent: Monday, July 10, 2006 2:55 PM
To: adffaces-dev@incubator.apache.org
Subject: RE: ProcessTrain enhancement

Hello Simon,
 
Yes, I have started on this and will deliver the changes by mid-week, latest eow. 

Thanks
- Pavitra

-----Original Message-----
From: Simon_Lessard@DMR.CA [mailto:Simon_Lessard@DMR.CA]
Sent: Friday, July 07, 2006 6:17 AM
To: adffaces-dev@incubator.apache.org
Subject: RE: ProcessTrain enhancement

Hello,

Thank for your reply. I already started, but I'm not very far into it since I'm on another project at the same time. Personally I think I could have it done by Tuesday or Wednesday of next week. If you plan to be almost done by then as well then I should indeed start working on something else.


Regards,

Simon Lessard
Fujitsu Consulting





"Pavitra Subramaniam" <pa...@oracle.com>
2006-07-06 22:00
Please respond to adffaces-user
 
        To:     "adffaces-user@incubator.apache.org" 
<ad...@incubator.apache.org>
        cc: 
        Subject:        RE: ProcessTrain enhancement


Hello,

I have a task lined up to convert the existing Trinidad processTrain renderer to a "faces major" version. And I plan to do it the following week. If you haven't already started it I would be happy to work on it. I plan to deliver it in 2 phases. 
For phase 1, I simply plan to get the renderer to render the current layout and in the second phase add the extra skinning selectors that you requested. 

If it's simple enough I can deliver both changes in one shot. Is that acceptable?

Thanks
- Pavitra

-----Original Message-----
From: Simon_Lessard@DMR.CA [mailto:Simon_Lessard@DMR.CA]
Sent: Thursday, July 06, 2006 10:13 AM
To: adffaces-user@incubator.apache.org
Subject: Re: ProcessTrain enhancement

Hello,

Thank for the reply. I don't mind creating a new Renderer that extends XhtmlRenderer. However, I have a little question about the FacesBean.Type that I must specify to the constructor. I checked InputTextRenderer and saw that it was using CoreInputText.TYPE. That class seems to be automatically generated so I assume there's a XML file somewhere from which the .java is generated? Is that faces-config.xml, the .tld? A completely different one ? Where can I find it?


Thanks,

Simon Lessard
Fujitsu Consulting





"Adam Winer" <aw...@gmail.com>
2006-07-06 11:50
Please respond to adffaces-user
 
        To:     adffaces-user@incubator.apache.org
        cc: 
        Subject:        Re: ProcessTrain enhancement


These look good to me.  One thing that's important:  we really need a Faces-major version of this renderer - that is, instead of one that is in the "org.apache.myfaces.adfinternal.ui" package, one that is in "org.apache.myfaces.adfinternal.renderkit.core.xhtml".
Everything in "ui" is obsolete (oooold UIX-based code), and a major technical goal of the project is to delete "ui" and "uinode" from the Apache Trinidad codebase.  So, -1 to adding this feature to the old renderer, +1 to adding it to a new renderer.

I'm more than happy to provide lots of details on how to write a new-style renderer, though you can look at the existing examples for a pretty good clue how it works.

-- Adam

On 7/6/06, Simon_Lessard@dmr.ca <Si...@dmr.ca> wrote:
>
> Hello,
>
> I'm currently working to modify the processTrain to accept more skin 
> selectors in order to open all icons provided by Oracle skin. The 
> selectors I plan to add are:
>
>   // processTrain styles used for the disabled links
>   public static final String AF_PROCESS_TRAIN_TEXT_STYLE_CLASS =
>     "af|processTrain::text";
>
>   // For outer margins
>   public static final String AF_PROCESS_TRAIN_MARGIN_START_STYLE_CLASS =
>     "af|processTrain::margin-start";
>   public static final String AF_PROCESS_TRAIN_MARGIN_END_STYLE_CLASS =
>     "af|processTrain::margin-end";
>
>   // For inner spacing
>   public static final String AF_PROCESS_TRAIN_SPACING_STYLE_CLASS =
>     "af|processTrain::step-spacing";
>
>   // For active steps
>   public static final String AF_PROCESS_TRAIN_ACTIVE_START_ICON_NAME =
>     "af|processTrain::step-active-start-icon";
>   public static final String AF_PROCESS_TRAIN_ACTIVE_END_ICON_NAME =
>     "af|processTrain::step-active-end-icon";
>
>   // For visited steps
>   public static final String AF_PROCESS_TRAIN_VISITED_START_ICON_NAME =
>     "af|processTrain::step-visited-start-icon";
>   public static final String AF_PROCESS_TRAIN_VISITED_END_ICON_NAME =
>     "af|processTrain::step-visited-end-icon";
>
>   // For unvisited steps
>   public static final String AF_PROCESS_TRAIN_UNVISITED_START_ICON_NAME=
>     "af|processTrain::step-unvisited-start-icon";
>   public static final String AF_PROCESS_TRAIN_UNVISITED_END_ICON_NAME =
>     "af|processTrain::step-unvisited-end-icon";
>
>   // For disabled steps
>   public static final String AF_PROCESS_TRAIN_DISABLED_START_ICON_NAME =
>     "af|processTrain::step-disabled-start-icon";
>   public static final String AF_PROCESS_TRAIN_DISABLED_END_ICON_NAME =
>     "af|processTrain::step-disabled-end-icon";
>
>   // For joints
>   public static final String AF_PROCESS_TRAIN_JOINT_VISITED_ICON_NAME =
>     "af|processTrain::joint-visited-icon";
>   public static final String
> AF_PROCESS_TRAIN_JOINT_UNVISITED_ICON_NAME
=
>     "af|processTrain::joint-unvisited-icon";
>
>   // For backward overflows
>   public static final String
AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_STYLE_CLASS =
>     "af|processTrain::overflow-backward";
>   public static final String
AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_START_ICON_NAME =
>     "af|processTrain::overflow-backward-start-icon";
>   public static final String
AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_END_ICON_NAME =
>     "af|processTrain::overflow-backward-end-icon";
>
>   // For forward overflows
>   public static final String
AF_PROCESS_TRAIN_OVERFLOW_FORWARD_STYLE_CLASS =
>     "af|processTrain::overflow-forward";
>   public static final String
AF_PROCESS_TRAIN_OVERFLOW_FORWARD_START_ICON_NAME =
>     "af|processTrain::overflow-forward-start-icon";
>   public static final String
AF_PROCESS_TRAIN_OVERFLOW_FORWARD_END_ICON_NAME =
>     "af|processTrain::overflow-forward-end-icon";
>
> The target HTML structure for the process train in LtR mode is:
>
> <table align="center" border="0" cellpadding="0" cellspacing="0"
> class="af|processTrain">
>   <tbody>
>     <tr>
>       <td class="af|processTrain::margin-start" rowspan="2"></td>
>
>       <td align="right" class="af|processTrain::overflow-backward">
>         <img src="af|processTrain::overflow-backward-start-icon"
> title="%step-label%" alt="%step-label% : previous set"/>
>       </td>
>       <td background="af|processTrain::joint-visited-icon" align="left"
> class="af|processTrain::overflow-backward>
>         <img src="af|processTrain::overflow-backward-end-icon" alt="">
>       </td>
>
>       <td background="af|processTrain::joint-visited-icon" class="
> af|processTrain::step-spacing"></td>
>
>       <td background="af|processTrain::joint-visited-icon" align="right"
> class="af|processTrain::step-visited">
>         <img src="af|processTrain::step-visited-start-icon"
> title="%step-label%" alt="%step-label% : previous step"/>
>       </td>
>       <td background="af|processTrain::joint-visited-icon" align="left"
> class="af|processTrain::step-visited">
>         <img src="af|processTrain::step-visited-end-icon" alt="">
>       </td>
>
>       <td background="af|processTrain::joint-visited-icon" class="
> af|processTrain::step-spacing"></td>
>
>       <td background="af|processTrain::joint-visited-icon" align="right"
> class="af|processTrain::step-active">
>         <img src="af|processTrain::step-active-start-icon"
> title="%step-label%" alt="%step-label% : active step"/>
>       </td>
>       <td background="af|processTrain::joint-unvisited-icon" 
align="left"
> class="af|processTrain::step-active">
>         <img src="af|processTrain::step-active-end-icon" alt="">
>       </td>
>
>       <td background="af|processTrain::joint-unvisited-icon" class="
> af|processTrain::step-spacing"></td>
>
>       <td background="af|processTrain::joint-unvisited-icon" 
align="right"
> class="af|processTrain::step-unvisited">
>         <img src="af|processTrain::step-unvisited-start-icon"
> title="%step-label%" alt="%step-label% : next step"/>
>       </td>
>       <td background="af|processTrain::joint-unvisited-icon" 
align="left"
> class="af|processTrain::step-unvisited">
>         <img src="af|processTrain::step-unvisited-end-icon" alt="">
>       </td>
>
>       <td background="af|processTrain::joint-unvisited-icon" class="
> af|processTrain::step-spacing"></td>
>
>       <td background="af|processTrain::joint-unvisited-icon" 
align="right"
> class="af|processTrain::overflow-forward">
>         <img src="af|processTrain::overflow-forward-start-icon"
> title="%step-label%" alt="%step-label% : next set"/>
>       </td>
>       <td align="left" class="af|processTrain::overflow-forward">
>         <img src="af|processTrain::overflow-forward-end-icon" alt="">
>       </td>
>
>       <td class="af|processTrain::margin-end" rowspan="2"></td>
>     </tr>
>     <tr>
>       <td colspan="2" class="af|processTrain::overflow-backward">
>         <a class="af|processTrain::link">%step-label%</a>
>       </td>
>       <td colspan="2" class="af|processTrain::step-visited">
>         <a class="af|processTrain::link">%step-label%</a>
>       </td>
>       <td colspan="2" class="af|processTrain::step-active">
>         <a class="af|processTrain::link">%step-label%</a>
>       </td>
>       <td colspan="2" class="af|processTrain::step-unvisited">
>         <a class="af|processTrain::text">%step-label%</a>
>       </td>
>       <td colspan="2" class="af|processTrain::overflow-forward">
>         <a class="af|processTrain::text">%step-label%</a>
>       </td>
>     </tr>
>   </tbody>
> </table>
>
> Is that ok with you?
>
> Simon Lessard
> DMR Conseil Inc. (http://www.dmrconseil.ca) Téléphone : (418) 653-6881
>
> Sun Certified Programmer for Java 2 Platform 1.4
>








RE: ProcessTrain enhancement

Posted by Pavitra Subramaniam <pa...@oracle.com>.
Hello Simon,
 
Yes, I have started on this and will deliver the changes by mid-week, latest eow. 

Thanks
- Pavitra

-----Original Message-----
From: Simon_Lessard@DMR.CA [mailto:Simon_Lessard@DMR.CA] 
Sent: Friday, July 07, 2006 6:17 AM
To: adffaces-dev@incubator.apache.org
Subject: RE: ProcessTrain enhancement

Hello,

Thank for your reply. I already started, but I'm not very far into it since I'm on another project at the same time. Personally I think I could have it done by Tuesday or Wednesday of next week. If you plan to be almost done by then as well then I should indeed start working on something else.


Regards,

Simon Lessard
Fujitsu Consulting





"Pavitra Subramaniam" <pa...@oracle.com>
2006-07-06 22:00
Please respond to adffaces-user
 
        To:     "adffaces-user@incubator.apache.org" 
<ad...@incubator.apache.org>
        cc: 
        Subject:        RE: ProcessTrain enhancement


Hello,

I have a task lined up to convert the existing Trinidad processTrain renderer to a "faces major" version. And I plan to do it the following week. If you haven't already started it I would be happy to work on it. I plan to deliver it in 2 phases. 
For phase 1, I simply plan to get the renderer to render the current layout and in the second phase add the extra skinning selectors that you requested. 

If it's simple enough I can deliver both changes in one shot. Is that acceptable?

Thanks
- Pavitra

-----Original Message-----
From: Simon_Lessard@DMR.CA [mailto:Simon_Lessard@DMR.CA]
Sent: Thursday, July 06, 2006 10:13 AM
To: adffaces-user@incubator.apache.org
Subject: Re: ProcessTrain enhancement

Hello,

Thank for the reply. I don't mind creating a new Renderer that extends XhtmlRenderer. However, I have a little question about the FacesBean.Type that I must specify to the constructor. I checked InputTextRenderer and saw that it was using CoreInputText.TYPE. That class seems to be automatically generated so I assume there's a XML file somewhere from which the .java is generated? Is that faces-config.xml, the .tld? A completely different one ? Where can I find it?


Thanks,

Simon Lessard
Fujitsu Consulting





"Adam Winer" <aw...@gmail.com>
2006-07-06 11:50
Please respond to adffaces-user
 
        To:     adffaces-user@incubator.apache.org
        cc: 
        Subject:        Re: ProcessTrain enhancement


These look good to me.  One thing that's important:  we really need a Faces-major version of this renderer - that is, instead of one that is in the "org.apache.myfaces.adfinternal.ui" package, one that is in "org.apache.myfaces.adfinternal.renderkit.core.xhtml".
Everything in "ui" is obsolete (oooold UIX-based code), and a major technical goal of the project is to delete "ui" and "uinode" from the Apache Trinidad codebase.  So, -1 to adding this feature to the old renderer, +1 to adding it to a new renderer.

I'm more than happy to provide lots of details on how to write a new-style renderer, though you can look at the existing examples for a pretty good clue how it works.

-- Adam

On 7/6/06, Simon_Lessard@dmr.ca <Si...@dmr.ca> wrote:
>
> Hello,
>
> I'm currently working to modify the processTrain to accept more skin 
> selectors in order to open all icons provided by Oracle skin. The 
> selectors I plan to add are:
>
>   // processTrain styles used for the disabled links
>   public static final String AF_PROCESS_TRAIN_TEXT_STYLE_CLASS =
>     "af|processTrain::text";
>
>   // For outer margins
>   public static final String AF_PROCESS_TRAIN_MARGIN_START_STYLE_CLASS =
>     "af|processTrain::margin-start";
>   public static final String AF_PROCESS_TRAIN_MARGIN_END_STYLE_CLASS =
>     "af|processTrain::margin-end";
>
>   // For inner spacing
>   public static final String AF_PROCESS_TRAIN_SPACING_STYLE_CLASS =
>     "af|processTrain::step-spacing";
>
>   // For active steps
>   public static final String AF_PROCESS_TRAIN_ACTIVE_START_ICON_NAME =
>     "af|processTrain::step-active-start-icon";
>   public static final String AF_PROCESS_TRAIN_ACTIVE_END_ICON_NAME =
>     "af|processTrain::step-active-end-icon";
>
>   // For visited steps
>   public static final String AF_PROCESS_TRAIN_VISITED_START_ICON_NAME =
>     "af|processTrain::step-visited-start-icon";
>   public static final String AF_PROCESS_TRAIN_VISITED_END_ICON_NAME =
>     "af|processTrain::step-visited-end-icon";
>
>   // For unvisited steps
>   public static final String AF_PROCESS_TRAIN_UNVISITED_START_ICON_NAME=
>     "af|processTrain::step-unvisited-start-icon";
>   public static final String AF_PROCESS_TRAIN_UNVISITED_END_ICON_NAME =
>     "af|processTrain::step-unvisited-end-icon";
>
>   // For disabled steps
>   public static final String AF_PROCESS_TRAIN_DISABLED_START_ICON_NAME =
>     "af|processTrain::step-disabled-start-icon";
>   public static final String AF_PROCESS_TRAIN_DISABLED_END_ICON_NAME =
>     "af|processTrain::step-disabled-end-icon";
>
>   // For joints
>   public static final String AF_PROCESS_TRAIN_JOINT_VISITED_ICON_NAME =
>     "af|processTrain::joint-visited-icon";
>   public static final String 
> AF_PROCESS_TRAIN_JOINT_UNVISITED_ICON_NAME
=
>     "af|processTrain::joint-unvisited-icon";
>
>   // For backward overflows
>   public static final String
AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_STYLE_CLASS =
>     "af|processTrain::overflow-backward";
>   public static final String
AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_START_ICON_NAME =
>     "af|processTrain::overflow-backward-start-icon";
>   public static final String
AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_END_ICON_NAME =
>     "af|processTrain::overflow-backward-end-icon";
>
>   // For forward overflows
>   public static final String
AF_PROCESS_TRAIN_OVERFLOW_FORWARD_STYLE_CLASS =
>     "af|processTrain::overflow-forward";
>   public static final String
AF_PROCESS_TRAIN_OVERFLOW_FORWARD_START_ICON_NAME =
>     "af|processTrain::overflow-forward-start-icon";
>   public static final String
AF_PROCESS_TRAIN_OVERFLOW_FORWARD_END_ICON_NAME =
>     "af|processTrain::overflow-forward-end-icon";
>
> The target HTML structure for the process train in LtR mode is:
>
> <table align="center" border="0" cellpadding="0" cellspacing="0"
> class="af|processTrain">
>   <tbody>
>     <tr>
>       <td class="af|processTrain::margin-start" rowspan="2"></td>
>
>       <td align="right" class="af|processTrain::overflow-backward">
>         <img src="af|processTrain::overflow-backward-start-icon"
> title="%step-label%" alt="%step-label% : previous set"/>
>       </td>
>       <td background="af|processTrain::joint-visited-icon" align="left"
> class="af|processTrain::overflow-backward>
>         <img src="af|processTrain::overflow-backward-end-icon" alt="">
>       </td>
>
>       <td background="af|processTrain::joint-visited-icon" class="
> af|processTrain::step-spacing"></td>
>
>       <td background="af|processTrain::joint-visited-icon" align="right"
> class="af|processTrain::step-visited">
>         <img src="af|processTrain::step-visited-start-icon"
> title="%step-label%" alt="%step-label% : previous step"/>
>       </td>
>       <td background="af|processTrain::joint-visited-icon" align="left"
> class="af|processTrain::step-visited">
>         <img src="af|processTrain::step-visited-end-icon" alt="">
>       </td>
>
>       <td background="af|processTrain::joint-visited-icon" class="
> af|processTrain::step-spacing"></td>
>
>       <td background="af|processTrain::joint-visited-icon" align="right"
> class="af|processTrain::step-active">
>         <img src="af|processTrain::step-active-start-icon"
> title="%step-label%" alt="%step-label% : active step"/>
>       </td>
>       <td background="af|processTrain::joint-unvisited-icon" 
align="left"
> class="af|processTrain::step-active">
>         <img src="af|processTrain::step-active-end-icon" alt="">
>       </td>
>
>       <td background="af|processTrain::joint-unvisited-icon" class="
> af|processTrain::step-spacing"></td>
>
>       <td background="af|processTrain::joint-unvisited-icon" 
align="right"
> class="af|processTrain::step-unvisited">
>         <img src="af|processTrain::step-unvisited-start-icon"
> title="%step-label%" alt="%step-label% : next step"/>
>       </td>
>       <td background="af|processTrain::joint-unvisited-icon" 
align="left"
> class="af|processTrain::step-unvisited">
>         <img src="af|processTrain::step-unvisited-end-icon" alt="">
>       </td>
>
>       <td background="af|processTrain::joint-unvisited-icon" class="
> af|processTrain::step-spacing"></td>
>
>       <td background="af|processTrain::joint-unvisited-icon" 
align="right"
> class="af|processTrain::overflow-forward">
>         <img src="af|processTrain::overflow-forward-start-icon"
> title="%step-label%" alt="%step-label% : next set"/>
>       </td>
>       <td align="left" class="af|processTrain::overflow-forward">
>         <img src="af|processTrain::overflow-forward-end-icon" alt="">
>       </td>
>
>       <td class="af|processTrain::margin-end" rowspan="2"></td>
>     </tr>
>     <tr>
>       <td colspan="2" class="af|processTrain::overflow-backward">
>         <a class="af|processTrain::link">%step-label%</a>
>       </td>
>       <td colspan="2" class="af|processTrain::step-visited">
>         <a class="af|processTrain::link">%step-label%</a>
>       </td>
>       <td colspan="2" class="af|processTrain::step-active">
>         <a class="af|processTrain::link">%step-label%</a>
>       </td>
>       <td colspan="2" class="af|processTrain::step-unvisited">
>         <a class="af|processTrain::text">%step-label%</a>
>       </td>
>       <td colspan="2" class="af|processTrain::overflow-forward">
>         <a class="af|processTrain::text">%step-label%</a>
>       </td>
>     </tr>
>   </tbody>
> </table>
>
> Is that ok with you?
>
> Simon Lessard
> DMR Conseil Inc. (http://www.dmrconseil.ca) Téléphone : (418) 653-6881
>
> Sun Certified Programmer for Java 2 Platform 1.4
>







RE: ProcessTrain enhancement

Posted by Si...@DMR.CA.
Hello,

Thank for your reply. I already started, but I'm not very far into it 
since I'm on another project at the same time. Personally I think I could 
have it done by Tuesday or Wednesday of next week. If you plan to be 
almost done by then as well then I should indeed start working on 
something else.


Regards,

Simon Lessard
Fujitsu Consulting





"Pavitra Subramaniam" <pa...@oracle.com>
2006-07-06 22:00
Please respond to adffaces-user
 
        To:     "adffaces-user@incubator.apache.org" 
<ad...@incubator.apache.org>
        cc: 
        Subject:        RE: ProcessTrain enhancement


Hello,

I have a task lined up to convert the existing Trinidad processTrain 
renderer to a "faces major" version. And I plan to do it the following 
week. If you haven't already started it I would be happy to work on it. I 
plan to deliver it in 2 phases. 
For phase 1, I simply plan to get the renderer to render the current 
layout and in the second phase add the extra skinning selectors that you 
requested. 

If it's simple enough I can deliver both changes in one shot. Is that 
acceptable?

Thanks
- Pavitra

-----Original Message-----
From: Simon_Lessard@DMR.CA [mailto:Simon_Lessard@DMR.CA] 
Sent: Thursday, July 06, 2006 10:13 AM
To: adffaces-user@incubator.apache.org
Subject: Re: ProcessTrain enhancement

Hello,

Thank for the reply. I don't mind creating a new Renderer that extends 
XhtmlRenderer. However, I have a little question about the FacesBean.Type 
that I must specify to the constructor. I checked InputTextRenderer and 
saw that it was using CoreInputText.TYPE. That class seems to be 
automatically generated so I assume there's a XML file somewhere from 
which the .java is generated? Is that faces-config.xml, the .tld? A 
completely different one ? Where can I find it?


Thanks,

Simon Lessard
Fujitsu Consulting





"Adam Winer" <aw...@gmail.com>
2006-07-06 11:50
Please respond to adffaces-user
 
        To:     adffaces-user@incubator.apache.org
        cc: 
        Subject:        Re: ProcessTrain enhancement


These look good to me.  One thing that's important:  we really need a 
Faces-major version of this renderer - that is, instead of one that is in 
the "org.apache.myfaces.adfinternal.ui" package, one that is in 
"org.apache.myfaces.adfinternal.renderkit.core.xhtml".
Everything in "ui" is obsolete (oooold UIX-based code), and a major 
technical goal of the project is to delete "ui" and "uinode" from the 
Apache Trinidad codebase.  So, -1 to adding this feature to the old 
renderer, +1 to adding it to a new renderer.

I'm more than happy to provide lots of details on how to write a new-style 
renderer, though you can look at the existing examples for a pretty good 
clue how it works.

-- Adam

On 7/6/06, Simon_Lessard@dmr.ca <Si...@dmr.ca> wrote:
>
> Hello,
>
> I'm currently working to modify the processTrain to accept more skin 
> selectors in order to open all icons provided by Oracle skin. The 
> selectors I plan to add are:
>
>   // processTrain styles used for the disabled links
>   public static final String AF_PROCESS_TRAIN_TEXT_STYLE_CLASS =
>     "af|processTrain::text";
>
>   // For outer margins
>   public static final String AF_PROCESS_TRAIN_MARGIN_START_STYLE_CLASS =
>     "af|processTrain::margin-start";
>   public static final String AF_PROCESS_TRAIN_MARGIN_END_STYLE_CLASS =
>     "af|processTrain::margin-end";
>
>   // For inner spacing
>   public static final String AF_PROCESS_TRAIN_SPACING_STYLE_CLASS =
>     "af|processTrain::step-spacing";
>
>   // For active steps
>   public static final String AF_PROCESS_TRAIN_ACTIVE_START_ICON_NAME =
>     "af|processTrain::step-active-start-icon";
>   public static final String AF_PROCESS_TRAIN_ACTIVE_END_ICON_NAME =
>     "af|processTrain::step-active-end-icon";
>
>   // For visited steps
>   public static final String AF_PROCESS_TRAIN_VISITED_START_ICON_NAME =
>     "af|processTrain::step-visited-start-icon";
>   public static final String AF_PROCESS_TRAIN_VISITED_END_ICON_NAME =
>     "af|processTrain::step-visited-end-icon";
>
>   // For unvisited steps
>   public static final String AF_PROCESS_TRAIN_UNVISITED_START_ICON_NAME=
>     "af|processTrain::step-unvisited-start-icon";
>   public static final String AF_PROCESS_TRAIN_UNVISITED_END_ICON_NAME =
>     "af|processTrain::step-unvisited-end-icon";
>
>   // For disabled steps
>   public static final String AF_PROCESS_TRAIN_DISABLED_START_ICON_NAME =
>     "af|processTrain::step-disabled-start-icon";
>   public static final String AF_PROCESS_TRAIN_DISABLED_END_ICON_NAME =
>     "af|processTrain::step-disabled-end-icon";
>
>   // For joints
>   public static final String AF_PROCESS_TRAIN_JOINT_VISITED_ICON_NAME =
>     "af|processTrain::joint-visited-icon";
>   public static final String AF_PROCESS_TRAIN_JOINT_UNVISITED_ICON_NAME 
=
>     "af|processTrain::joint-unvisited-icon";
>
>   // For backward overflows
>   public static final String 
AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_STYLE_CLASS =
>     "af|processTrain::overflow-backward";
>   public static final String 
AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_START_ICON_NAME =
>     "af|processTrain::overflow-backward-start-icon";
>   public static final String 
AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_END_ICON_NAME =
>     "af|processTrain::overflow-backward-end-icon";
>
>   // For forward overflows
>   public static final String 
AF_PROCESS_TRAIN_OVERFLOW_FORWARD_STYLE_CLASS =
>     "af|processTrain::overflow-forward";
>   public static final String 
AF_PROCESS_TRAIN_OVERFLOW_FORWARD_START_ICON_NAME =
>     "af|processTrain::overflow-forward-start-icon";
>   public static final String 
AF_PROCESS_TRAIN_OVERFLOW_FORWARD_END_ICON_NAME =
>     "af|processTrain::overflow-forward-end-icon";
>
> The target HTML structure for the process train in LtR mode is:
>
> <table align="center" border="0" cellpadding="0" cellspacing="0"
> class="af|processTrain">
>   <tbody>
>     <tr>
>       <td class="af|processTrain::margin-start" rowspan="2"></td>
>
>       <td align="right" class="af|processTrain::overflow-backward">
>         <img src="af|processTrain::overflow-backward-start-icon"
> title="%step-label%" alt="%step-label% : previous set"/>
>       </td>
>       <td background="af|processTrain::joint-visited-icon" align="left"
> class="af|processTrain::overflow-backward>
>         <img src="af|processTrain::overflow-backward-end-icon" alt="">
>       </td>
>
>       <td background="af|processTrain::joint-visited-icon" class="
> af|processTrain::step-spacing"></td>
>
>       <td background="af|processTrain::joint-visited-icon" align="right"
> class="af|processTrain::step-visited">
>         <img src="af|processTrain::step-visited-start-icon"
> title="%step-label%" alt="%step-label% : previous step"/>
>       </td>
>       <td background="af|processTrain::joint-visited-icon" align="left"
> class="af|processTrain::step-visited">
>         <img src="af|processTrain::step-visited-end-icon" alt="">
>       </td>
>
>       <td background="af|processTrain::joint-visited-icon" class="
> af|processTrain::step-spacing"></td>
>
>       <td background="af|processTrain::joint-visited-icon" align="right"
> class="af|processTrain::step-active">
>         <img src="af|processTrain::step-active-start-icon"
> title="%step-label%" alt="%step-label% : active step"/>
>       </td>
>       <td background="af|processTrain::joint-unvisited-icon" 
align="left"
> class="af|processTrain::step-active">
>         <img src="af|processTrain::step-active-end-icon" alt="">
>       </td>
>
>       <td background="af|processTrain::joint-unvisited-icon" class="
> af|processTrain::step-spacing"></td>
>
>       <td background="af|processTrain::joint-unvisited-icon" 
align="right"
> class="af|processTrain::step-unvisited">
>         <img src="af|processTrain::step-unvisited-start-icon"
> title="%step-label%" alt="%step-label% : next step"/>
>       </td>
>       <td background="af|processTrain::joint-unvisited-icon" 
align="left"
> class="af|processTrain::step-unvisited">
>         <img src="af|processTrain::step-unvisited-end-icon" alt="">
>       </td>
>
>       <td background="af|processTrain::joint-unvisited-icon" class="
> af|processTrain::step-spacing"></td>
>
>       <td background="af|processTrain::joint-unvisited-icon" 
align="right"
> class="af|processTrain::overflow-forward">
>         <img src="af|processTrain::overflow-forward-start-icon"
> title="%step-label%" alt="%step-label% : next set"/>
>       </td>
>       <td align="left" class="af|processTrain::overflow-forward">
>         <img src="af|processTrain::overflow-forward-end-icon" alt="">
>       </td>
>
>       <td class="af|processTrain::margin-end" rowspan="2"></td>
>     </tr>
>     <tr>
>       <td colspan="2" class="af|processTrain::overflow-backward">
>         <a class="af|processTrain::link">%step-label%</a>
>       </td>
>       <td colspan="2" class="af|processTrain::step-visited">
>         <a class="af|processTrain::link">%step-label%</a>
>       </td>
>       <td colspan="2" class="af|processTrain::step-active">
>         <a class="af|processTrain::link">%step-label%</a>
>       </td>
>       <td colspan="2" class="af|processTrain::step-unvisited">
>         <a class="af|processTrain::text">%step-label%</a>
>       </td>
>       <td colspan="2" class="af|processTrain::overflow-forward">
>         <a class="af|processTrain::text">%step-label%</a>
>       </td>
>     </tr>
>   </tbody>
> </table>
>
> Is that ok with you?
>
> Simon Lessard
> DMR Conseil Inc. (http://www.dmrconseil.ca) Téléphone : (418) 653-6881
>
> Sun Certified Programmer for Java 2 Platform 1.4
>





RE: ProcessTrain enhancement

Posted by Pavitra Subramaniam <pa...@oracle.com>.
Hello,

I have a task lined up to convert the existing Trinidad processTrain renderer to a "faces major" version. And I plan to do it the following week. If you haven't already started it I would be happy to work on it. I plan to deliver it in 2 phases. 
For phase 1, I simply plan to get the renderer to render the current layout and in the second phase add the extra skinning selectors that you requested. 

If it's simple enough I can deliver both changes in one shot. Is that acceptable?

Thanks
- Pavitra

-----Original Message-----
From: Simon_Lessard@DMR.CA [mailto:Simon_Lessard@DMR.CA] 
Sent: Thursday, July 06, 2006 10:13 AM
To: adffaces-user@incubator.apache.org
Subject: Re: ProcessTrain enhancement

Hello,

Thank for the reply. I don't mind creating a new Renderer that extends XhtmlRenderer. However, I have a little question about the FacesBean.Type that I must specify to the constructor. I checked InputTextRenderer and saw that it was using CoreInputText.TYPE. That class seems to be automatically generated so I assume there's a XML file somewhere from which the .java is generated? Is that faces-config.xml, the .tld? A completely different one ? Where can I find it?


Thanks,

Simon Lessard
Fujitsu Consulting





"Adam Winer" <aw...@gmail.com>
2006-07-06 11:50
Please respond to adffaces-user
 
        To:     adffaces-user@incubator.apache.org
        cc: 
        Subject:        Re: ProcessTrain enhancement


These look good to me.  One thing that's important:  we really need a Faces-major version of this renderer - that is, instead of one that is in the "org.apache.myfaces.adfinternal.ui" package, one that is in "org.apache.myfaces.adfinternal.renderkit.core.xhtml".
Everything in "ui" is obsolete (oooold UIX-based code), and a major technical goal of the project is to delete "ui" and "uinode" from the Apache Trinidad codebase.  So, -1 to adding this feature to the old renderer, +1 to adding it to a new renderer.

I'm more than happy to provide lots of details on how to write a new-style renderer, though you can look at the existing examples for a pretty good clue how it works.

-- Adam

On 7/6/06, Simon_Lessard@dmr.ca <Si...@dmr.ca> wrote:
>
> Hello,
>
> I'm currently working to modify the processTrain to accept more skin 
> selectors in order to open all icons provided by Oracle skin. The 
> selectors I plan to add are:
>
>   // processTrain styles used for the disabled links
>   public static final String AF_PROCESS_TRAIN_TEXT_STYLE_CLASS =
>     "af|processTrain::text";
>
>   // For outer margins
>   public static final String AF_PROCESS_TRAIN_MARGIN_START_STYLE_CLASS =
>     "af|processTrain::margin-start";
>   public static final String AF_PROCESS_TRAIN_MARGIN_END_STYLE_CLASS =
>     "af|processTrain::margin-end";
>
>   // For inner spacing
>   public static final String AF_PROCESS_TRAIN_SPACING_STYLE_CLASS =
>     "af|processTrain::step-spacing";
>
>   // For active steps
>   public static final String AF_PROCESS_TRAIN_ACTIVE_START_ICON_NAME =
>     "af|processTrain::step-active-start-icon";
>   public static final String AF_PROCESS_TRAIN_ACTIVE_END_ICON_NAME =
>     "af|processTrain::step-active-end-icon";
>
>   // For visited steps
>   public static final String AF_PROCESS_TRAIN_VISITED_START_ICON_NAME =
>     "af|processTrain::step-visited-start-icon";
>   public static final String AF_PROCESS_TRAIN_VISITED_END_ICON_NAME =
>     "af|processTrain::step-visited-end-icon";
>
>   // For unvisited steps
>   public static final String AF_PROCESS_TRAIN_UNVISITED_START_ICON_NAME=
>     "af|processTrain::step-unvisited-start-icon";
>   public static final String AF_PROCESS_TRAIN_UNVISITED_END_ICON_NAME =
>     "af|processTrain::step-unvisited-end-icon";
>
>   // For disabled steps
>   public static final String AF_PROCESS_TRAIN_DISABLED_START_ICON_NAME =
>     "af|processTrain::step-disabled-start-icon";
>   public static final String AF_PROCESS_TRAIN_DISABLED_END_ICON_NAME =
>     "af|processTrain::step-disabled-end-icon";
>
>   // For joints
>   public static final String AF_PROCESS_TRAIN_JOINT_VISITED_ICON_NAME =
>     "af|processTrain::joint-visited-icon";
>   public static final String AF_PROCESS_TRAIN_JOINT_UNVISITED_ICON_NAME =
>     "af|processTrain::joint-unvisited-icon";
>
>   // For backward overflows
>   public static final String AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_STYLE_CLASS =
>     "af|processTrain::overflow-backward";
>   public static final String AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_START_ICON_NAME =
>     "af|processTrain::overflow-backward-start-icon";
>   public static final String AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_END_ICON_NAME =
>     "af|processTrain::overflow-backward-end-icon";
>
>   // For forward overflows
>   public static final String AF_PROCESS_TRAIN_OVERFLOW_FORWARD_STYLE_CLASS =
>     "af|processTrain::overflow-forward";
>   public static final String AF_PROCESS_TRAIN_OVERFLOW_FORWARD_START_ICON_NAME =
>     "af|processTrain::overflow-forward-start-icon";
>   public static final String AF_PROCESS_TRAIN_OVERFLOW_FORWARD_END_ICON_NAME =
>     "af|processTrain::overflow-forward-end-icon";
>
> The target HTML structure for the process train in LtR mode is:
>
> <table align="center" border="0" cellpadding="0" cellspacing="0"
> class="af|processTrain">
>   <tbody>
>     <tr>
>       <td class="af|processTrain::margin-start" rowspan="2"></td>
>
>       <td align="right" class="af|processTrain::overflow-backward">
>         <img src="af|processTrain::overflow-backward-start-icon"
> title="%step-label%" alt="%step-label% : previous set"/>
>       </td>
>       <td background="af|processTrain::joint-visited-icon" align="left"
> class="af|processTrain::overflow-backward>
>         <img src="af|processTrain::overflow-backward-end-icon" alt="">
>       </td>
>
>       <td background="af|processTrain::joint-visited-icon" class="
> af|processTrain::step-spacing"></td>
>
>       <td background="af|processTrain::joint-visited-icon" align="right"
> class="af|processTrain::step-visited">
>         <img src="af|processTrain::step-visited-start-icon"
> title="%step-label%" alt="%step-label% : previous step"/>
>       </td>
>       <td background="af|processTrain::joint-visited-icon" align="left"
> class="af|processTrain::step-visited">
>         <img src="af|processTrain::step-visited-end-icon" alt="">
>       </td>
>
>       <td background="af|processTrain::joint-visited-icon" class="
> af|processTrain::step-spacing"></td>
>
>       <td background="af|processTrain::joint-visited-icon" align="right"
> class="af|processTrain::step-active">
>         <img src="af|processTrain::step-active-start-icon"
> title="%step-label%" alt="%step-label% : active step"/>
>       </td>
>       <td background="af|processTrain::joint-unvisited-icon" 
align="left"
> class="af|processTrain::step-active">
>         <img src="af|processTrain::step-active-end-icon" alt="">
>       </td>
>
>       <td background="af|processTrain::joint-unvisited-icon" class="
> af|processTrain::step-spacing"></td>
>
>       <td background="af|processTrain::joint-unvisited-icon" 
align="right"
> class="af|processTrain::step-unvisited">
>         <img src="af|processTrain::step-unvisited-start-icon"
> title="%step-label%" alt="%step-label% : next step"/>
>       </td>
>       <td background="af|processTrain::joint-unvisited-icon" 
align="left"
> class="af|processTrain::step-unvisited">
>         <img src="af|processTrain::step-unvisited-end-icon" alt="">
>       </td>
>
>       <td background="af|processTrain::joint-unvisited-icon" class="
> af|processTrain::step-spacing"></td>
>
>       <td background="af|processTrain::joint-unvisited-icon" 
align="right"
> class="af|processTrain::overflow-forward">
>         <img src="af|processTrain::overflow-forward-start-icon"
> title="%step-label%" alt="%step-label% : next set"/>
>       </td>
>       <td align="left" class="af|processTrain::overflow-forward">
>         <img src="af|processTrain::overflow-forward-end-icon" alt="">
>       </td>
>
>       <td class="af|processTrain::margin-end" rowspan="2"></td>
>     </tr>
>     <tr>
>       <td colspan="2" class="af|processTrain::overflow-backward">
>         <a class="af|processTrain::link">%step-label%</a>
>       </td>
>       <td colspan="2" class="af|processTrain::step-visited">
>         <a class="af|processTrain::link">%step-label%</a>
>       </td>
>       <td colspan="2" class="af|processTrain::step-active">
>         <a class="af|processTrain::link">%step-label%</a>
>       </td>
>       <td colspan="2" class="af|processTrain::step-unvisited">
>         <a class="af|processTrain::text">%step-label%</a>
>       </td>
>       <td colspan="2" class="af|processTrain::overflow-forward">
>         <a class="af|processTrain::text">%step-label%</a>
>       </td>
>     </tr>
>   </tbody>
> </table>
>
> Is that ok with you?
>
> Simon Lessard
> DMR Conseil Inc. (http://www.dmrconseil.ca) Téléphone : (418) 653-6881
>
> Sun Certified Programmer for Java 2 Platform 1.4
>




Re: ProcessTrain enhancement

Posted by Si...@DMR.CA.
Hello,

Thank for the reply. I don't mind creating a new Renderer that extends 
XhtmlRenderer. However, I have a little question about the FacesBean.Type 
that I must specify to the constructor. I checked InputTextRenderer and 
saw that it was using CoreInputText.TYPE. That class seems to be 
automatically generated so I assume there's a XML file somewhere from 
which the .java is generated? Is that faces-config.xml, the .tld? A 
completely different one ? Where can I find it?


Thanks,

Simon Lessard
Fujitsu Consulting





"Adam Winer" <aw...@gmail.com>
2006-07-06 11:50
Please respond to adffaces-user
 
        To:     adffaces-user@incubator.apache.org
        cc: 
        Subject:        Re: ProcessTrain enhancement


These look good to me.  One thing that's important:  we really need
a Faces-major version of this renderer - that is, instead of
one that is in the "org.apache.myfaces.adfinternal.ui" package,
one that is in "org.apache.myfaces.adfinternal.renderkit.core.xhtml".
Everything in "ui" is obsolete (oooold UIX-based code), and a major
technical goal of the project is to delete "ui" and "uinode" from the
Apache Trinidad codebase.  So, -1 to adding this feature to the old
renderer, +1 to adding it to a new renderer.

I'm more than happy to provide lots of details on how to write
a new-style renderer, though you can look at the existing examples
for a pretty good clue how it works.

-- Adam

On 7/6/06, Simon_Lessard@dmr.ca <Si...@dmr.ca> wrote:
>
> Hello,
>
> I'm currently working to modify the processTrain to accept more skin
> selectors in order to open all icons provided by Oracle skin. The
> selectors I plan to add are:
>
>   // processTrain styles used for the disabled links
>   public static final String AF_PROCESS_TRAIN_TEXT_STYLE_CLASS =
>     "af|processTrain::text";
>
>   // For outer margins
>   public static final String AF_PROCESS_TRAIN_MARGIN_START_STYLE_CLASS =
>     "af|processTrain::margin-start";
>   public static final String AF_PROCESS_TRAIN_MARGIN_END_STYLE_CLASS =
>     "af|processTrain::margin-end";
>
>   // For inner spacing
>   public static final String AF_PROCESS_TRAIN_SPACING_STYLE_CLASS =
>     "af|processTrain::step-spacing";
>
>   // For active steps
>   public static final String AF_PROCESS_TRAIN_ACTIVE_START_ICON_NAME =
>     "af|processTrain::step-active-start-icon";
>   public static final String AF_PROCESS_TRAIN_ACTIVE_END_ICON_NAME =
>     "af|processTrain::step-active-end-icon";
>
>   // For visited steps
>   public static final String AF_PROCESS_TRAIN_VISITED_START_ICON_NAME =
>     "af|processTrain::step-visited-start-icon";
>   public static final String AF_PROCESS_TRAIN_VISITED_END_ICON_NAME =
>     "af|processTrain::step-visited-end-icon";
>
>   // For unvisited steps
>   public static final String AF_PROCESS_TRAIN_UNVISITED_START_ICON_NAME 
=
>     "af|processTrain::step-unvisited-start-icon";
>   public static final String AF_PROCESS_TRAIN_UNVISITED_END_ICON_NAME =
>     "af|processTrain::step-unvisited-end-icon";
>
>   // For disabled steps
>   public static final String AF_PROCESS_TRAIN_DISABLED_START_ICON_NAME =
>     "af|processTrain::step-disabled-start-icon";
>   public static final String AF_PROCESS_TRAIN_DISABLED_END_ICON_NAME =
>     "af|processTrain::step-disabled-end-icon";
>
>   // For joints
>   public static final String AF_PROCESS_TRAIN_JOINT_VISITED_ICON_NAME =
>     "af|processTrain::joint-visited-icon";
>   public static final String AF_PROCESS_TRAIN_JOINT_UNVISITED_ICON_NAME 
=
>     "af|processTrain::joint-unvisited-icon";
>
>   // For backward overflows
>   public static final String
> AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_STYLE_CLASS =
>     "af|processTrain::overflow-backward";
>   public static final String
> AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_START_ICON_NAME =
>     "af|processTrain::overflow-backward-start-icon";
>   public static final String
> AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_END_ICON_NAME =
>     "af|processTrain::overflow-backward-end-icon";
>
>   // For forward overflows
>   public static final String 
AF_PROCESS_TRAIN_OVERFLOW_FORWARD_STYLE_CLASS
> =
>     "af|processTrain::overflow-forward";
>   public static final String
> AF_PROCESS_TRAIN_OVERFLOW_FORWARD_START_ICON_NAME =
>     "af|processTrain::overflow-forward-start-icon";
>   public static final String
> AF_PROCESS_TRAIN_OVERFLOW_FORWARD_END_ICON_NAME =
>     "af|processTrain::overflow-forward-end-icon";
>
> The target HTML structure for the process train in LtR mode is:
>
> <table align="center" border="0" cellpadding="0" cellspacing="0"
> class="af|processTrain">
>   <tbody>
>     <tr>
>       <td class="af|processTrain::margin-start" rowspan="2"></td>
>
>       <td align="right" class="af|processTrain::overflow-backward">
>         <img src="af|processTrain::overflow-backward-start-icon"
> title="%step-label%" alt="%step-label% : previous set"/>
>       </td>
>       <td background="af|processTrain::joint-visited-icon" align="left"
> class="af|processTrain::overflow-backward>
>         <img src="af|processTrain::overflow-backward-end-icon" alt="">
>       </td>
>
>       <td background="af|processTrain::joint-visited-icon" class="
> af|processTrain::step-spacing"></td>
>
>       <td background="af|processTrain::joint-visited-icon" align="right"
> class="af|processTrain::step-visited">
>         <img src="af|processTrain::step-visited-start-icon"
> title="%step-label%" alt="%step-label% : previous step"/>
>       </td>
>       <td background="af|processTrain::joint-visited-icon" align="left"
> class="af|processTrain::step-visited">
>         <img src="af|processTrain::step-visited-end-icon" alt="">
>       </td>
>
>       <td background="af|processTrain::joint-visited-icon" class="
> af|processTrain::step-spacing"></td>
>
>       <td background="af|processTrain::joint-visited-icon" align="right"
> class="af|processTrain::step-active">
>         <img src="af|processTrain::step-active-start-icon"
> title="%step-label%" alt="%step-label% : active step"/>
>       </td>
>       <td background="af|processTrain::joint-unvisited-icon" 
align="left"
> class="af|processTrain::step-active">
>         <img src="af|processTrain::step-active-end-icon" alt="">
>       </td>
>
>       <td background="af|processTrain::joint-unvisited-icon" class="
> af|processTrain::step-spacing"></td>
>
>       <td background="af|processTrain::joint-unvisited-icon" 
align="right"
> class="af|processTrain::step-unvisited">
>         <img src="af|processTrain::step-unvisited-start-icon"
> title="%step-label%" alt="%step-label% : next step"/>
>       </td>
>       <td background="af|processTrain::joint-unvisited-icon" 
align="left"
> class="af|processTrain::step-unvisited">
>         <img src="af|processTrain::step-unvisited-end-icon" alt="">
>       </td>
>
>       <td background="af|processTrain::joint-unvisited-icon" class="
> af|processTrain::step-spacing"></td>
>
>       <td background="af|processTrain::joint-unvisited-icon" 
align="right"
> class="af|processTrain::overflow-forward">
>         <img src="af|processTrain::overflow-forward-start-icon"
> title="%step-label%" alt="%step-label% : next set"/>
>       </td>
>       <td align="left" class="af|processTrain::overflow-forward">
>         <img src="af|processTrain::overflow-forward-end-icon" alt="">
>       </td>
>
>       <td class="af|processTrain::margin-end" rowspan="2"></td>
>     </tr>
>     <tr>
>       <td colspan="2" class="af|processTrain::overflow-backward">
>         <a class="af|processTrain::link">%step-label%</a>
>       </td>
>       <td colspan="2" class="af|processTrain::step-visited">
>         <a class="af|processTrain::link">%step-label%</a>
>       </td>
>       <td colspan="2" class="af|processTrain::step-active">
>         <a class="af|processTrain::link">%step-label%</a>
>       </td>
>       <td colspan="2" class="af|processTrain::step-unvisited">
>         <a class="af|processTrain::text">%step-label%</a>
>       </td>
>       <td colspan="2" class="af|processTrain::overflow-forward">
>         <a class="af|processTrain::text">%step-label%</a>
>       </td>
>     </tr>
>   </tbody>
> </table>
>
> Is that ok with you?
>
> Simon Lessard
> DMR Conseil Inc. (http://www.dmrconseil.ca)
> Téléphone : (418) 653-6881
>
> Sun Certified Programmer for Java 2 Platform 1.4
>


Re: ProcessTrain enhancement

Posted by Adam Winer <aw...@gmail.com>.
These look good to me.  One thing that's important:  we really need
a Faces-major version of this renderer - that is, instead of
one that is in the "org.apache.myfaces.adfinternal.ui" package,
one that is in "org.apache.myfaces.adfinternal.renderkit.core.xhtml".
Everything in "ui" is obsolete (oooold UIX-based code), and a major
technical goal of the project is to delete "ui" and "uinode" from the
Apache Trinidad codebase.  So, -1 to adding this feature to the old
renderer, +1 to adding it to a new renderer.

I'm more than happy to provide lots of details on how to write
a new-style renderer, though you can look at the existing examples
for a pretty good clue how it works.

-- Adam

On 7/6/06, Simon_Lessard@dmr.ca <Si...@dmr.ca> wrote:
>
> Hello,
>
> I'm currently working to modify the processTrain to accept more skin
> selectors in order to open all icons provided by Oracle skin. The
> selectors I plan to add are:
>
>   // processTrain styles used for the disabled links
>   public static final String AF_PROCESS_TRAIN_TEXT_STYLE_CLASS =
>     "af|processTrain::text";
>
>   // For outer margins
>   public static final String AF_PROCESS_TRAIN_MARGIN_START_STYLE_CLASS =
>     "af|processTrain::margin-start";
>   public static final String AF_PROCESS_TRAIN_MARGIN_END_STYLE_CLASS =
>     "af|processTrain::margin-end";
>
>   // For inner spacing
>   public static final String AF_PROCESS_TRAIN_SPACING_STYLE_CLASS =
>     "af|processTrain::step-spacing";
>
>   // For active steps
>   public static final String AF_PROCESS_TRAIN_ACTIVE_START_ICON_NAME =
>     "af|processTrain::step-active-start-icon";
>   public static final String AF_PROCESS_TRAIN_ACTIVE_END_ICON_NAME =
>     "af|processTrain::step-active-end-icon";
>
>   // For visited steps
>   public static final String AF_PROCESS_TRAIN_VISITED_START_ICON_NAME =
>     "af|processTrain::step-visited-start-icon";
>   public static final String AF_PROCESS_TRAIN_VISITED_END_ICON_NAME =
>     "af|processTrain::step-visited-end-icon";
>
>   // For unvisited steps
>   public static final String AF_PROCESS_TRAIN_UNVISITED_START_ICON_NAME =
>     "af|processTrain::step-unvisited-start-icon";
>   public static final String AF_PROCESS_TRAIN_UNVISITED_END_ICON_NAME =
>     "af|processTrain::step-unvisited-end-icon";
>
>   // For disabled steps
>   public static final String AF_PROCESS_TRAIN_DISABLED_START_ICON_NAME =
>     "af|processTrain::step-disabled-start-icon";
>   public static final String AF_PROCESS_TRAIN_DISABLED_END_ICON_NAME =
>     "af|processTrain::step-disabled-end-icon";
>
>   // For joints
>   public static final String AF_PROCESS_TRAIN_JOINT_VISITED_ICON_NAME =
>     "af|processTrain::joint-visited-icon";
>   public static final String AF_PROCESS_TRAIN_JOINT_UNVISITED_ICON_NAME =
>     "af|processTrain::joint-unvisited-icon";
>
>   // For backward overflows
>   public static final String
> AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_STYLE_CLASS =
>     "af|processTrain::overflow-backward";
>   public static final String
> AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_START_ICON_NAME =
>     "af|processTrain::overflow-backward-start-icon";
>   public static final String
> AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_END_ICON_NAME =
>     "af|processTrain::overflow-backward-end-icon";
>
>   // For forward overflows
>   public static final String AF_PROCESS_TRAIN_OVERFLOW_FORWARD_STYLE_CLASS
> =
>     "af|processTrain::overflow-forward";
>   public static final String
> AF_PROCESS_TRAIN_OVERFLOW_FORWARD_START_ICON_NAME =
>     "af|processTrain::overflow-forward-start-icon";
>   public static final String
> AF_PROCESS_TRAIN_OVERFLOW_FORWARD_END_ICON_NAME =
>     "af|processTrain::overflow-forward-end-icon";
>
> The target HTML structure for the process train in LtR mode is:
>
> <table align="center" border="0" cellpadding="0" cellspacing="0"
> class="af|processTrain">
>   <tbody>
>     <tr>
>       <td class="af|processTrain::margin-start" rowspan="2"></td>
>
>       <td align="right" class="af|processTrain::overflow-backward">
>         <img src="af|processTrain::overflow-backward-start-icon"
> title="%step-label%" alt="%step-label% : previous set"/>
>       </td>
>       <td background="af|processTrain::joint-visited-icon" align="left"
> class="af|processTrain::overflow-backward>
>         <img src="af|processTrain::overflow-backward-end-icon" alt="">
>       </td>
>
>       <td background="af|processTrain::joint-visited-icon" class="
> af|processTrain::step-spacing"></td>
>
>       <td background="af|processTrain::joint-visited-icon" align="right"
> class="af|processTrain::step-visited">
>         <img src="af|processTrain::step-visited-start-icon"
> title="%step-label%" alt="%step-label% : previous step"/>
>       </td>
>       <td background="af|processTrain::joint-visited-icon" align="left"
> class="af|processTrain::step-visited">
>         <img src="af|processTrain::step-visited-end-icon" alt="">
>       </td>
>
>       <td background="af|processTrain::joint-visited-icon" class="
> af|processTrain::step-spacing"></td>
>
>       <td background="af|processTrain::joint-visited-icon" align="right"
> class="af|processTrain::step-active">
>         <img src="af|processTrain::step-active-start-icon"
> title="%step-label%" alt="%step-label% : active step"/>
>       </td>
>       <td background="af|processTrain::joint-unvisited-icon" align="left"
> class="af|processTrain::step-active">
>         <img src="af|processTrain::step-active-end-icon" alt="">
>       </td>
>
>       <td background="af|processTrain::joint-unvisited-icon" class="
> af|processTrain::step-spacing"></td>
>
>       <td background="af|processTrain::joint-unvisited-icon" align="right"
> class="af|processTrain::step-unvisited">
>         <img src="af|processTrain::step-unvisited-start-icon"
> title="%step-label%" alt="%step-label% : next step"/>
>       </td>
>       <td background="af|processTrain::joint-unvisited-icon" align="left"
> class="af|processTrain::step-unvisited">
>         <img src="af|processTrain::step-unvisited-end-icon" alt="">
>       </td>
>
>       <td background="af|processTrain::joint-unvisited-icon" class="
> af|processTrain::step-spacing"></td>
>
>       <td background="af|processTrain::joint-unvisited-icon" align="right"
> class="af|processTrain::overflow-forward">
>         <img src="af|processTrain::overflow-forward-start-icon"
> title="%step-label%" alt="%step-label% : next set"/>
>       </td>
>       <td align="left" class="af|processTrain::overflow-forward">
>         <img src="af|processTrain::overflow-forward-end-icon" alt="">
>       </td>
>
>       <td class="af|processTrain::margin-end" rowspan="2"></td>
>     </tr>
>     <tr>
>       <td colspan="2" class="af|processTrain::overflow-backward">
>         <a class="af|processTrain::link">%step-label%</a>
>       </td>
>       <td colspan="2" class="af|processTrain::step-visited">
>         <a class="af|processTrain::link">%step-label%</a>
>       </td>
>       <td colspan="2" class="af|processTrain::step-active">
>         <a class="af|processTrain::link">%step-label%</a>
>       </td>
>       <td colspan="2" class="af|processTrain::step-unvisited">
>         <a class="af|processTrain::text">%step-label%</a>
>       </td>
>       <td colspan="2" class="af|processTrain::overflow-forward">
>         <a class="af|processTrain::text">%step-label%</a>
>       </td>
>     </tr>
>   </tbody>
> </table>
>
> Is that ok with you?
>
> Simon Lessard
> DMR Conseil Inc. (http://www.dmrconseil.ca)
> Téléphone : (418) 653-6881
>
> Sun Certified Programmer for Java 2 Platform 1.4
>

RE: ProcessTrain Skin Selectors

Posted by Pavitra Subramaniam <pa...@oracle.com>.
Not yet. Will attach these to issue 60.  

Thanks
- Pavitra

-----Original Message-----
From: Adam Winer [mailto:awiner@gmail.com] 
Sent: Tuesday, August 01, 2006 3:34 PM
To: adffaces-user@incubator.apache.org
Subject: Re: ProcessTrain Skin Selectors

+1 to these changes.  Pavitra, have these been attached
to a JIRA issue?

-- Adam


On 8/1/06, Simon_Lessard@dmr.ca <Si...@dmr.ca> wrote:
>
> Looks great to me! Thank Pavitra.
>
> Simon Lessard
> Fujitsu Consulting
>
>
>
>
> "Pavitra Subramaniam" <pa...@oracle.com>
> 2006-08-01 15:30
> Please respond to adffaces-user
>
>         To:     "adffaces-user@incubator.apache.org"
> <ad...@incubator.apache.org>
>         cc:     "Simon_Lessard@DMR.CA" <Si...@DMR.CA>
>         Subject:        ProcessTrain Skin Selectors
>
>
> Hello all,
>
> It looks like the attachments I sent never really made it. I am 
> proposing that we rename the skin selectors for the train component, 
> from "af|processTrain" to "af|train" and the element "step" to "stop". 
> This is to keep the skin selectors in synch with the renaming and also 
> to reinforce that trains need not necessarily be tied to a multi-step 
> process.
>
> Please also see my email below, from last week explaining the new skin 
> selectors I have introduced for this component.
>
>
> ------------------------------------------------------------------------------------
>                                        SKIN SELECTORS
>
> ----------------------------------------------------------------------
> --------------
> /***********************************
>           Train Styles
> ***********************************/
> /* top level style class for the train component */
> af|train
>
> /***********************************
>                Joins
> ***********************************/
> /* for joins between the overflow icons and the stops */
> af|train::join-overflow
>
> /* join (between overflow and stop icons) in disabled state */
> af|train::join-overflow:disabled
>
> /* join (between overflow and stop icons) in visited state */
> af|train::join-overflow:visited
>
> /* join (between overflow and stop icons) in unvisited state */
> af|train::join-overflow:unvisited
>
> /* for joins between stops */
> af|train::join
>
> /* join in visited state */
> af|train::join:visited
>
> /* join in unvisited state */
> af|train::join:unvisited
>
> /* join in disabled state */
> af|train::join:disabled
>
> /***********************************
>              Spacers
> ***********************************/
> /* spacer used between stops */
> af|train::stop-spacer
>
> /* spacer used between parent train and stops */
> af|train::parent-spacer
>
> /* spacer used for margins in the beginning and end of the train */
> af|train::margin-start
> af|train::margin-end
>
> /*********************************************************
>   Icons blocks and icons: Parent Train, Stop & Overflow 
> *********************************************************/
> /* block that displays the parent start icon*/
> af|train::parent-start-icon-block
>
> /* block that displays the parent start icon*/
> af|train::parent-end-icon-block
>
> /* icon to indicate a parent process in the beginning of a sub train 
> */
> af|train::parent-start-icon
>
> /* icon to indicate a parent process in the end of a sub train */
> af|train::parent-end-icon
>
> /* block that displays the overflow image */
> af|train::overflow-icon-block
>
> /* overflow start icon in visited state (indicates presence of 
> previous
> stops) */
> af|train::overflow-start-visited-icon
>
> /* overflow start icon in disabled state (indicates presence of 
> previous
> stops) */
> af|train::overflow-start-disabled-icon
>
> /* overflow end icon in disabled state (indicates presence of more 
> stops) */
> af|train::overflow-end-disabled-icon
>
> /* overflow end icon in unvisited state (indicates presence of more 
> stops) */
> af|train::overflow-end-unvisited-icon
>
> /* block that displays a stop icon (active/disabled/visited/unvisited) 
> */
> af|train::stop-icon-block
>
> /* stop icon in visited state */
> af|train::stop-visited-icon
>
> /* stop icon in active state */
> af|train::stop-active-icon
>
> /* stop icon in unvisited state */
> af|train::stop-unvisited-icon
>
> /* stop icon in disabled state */
> af|train::stop-disabled-icon
>
> /************************************************
> Labels and Links: parentTrain, overflow & stop 
> ************************************************/
> /*
>   content area in the beginning of the train, to display the parent 
> process
>   name
> */
> af|train::parent-start-content
>
> /* content area in the end of the train, to display the parent process 
> name */
> af|train::parent-end-content
>
> /*
>   content area to display the overflow label in the beginning and end 
> of the
>   train
> */
> af|train::overflow-start-content
> af|train::overflow-end-content
>
> /* content area to display the stop name */
> af|train::stop-content
>
> /* content area that displays the name of the stop in visited state */
> af|train::stop-content:visited
>
> /* block that displays the name of the stop in disabled state */
> af|train::stop-content:disabled
>
> /* block that displays the name of the stop in unvisited state */
> af|train::stop-content:unvisited
>
> /* block that displays the name of the stop in active state */
> af|train::stop-content:active
>
> /* link for a stop */
> af|train::stop-link
>
> /* link for an unvisited stop */
> af|train::stop-link:unvisited
>
> /* link for an visited stop */
> af|train::stop-link:visited
>
> /* link for an active stop */
> af|train::stop-link:active
>
> /* link for an disabled stop */
> af|train::stop-link:disabled
>
> /* link for an overflow in disabled state */
> af|train::overflow-link:disabled
>
> /* link for an overflow in visited state */
> af|train::overflow-link:visited
>
> /* link for an overflow in unvisited state */
> af|train::overflow-link:unvisited
>
>
> ------------------------------------------------------------------------------------
>                                SAMPLE TRAIN HTML PAGE
>            - Shows how the skin selectors will be used in the HTML 
> page
>
> ----------------------------------------------------------------------
> --------------
>
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "
> http://www.w3.org/TR/html4/strict.dtd">
> <html>
> <head>
>   <title>Line example</title>
>                  <link rel="stylesheet" charset="UTF-8" type="text/css"
> href="css/trinidadStyles.css"/>
> </head>
> <body>
>
> <table cellpadding="0" cellspacing="0" border="0" class="af|train">
>   <tbody>
>     <tr>
>       <!-- MARGIN -->
>       <td rowspan="2"><div
> class="af|train::margin-start"><span></span></div></td>
>
>       <!-- PARENT START -->
>       <td>
>         <table cellpadding="0" cellspacing="0" border="0" width="100%">
>           <tbody>
>             <tr>
>               <td>
>                 <div class="af|train::parent-start-icon-block">
>                   <img src="af|train::parent-start-icon"/>
>                 </div>
>               </td>
>             </tr>
>           </tbody>
>         </table>
>       </td>
>
>       <td><div 
> class="af|train::parent-spacer"><span></span></div></td>
>
>       <!-- OVERFLOW START -->
>       <td>
>         <table cellpadding="0" cellspacing="0" border="0" width="100%">
>           <tbody>
>             <tr>
>               <td width="50%">
>                 <div class="af|train::join-overflow"><span></span></div>
>               </td>
>               <td>
>                 <div class="af|train::overflow-icon-block">
>                   <img src="af|train::overflow-start-icon:visited"/>
>                 </div>
>               </td>
>               <td width="50%">
>                 <div class="af|train::join-overflow
> af|train::join-overflow:visited">
>                 <span></span></div></td>
>             </tr>
>           </tbody>
>         </table>
>       </td>
>
>       <td><div class="af|train::stop-spacer
> af|train::join-overflow:visited"><span></span></div></td>
>
>       <!-- stop -->
>       <td>
>         <table cellpadding="0" cellspacing="0" border="0" width="100%">
>           <tbody>
>             <tr>
>               <td width="50%">
>                 <div class="af|train::join
> af|train::join-overflow:visited">
>                   <span></span></div></td>
>               <td>
>                 <div class="af|train::stop-icon-block">
>                   <img src="af|train::stop-icon:visited"/>
>                 </div>
>               </td>
>               <td width="50%">
>                 <div class="af|train::join af|train::join:visited">
>                   <span></span>
>                 </div>
>               </td>
>             </tr>
>           </tbody>
>         </table>
>       </td>
>
>       <!-- spacer -->
>       <td>
>         <div class="af|train::stop-spacer af|train::join:visited">
>           <span></span>
>         </div>
>       </td>
>
>       <!-- stop -->
>       <td>
>         <table cellpadding="0" cellspacing="0" border="0" width="100%">
>           <tbody>
>             <tr>
>               <td width="50%">
>                 <div class="af|train::join af|train::join:visited">
>                   <span></span></div></td>
>               <td>
>                 <div class="af|train::stop-icon-block">
>                   <img src="af|train::stop-icon:active"/>
>                 </div>
>               </td>
>               <td width="50%">
>                 <div class="af|train::join af|train::join:unvisited">
>                   <span></span>
>                 </div>
>               </td>
>             </tr>
>           </tbody>
>         </table>
>       </td>
>
>       <td>
>         <div class="af|train::stop-spacer af|train::join:unvisited">
>           <span></span>
>         </div>
>       </td>
>
>       <!-- stop -->
>       <td>
>         <table cellpadding="0" cellspacing="0" border="0" width="100%">
>           <tbody>
>             <tr>
>               <td width="50%">
>                 <div class="af|train::join af|train::join:unvisited">
>                   <span></span></div></td>
>               <td>
>                 <div class="af|train::stop-icon-block">
>                   <img src="af|train::stop-icon:unvisited"/>
>                 </div>
>               </td>
>               <td width="50%">
>                 <div class="af|train::join af|train::join:disabled">
>                   <span></span>
>                 </div>
>               </td>
>             </tr>
>           </tbody>
>         </table>
>       </td>
>
>       <td><div class="af|train::stop-spacer
> af|train::join:disabled"><span></span></div></td>
>
>       <!-- stop -->
>       <td>
>         <table cellpadding="0" cellspacing="0" border="0" width="100%">
>           <tbody>
>             <tr>
>               <td width="50%">
>                 <div class="af|train::join af|train::join:disabled">
>                   <span></span></div></td>
>               <td>
>                 <div class="af|train::stop-icon-block">
>                   <img src="af|train::stop-icon:disabled"/>
>                 </div>
>               </td>
>               <td width="50%">
>                 <div class="af|train::join af|train::join:disabled">
>                   <span></span>
>                 </div>
>               </td>
>             </tr>
>           </tbody>
>         </table>
>       </td>
>
>       <td>
>         <div class="af|train::stop-spacer af|train::join:disabled">
>           <span></span>
>         </div>
>       </td>
>
>       <!-- stop -->
>       <td>
>         <table cellpadding="0" cellspacing="0" border="0" width="100%">
>           <tbody>
>             <tr>
>               <td width="50%">
>                 <div class="af|train::join af|train::join:disabled">
>                   <span></span>
>                 </div>
>               </td>
>               <td>
>                 <div class="af|train::stop-icon-block">
>                   <img src="af|train::stop-icon:disabled"/>
>                 </div>
>               </td>
>               <td width="50%">
>                 <div class="af|train::join af|train::join:disabled">
>                   <span></span>
>                 </div>
>               </td>
>             </tr>
>           </tbody>
>         </table>
>       </td>
>
>       <td>
>         <div class="af|train::stop-spacer af|train::join:disabled">
>           <span></span>
>         </div>
>       </td>
>
>       <!-- stop -->
>       <td>
>         <table cellpadding="0" cellspacing="0" border="0" width="100%">
>           <tbody>
>             <tr>
>               <td width="50%">
>                 <div class="af|train::join af|train::join:disabled">
>                   <span></span></div></td>
>               <td>
>                 <div class="af|train::stop-icon-block">
>                   <img src="af|train::stop-icon:disabled"/>
>                 </div>
>               </td>
>               <td width="50%">
>                 <div class="af|train::join
> af|train::join-overflow:disabled">
>                   <span></span>
>                 </div>
>               </td>
>             </tr>
>           </tbody>
>         </table>
>       </td>
>
>       <td>
>         <div class="af|train::stop-spacer
> af|train::join-overflow:disabled">
>           <span></span>
>         </div>
>       </td>
>
>       <!-- OVERFLOW END -->
>       <td>
>         <table cellpadding="0" cellspacing="0" border="0" width="100%">
>           <tbody>
>             <tr>
>               <td width="50%">
>                 <div class="af|train::join
> af|train::join-overflow:disabled">
>                   <span></span></div></td>
>               <td style="width:1px;">
>                 <div class="af|train::overflow-icon-block">
>                   <img src="af|train::overflow-end-icon:disabled"/>
>                 </div>
>               </td>
>               <td width="50%">
>                 <div class="af|train::join-overflow">
>                   <span></span>
>                 </div>
>               </td>
>             </tr>
>           </tbody>
>         </table>
>       </td>
>
>       <td><div 
> class="af|train::parent-spacer"><span></span></div></td>
>
>       <!-- PARENT END -->
>       <td>
>         <table cellpadding="0" cellspacing="0" border="0" width="100%">
>           <tbody>
>             <tr>
>               <td>
>                 <div class="af|train::parent-end-icon-block">
>                   <img src="af|train::parent-end-icon"/>
>                 </div>
>               </td>
>             </tr>
>           </tbody>
>         </table>
>       </td>
>
>       <td rowspan="2"><div
> class="af|train::margin-end"><span></span></div></td>
>     </tr>
>
>     <tr>
>       <td>
>         <div class="af|train::parent-start-content"></div>
>       </td>
>       <td></td>
>
>       <td>
>         <div class="af|train::overflow-start-content">
>           <a href="" class="af|train::overflow-link:visited">Previous</a>
>         </div>
>       </td>
>       <td></td>
>
>       <td>
>         <div class="af|train::stop-content
> af|train::stop-content:visited">
>           <a href="" class="af|train::stop-link
>             af|train::stop-link:visited">stop 1</a>
>         </div>
>       </td>
>       <td></td>
>
>       <td>
>         <div class="af|train::stop-content af|train::stop-content:active">
>           <a href="" class="af|train::stop-link
>             af|train::stop-link:active">stopstopstop 2</a>
>         </div>
>       </td>
>       <td></td>
>
>       <td>
>         <div class="af|train::stop-content
> af|train::stop-content:unvisited">
>           <a href="" class="af|train::stop-link
>             af|train::stop-link:unvisited">stop 3</a>
>         </div>
>       </td>
>       <td></td>
>
>       <td>
>         <div class="af|train::stop-content
> af|train::stop-content:disabled">
>           <a href="" class="af|train::stop-link
>             af|train::stop-link:disabled">stop 4</a>
>         </div>
>       </td>
>       <td></td>
>
>       <td>
>         <div class="af|train::stop-content
> af|train::stop-content:disabled">
>           <a href="" class="af|train::stop-link
>             af|train::stop-link:disabled">stopstopstop 5</a>
>         </div>
>       </td>
>       <td></td>
>
>       <td>
>         <div class="af|train::stop-content
> af|train::stop-content:disabled">
>           <a href="" class="af|train::stop-link
>             af|train::stop-link:disabled">stopstop 6</a>
>         </div>
>       </td>
>       <td></td>
>
>       <td>
>         <div class="af|train::overflow-end-content">
>           <a href="" class="af|train::overflow-link:disabled">More</a>
>         </div>
>       </td>
>       <td></td>
>
>       <td>
>         <div class="af|train::parent-end-content"></div>
>       </td>
>
>     </tr>
>   </tbody>
> </table>
>
> </body>
> </html>
>
>
>
>
> - Pavitra
>
> -----Original Message-----
> From: Pavitra Subramaniam [mailto:pavitra.subramaniam@oracle.com]
> Sent: Friday, July 28, 2006 6:28 PM
> To: adffaces-user@incubator.apache.org
> Cc: Simon_Lessard@DMR.CA
> Subject: RE: ProcessTrain enhancement
>
> Hello,
>
> I would like to propose an updated set of skin selectors for the 
> processTrain component. Basically I have removed the use of start and 
> end icons for stops and overflows. I also had to introduce new skin 
> hooks for parent process.
>
> Please review the attached train-skin-selector.rtf and let me know if 
> these hooks are fine. I have not added the rtl cases, but will add 
> them once we agree on the basic ltr list.
>
> I have also attached a sample HTML page (train_trinidad.html) and CSS 
> file
> (trinidadStyles.css) to demonstrate how these styles will be used. 
> (style names in HTML file has been modified to be compliant with CSS2).
>
> - the joins are now background-colors rather than images. This makes 
> it simpler.
> - the only icons are the stops, overflows and parent train. If the 
> icons are the same dimensions then the HTML works best (otherwise some 
> tweaking is required in CSS).
>
> Thanks
> - Pavitra
>
> -----Original Message-----
> From: Simon_Lessard@DMR.CA [mailto:Simon_Lessard@DMR.CA]
> Sent: Thursday, July 06, 2006 10:32 AM
> To: adffaces-user@incubator.apache.org
> Subject: Re: ProcessTrain enhancement
>
> next/prev terminology sounds good enough for me.
>
> The hard part using a whole icon for the station is the visual link 
> between the stations around the active station. If you want the link 
> to be of a different color on the visited side than on the unvisited 
> side, splitting the icon become mandatory as the visual link is 
> rendered as a background-image. Of course, it would be possible to use 
> a whole icon for all but the active one. Would that be better?
>
> As for pseudo-class, I'm totally for it.
>
> Finally, for the background-image in the style class instead of the 
> background attribute, it's relatively complex because of the outer 
> edges of the process train since those should not use the background 
> image. Of course I could keep both selector I have currently, that is 
> the base and the -icon. (for example 
> af|processTrain::join-icon:visited and
> af|processTrain::station:visited ) and apply both classes when the
> background image is required. Does that sounds good to you?
>
> Regards,
>
> Simon Lessard
> Fujitsu Consulting
>
>
>
>
>
> Jeanne Waldman <je...@oracle.com>
> 2006-07-06 13:20
> Please respond to adffaces-user
>
>         To:     adffaces-user@incubator.apache.org
>         cc:
>         Subject:        Re: ProcessTrain enhancement
>
>
> What are 'joints'? I think I had been calling them 'joins'.
> I also use the 'next'/'prev' terminology instead of backwards and 
> forwards.
>
> Also, I'd recommend rewriting the simple renderer so that you can use 
> a whole visited icon, a disabled icon, etc, instead of a start 
> visited, an end visited. I know this is how it was in the oracle 
> renderer, which I suspect you are looking at, but I always thought that was ugly.
> You could simplify the skinning api a lot if you didn't worry about 
> making it exactly like the oracle skin, where we colored the joining 
> line to the icons. I'd just keep those the same.
>
> A direction we are heading towards is to use pseudo-classes for 'state'.
> We have implemented this for the form controls. For example, when the 
> af:inputText component is in the disabled state, the new skinning key 
> is
> this:
>
> af|inputText:disabled {} and the html we render is <span
> class="af_inputText p_AFDisabled">
> and the css rule is:
> af_inputText.p_AFDisabled {}.
>
> This is a fairly new convention, and only the form controls are 
> implemented this way so far, but we want to move in this direction.
>
> So you'd have
>
> af|processTrain::joint-icon:visited, and we'd parse this to be the
> af_processTrain_joint-icon_visited, or something like that.
>
>
> Also, we don't render style classes on the background attribute, as 
> far as
>
> I know. Instead we render it on the class attribute, and in the style 
> class definition, they could set the background-image attribute.
>
>
>
> Simon_Lessard@DMR.CA wrote:
>
> >Hello,
> >
> >I'm currently working to modify the processTrain to accept more skin 
> >selectors in order to open all icons provided by Oracle skin. The 
> >selectors I plan to add are:
> >
> >  // processTrain styles used for the disabled links  public static 
> > final String AF_PROCESS_TRAIN_TEXT_STYLE_CLASS =
> >    "af|processTrain::text";
> >
> >  // For outer margins
> >  public static final String AF_PROCESS_TRAIN_MARGIN_START_STYLE_CLASS =
> >    "af|processTrain::margin-start";
> >  public static final String AF_PROCESS_TRAIN_MARGIN_END_STYLE_CLASS =
> >    "af|processTrain::margin-end";
> >
> >  // For inner spacing
> >  public static final String AF_PROCESS_TRAIN_SPACING_STYLE_CLASS =
> >    "af|processTrain::step-spacing";
> >
> >  // For active steps
> >  public static final String AF_PROCESS_TRAIN_ACTIVE_START_ICON_NAME =
> >    "af|processTrain::step-active-start-icon";
> >  public static final String AF_PROCESS_TRAIN_ACTIVE_END_ICON_NAME =
> >    "af|processTrain::step-active-end-icon";
> >
> >  // For visited steps
> >  public static final String AF_PROCESS_TRAIN_VISITED_START_ICON_NAME =
> >    "af|processTrain::step-visited-start-icon";
> >  public static final String AF_PROCESS_TRAIN_VISITED_END_ICON_NAME =
> >    "af|processTrain::step-visited-end-icon";
> >
> >  // For unvisited steps
> >  public static final String 
> > AF_PROCESS_TRAIN_UNVISITED_START_ICON_NAME =
>
>
> >    "af|processTrain::step-unvisited-start-icon";
> >  public static final String AF_PROCESS_TRAIN_UNVISITED_END_ICON_NAME =
> >    "af|processTrain::step-unvisited-end-icon";
> >
> >  // For disabled steps
> >  public static final String AF_PROCESS_TRAIN_DISABLED_START_ICON_NAME =
> >    "af|processTrain::step-disabled-start-icon";
> >  public static final String AF_PROCESS_TRAIN_DISABLED_END_ICON_NAME =
> >    "af|processTrain::step-disabled-end-icon";
> >
> >  // For joints
> >  public static final String AF_PROCESS_TRAIN_JOINT_VISITED_ICON_NAME =
> >    "af|processTrain::joint-visited-icon";
> >  public static final String 
> > AF_PROCESS_TRAIN_JOINT_UNVISITED_ICON_NAME =
>
>
> >    "af|processTrain::joint-unvisited-icon";
> >
> >  // For backward overflows
> >  public static final String
> >AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_STYLE_CLASS =
> >    "af|processTrain::overflow-backward";
> >  public static final String
> >AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_START_ICON_NAME =
> >    "af|processTrain::overflow-backward-start-icon";
> >  public static final String
> >AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_END_ICON_NAME =
> >    "af|processTrain::overflow-backward-end-icon";
> >
> >  // For forward overflows
> >  public static final String
> AF_PROCESS_TRAIN_OVERFLOW_FORWARD_STYLE_CLASS
> >=
> >    "af|processTrain::overflow-forward";
> >  public static final String
> >AF_PROCESS_TRAIN_OVERFLOW_FORWARD_START_ICON_NAME =
> >    "af|processTrain::overflow-forward-start-icon";
> >  public static final String
> >AF_PROCESS_TRAIN_OVERFLOW_FORWARD_END_ICON_NAME =
> >    "af|processTrain::overflow-forward-end-icon";
> >
> >The target HTML structure for the process train in LtR mode is:
> >
> ><table align="center" border="0" cellpadding="0" cellspacing="0"
> >class="af|processTrain">
> >  <tbody>
> >    <tr>
> >      <td class="af|processTrain::margin-start" rowspan="2"></td>
> >
> >      <td align="right" class="af|processTrain::overflow-backward">
> >        <img src="af|processTrain::overflow-backward-start-icon"
> >title="%step-label%" alt="%step-label% : previous set"/>
> >      </td>
> >      <td background="af|processTrain::joint-visited-icon" align="left"
> >class="af|processTrain::overflow-backward>
> >        <img src="af|processTrain::overflow-backward-end-icon" alt="">
> >      </td>
> >
> >      <td background="af|processTrain::joint-visited-icon" class="
> >af|processTrain::step-spacing"></td>
> >
> >      <td background="af|processTrain::joint-visited-icon" align="right"
> >class="af|processTrain::step-visited">
> >        <img src="af|processTrain::step-visited-start-icon"
> >title="%step-label%" alt="%step-label% : previous step"/>
> >      </td>
> >      <td background="af|processTrain::joint-visited-icon" align="left"
> >class="af|processTrain::step-visited">
> >        <img src="af|processTrain::step-visited-end-icon" alt="">
> >      </td>
> >
> >      <td background="af|processTrain::joint-visited-icon" class="
> >af|processTrain::step-spacing"></td>
> >
> >      <td background="af|processTrain::joint-visited-icon" align="right"
> >class="af|processTrain::step-active">
> >        <img src="af|processTrain::step-active-start-icon"
> >title="%step-label%" alt="%step-label% : active step"/>
> >      </td>
> >      <td background="af|processTrain::joint-unvisited-icon" align="left"
>
>
> >class="af|processTrain::step-active">
> >        <img src="af|processTrain::step-active-end-icon" alt="">
> >      </td>
> >
> >      <td background="af|processTrain::joint-unvisited-icon" class="
> >af|processTrain::step-spacing"></td>
> >
> >      <td background="af|processTrain::joint-unvisited-icon"
> align="right"
> >class="af|processTrain::step-unvisited">
> >        <img src="af|processTrain::step-unvisited-start-icon"
> >title="%step-label%" alt="%step-label% : next step"/>
> >      </td>
> >      <td background="af|processTrain::joint-unvisited-icon" align="left"
>
>
> >class="af|processTrain::step-unvisited">
> >        <img src="af|processTrain::step-unvisited-end-icon" alt="">
> >      </td>
> >
> >      <td background="af|processTrain::joint-unvisited-icon" class="
> >af|processTrain::step-spacing"></td>
> >
> >      <td background="af|processTrain::joint-unvisited-icon"
> align="right"
> >class="af|processTrain::overflow-forward">
> >        <img src="af|processTrain::overflow-forward-start-icon"
> >title="%step-label%" alt="%step-label% : next set"/>
> >      </td>
> >      <td align="left" class="af|processTrain::overflow-forward">
> >        <img src="af|processTrain::overflow-forward-end-icon" alt="">
> >      </td>
> >
> >      <td class="af|processTrain::margin-end" rowspan="2"></td>
> >    </tr>
> >    <tr>
> >      <td colspan="2" class="af|processTrain::overflow-backward">
> >        <a class="af|processTrain::link">%step-label%</a>
> >      </td>
> >      <td colspan="2" class="af|processTrain::step-visited">
> >        <a class="af|processTrain::link">%step-label%</a>
> >      </td>
> >      <td colspan="2" class="af|processTrain::step-active">
> >        <a class="af|processTrain::link">%step-label%</a>
> >      </td>
> >      <td colspan="2" class="af|processTrain::step-unvisited">
> >        <a class="af|processTrain::text">%step-label%</a>
> >      </td>
> >      <td colspan="2" class="af|processTrain::overflow-forward">
> >        <a class="af|processTrain::text">%step-label%</a>
> >      </td>
> >    </tr>
> >  </tbody>
> ></table>
> >
> >Is that ok with you?
> >
> >Simon Lessard
> >DMR Conseil Inc. (http://www.dmrconseil.ca) Tlphone : (418) 653-6881
> >
> >Sun Certified Programmer for Java 2 Platform 1.4
> >
> >
>
>
>
>
>
>
>
>


Re: ProcessTrain Skin Selectors

Posted by Adam Winer <aw...@gmail.com>.
+1 to these changes.  Pavitra, have these been attached
to a JIRA issue?

-- Adam


On 8/1/06, Simon_Lessard@dmr.ca <Si...@dmr.ca> wrote:
>
> Looks great to me! Thank Pavitra.
>
> Simon Lessard
> Fujitsu Consulting
>
>
>
>
> "Pavitra Subramaniam" <pa...@oracle.com>
> 2006-08-01 15:30
> Please respond to adffaces-user
>
>         To:     "adffaces-user@incubator.apache.org"
> <ad...@incubator.apache.org>
>         cc:     "Simon_Lessard@DMR.CA" <Si...@DMR.CA>
>         Subject:        ProcessTrain Skin Selectors
>
>
> Hello all,
>
> It looks like the attachments I sent never really made it. I am proposing
> that we rename the skin selectors for the train component, from
> "af|processTrain" to "af|train" and the element "step" to "stop". This is
> to keep the skin selectors in synch with the renaming and also to
> reinforce that trains need not necessarily be tied to a multi-step
> process.
>
> Please also see my email below, from last week explaining the new skin
> selectors I have introduced for this component.
>
>
> ------------------------------------------------------------------------------------
>                                        SKIN SELECTORS
>
> ------------------------------------------------------------------------------------
> /***********************************
>           Train Styles
> ***********************************/
> /* top level style class for the train component */
> af|train
>
> /***********************************
>                Joins
> ***********************************/
> /* for joins between the overflow icons and the stops */
> af|train::join-overflow
>
> /* join (between overflow and stop icons) in disabled state */
> af|train::join-overflow:disabled
>
> /* join (between overflow and stop icons) in visited state */
> af|train::join-overflow:visited
>
> /* join (between overflow and stop icons) in unvisited state */
> af|train::join-overflow:unvisited
>
> /* for joins between stops */
> af|train::join
>
> /* join in visited state */
> af|train::join:visited
>
> /* join in unvisited state */
> af|train::join:unvisited
>
> /* join in disabled state */
> af|train::join:disabled
>
> /***********************************
>              Spacers
> ***********************************/
> /* spacer used between stops */
> af|train::stop-spacer
>
> /* spacer used between parent train and stops */
> af|train::parent-spacer
>
> /* spacer used for margins in the beginning and end of the train */
> af|train::margin-start
> af|train::margin-end
>
> /*********************************************************
>   Icons blocks and icons: Parent Train, Stop & Overflow
> *********************************************************/
> /* block that displays the parent start icon*/
> af|train::parent-start-icon-block
>
> /* block that displays the parent start icon*/
> af|train::parent-end-icon-block
>
> /* icon to indicate a parent process in the beginning of a sub train */
> af|train::parent-start-icon
>
> /* icon to indicate a parent process in the end of a sub train */
> af|train::parent-end-icon
>
> /* block that displays the overflow image */
> af|train::overflow-icon-block
>
> /* overflow start icon in visited state (indicates presence of previous
> stops) */
> af|train::overflow-start-visited-icon
>
> /* overflow start icon in disabled state (indicates presence of previous
> stops) */
> af|train::overflow-start-disabled-icon
>
> /* overflow end icon in disabled state (indicates presence of more stops)
> */
> af|train::overflow-end-disabled-icon
>
> /* overflow end icon in unvisited state (indicates presence of more stops)
> */
> af|train::overflow-end-unvisited-icon
>
> /* block that displays a stop icon (active/disabled/visited/unvisited) */
> af|train::stop-icon-block
>
> /* stop icon in visited state */
> af|train::stop-visited-icon
>
> /* stop icon in active state */
> af|train::stop-active-icon
>
> /* stop icon in unvisited state */
> af|train::stop-unvisited-icon
>
> /* stop icon in disabled state */
> af|train::stop-disabled-icon
>
> /************************************************
> Labels and Links: parentTrain, overflow & stop
> ************************************************/
> /*
>   content area in the beginning of the train, to display the parent
> process
>   name
> */
> af|train::parent-start-content
>
> /* content area in the end of the train, to display the parent process
> name */
> af|train::parent-end-content
>
> /*
>   content area to display the overflow label in the beginning and end of
> the
>   train
> */
> af|train::overflow-start-content
> af|train::overflow-end-content
>
> /* content area to display the stop name */
> af|train::stop-content
>
> /* content area that displays the name of the stop in visited state */
> af|train::stop-content:visited
>
> /* block that displays the name of the stop in disabled state */
> af|train::stop-content:disabled
>
> /* block that displays the name of the stop in unvisited state */
> af|train::stop-content:unvisited
>
> /* block that displays the name of the stop in active state */
> af|train::stop-content:active
>
> /* link for a stop */
> af|train::stop-link
>
> /* link for an unvisited stop */
> af|train::stop-link:unvisited
>
> /* link for an visited stop */
> af|train::stop-link:visited
>
> /* link for an active stop */
> af|train::stop-link:active
>
> /* link for an disabled stop */
> af|train::stop-link:disabled
>
> /* link for an overflow in disabled state */
> af|train::overflow-link:disabled
>
> /* link for an overflow in visited state */
> af|train::overflow-link:visited
>
> /* link for an overflow in unvisited state */
> af|train::overflow-link:unvisited
>
>
> ------------------------------------------------------------------------------------
>                                SAMPLE TRAIN HTML PAGE
>            - Shows how the skin selectors will be used in the HTML page
>
> ------------------------------------------------------------------------------------
>
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "
> http://www.w3.org/TR/html4/strict.dtd">
> <html>
> <head>
>   <title>Line example</title>
>                  <link rel="stylesheet" charset="UTF-8" type="text/css"
> href="css/trinidadStyles.css"/>
> </head>
> <body>
>
> <table cellpadding="0" cellspacing="0" border="0" class="af|train">
>   <tbody>
>     <tr>
>       <!-- MARGIN -->
>       <td rowspan="2"><div
> class="af|train::margin-start"><span></span></div></td>
>
>       <!-- PARENT START -->
>       <td>
>         <table cellpadding="0" cellspacing="0" border="0" width="100%">
>           <tbody>
>             <tr>
>               <td>
>                 <div class="af|train::parent-start-icon-block">
>                   <img src="af|train::parent-start-icon"/>
>                 </div>
>               </td>
>             </tr>
>           </tbody>
>         </table>
>       </td>
>
>       <td><div class="af|train::parent-spacer"><span></span></div></td>
>
>       <!-- OVERFLOW START -->
>       <td>
>         <table cellpadding="0" cellspacing="0" border="0" width="100%">
>           <tbody>
>             <tr>
>               <td width="50%">
>                 <div class="af|train::join-overflow"><span></span></div>
>               </td>
>               <td>
>                 <div class="af|train::overflow-icon-block">
>                   <img src="af|train::overflow-start-icon:visited"/>
>                 </div>
>               </td>
>               <td width="50%">
>                 <div class="af|train::join-overflow
> af|train::join-overflow:visited">
>                 <span></span></div></td>
>             </tr>
>           </tbody>
>         </table>
>       </td>
>
>       <td><div class="af|train::stop-spacer
> af|train::join-overflow:visited"><span></span></div></td>
>
>       <!-- stop -->
>       <td>
>         <table cellpadding="0" cellspacing="0" border="0" width="100%">
>           <tbody>
>             <tr>
>               <td width="50%">
>                 <div class="af|train::join
> af|train::join-overflow:visited">
>                   <span></span></div></td>
>               <td>
>                 <div class="af|train::stop-icon-block">
>                   <img src="af|train::stop-icon:visited"/>
>                 </div>
>               </td>
>               <td width="50%">
>                 <div class="af|train::join af|train::join:visited">
>                   <span></span>
>                 </div>
>               </td>
>             </tr>
>           </tbody>
>         </table>
>       </td>
>
>       <!-- spacer -->
>       <td>
>         <div class="af|train::stop-spacer af|train::join:visited">
>           <span></span>
>         </div>
>       </td>
>
>       <!-- stop -->
>       <td>
>         <table cellpadding="0" cellspacing="0" border="0" width="100%">
>           <tbody>
>             <tr>
>               <td width="50%">
>                 <div class="af|train::join af|train::join:visited">
>                   <span></span></div></td>
>               <td>
>                 <div class="af|train::stop-icon-block">
>                   <img src="af|train::stop-icon:active"/>
>                 </div>
>               </td>
>               <td width="50%">
>                 <div class="af|train::join af|train::join:unvisited">
>                   <span></span>
>                 </div>
>               </td>
>             </tr>
>           </tbody>
>         </table>
>       </td>
>
>       <td>
>         <div class="af|train::stop-spacer af|train::join:unvisited">
>           <span></span>
>         </div>
>       </td>
>
>       <!-- stop -->
>       <td>
>         <table cellpadding="0" cellspacing="0" border="0" width="100%">
>           <tbody>
>             <tr>
>               <td width="50%">
>                 <div class="af|train::join af|train::join:unvisited">
>                   <span></span></div></td>
>               <td>
>                 <div class="af|train::stop-icon-block">
>                   <img src="af|train::stop-icon:unvisited"/>
>                 </div>
>               </td>
>               <td width="50%">
>                 <div class="af|train::join af|train::join:disabled">
>                   <span></span>
>                 </div>
>               </td>
>             </tr>
>           </tbody>
>         </table>
>       </td>
>
>       <td><div class="af|train::stop-spacer
> af|train::join:disabled"><span></span></div></td>
>
>       <!-- stop -->
>       <td>
>         <table cellpadding="0" cellspacing="0" border="0" width="100%">
>           <tbody>
>             <tr>
>               <td width="50%">
>                 <div class="af|train::join af|train::join:disabled">
>                   <span></span></div></td>
>               <td>
>                 <div class="af|train::stop-icon-block">
>                   <img src="af|train::stop-icon:disabled"/>
>                 </div>
>               </td>
>               <td width="50%">
>                 <div class="af|train::join af|train::join:disabled">
>                   <span></span>
>                 </div>
>               </td>
>             </tr>
>           </tbody>
>         </table>
>       </td>
>
>       <td>
>         <div class="af|train::stop-spacer af|train::join:disabled">
>           <span></span>
>         </div>
>       </td>
>
>       <!-- stop -->
>       <td>
>         <table cellpadding="0" cellspacing="0" border="0" width="100%">
>           <tbody>
>             <tr>
>               <td width="50%">
>                 <div class="af|train::join af|train::join:disabled">
>                   <span></span>
>                 </div>
>               </td>
>               <td>
>                 <div class="af|train::stop-icon-block">
>                   <img src="af|train::stop-icon:disabled"/>
>                 </div>
>               </td>
>               <td width="50%">
>                 <div class="af|train::join af|train::join:disabled">
>                   <span></span>
>                 </div>
>               </td>
>             </tr>
>           </tbody>
>         </table>
>       </td>
>
>       <td>
>         <div class="af|train::stop-spacer af|train::join:disabled">
>           <span></span>
>         </div>
>       </td>
>
>       <!-- stop -->
>       <td>
>         <table cellpadding="0" cellspacing="0" border="0" width="100%">
>           <tbody>
>             <tr>
>               <td width="50%">
>                 <div class="af|train::join af|train::join:disabled">
>                   <span></span></div></td>
>               <td>
>                 <div class="af|train::stop-icon-block">
>                   <img src="af|train::stop-icon:disabled"/>
>                 </div>
>               </td>
>               <td width="50%">
>                 <div class="af|train::join
> af|train::join-overflow:disabled">
>                   <span></span>
>                 </div>
>               </td>
>             </tr>
>           </tbody>
>         </table>
>       </td>
>
>       <td>
>         <div class="af|train::stop-spacer
> af|train::join-overflow:disabled">
>           <span></span>
>         </div>
>       </td>
>
>       <!-- OVERFLOW END -->
>       <td>
>         <table cellpadding="0" cellspacing="0" border="0" width="100%">
>           <tbody>
>             <tr>
>               <td width="50%">
>                 <div class="af|train::join
> af|train::join-overflow:disabled">
>                   <span></span></div></td>
>               <td style="width:1px;">
>                 <div class="af|train::overflow-icon-block">
>                   <img src="af|train::overflow-end-icon:disabled"/>
>                 </div>
>               </td>
>               <td width="50%">
>                 <div class="af|train::join-overflow">
>                   <span></span>
>                 </div>
>               </td>
>             </tr>
>           </tbody>
>         </table>
>       </td>
>
>       <td><div class="af|train::parent-spacer"><span></span></div></td>
>
>       <!-- PARENT END -->
>       <td>
>         <table cellpadding="0" cellspacing="0" border="0" width="100%">
>           <tbody>
>             <tr>
>               <td>
>                 <div class="af|train::parent-end-icon-block">
>                   <img src="af|train::parent-end-icon"/>
>                 </div>
>               </td>
>             </tr>
>           </tbody>
>         </table>
>       </td>
>
>       <td rowspan="2"><div
> class="af|train::margin-end"><span></span></div></td>
>     </tr>
>
>     <tr>
>       <td>
>         <div class="af|train::parent-start-content"></div>
>       </td>
>       <td></td>
>
>       <td>
>         <div class="af|train::overflow-start-content">
>           <a href="" class="af|train::overflow-link:visited">Previous</a>
>         </div>
>       </td>
>       <td></td>
>
>       <td>
>         <div class="af|train::stop-content
> af|train::stop-content:visited">
>           <a href="" class="af|train::stop-link
>             af|train::stop-link:visited">stop 1</a>
>         </div>
>       </td>
>       <td></td>
>
>       <td>
>         <div class="af|train::stop-content af|train::stop-content:active">
>           <a href="" class="af|train::stop-link
>             af|train::stop-link:active">stopstopstop 2</a>
>         </div>
>       </td>
>       <td></td>
>
>       <td>
>         <div class="af|train::stop-content
> af|train::stop-content:unvisited">
>           <a href="" class="af|train::stop-link
>             af|train::stop-link:unvisited">stop 3</a>
>         </div>
>       </td>
>       <td></td>
>
>       <td>
>         <div class="af|train::stop-content
> af|train::stop-content:disabled">
>           <a href="" class="af|train::stop-link
>             af|train::stop-link:disabled">stop 4</a>
>         </div>
>       </td>
>       <td></td>
>
>       <td>
>         <div class="af|train::stop-content
> af|train::stop-content:disabled">
>           <a href="" class="af|train::stop-link
>             af|train::stop-link:disabled">stopstopstop 5</a>
>         </div>
>       </td>
>       <td></td>
>
>       <td>
>         <div class="af|train::stop-content
> af|train::stop-content:disabled">
>           <a href="" class="af|train::stop-link
>             af|train::stop-link:disabled">stopstop 6</a>
>         </div>
>       </td>
>       <td></td>
>
>       <td>
>         <div class="af|train::overflow-end-content">
>           <a href="" class="af|train::overflow-link:disabled">More</a>
>         </div>
>       </td>
>       <td></td>
>
>       <td>
>         <div class="af|train::parent-end-content"></div>
>       </td>
>
>     </tr>
>   </tbody>
> </table>
>
> </body>
> </html>
>
>
>
>
> - Pavitra
>
> -----Original Message-----
> From: Pavitra Subramaniam [mailto:pavitra.subramaniam@oracle.com]
> Sent: Friday, July 28, 2006 6:28 PM
> To: adffaces-user@incubator.apache.org
> Cc: Simon_Lessard@DMR.CA
> Subject: RE: ProcessTrain enhancement
>
> Hello,
>
> I would like to propose an updated set of skin selectors for the
> processTrain component. Basically I have removed the use of start and end
> icons for stops and overflows. I also had to introduce new skin hooks for
> parent process.
>
> Please review the attached train-skin-selector.rtf and let me know if
> these hooks are fine. I have not added the rtl cases, but will add them
> once we agree on the basic ltr list.
>
> I have also attached a sample HTML page (train_trinidad.html) and CSS file
> (trinidadStyles.css) to demonstrate how these styles will be used. (style
> names in HTML file has been modified to be compliant with CSS2).
>
> - the joins are now background-colors rather than images. This makes it
> simpler.
> - the only icons are the stops, overflows and parent train. If the icons
> are the same dimensions then the HTML works best (otherwise some tweaking
> is required in CSS).
>
> Thanks
> - Pavitra
>
> -----Original Message-----
> From: Simon_Lessard@DMR.CA [mailto:Simon_Lessard@DMR.CA]
> Sent: Thursday, July 06, 2006 10:32 AM
> To: adffaces-user@incubator.apache.org
> Subject: Re: ProcessTrain enhancement
>
> next/prev terminology sounds good enough for me.
>
> The hard part using a whole icon for the station is the visual link
> between the stations around the active station. If you want the link to be
> of a different color on the visited side than on the unvisited side,
> splitting the icon become mandatory as the visual link is rendered as a
> background-image. Of course, it would be possible to use a whole icon for
> all but the active one. Would that be better?
>
> As for pseudo-class, I'm totally for it.
>
> Finally, for the background-image in the style class instead of the
> background attribute, it's relatively complex because of the outer edges
> of the process train since those should not use the background image. Of
> course I could keep both selector I have currently, that is the base and
> the -icon. (for example af|processTrain::join-icon:visited and
> af|processTrain::station:visited ) and apply both classes when the
> background image is required. Does that sounds good to you?
>
> Regards,
>
> Simon Lessard
> Fujitsu Consulting
>
>
>
>
>
> Jeanne Waldman <je...@oracle.com>
> 2006-07-06 13:20
> Please respond to adffaces-user
>
>         To:     adffaces-user@incubator.apache.org
>         cc:
>         Subject:        Re: ProcessTrain enhancement
>
>
> What are 'joints'? I think I had been calling them 'joins'.
> I also use the 'next'/'prev' terminology instead of backwards and
> forwards.
>
> Also, I'd recommend rewriting the simple renderer so that you can use a
> whole visited icon, a disabled icon, etc, instead of a start visited, an
> end visited. I know this is how it was in the oracle renderer, which I
> suspect you are looking at, but I always thought that was ugly.
> You could simplify the skinning api a lot if you didn't worry about making
> it exactly like the oracle skin, where we colored the joining line to the
> icons. I'd just keep those the same.
>
> A direction we are heading towards is to use pseudo-classes for 'state'.
> We have implemented this for the form controls. For example, when the
> af:inputText component is in the disabled state, the new skinning key is
> this:
>
> af|inputText:disabled {} and the html we render is <span
> class="af_inputText p_AFDisabled">
> and the css rule is:
> af_inputText.p_AFDisabled {}.
>
> This is a fairly new convention, and only the form controls are
> implemented this way so far, but we want to move in this direction.
>
> So you'd have
>
> af|processTrain::joint-icon:visited, and we'd parse this to be the
> af_processTrain_joint-icon_visited, or something like that.
>
>
> Also, we don't render style classes on the background attribute, as far as
>
> I know. Instead we render it on the class attribute, and in the style
> class definition, they could set the background-image attribute.
>
>
>
> Simon_Lessard@DMR.CA wrote:
>
> >Hello,
> >
> >I'm currently working to modify the processTrain to accept more skin
> >selectors in order to open all icons provided by Oracle skin. The
> >selectors I plan to add are:
> >
> >  // processTrain styles used for the disabled links
> >  public static final String AF_PROCESS_TRAIN_TEXT_STYLE_CLASS =
> >    "af|processTrain::text";
> >
> >  // For outer margins
> >  public static final String AF_PROCESS_TRAIN_MARGIN_START_STYLE_CLASS =
> >    "af|processTrain::margin-start";
> >  public static final String AF_PROCESS_TRAIN_MARGIN_END_STYLE_CLASS =
> >    "af|processTrain::margin-end";
> >
> >  // For inner spacing
> >  public static final String AF_PROCESS_TRAIN_SPACING_STYLE_CLASS =
> >    "af|processTrain::step-spacing";
> >
> >  // For active steps
> >  public static final String AF_PROCESS_TRAIN_ACTIVE_START_ICON_NAME =
> >    "af|processTrain::step-active-start-icon";
> >  public static final String AF_PROCESS_TRAIN_ACTIVE_END_ICON_NAME =
> >    "af|processTrain::step-active-end-icon";
> >
> >  // For visited steps
> >  public static final String AF_PROCESS_TRAIN_VISITED_START_ICON_NAME =
> >    "af|processTrain::step-visited-start-icon";
> >  public static final String AF_PROCESS_TRAIN_VISITED_END_ICON_NAME =
> >    "af|processTrain::step-visited-end-icon";
> >
> >  // For unvisited steps
> >  public static final String AF_PROCESS_TRAIN_UNVISITED_START_ICON_NAME =
>
>
> >    "af|processTrain::step-unvisited-start-icon";
> >  public static final String AF_PROCESS_TRAIN_UNVISITED_END_ICON_NAME =
> >    "af|processTrain::step-unvisited-end-icon";
> >
> >  // For disabled steps
> >  public static final String AF_PROCESS_TRAIN_DISABLED_START_ICON_NAME =
> >    "af|processTrain::step-disabled-start-icon";
> >  public static final String AF_PROCESS_TRAIN_DISABLED_END_ICON_NAME =
> >    "af|processTrain::step-disabled-end-icon";
> >
> >  // For joints
> >  public static final String AF_PROCESS_TRAIN_JOINT_VISITED_ICON_NAME =
> >    "af|processTrain::joint-visited-icon";
> >  public static final String AF_PROCESS_TRAIN_JOINT_UNVISITED_ICON_NAME =
>
>
> >    "af|processTrain::joint-unvisited-icon";
> >
> >  // For backward overflows
> >  public static final String
> >AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_STYLE_CLASS =
> >    "af|processTrain::overflow-backward";
> >  public static final String
> >AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_START_ICON_NAME =
> >    "af|processTrain::overflow-backward-start-icon";
> >  public static final String
> >AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_END_ICON_NAME =
> >    "af|processTrain::overflow-backward-end-icon";
> >
> >  // For forward overflows
> >  public static final String
> AF_PROCESS_TRAIN_OVERFLOW_FORWARD_STYLE_CLASS
> >=
> >    "af|processTrain::overflow-forward";
> >  public static final String
> >AF_PROCESS_TRAIN_OVERFLOW_FORWARD_START_ICON_NAME =
> >    "af|processTrain::overflow-forward-start-icon";
> >  public static final String
> >AF_PROCESS_TRAIN_OVERFLOW_FORWARD_END_ICON_NAME =
> >    "af|processTrain::overflow-forward-end-icon";
> >
> >The target HTML structure for the process train in LtR mode is:
> >
> ><table align="center" border="0" cellpadding="0" cellspacing="0"
> >class="af|processTrain">
> >  <tbody>
> >    <tr>
> >      <td class="af|processTrain::margin-start" rowspan="2"></td>
> >
> >      <td align="right" class="af|processTrain::overflow-backward">
> >        <img src="af|processTrain::overflow-backward-start-icon"
> >title="%step-label%" alt="%step-label% : previous set"/>
> >      </td>
> >      <td background="af|processTrain::joint-visited-icon" align="left"
> >class="af|processTrain::overflow-backward>
> >        <img src="af|processTrain::overflow-backward-end-icon" alt="">
> >      </td>
> >
> >      <td background="af|processTrain::joint-visited-icon" class="
> >af|processTrain::step-spacing"></td>
> >
> >      <td background="af|processTrain::joint-visited-icon" align="right"
> >class="af|processTrain::step-visited">
> >        <img src="af|processTrain::step-visited-start-icon"
> >title="%step-label%" alt="%step-label% : previous step"/>
> >      </td>
> >      <td background="af|processTrain::joint-visited-icon" align="left"
> >class="af|processTrain::step-visited">
> >        <img src="af|processTrain::step-visited-end-icon" alt="">
> >      </td>
> >
> >      <td background="af|processTrain::joint-visited-icon" class="
> >af|processTrain::step-spacing"></td>
> >
> >      <td background="af|processTrain::joint-visited-icon" align="right"
> >class="af|processTrain::step-active">
> >        <img src="af|processTrain::step-active-start-icon"
> >title="%step-label%" alt="%step-label% : active step"/>
> >      </td>
> >      <td background="af|processTrain::joint-unvisited-icon" align="left"
>
>
> >class="af|processTrain::step-active">
> >        <img src="af|processTrain::step-active-end-icon" alt="">
> >      </td>
> >
> >      <td background="af|processTrain::joint-unvisited-icon" class="
> >af|processTrain::step-spacing"></td>
> >
> >      <td background="af|processTrain::joint-unvisited-icon"
> align="right"
> >class="af|processTrain::step-unvisited">
> >        <img src="af|processTrain::step-unvisited-start-icon"
> >title="%step-label%" alt="%step-label% : next step"/>
> >      </td>
> >      <td background="af|processTrain::joint-unvisited-icon" align="left"
>
>
> >class="af|processTrain::step-unvisited">
> >        <img src="af|processTrain::step-unvisited-end-icon" alt="">
> >      </td>
> >
> >      <td background="af|processTrain::joint-unvisited-icon" class="
> >af|processTrain::step-spacing"></td>
> >
> >      <td background="af|processTrain::joint-unvisited-icon"
> align="right"
> >class="af|processTrain::overflow-forward">
> >        <img src="af|processTrain::overflow-forward-start-icon"
> >title="%step-label%" alt="%step-label% : next set"/>
> >      </td>
> >      <td align="left" class="af|processTrain::overflow-forward">
> >        <img src="af|processTrain::overflow-forward-end-icon" alt="">
> >      </td>
> >
> >      <td class="af|processTrain::margin-end" rowspan="2"></td>
> >    </tr>
> >    <tr>
> >      <td colspan="2" class="af|processTrain::overflow-backward">
> >        <a class="af|processTrain::link">%step-label%</a>
> >      </td>
> >      <td colspan="2" class="af|processTrain::step-visited">
> >        <a class="af|processTrain::link">%step-label%</a>
> >      </td>
> >      <td colspan="2" class="af|processTrain::step-active">
> >        <a class="af|processTrain::link">%step-label%</a>
> >      </td>
> >      <td colspan="2" class="af|processTrain::step-unvisited">
> >        <a class="af|processTrain::text">%step-label%</a>
> >      </td>
> >      <td colspan="2" class="af|processTrain::overflow-forward">
> >        <a class="af|processTrain::text">%step-label%</a>
> >      </td>
> >    </tr>
> >  </tbody>
> ></table>
> >
> >Is that ok with you?
> >
> >Simon Lessard
> >DMR Conseil Inc. (http://www.dmrconseil.ca)
> >T�l�phone : (418) 653-6881
> >
> >Sun Certified Programmer for Java 2 Platform 1.4
> >
> >
>
>
>
>
>
>
>
>

Re: ProcessTrain Skin Selectors

Posted by Si...@DMR.CA.
Looks great to me! Thank Pavitra.

Simon Lessard
Fujitsu Consulting




"Pavitra Subramaniam" <pa...@oracle.com>
2006-08-01 15:30
Please respond to adffaces-user
 
        To:     "adffaces-user@incubator.apache.org" 
<ad...@incubator.apache.org>
        cc:     "Simon_Lessard@DMR.CA" <Si...@DMR.CA>
        Subject:        ProcessTrain Skin Selectors


Hello all,

It looks like the attachments I sent never really made it. I am proposing 
that we rename the skin selectors for the train component, from 
"af|processTrain" to "af|train" and the element "step" to "stop". This is 
to keep the skin selectors in synch with the renaming and also to 
reinforce that trains need not necessarily be tied to a multi-step 
process. 

Please also see my email below, from last week explaining the new skin 
selectors I have introduced for this component. 

------------------------------------------------------------------------------------
                                       SKIN SELECTORS
------------------------------------------------------------------------------------
/***********************************
          Train Styles 
***********************************/
/* top level style class for the train component */
af|train

/***********************************
               Joins 
***********************************/
/* for joins between the overflow icons and the stops */
af|train::join-overflow

/* join (between overflow and stop icons) in disabled state */
af|train::join-overflow:disabled

/* join (between overflow and stop icons) in visited state */
af|train::join-overflow:visited

/* join (between overflow and stop icons) in unvisited state */
af|train::join-overflow:unvisited

/* for joins between stops */
af|train::join 

/* join in visited state */
af|train::join:visited 

/* join in unvisited state */
af|train::join:unvisited 

/* join in disabled state */
af|train::join:disabled 

/***********************************
             Spacers 
***********************************/
/* spacer used between stops */
af|train::stop-spacer 

/* spacer used between parent train and stops */
af|train::parent-spacer 

/* spacer used for margins in the beginning and end of the train */
af|train::margin-start
af|train::margin-end

/*********************************************************
  Icons blocks and icons: Parent Train, Stop & Overflow
*********************************************************/
/* block that displays the parent start icon*/
af|train::parent-start-icon-block

/* block that displays the parent start icon*/
af|train::parent-end-icon-block

/* icon to indicate a parent process in the beginning of a sub train */
af|train::parent-start-icon 

/* icon to indicate a parent process in the end of a sub train */
af|train::parent-end-icon 

/* block that displays the overflow image */
af|train::overflow-icon-block 

/* overflow start icon in visited state (indicates presence of previous 
stops) */
af|train::overflow-start-visited-icon

/* overflow start icon in disabled state (indicates presence of previous 
stops) */
af|train::overflow-start-disabled-icon

/* overflow end icon in disabled state (indicates presence of more stops) 
*/
af|train::overflow-end-disabled-icon

/* overflow end icon in unvisited state (indicates presence of more stops) 
*/
af|train::overflow-end-unvisited-icon

/* block that displays a stop icon (active/disabled/visited/unvisited) */
af|train::stop-icon-block

/* stop icon in visited state */
af|train::stop-visited-icon 

/* stop icon in active state */
af|train::stop-active-icon

/* stop icon in unvisited state */
af|train::stop-unvisited-icon 

/* stop icon in disabled state */
af|train::stop-disabled-icon

/************************************************
 Labels and Links: parentTrain, overflow & stop
************************************************/
/* 
  content area in the beginning of the train, to display the parent 
process 
  name 
*/
af|train::parent-start-content

/* content area in the end of the train, to display the parent process 
name */
af|train::parent-end-content

/* 
  content area to display the overflow label in the beginning and end of 
the 
  train 
*/
af|train::overflow-start-content
af|train::overflow-end-content

/* content area to display the stop name */
af|train::stop-content

/* content area that displays the name of the stop in visited state */
af|train::stop-content:visited

/* block that displays the name of the stop in disabled state */
af|train::stop-content:disabled

/* block that displays the name of the stop in unvisited state */
af|train::stop-content:unvisited

/* block that displays the name of the stop in active state */
af|train::stop-content:active

/* link for a stop */
af|train::stop-link

/* link for an unvisited stop */
af|train::stop-link:unvisited

/* link for an visited stop */
af|train::stop-link:visited

/* link for an active stop */
af|train::stop-link:active

/* link for an disabled stop */
af|train::stop-link:disabled

/* link for an overflow in disabled state */
af|train::overflow-link:disabled

/* link for an overflow in visited state */
af|train::overflow-link:visited

/* link for an overflow in unvisited state */
af|train::overflow-link:unvisited

------------------------------------------------------------------------------------
                               SAMPLE TRAIN HTML PAGE
           - Shows how the skin selectors will be used in the HTML page
------------------------------------------------------------------------------------

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "
http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
  <title>Line example</title>
                 <link rel="stylesheet" charset="UTF-8" type="text/css" 
href="css/trinidadStyles.css"/>
</head>
<body>

<table cellpadding="0" cellspacing="0" border="0" class="af|train">
  <tbody>
    <tr>
      <!-- MARGIN -->
      <td rowspan="2"><div 
class="af|train::margin-start"><span></span></div></td>

      <!-- PARENT START -->
      <td>
        <table cellpadding="0" cellspacing="0" border="0" width="100%">
          <tbody>
            <tr>
              <td>
                <div class="af|train::parent-start-icon-block">
                  <img src="af|train::parent-start-icon"/>
                </div>
              </td>
            </tr>
          </tbody>
        </table> 
      </td>

      <td><div class="af|train::parent-spacer"><span></span></div></td>
 
      <!-- OVERFLOW START -->
      <td>
        <table cellpadding="0" cellspacing="0" border="0" width="100%">
          <tbody>
            <tr>
              <td width="50%">
                <div class="af|train::join-overflow"><span></span></div>
              </td>
              <td>
                <div class="af|train::overflow-icon-block">
                  <img src="af|train::overflow-start-icon:visited"/>
                </div>
              </td>
              <td width="50%">
                <div class="af|train::join-overflow 
af|train::join-overflow:visited">
                <span></span></div></td>
            </tr>
          </tbody>
        </table> 
      </td>

      <td><div class="af|train::stop-spacer 
af|train::join-overflow:visited"><span></span></div></td>
 
      <!-- stop --> 
      <td>
        <table cellpadding="0" cellspacing="0" border="0" width="100%">
          <tbody>
            <tr>
              <td width="50%">
                <div class="af|train::join 
af|train::join-overflow:visited">
                  <span></span></div></td>
              <td>
                <div class="af|train::stop-icon-block">
                  <img src="af|train::stop-icon:visited"/>
                </div>
              </td>
              <td width="50%">
                <div class="af|train::join af|train::join:visited">
                  <span></span>
                </div>
              </td>
            </tr>
          </tbody>
        </table> 
      </td>

      <!-- spacer -->
      <td>
        <div class="af|train::stop-spacer af|train::join:visited">
          <span></span>
        </div>
      </td>

      <!-- stop --> 
      <td>
        <table cellpadding="0" cellspacing="0" border="0" width="100%">
          <tbody>
            <tr>
              <td width="50%">
                <div class="af|train::join af|train::join:visited">
                  <span></span></div></td>
              <td>
                <div class="af|train::stop-icon-block">
                  <img src="af|train::stop-icon:active"/>
                </div>
              </td>
              <td width="50%">
                <div class="af|train::join af|train::join:unvisited">
                  <span></span>
                </div>
              </td>
            </tr>
          </tbody>
        </table> 
      </td>

      <td>
        <div class="af|train::stop-spacer af|train::join:unvisited">
          <span></span>
        </div>
      </td>

      <!-- stop --> 
      <td>
        <table cellpadding="0" cellspacing="0" border="0" width="100%">
          <tbody>
            <tr>
              <td width="50%">
                <div class="af|train::join af|train::join:unvisited">
                  <span></span></div></td>
              <td>
                <div class="af|train::stop-icon-block">
                  <img src="af|train::stop-icon:unvisited"/>
                </div>
              </td>
              <td width="50%">
                <div class="af|train::join af|train::join:disabled">
                  <span></span>
                </div>
              </td>
            </tr>
          </tbody>
        </table> 
      </td>

      <td><div class="af|train::stop-spacer 
af|train::join:disabled"><span></span></div></td>

      <!-- stop --> 
      <td>
        <table cellpadding="0" cellspacing="0" border="0" width="100%">
          <tbody>
            <tr>
              <td width="50%">
                <div class="af|train::join af|train::join:disabled">
                  <span></span></div></td>
              <td>
                <div class="af|train::stop-icon-block">
                  <img src="af|train::stop-icon:disabled"/>
                </div>
              </td>
              <td width="50%">
                <div class="af|train::join af|train::join:disabled">
                  <span></span>
                </div>
              </td>
            </tr>
          </tbody>
        </table> 
      </td>

      <td>
        <div class="af|train::stop-spacer af|train::join:disabled">
          <span></span>
        </div>
      </td>

      <!-- stop --> 
      <td>
        <table cellpadding="0" cellspacing="0" border="0" width="100%">
          <tbody>
            <tr>
              <td width="50%">
                <div class="af|train::join af|train::join:disabled">
                  <span></span>
                </div>
              </td>
              <td>
                <div class="af|train::stop-icon-block">
                  <img src="af|train::stop-icon:disabled"/>
                </div>
              </td>
              <td width="50%">
                <div class="af|train::join af|train::join:disabled">
                  <span></span>
                </div>
              </td>
            </tr>
          </tbody>
        </table> 
      </td>

      <td>
        <div class="af|train::stop-spacer af|train::join:disabled">
          <span></span>
        </div>
      </td>

      <!-- stop --> 
      <td>
        <table cellpadding="0" cellspacing="0" border="0" width="100%">
          <tbody>
            <tr>
              <td width="50%">
                <div class="af|train::join af|train::join:disabled">
                  <span></span></div></td>
              <td>
                <div class="af|train::stop-icon-block">
                  <img src="af|train::stop-icon:disabled"/>
                </div>
              </td>
              <td width="50%">
                <div class="af|train::join 
af|train::join-overflow:disabled">
                  <span></span>
                </div>
              </td>
            </tr>
          </tbody>
        </table> 
      </td>

      <td>
        <div class="af|train::stop-spacer 
af|train::join-overflow:disabled">
          <span></span>
        </div>
      </td>

      <!-- OVERFLOW END --> 
      <td>
        <table cellpadding="0" cellspacing="0" border="0" width="100%">
          <tbody>
            <tr>
              <td width="50%">
                <div class="af|train::join 
af|train::join-overflow:disabled">
                  <span></span></div></td>
              <td style="width:1px;">
                <div class="af|train::overflow-icon-block">
                  <img src="af|train::overflow-end-icon:disabled"/>
                </div>
              </td>
              <td width="50%">
                <div class="af|train::join-overflow">
                  <span></span>
                </div>
              </td>
            </tr>
          </tbody>
        </table> 
      </td>

      <td><div class="af|train::parent-spacer"><span></span></div></td>
 
      <!-- PARENT END -->
      <td>
        <table cellpadding="0" cellspacing="0" border="0" width="100%">
          <tbody>
            <tr>
              <td>
                <div class="af|train::parent-end-icon-block">
                  <img src="af|train::parent-end-icon"/>
                </div>
              </td>
            </tr>
          </tbody>
        </table> 
      </td>

      <td rowspan="2"><div 
class="af|train::margin-end"><span></span></div></td>
    </tr>

    <tr>
      <td>
        <div class="af|train::parent-start-content"></div>
      </td>
      <td></td>
 
      <td>
        <div class="af|train::overflow-start-content">
          <a href="" class="af|train::overflow-link:visited">Previous</a>
        </div>
      </td>
      <td></td>
 
      <td>
        <div class="af|train::stop-content 
af|train::stop-content:visited">
          <a href="" class="af|train::stop-link 
            af|train::stop-link:visited">stop 1</a>
        </div>
      </td>
      <td></td>
 
      <td>
        <div class="af|train::stop-content af|train::stop-content:active">
          <a href="" class="af|train::stop-link 
            af|train::stop-link:active">stopstopstop 2</a>
        </div>
      </td>
      <td></td>

      <td>
        <div class="af|train::stop-content 
af|train::stop-content:unvisited">
          <a href="" class="af|train::stop-link 
            af|train::stop-link:unvisited">stop 3</a>
        </div>
      </td>
      <td></td>

      <td>
        <div class="af|train::stop-content 
af|train::stop-content:disabled">
          <a href="" class="af|train::stop-link 
            af|train::stop-link:disabled">stop 4</a>
        </div> 
      </td>
      <td></td>

      <td>
        <div class="af|train::stop-content 
af|train::stop-content:disabled">
          <a href="" class="af|train::stop-link 
            af|train::stop-link:disabled">stopstopstop 5</a>
        </div> 
      </td>
      <td></td>

      <td>
        <div class="af|train::stop-content 
af|train::stop-content:disabled">
          <a href="" class="af|train::stop-link 
            af|train::stop-link:disabled">stopstop 6</a>
        </div> 
      </td>
      <td></td>

      <td>
        <div class="af|train::overflow-end-content">
          <a href="" class="af|train::overflow-link:disabled">More</a>
        </div>
      </td>
      <td></td>
 
      <td>
        <div class="af|train::parent-end-content"></div>
      </td>
 
    </tr>
  </tbody>
</table>

</body>
</html>




- Pavitra

-----Original Message-----
From: Pavitra Subramaniam [mailto:pavitra.subramaniam@oracle.com] 
Sent: Friday, July 28, 2006 6:28 PM
To: adffaces-user@incubator.apache.org
Cc: Simon_Lessard@DMR.CA
Subject: RE: ProcessTrain enhancement

Hello,

I would like to propose an updated set of skin selectors for the 
processTrain component. Basically I have removed the use of start and end 
icons for stops and overflows. I also had to introduce new skin hooks for 
parent process. 

Please review the attached train-skin-selector.rtf and let me know if 
these hooks are fine. I have not added the rtl cases, but will add them 
once we agree on the basic ltr list.

I have also attached a sample HTML page (train_trinidad.html) and CSS file 
(trinidadStyles.css) to demonstrate how these styles will be used. (style 
names in HTML file has been modified to be compliant with CSS2). 

 - the joins are now background-colors rather than images. This makes it 
simpler. 
 - the only icons are the stops, overflows and parent train. If the icons 
are the same dimensions then the HTML works best (otherwise some tweaking 
is required in CSS).

Thanks
- Pavitra

-----Original Message-----
From: Simon_Lessard@DMR.CA [mailto:Simon_Lessard@DMR.CA]
Sent: Thursday, July 06, 2006 10:32 AM
To: adffaces-user@incubator.apache.org
Subject: Re: ProcessTrain enhancement

next/prev terminology sounds good enough for me.

The hard part using a whole icon for the station is the visual link 
between the stations around the active station. If you want the link to be 
of a different color on the visited side than on the unvisited side, 
splitting the icon become mandatory as the visual link is rendered as a 
background-image. Of course, it would be possible to use a whole icon for 
all but the active one. Would that be better?

As for pseudo-class, I'm totally for it.

Finally, for the background-image in the style class instead of the 
background attribute, it's relatively complex because of the outer edges 
of the process train since those should not use the background image. Of 
course I could keep both selector I have currently, that is the base and 
the -icon. (for example af|processTrain::join-icon:visited and 
af|processTrain::station:visited ) and apply both classes when the
background image is required. Does that sounds good to you?

Regards,

Simon Lessard
Fujitsu Consulting





Jeanne Waldman <je...@oracle.com>
2006-07-06 13:20
Please respond to adffaces-user
 
        To:     adffaces-user@incubator.apache.org
        cc: 
        Subject:        Re: ProcessTrain enhancement


What are 'joints'? I think I had been calling them 'joins'.
I also use the 'next'/'prev' terminology instead of backwards and 
forwards.

Also, I'd recommend rewriting the simple renderer so that you can use a 
whole visited icon, a disabled icon, etc, instead of a start visited, an 
end visited. I know this is how it was in the oracle renderer, which I 
suspect you are looking at, but I always thought that was ugly.
You could simplify the skinning api a lot if you didn't worry about making 
it exactly like the oracle skin, where we colored the joining line to the 
icons. I'd just keep those the same.

A direction we are heading towards is to use pseudo-classes for 'state'. 
We have implemented this for the form controls. For example, when the 
af:inputText component is in the disabled state, the new skinning key is
this:

af|inputText:disabled {} and the html we render is <span
class="af_inputText p_AFDisabled">
and the css rule is:
af_inputText.p_AFDisabled {}.

This is a fairly new convention, and only the form controls are 
implemented this way so far, but we want to move in this direction.

So you'd have

af|processTrain::joint-icon:visited, and we'd parse this to be the
af_processTrain_joint-icon_visited, or something like that.


Also, we don't render style classes on the background attribute, as far as 

I know. Instead we render it on the class attribute, and in the style 
class definition, they could set the background-image attribute.



Simon_Lessard@DMR.CA wrote:

>Hello,
>
>I'm currently working to modify the processTrain to accept more skin 
>selectors in order to open all icons provided by Oracle skin. The 
>selectors I plan to add are:
>
>  // processTrain styles used for the disabled links
>  public static final String AF_PROCESS_TRAIN_TEXT_STYLE_CLASS =
>    "af|processTrain::text";
>
>  // For outer margins
>  public static final String AF_PROCESS_TRAIN_MARGIN_START_STYLE_CLASS =
>    "af|processTrain::margin-start";
>  public static final String AF_PROCESS_TRAIN_MARGIN_END_STYLE_CLASS =
>    "af|processTrain::margin-end";
>
>  // For inner spacing
>  public static final String AF_PROCESS_TRAIN_SPACING_STYLE_CLASS =
>    "af|processTrain::step-spacing";
>
>  // For active steps
>  public static final String AF_PROCESS_TRAIN_ACTIVE_START_ICON_NAME = 
>    "af|processTrain::step-active-start-icon";
>  public static final String AF_PROCESS_TRAIN_ACTIVE_END_ICON_NAME = 
>    "af|processTrain::step-active-end-icon";
>
>  // For visited steps
>  public static final String AF_PROCESS_TRAIN_VISITED_START_ICON_NAME = 
>    "af|processTrain::step-visited-start-icon";
>  public static final String AF_PROCESS_TRAIN_VISITED_END_ICON_NAME = 
>    "af|processTrain::step-visited-end-icon";
>
>  // For unvisited steps
>  public static final String AF_PROCESS_TRAIN_UNVISITED_START_ICON_NAME = 


>    "af|processTrain::step-unvisited-start-icon";
>  public static final String AF_PROCESS_TRAIN_UNVISITED_END_ICON_NAME = 
>    "af|processTrain::step-unvisited-end-icon";
>
>  // For disabled steps
>  public static final String AF_PROCESS_TRAIN_DISABLED_START_ICON_NAME = 
>    "af|processTrain::step-disabled-start-icon";
>  public static final String AF_PROCESS_TRAIN_DISABLED_END_ICON_NAME = 
>    "af|processTrain::step-disabled-end-icon";
>
>  // For joints
>  public static final String AF_PROCESS_TRAIN_JOINT_VISITED_ICON_NAME = 
>    "af|processTrain::joint-visited-icon";
>  public static final String AF_PROCESS_TRAIN_JOINT_UNVISITED_ICON_NAME = 


>    "af|processTrain::joint-unvisited-icon";
>
>  // For backward overflows
>  public static final String 
>AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_STYLE_CLASS =
>    "af|processTrain::overflow-backward";
>  public static final String 
>AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_START_ICON_NAME = 
>    "af|processTrain::overflow-backward-start-icon";
>  public static final String 
>AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_END_ICON_NAME = 
>    "af|processTrain::overflow-backward-end-icon";
>
>  // For forward overflows
>  public static final String 
AF_PROCESS_TRAIN_OVERFLOW_FORWARD_STYLE_CLASS 
>=
>    "af|processTrain::overflow-forward";
>  public static final String 
>AF_PROCESS_TRAIN_OVERFLOW_FORWARD_START_ICON_NAME = 
>    "af|processTrain::overflow-forward-start-icon";
>  public static final String 
>AF_PROCESS_TRAIN_OVERFLOW_FORWARD_END_ICON_NAME = 
>    "af|processTrain::overflow-forward-end-icon";
>
>The target HTML structure for the process train in LtR mode is:
>
><table align="center" border="0" cellpadding="0" cellspacing="0" 
>class="af|processTrain">
>  <tbody>
>    <tr>
>      <td class="af|processTrain::margin-start" rowspan="2"></td>
>
>      <td align="right" class="af|processTrain::overflow-backward">
>        <img src="af|processTrain::overflow-backward-start-icon" 
>title="%step-label%" alt="%step-label% : previous set"/>
>      </td>
>      <td background="af|processTrain::joint-visited-icon" align="left" 
>class="af|processTrain::overflow-backward>
>        <img src="af|processTrain::overflow-backward-end-icon" alt="">
>      </td>
>
>      <td background="af|processTrain::joint-visited-icon" class="
>af|processTrain::step-spacing"></td>
>
>      <td background="af|processTrain::joint-visited-icon" align="right" 
>class="af|processTrain::step-visited">
>        <img src="af|processTrain::step-visited-start-icon" 
>title="%step-label%" alt="%step-label% : previous step"/>
>      </td>
>      <td background="af|processTrain::joint-visited-icon" align="left" 
>class="af|processTrain::step-visited">
>        <img src="af|processTrain::step-visited-end-icon" alt="">
>      </td>
>
>      <td background="af|processTrain::joint-visited-icon" class="
>af|processTrain::step-spacing"></td>
>
>      <td background="af|processTrain::joint-visited-icon" align="right" 
>class="af|processTrain::step-active">
>        <img src="af|processTrain::step-active-start-icon" 
>title="%step-label%" alt="%step-label% : active step"/>
>      </td>
>      <td background="af|processTrain::joint-unvisited-icon" align="left" 


>class="af|processTrain::step-active">
>        <img src="af|processTrain::step-active-end-icon" alt="">
>      </td>
>
>      <td background="af|processTrain::joint-unvisited-icon" class="
>af|processTrain::step-spacing"></td>
>
>      <td background="af|processTrain::joint-unvisited-icon" 
align="right" 
>class="af|processTrain::step-unvisited">
>        <img src="af|processTrain::step-unvisited-start-icon" 
>title="%step-label%" alt="%step-label% : next step"/>
>      </td>
>      <td background="af|processTrain::joint-unvisited-icon" align="left" 


>class="af|processTrain::step-unvisited">
>        <img src="af|processTrain::step-unvisited-end-icon" alt="">
>      </td>
>
>      <td background="af|processTrain::joint-unvisited-icon" class="
>af|processTrain::step-spacing"></td>
>
>      <td background="af|processTrain::joint-unvisited-icon" 
align="right" 
>class="af|processTrain::overflow-forward">
>        <img src="af|processTrain::overflow-forward-start-icon" 
>title="%step-label%" alt="%step-label% : next set"/>
>      </td>
>      <td align="left" class="af|processTrain::overflow-forward">
>        <img src="af|processTrain::overflow-forward-end-icon" alt="">
>      </td>
>
>      <td class="af|processTrain::margin-end" rowspan="2"></td>
>    </tr>
>    <tr>
>      <td colspan="2" class="af|processTrain::overflow-backward">
>        <a class="af|processTrain::link">%step-label%</a>
>      </td>
>      <td colspan="2" class="af|processTrain::step-visited">
>        <a class="af|processTrain::link">%step-label%</a>
>      </td>
>      <td colspan="2" class="af|processTrain::step-active">
>        <a class="af|processTrain::link">%step-label%</a>
>      </td>
>      <td colspan="2" class="af|processTrain::step-unvisited">
>        <a class="af|processTrain::text">%step-label%</a>
>      </td>
>      <td colspan="2" class="af|processTrain::overflow-forward">
>        <a class="af|processTrain::text">%step-label%</a>
>      </td>
>    </tr>
>  </tbody>
></table>
>
>Is that ok with you?
>
>Simon Lessard
>DMR Conseil Inc. (http://www.dmrconseil.ca)
>Téléphone : (418) 653-6881
>
>Sun Certified Programmer for Java 2 Platform 1.4
> 
>







ProcessTrain Skin Selectors

Posted by Pavitra Subramaniam <pa...@oracle.com>.
Hello all,

It looks like the attachments I sent never really made it. I am proposing that we rename the skin selectors for the train component, from "af|processTrain" to "af|train" and the element "step" to "stop". This is to keep the skin selectors in synch with the renaming and also to reinforce that trains need not necessarily be tied to a multi-step process. 

Please also see my email below, from last week explaining the new skin selectors I have introduced for this component. 

------------------------------------------------------------------------------------
                                       SKIN SELECTORS
------------------------------------------------------------------------------------
/***********************************
          Train Styles               
***********************************/
/* top level style class for the train component */
af|train

/***********************************
               Joins               
***********************************/
/* for joins between the overflow icons and the stops */
af|train::join-overflow

/* join (between overflow and stop icons) in disabled state */
af|train::join-overflow:disabled

/* join (between overflow and stop icons) in visited state */
af|train::join-overflow:visited

/* join (between overflow and stop icons) in unvisited state */
af|train::join-overflow:unvisited

/* for joins between stops */
af|train::join 

/* join in visited state */
af|train::join:visited 

/* join in unvisited state */
af|train::join:unvisited 

/* join in disabled state */
af|train::join:disabled 

/***********************************
             Spacers               
***********************************/
/* spacer used between stops */
af|train::stop-spacer 

/* spacer used between parent train and stops */
af|train::parent-spacer 

/* spacer used for margins in the beginning and end of the train */
af|train::margin-start
af|train::margin-end

/*********************************************************
  Icons blocks and icons: Parent Train, Stop & Overflow
*********************************************************/
/* block that displays the parent start icon*/
af|train::parent-start-icon-block

/* block that displays the parent start icon*/
af|train::parent-end-icon-block

/* icon to indicate a parent process in the beginning of a sub train */
af|train::parent-start-icon 

/* icon to indicate a parent process in the end of a sub train */
af|train::parent-end-icon 

/* block that displays the overflow image */
af|train::overflow-icon-block 

/* overflow start icon in visited state (indicates presence of previous stops) */
af|train::overflow-start-visited-icon

/* overflow start icon in disabled state (indicates presence of previous stops) */
af|train::overflow-start-disabled-icon

/* overflow end icon in disabled state (indicates presence of more stops) */
af|train::overflow-end-disabled-icon

/* overflow end icon in unvisited state (indicates presence of more stops) */
af|train::overflow-end-unvisited-icon

/* block that displays a stop icon (active/disabled/visited/unvisited) */
af|train::stop-icon-block

/* stop icon in visited state */
af|train::stop-visited-icon 

/* stop icon in active state */
af|train::stop-active-icon

/* stop icon in unvisited state */
af|train::stop-unvisited-icon 

/* stop icon in disabled state */
af|train::stop-disabled-icon

/************************************************
 Labels and Links: parentTrain, overflow & stop
************************************************/
/* 
  content area in the beginning of the train, to display the parent process 
  name  
*/
af|train::parent-start-content

/* content area in the end of the train, to display the parent process name */
af|train::parent-end-content

/* 
  content area to display the overflow label in the beginning and end of the 
  train 
*/
af|train::overflow-start-content
af|train::overflow-end-content

/* content area to display the stop name */
af|train::stop-content

/* content area that displays the name of the stop in visited state */
af|train::stop-content:visited

/* block that displays the name of the stop in disabled state */
af|train::stop-content:disabled

/* block that displays the name of the stop in unvisited state */
af|train::stop-content:unvisited

/* block that displays the name of the stop in active state */
af|train::stop-content:active

/* link for a stop */
af|train::stop-link

/* link for an unvisited stop */
af|train::stop-link:unvisited

/* link for an visited stop */
af|train::stop-link:visited

/* link for an active stop */
af|train::stop-link:active

/* link for an disabled stop */
af|train::stop-link:disabled

/* link for an overflow in disabled state */
af|train::overflow-link:disabled

/* link for an overflow in visited state */
af|train::overflow-link:visited

/* link for an overflow in unvisited state */
af|train::overflow-link:unvisited

------------------------------------------------------------------------------------
                               SAMPLE TRAIN HTML PAGE
           - Shows how the skin selectors will be used in the HTML page
------------------------------------------------------------------------------------

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
  <title>Line example</title>
	<link rel="stylesheet" charset="UTF-8" type="text/css" href="css/trinidadStyles.css"/>
</head>
<body>

<table cellpadding="0" cellspacing="0" border="0" class="af|train">
  <tbody>
    <tr>
      <!-- MARGIN -->
      <td rowspan="2"><div class="af|train::margin-start"><span></span></div></td>

      <!-- PARENT START -->
      <td>
        <table cellpadding="0" cellspacing="0" border="0" width="100%">
          <tbody>
            <tr>
              <td>
                <div class="af|train::parent-start-icon-block">
                  <img src="af|train::parent-start-icon"/>
                </div>
              </td>
            </tr>
          </tbody>
        </table>      
      </td>

      <td><div class="af|train::parent-spacer"><span></span></div></td>
      
      <!-- OVERFLOW START -->
      <td>
        <table cellpadding="0" cellspacing="0" border="0" width="100%">
          <tbody>
            <tr>
              <td width="50%">
                <div class="af|train::join-overflow"><span></span></div>
              </td>
              <td>
                <div class="af|train::overflow-icon-block">
                  <img src="af|train::overflow-start-icon:visited"/>
                </div>
              </td>
              <td width="50%">
                <div class="af|train::join-overflow af|train::join-overflow:visited">
                <span></span></div></td>
            </tr>
          </tbody>
        </table>      
      </td>

      <td><div class="af|train::stop-spacer af|train::join-overflow:visited"><span></span></div></td>
      
      <!-- stop --> 
      <td>
        <table cellpadding="0" cellspacing="0" border="0" width="100%">
          <tbody>
            <tr>
              <td width="50%">
                <div class="af|train::join af|train::join-overflow:visited">
                  <span></span></div></td>
              <td>
                <div class="af|train::stop-icon-block">
                  <img src="af|train::stop-icon:visited"/>
                </div>
              </td>
              <td width="50%">
                <div class="af|train::join af|train::join:visited">
                  <span></span>
                </div>
              </td>
            </tr>
          </tbody>
        </table>      
      </td>

      <!-- spacer -->
      <td>
        <div class="af|train::stop-spacer af|train::join:visited">
          <span></span>
        </div>
      </td>

      <!-- stop --> 
      <td>
        <table cellpadding="0" cellspacing="0" border="0" width="100%">
          <tbody>
            <tr>
              <td width="50%">
                <div class="af|train::join af|train::join:visited">
                  <span></span></div></td>
              <td>
                <div class="af|train::stop-icon-block">
                  <img src="af|train::stop-icon:active"/>
                </div>
              </td>
              <td width="50%">
                <div class="af|train::join af|train::join:unvisited">
                  <span></span>
                </div>
              </td>
            </tr>
          </tbody>
        </table>      
      </td>

      <td>
        <div class="af|train::stop-spacer af|train::join:unvisited">
          <span></span>
        </div>
      </td>

      <!-- stop --> 
      <td>
        <table cellpadding="0" cellspacing="0" border="0" width="100%">
          <tbody>
            <tr>
              <td width="50%">
                <div class="af|train::join af|train::join:unvisited">
                  <span></span></div></td>
              <td>
                <div class="af|train::stop-icon-block">
                  <img src="af|train::stop-icon:unvisited"/>
                </div>
              </td>
              <td width="50%">
                <div class="af|train::join af|train::join:disabled">
                  <span></span>
                </div>
              </td>
            </tr>
          </tbody>
        </table>      
      </td>

      <td><div class="af|train::stop-spacer af|train::join:disabled"><span></span></div></td>

      <!-- stop --> 
      <td>
        <table cellpadding="0" cellspacing="0" border="0" width="100%">
          <tbody>
            <tr>
              <td width="50%">
                <div class="af|train::join af|train::join:disabled">
                  <span></span></div></td>
              <td>
                <div class="af|train::stop-icon-block">
                  <img src="af|train::stop-icon:disabled"/>
                </div>
              </td>
              <td width="50%">
                <div class="af|train::join af|train::join:disabled">
                  <span></span>
                </div>
              </td>
            </tr>
          </tbody>
        </table>      
      </td>

      <td>
        <div class="af|train::stop-spacer af|train::join:disabled">
          <span></span>
        </div>
      </td>

      <!-- stop --> 
      <td>
        <table cellpadding="0" cellspacing="0" border="0" width="100%">
          <tbody>
            <tr>
              <td width="50%">
                <div class="af|train::join af|train::join:disabled">
                  <span></span>
                </div>
              </td>
              <td>
                <div class="af|train::stop-icon-block">
                  <img src="af|train::stop-icon:disabled"/>
                </div>
              </td>
              <td width="50%">
                <div class="af|train::join af|train::join:disabled">
                  <span></span>
                </div>
              </td>
            </tr>
          </tbody>
        </table>      
      </td>

      <td>
        <div class="af|train::stop-spacer af|train::join:disabled">
          <span></span>
        </div>
      </td>

      <!-- stop --> 
      <td>
        <table cellpadding="0" cellspacing="0" border="0" width="100%">
          <tbody>
            <tr>
              <td width="50%">
                <div class="af|train::join af|train::join:disabled">
                  <span></span></div></td>
              <td>
                <div class="af|train::stop-icon-block">
                  <img src="af|train::stop-icon:disabled"/>
                </div>
              </td>
              <td width="50%">
                <div class="af|train::join af|train::join-overflow:disabled">
                  <span></span>
                </div>
              </td>
            </tr>
          </tbody>
        </table>      
      </td>

      <td>
        <div class="af|train::stop-spacer af|train::join-overflow:disabled">
          <span></span>
        </div>
      </td>

      <!-- OVERFLOW END --> 
      <td>
        <table cellpadding="0" cellspacing="0" border="0" width="100%">
          <tbody>
            <tr>
              <td width="50%">
                <div class="af|train::join af|train::join-overflow:disabled">
                  <span></span></div></td>
              <td style="width:1px;">
                <div class="af|train::overflow-icon-block">
                  <img src="af|train::overflow-end-icon:disabled"/>
                </div>
              </td>
              <td width="50%">
                <div class="af|train::join-overflow">
                  <span></span>
                </div>
              </td>
            </tr>
          </tbody>
        </table>      
      </td>

      <td><div class="af|train::parent-spacer"><span></span></div></td>
      
      <!-- PARENT END -->
      <td>
        <table cellpadding="0" cellspacing="0" border="0" width="100%">
          <tbody>
            <tr>
              <td>
                <div class="af|train::parent-end-icon-block">
                  <img src="af|train::parent-end-icon"/>
                </div>
              </td>
            </tr>
          </tbody>
        </table>      
      </td>

      <td rowspan="2"><div class="af|train::margin-end"><span></span></div></td>
    </tr>

    <tr>
      <td>
        <div class="af|train::parent-start-content"></div>
      </td>
      <td></td>
      
      <td>
        <div class="af|train::overflow-start-content">
          <a href="" class="af|train::overflow-link:visited">Previous</a>
        </div>
      </td>
      <td></td>
      
      <td>
        <div class="af|train::stop-content af|train::stop-content:visited">
          <a href="" class="af|train::stop-link 
            af|train::stop-link:visited">stop 1</a>
        </div>
      </td>
      <td></td>
      
      <td>
        <div class="af|train::stop-content af|train::stop-content:active">
          <a href="" class="af|train::stop-link 
            af|train::stop-link:active">stopstopstop 2</a>
        </div>
      </td>
      <td></td>

      <td>
        <div class="af|train::stop-content af|train::stop-content:unvisited">
          <a href="" class="af|train::stop-link 
            af|train::stop-link:unvisited">stop 3</a>
        </div>
      </td>
      <td></td>

      <td>
        <div class="af|train::stop-content af|train::stop-content:disabled">
          <a href="" class="af|train::stop-link 
            af|train::stop-link:disabled">stop 4</a>
        </div>    
      </td>
      <td></td>

      <td>
        <div class="af|train::stop-content af|train::stop-content:disabled">
          <a href="" class="af|train::stop-link 
            af|train::stop-link:disabled">stopstopstop 5</a>
        </div>    
      </td>
      <td></td>

      <td>
        <div class="af|train::stop-content af|train::stop-content:disabled">
          <a href="" class="af|train::stop-link 
            af|train::stop-link:disabled">stopstop 6</a>
        </div>    
      </td>
      <td></td>

      <td>
        <div class="af|train::overflow-end-content">
          <a href="" class="af|train::overflow-link:disabled">More</a>
        </div>
      </td>
      <td></td>
      
      <td>
        <div class="af|train::parent-end-content"></div>
      </td>
      
    </tr>
  </tbody>
</table>

</body>
</html>




- Pavitra

-----Original Message-----
From: Pavitra Subramaniam [mailto:pavitra.subramaniam@oracle.com] 
Sent: Friday, July 28, 2006 6:28 PM
To: adffaces-user@incubator.apache.org
Cc: Simon_Lessard@DMR.CA
Subject: RE: ProcessTrain enhancement

Hello,

I would like to propose an updated set of skin selectors for the processTrain component. Basically I have removed the use of start and end icons for stops and overflows. I also had to introduce new skin hooks for parent process. 

Please review the attached train-skin-selector.rtf and let me know if these hooks are fine. I have not added the rtl cases, but will add them once we agree on the basic ltr list.

I have also attached a sample HTML page (train_trinidad.html) and CSS file (trinidadStyles.css) to demonstrate how these styles will be used. (style names in HTML file has been modified to be compliant with CSS2). 

 - the joins are now background-colors rather than images. This makes it simpler. 
 - the only icons are the stops, overflows and parent train. If the icons are the same dimensions then the HTML works best (otherwise some tweaking is required in CSS).

Thanks
- Pavitra

-----Original Message-----
From: Simon_Lessard@DMR.CA [mailto:Simon_Lessard@DMR.CA]
Sent: Thursday, July 06, 2006 10:32 AM
To: adffaces-user@incubator.apache.org
Subject: Re: ProcessTrain enhancement

next/prev terminology sounds good enough for me.

The hard part using a whole icon for the station is the visual link between the stations around the active station. If you want the link to be of a different color on the visited side than on the unvisited side, splitting the icon become mandatory as the visual link is rendered as a background-image. Of course, it would be possible to use a whole icon for all but the active one. Would that be better?

As for pseudo-class, I'm totally for it.

Finally, for the background-image in the style class instead of the background attribute, it's relatively complex because of the outer edges of the process train since those should not use the background image. Of course I could keep both selector I have currently, that is the base and the -icon. (for example af|processTrain::join-icon:visited and 
af|processTrain::station:visited ) and apply both classes when the
background image is required. Does that sounds good to you?

Regards,

Simon Lessard
Fujitsu Consulting





Jeanne Waldman <je...@oracle.com>
2006-07-06 13:20
Please respond to adffaces-user
 
        To:     adffaces-user@incubator.apache.org
        cc: 
        Subject:        Re: ProcessTrain enhancement


What are 'joints'? I think I had been calling them 'joins'.
I also use the 'next'/'prev' terminology instead of backwards and forwards.

Also, I'd recommend rewriting the simple renderer so that you can use a whole visited icon, a disabled icon, etc, instead of a start visited, an end visited. I know this is how it was in the oracle renderer, which I suspect you are looking at, but I always thought that was ugly.
You could simplify the skinning api a lot if you didn't worry about making it exactly like the oracle skin, where we colored the joining line to the icons. I'd just keep those the same.

A direction we are heading towards is to use pseudo-classes for 'state'. 
We have implemented this for the form controls. For example, when the af:inputText component is in the disabled state, the new skinning key is
this:

af|inputText:disabled {} and the html we render is <span
class="af_inputText p_AFDisabled">
and the css rule is:
af_inputText.p_AFDisabled {}.

This is a fairly new convention, and only the form controls are implemented this way so far, but we want to move in this direction.

So you'd have

af|processTrain::joint-icon:visited, and we'd parse this to be the
af_processTrain_joint-icon_visited, or something like that.


Also, we don't render style classes on the background attribute, as far as 
I know. Instead we render it on the class attribute, and in the style 
class definition, they could set the background-image attribute.



Simon_Lessard@DMR.CA wrote:

>Hello,
>
>I'm currently working to modify the processTrain to accept more skin 
>selectors in order to open all icons provided by Oracle skin. The 
>selectors I plan to add are:
>
>  // processTrain styles used for the disabled links
>  public static final String AF_PROCESS_TRAIN_TEXT_STYLE_CLASS =
>    "af|processTrain::text";
>
>  // For outer margins
>  public static final String AF_PROCESS_TRAIN_MARGIN_START_STYLE_CLASS =
>    "af|processTrain::margin-start";
>  public static final String AF_PROCESS_TRAIN_MARGIN_END_STYLE_CLASS =
>    "af|processTrain::margin-end";
>
>  // For inner spacing
>  public static final String AF_PROCESS_TRAIN_SPACING_STYLE_CLASS =
>    "af|processTrain::step-spacing";
>
>  // For active steps
>  public static final String AF_PROCESS_TRAIN_ACTIVE_START_ICON_NAME = 
>    "af|processTrain::step-active-start-icon";
>  public static final String AF_PROCESS_TRAIN_ACTIVE_END_ICON_NAME = 
>    "af|processTrain::step-active-end-icon";
>
>  // For visited steps
>  public static final String AF_PROCESS_TRAIN_VISITED_START_ICON_NAME = 
>    "af|processTrain::step-visited-start-icon";
>  public static final String AF_PROCESS_TRAIN_VISITED_END_ICON_NAME = 
>    "af|processTrain::step-visited-end-icon";
>
>  // For unvisited steps
>  public static final String AF_PROCESS_TRAIN_UNVISITED_START_ICON_NAME = 

>    "af|processTrain::step-unvisited-start-icon";
>  public static final String AF_PROCESS_TRAIN_UNVISITED_END_ICON_NAME = 
>    "af|processTrain::step-unvisited-end-icon";
>
>  // For disabled steps
>  public static final String AF_PROCESS_TRAIN_DISABLED_START_ICON_NAME = 
>    "af|processTrain::step-disabled-start-icon";
>  public static final String AF_PROCESS_TRAIN_DISABLED_END_ICON_NAME = 
>    "af|processTrain::step-disabled-end-icon";
>
>  // For joints
>  public static final String AF_PROCESS_TRAIN_JOINT_VISITED_ICON_NAME = 
>    "af|processTrain::joint-visited-icon";
>  public static final String AF_PROCESS_TRAIN_JOINT_UNVISITED_ICON_NAME = 

>    "af|processTrain::joint-unvisited-icon";
>
>  // For backward overflows
>  public static final String 
>AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_STYLE_CLASS =
>    "af|processTrain::overflow-backward";
>  public static final String 
>AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_START_ICON_NAME = 
>    "af|processTrain::overflow-backward-start-icon";
>  public static final String 
>AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_END_ICON_NAME = 
>    "af|processTrain::overflow-backward-end-icon";
>
>  // For forward overflows
>  public static final String 
AF_PROCESS_TRAIN_OVERFLOW_FORWARD_STYLE_CLASS 
>=
>    "af|processTrain::overflow-forward";
>  public static final String 
>AF_PROCESS_TRAIN_OVERFLOW_FORWARD_START_ICON_NAME = 
>    "af|processTrain::overflow-forward-start-icon";
>  public static final String 
>AF_PROCESS_TRAIN_OVERFLOW_FORWARD_END_ICON_NAME = 
>    "af|processTrain::overflow-forward-end-icon";
>
>The target HTML structure for the process train in LtR mode is:
>
><table align="center" border="0" cellpadding="0" cellspacing="0" 
>class="af|processTrain">
>  <tbody>
>    <tr>
>      <td class="af|processTrain::margin-start" rowspan="2"></td>
>
>      <td align="right" class="af|processTrain::overflow-backward">
>        <img src="af|processTrain::overflow-backward-start-icon" 
>title="%step-label%" alt="%step-label% : previous set"/>
>      </td>
>      <td background="af|processTrain::joint-visited-icon" align="left" 
>class="af|processTrain::overflow-backward>
>        <img src="af|processTrain::overflow-backward-end-icon" alt="">
>      </td>
>
>      <td background="af|processTrain::joint-visited-icon" class="
>af|processTrain::step-spacing"></td>
>
>      <td background="af|processTrain::joint-visited-icon" align="right" 
>class="af|processTrain::step-visited">
>        <img src="af|processTrain::step-visited-start-icon" 
>title="%step-label%" alt="%step-label% : previous step"/>
>      </td>
>      <td background="af|processTrain::joint-visited-icon" align="left" 
>class="af|processTrain::step-visited">
>        <img src="af|processTrain::step-visited-end-icon" alt="">
>      </td>
>
>      <td background="af|processTrain::joint-visited-icon" class="
>af|processTrain::step-spacing"></td>
>
>      <td background="af|processTrain::joint-visited-icon" align="right" 
>class="af|processTrain::step-active">
>        <img src="af|processTrain::step-active-start-icon" 
>title="%step-label%" alt="%step-label% : active step"/>
>      </td>
>      <td background="af|processTrain::joint-unvisited-icon" align="left" 

>class="af|processTrain::step-active">
>        <img src="af|processTrain::step-active-end-icon" alt="">
>      </td>
>
>      <td background="af|processTrain::joint-unvisited-icon" class="
>af|processTrain::step-spacing"></td>
>
>      <td background="af|processTrain::joint-unvisited-icon" 
align="right" 
>class="af|processTrain::step-unvisited">
>        <img src="af|processTrain::step-unvisited-start-icon" 
>title="%step-label%" alt="%step-label% : next step"/>
>      </td>
>      <td background="af|processTrain::joint-unvisited-icon" align="left" 

>class="af|processTrain::step-unvisited">
>        <img src="af|processTrain::step-unvisited-end-icon" alt="">
>      </td>
>
>      <td background="af|processTrain::joint-unvisited-icon" class="
>af|processTrain::step-spacing"></td>
>
>      <td background="af|processTrain::joint-unvisited-icon" 
align="right" 
>class="af|processTrain::overflow-forward">
>        <img src="af|processTrain::overflow-forward-start-icon" 
>title="%step-label%" alt="%step-label% : next set"/>
>      </td>
>      <td align="left" class="af|processTrain::overflow-forward">
>        <img src="af|processTrain::overflow-forward-end-icon" alt="">
>      </td>
>
>      <td class="af|processTrain::margin-end" rowspan="2"></td>
>    </tr>
>    <tr>
>      <td colspan="2" class="af|processTrain::overflow-backward">
>        <a class="af|processTrain::link">%step-label%</a>
>      </td>
>      <td colspan="2" class="af|processTrain::step-visited">
>        <a class="af|processTrain::link">%step-label%</a>
>      </td>
>      <td colspan="2" class="af|processTrain::step-active">
>        <a class="af|processTrain::link">%step-label%</a>
>      </td>
>      <td colspan="2" class="af|processTrain::step-unvisited">
>        <a class="af|processTrain::text">%step-label%</a>
>      </td>
>      <td colspan="2" class="af|processTrain::overflow-forward">
>        <a class="af|processTrain::text">%step-label%</a>
>      </td>
>    </tr>
>  </tbody>
></table>
>
>Is that ok with you?
>
>Simon Lessard
>DMR Conseil Inc. (http://www.dmrconseil.ca)
>Téléphone : (418) 653-6881
>
>Sun Certified Programmer for Java 2 Platform 1.4
> 
>






RE: ProcessTrain enhancement

Posted by Pavitra Subramaniam <pa...@oracle.com>.
Hello,

I would like to propose an updated set of skin selectors for the processTrain component. Basically I have removed the use of start and end icons for stops and overflows. I also had to introduce new skin hooks for parent process. 

Please review the attached train-skin-selector.rtf and let me know if these hooks are fine. I have not added the rtl cases, but will add them once we agree on the basic ltr list.

I have also attached a sample HTML page (train_trinidad.html) and CSS file (trinidadStyles.css) to demonstrate how these styles will be used. (style names in HTML file has been modified to be compliant with CSS2). 

 - the joins are now background-colors rather than images. This makes it simpler. 
 - the only icons are the stops, overflows and parent train. If the icons are the same dimensions then the HTML works best (otherwise some tweaking is required in CSS).

Thanks
- Pavitra

-----Original Message-----
From: Simon_Lessard@DMR.CA [mailto:Simon_Lessard@DMR.CA] 
Sent: Thursday, July 06, 2006 10:32 AM
To: adffaces-user@incubator.apache.org
Subject: Re: ProcessTrain enhancement

next/prev terminology sounds good enough for me.

The hard part using a whole icon for the station is the visual link between the stations around the active station. If you want the link to be of a different color on the visited side than on the unvisited side, splitting the icon become mandatory as the visual link is rendered as a background-image. Of course, it would be possible to use a whole icon for all but the active one. Would that be better?

As for pseudo-class, I'm totally for it.

Finally, for the background-image in the style class instead of the background attribute, it's relatively complex because of the outer edges of the process train since those should not use the background image. Of course I could keep both selector I have currently, that is the base and the -icon. (for example af|processTrain::join-icon:visited and 
af|processTrain::station:visited ) and apply both classes when the
background image is required. Does that sounds good to you?

Regards,

Simon Lessard
Fujitsu Consulting





Jeanne Waldman <je...@oracle.com>
2006-07-06 13:20
Please respond to adffaces-user
 
        To:     adffaces-user@incubator.apache.org
        cc: 
        Subject:        Re: ProcessTrain enhancement


What are 'joints'? I think I had been calling them 'joins'.
I also use the 'next'/'prev' terminology instead of backwards and 
forwards.

Also, I'd recommend rewriting the simple renderer so that you can use a 
whole visited icon, a disabled icon, etc, instead of a start visited, an 
end visited. I know this is how it was in the oracle renderer, which I 
suspect you are looking at, but I always thought that was ugly.
You could simplify the skinning api a lot if you didn't worry about 
making it exactly like the oracle skin, where we colored the joining 
line to the icons. I'd just keep those the same.

A direction we are heading towards is to use pseudo-classes for 'state'. 
We have implemented this for the form controls. For example, when the 
af:inputText component is in the disabled state, the new skinning key is 
this:

af|inputText:disabled {} and the html we render is <span 
class="af_inputText p_AFDisabled">
and the css rule is:
af_inputText.p_AFDisabled {}.

This is a fairly new convention, and only the form controls are 
implemented this way so far, but we want to move in this direction.

So you'd have

af|processTrain::joint-icon:visited, and we'd parse this to be the 
af_processTrain_joint-icon_visited, or something like that.


Also, we don't render style classes on the background attribute, as far as 
I know. Instead we render it on the class attribute, and in the style 
class definition, they could set the background-image attribute.



Simon_Lessard@DMR.CA wrote:

>Hello,
>
>I'm currently working to modify the processTrain to accept more skin 
>selectors in order to open all icons provided by Oracle skin. The 
>selectors I plan to add are:
>
>  // processTrain styles used for the disabled links
>  public static final String AF_PROCESS_TRAIN_TEXT_STYLE_CLASS =
>    "af|processTrain::text";
>
>  // For outer margins
>  public static final String AF_PROCESS_TRAIN_MARGIN_START_STYLE_CLASS =
>    "af|processTrain::margin-start";
>  public static final String AF_PROCESS_TRAIN_MARGIN_END_STYLE_CLASS =
>    "af|processTrain::margin-end";
>
>  // For inner spacing
>  public static final String AF_PROCESS_TRAIN_SPACING_STYLE_CLASS =
>    "af|processTrain::step-spacing";
>
>  // For active steps
>  public static final String AF_PROCESS_TRAIN_ACTIVE_START_ICON_NAME = 
>    "af|processTrain::step-active-start-icon";
>  public static final String AF_PROCESS_TRAIN_ACTIVE_END_ICON_NAME = 
>    "af|processTrain::step-active-end-icon";
>
>  // For visited steps
>  public static final String AF_PROCESS_TRAIN_VISITED_START_ICON_NAME = 
>    "af|processTrain::step-visited-start-icon";
>  public static final String AF_PROCESS_TRAIN_VISITED_END_ICON_NAME = 
>    "af|processTrain::step-visited-end-icon";
>
>  // For unvisited steps
>  public static final String AF_PROCESS_TRAIN_UNVISITED_START_ICON_NAME = 

>    "af|processTrain::step-unvisited-start-icon";
>  public static final String AF_PROCESS_TRAIN_UNVISITED_END_ICON_NAME = 
>    "af|processTrain::step-unvisited-end-icon";
>
>  // For disabled steps
>  public static final String AF_PROCESS_TRAIN_DISABLED_START_ICON_NAME = 
>    "af|processTrain::step-disabled-start-icon";
>  public static final String AF_PROCESS_TRAIN_DISABLED_END_ICON_NAME = 
>    "af|processTrain::step-disabled-end-icon";
>
>  // For joints
>  public static final String AF_PROCESS_TRAIN_JOINT_VISITED_ICON_NAME = 
>    "af|processTrain::joint-visited-icon";
>  public static final String AF_PROCESS_TRAIN_JOINT_UNVISITED_ICON_NAME = 

>    "af|processTrain::joint-unvisited-icon";
>
>  // For backward overflows
>  public static final String 
>AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_STYLE_CLASS =
>    "af|processTrain::overflow-backward";
>  public static final String 
>AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_START_ICON_NAME = 
>    "af|processTrain::overflow-backward-start-icon";
>  public static final String 
>AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_END_ICON_NAME = 
>    "af|processTrain::overflow-backward-end-icon";
>
>  // For forward overflows
>  public static final String 
AF_PROCESS_TRAIN_OVERFLOW_FORWARD_STYLE_CLASS 
>=
>    "af|processTrain::overflow-forward";
>  public static final String 
>AF_PROCESS_TRAIN_OVERFLOW_FORWARD_START_ICON_NAME = 
>    "af|processTrain::overflow-forward-start-icon";
>  public static final String 
>AF_PROCESS_TRAIN_OVERFLOW_FORWARD_END_ICON_NAME = 
>    "af|processTrain::overflow-forward-end-icon";
>
>The target HTML structure for the process train in LtR mode is:
>
><table align="center" border="0" cellpadding="0" cellspacing="0" 
>class="af|processTrain">
>  <tbody>
>    <tr>
>      <td class="af|processTrain::margin-start" rowspan="2"></td>
>
>      <td align="right" class="af|processTrain::overflow-backward">
>        <img src="af|processTrain::overflow-backward-start-icon" 
>title="%step-label%" alt="%step-label% : previous set"/>
>      </td>
>      <td background="af|processTrain::joint-visited-icon" align="left" 
>class="af|processTrain::overflow-backward>
>        <img src="af|processTrain::overflow-backward-end-icon" alt="">
>      </td>
>
>      <td background="af|processTrain::joint-visited-icon" class="
>af|processTrain::step-spacing"></td>
>
>      <td background="af|processTrain::joint-visited-icon" align="right" 
>class="af|processTrain::step-visited">
>        <img src="af|processTrain::step-visited-start-icon" 
>title="%step-label%" alt="%step-label% : previous step"/>
>      </td>
>      <td background="af|processTrain::joint-visited-icon" align="left" 
>class="af|processTrain::step-visited">
>        <img src="af|processTrain::step-visited-end-icon" alt="">
>      </td>
>
>      <td background="af|processTrain::joint-visited-icon" class="
>af|processTrain::step-spacing"></td>
>
>      <td background="af|processTrain::joint-visited-icon" align="right" 
>class="af|processTrain::step-active">
>        <img src="af|processTrain::step-active-start-icon" 
>title="%step-label%" alt="%step-label% : active step"/>
>      </td>
>      <td background="af|processTrain::joint-unvisited-icon" align="left" 

>class="af|processTrain::step-active">
>        <img src="af|processTrain::step-active-end-icon" alt="">
>      </td>
>
>      <td background="af|processTrain::joint-unvisited-icon" class="
>af|processTrain::step-spacing"></td>
>
>      <td background="af|processTrain::joint-unvisited-icon" 
align="right" 
>class="af|processTrain::step-unvisited">
>        <img src="af|processTrain::step-unvisited-start-icon" 
>title="%step-label%" alt="%step-label% : next step"/>
>      </td>
>      <td background="af|processTrain::joint-unvisited-icon" align="left" 

>class="af|processTrain::step-unvisited">
>        <img src="af|processTrain::step-unvisited-end-icon" alt="">
>      </td>
>
>      <td background="af|processTrain::joint-unvisited-icon" class="
>af|processTrain::step-spacing"></td>
>
>      <td background="af|processTrain::joint-unvisited-icon" 
align="right" 
>class="af|processTrain::overflow-forward">
>        <img src="af|processTrain::overflow-forward-start-icon" 
>title="%step-label%" alt="%step-label% : next set"/>
>      </td>
>      <td align="left" class="af|processTrain::overflow-forward">
>        <img src="af|processTrain::overflow-forward-end-icon" alt="">
>      </td>
>
>      <td class="af|processTrain::margin-end" rowspan="2"></td>
>    </tr>
>    <tr>
>      <td colspan="2" class="af|processTrain::overflow-backward">
>        <a class="af|processTrain::link">%step-label%</a>
>      </td>
>      <td colspan="2" class="af|processTrain::step-visited">
>        <a class="af|processTrain::link">%step-label%</a>
>      </td>
>      <td colspan="2" class="af|processTrain::step-active">
>        <a class="af|processTrain::link">%step-label%</a>
>      </td>
>      <td colspan="2" class="af|processTrain::step-unvisited">
>        <a class="af|processTrain::text">%step-label%</a>
>      </td>
>      <td colspan="2" class="af|processTrain::overflow-forward">
>        <a class="af|processTrain::text">%step-label%</a>
>      </td>
>    </tr>
>  </tbody>
></table>
>
>Is that ok with you?
>
>Simon Lessard
>DMR Conseil Inc. (http://www.dmrconseil.ca)
>Téléphone : (418) 653-6881
>
>Sun Certified Programmer for Java 2 Platform 1.4
> 
>




Re: ProcessTrain enhancement

Posted by Si...@DMR.CA.
next/prev terminology sounds good enough for me.

The hard part using a whole icon for the station is the visual link 
between the stations around the active station. If you want the link to be 
of a different color on the visited side than on the unvisited side, 
splitting the icon become mandatory as the visual link is rendered as a 
background-image. Of course, it would be possible to use a whole icon for 
all but the active one. Would that be better?

As for pseudo-class, I'm totally for it.

Finally, for the background-image in the style class instead of the 
background attribute, it's relatively complex because of the outer edges 
of the process train since those should not use the background image. Of 
course I could keep both selector I have currently, that is the base and 
the -icon. (for example af|processTrain::join-icon:visited and 
af|processTrain::station:visited ) and apply both classes when the 
background image is required. Does that sounds good to you?

Regards,

Simon Lessard
Fujitsu Consulting





Jeanne Waldman <je...@oracle.com>
2006-07-06 13:20
Please respond to adffaces-user
 
        To:     adffaces-user@incubator.apache.org
        cc: 
        Subject:        Re: ProcessTrain enhancement


What are 'joints'? I think I had been calling them 'joins'.
I also use the 'next'/'prev' terminology instead of backwards and 
forwards.

Also, I'd recommend rewriting the simple renderer so that you can use a 
whole visited icon, a disabled icon, etc, instead of a start visited, an 
end visited. I know this is how it was in the oracle renderer, which I 
suspect you are looking at, but I always thought that was ugly.
You could simplify the skinning api a lot if you didn't worry about 
making it exactly like the oracle skin, where we colored the joining 
line to the icons. I'd just keep those the same.

A direction we are heading towards is to use pseudo-classes for 'state'. 
We have implemented this for the form controls. For example, when the 
af:inputText component is in the disabled state, the new skinning key is 
this:

af|inputText:disabled {} and the html we render is <span 
class="af_inputText p_AFDisabled">
and the css rule is:
af_inputText.p_AFDisabled {}.

This is a fairly new convention, and only the form controls are 
implemented this way so far, but we want to move in this direction.

So you'd have

af|processTrain::joint-icon:visited, and we'd parse this to be the 
af_processTrain_joint-icon_visited, or something like that.


Also, we don't render style classes on the background attribute, as far as 
I know. Instead we render it on the class attribute, and in the style 
class definition, they could set the background-image attribute.



Simon_Lessard@DMR.CA wrote:

>Hello,
>
>I'm currently working to modify the processTrain to accept more skin 
>selectors in order to open all icons provided by Oracle skin. The 
>selectors I plan to add are:
>
>  // processTrain styles used for the disabled links
>  public static final String AF_PROCESS_TRAIN_TEXT_STYLE_CLASS =
>    "af|processTrain::text";
>
>  // For outer margins
>  public static final String AF_PROCESS_TRAIN_MARGIN_START_STYLE_CLASS =
>    "af|processTrain::margin-start";
>  public static final String AF_PROCESS_TRAIN_MARGIN_END_STYLE_CLASS =
>    "af|processTrain::margin-end";
>
>  // For inner spacing
>  public static final String AF_PROCESS_TRAIN_SPACING_STYLE_CLASS =
>    "af|processTrain::step-spacing";
>
>  // For active steps
>  public static final String AF_PROCESS_TRAIN_ACTIVE_START_ICON_NAME = 
>    "af|processTrain::step-active-start-icon";
>  public static final String AF_PROCESS_TRAIN_ACTIVE_END_ICON_NAME = 
>    "af|processTrain::step-active-end-icon";
>
>  // For visited steps
>  public static final String AF_PROCESS_TRAIN_VISITED_START_ICON_NAME = 
>    "af|processTrain::step-visited-start-icon";
>  public static final String AF_PROCESS_TRAIN_VISITED_END_ICON_NAME = 
>    "af|processTrain::step-visited-end-icon";
>
>  // For unvisited steps
>  public static final String AF_PROCESS_TRAIN_UNVISITED_START_ICON_NAME = 

>    "af|processTrain::step-unvisited-start-icon";
>  public static final String AF_PROCESS_TRAIN_UNVISITED_END_ICON_NAME = 
>    "af|processTrain::step-unvisited-end-icon";
>
>  // For disabled steps
>  public static final String AF_PROCESS_TRAIN_DISABLED_START_ICON_NAME = 
>    "af|processTrain::step-disabled-start-icon";
>  public static final String AF_PROCESS_TRAIN_DISABLED_END_ICON_NAME = 
>    "af|processTrain::step-disabled-end-icon";
>
>  // For joints
>  public static final String AF_PROCESS_TRAIN_JOINT_VISITED_ICON_NAME = 
>    "af|processTrain::joint-visited-icon";
>  public static final String AF_PROCESS_TRAIN_JOINT_UNVISITED_ICON_NAME = 

>    "af|processTrain::joint-unvisited-icon";
>
>  // For backward overflows
>  public static final String 
>AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_STYLE_CLASS =
>    "af|processTrain::overflow-backward";
>  public static final String 
>AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_START_ICON_NAME = 
>    "af|processTrain::overflow-backward-start-icon";
>  public static final String 
>AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_END_ICON_NAME = 
>    "af|processTrain::overflow-backward-end-icon";
>
>  // For forward overflows
>  public static final String 
AF_PROCESS_TRAIN_OVERFLOW_FORWARD_STYLE_CLASS 
>=
>    "af|processTrain::overflow-forward";
>  public static final String 
>AF_PROCESS_TRAIN_OVERFLOW_FORWARD_START_ICON_NAME = 
>    "af|processTrain::overflow-forward-start-icon";
>  public static final String 
>AF_PROCESS_TRAIN_OVERFLOW_FORWARD_END_ICON_NAME = 
>    "af|processTrain::overflow-forward-end-icon";
>
>The target HTML structure for the process train in LtR mode is:
>
><table align="center" border="0" cellpadding="0" cellspacing="0" 
>class="af|processTrain">
>  <tbody>
>    <tr>
>      <td class="af|processTrain::margin-start" rowspan="2"></td>
>
>      <td align="right" class="af|processTrain::overflow-backward">
>        <img src="af|processTrain::overflow-backward-start-icon" 
>title="%step-label%" alt="%step-label% : previous set"/>
>      </td>
>      <td background="af|processTrain::joint-visited-icon" align="left" 
>class="af|processTrain::overflow-backward>
>        <img src="af|processTrain::overflow-backward-end-icon" alt="">
>      </td>
>
>      <td background="af|processTrain::joint-visited-icon" class="
>af|processTrain::step-spacing"></td>
>
>      <td background="af|processTrain::joint-visited-icon" align="right" 
>class="af|processTrain::step-visited">
>        <img src="af|processTrain::step-visited-start-icon" 
>title="%step-label%" alt="%step-label% : previous step"/>
>      </td>
>      <td background="af|processTrain::joint-visited-icon" align="left" 
>class="af|processTrain::step-visited">
>        <img src="af|processTrain::step-visited-end-icon" alt="">
>      </td>
>
>      <td background="af|processTrain::joint-visited-icon" class="
>af|processTrain::step-spacing"></td>
>
>      <td background="af|processTrain::joint-visited-icon" align="right" 
>class="af|processTrain::step-active">
>        <img src="af|processTrain::step-active-start-icon" 
>title="%step-label%" alt="%step-label% : active step"/>
>      </td>
>      <td background="af|processTrain::joint-unvisited-icon" align="left" 

>class="af|processTrain::step-active">
>        <img src="af|processTrain::step-active-end-icon" alt="">
>      </td>
>
>      <td background="af|processTrain::joint-unvisited-icon" class="
>af|processTrain::step-spacing"></td>
>
>      <td background="af|processTrain::joint-unvisited-icon" 
align="right" 
>class="af|processTrain::step-unvisited">
>        <img src="af|processTrain::step-unvisited-start-icon" 
>title="%step-label%" alt="%step-label% : next step"/>
>      </td>
>      <td background="af|processTrain::joint-unvisited-icon" align="left" 

>class="af|processTrain::step-unvisited">
>        <img src="af|processTrain::step-unvisited-end-icon" alt="">
>      </td>
>
>      <td background="af|processTrain::joint-unvisited-icon" class="
>af|processTrain::step-spacing"></td>
>
>      <td background="af|processTrain::joint-unvisited-icon" 
align="right" 
>class="af|processTrain::overflow-forward">
>        <img src="af|processTrain::overflow-forward-start-icon" 
>title="%step-label%" alt="%step-label% : next set"/>
>      </td>
>      <td align="left" class="af|processTrain::overflow-forward">
>        <img src="af|processTrain::overflow-forward-end-icon" alt="">
>      </td>
>
>      <td class="af|processTrain::margin-end" rowspan="2"></td>
>    </tr>
>    <tr>
>      <td colspan="2" class="af|processTrain::overflow-backward">
>        <a class="af|processTrain::link">%step-label%</a>
>      </td>
>      <td colspan="2" class="af|processTrain::step-visited">
>        <a class="af|processTrain::link">%step-label%</a>
>      </td>
>      <td colspan="2" class="af|processTrain::step-active">
>        <a class="af|processTrain::link">%step-label%</a>
>      </td>
>      <td colspan="2" class="af|processTrain::step-unvisited">
>        <a class="af|processTrain::text">%step-label%</a>
>      </td>
>      <td colspan="2" class="af|processTrain::overflow-forward">
>        <a class="af|processTrain::text">%step-label%</a>
>      </td>
>    </tr>
>  </tbody>
></table>
>
>Is that ok with you?
>
>Simon Lessard
>DMR Conseil Inc. (http://www.dmrconseil.ca)
>Téléphone : (418) 653-6881
>
>Sun Certified Programmer for Java 2 Platform 1.4
> 
>



Re: ProcessTrain enhancement

Posted by Jeanne Waldman <je...@oracle.com>.
What are 'joints'? I think I had been calling them 'joins'.
I also use the 'next'/'prev' terminology instead of backwards and forwards.

Also, I'd recommend rewriting the simple renderer so that you can use a 
whole visited icon, a disabled icon, etc, instead of a start visited, an 
end visited. I know this is how it was in the oracle renderer, which I 
suspect you are looking at, but I always thought that was ugly.
You could simplify the skinning api a lot if you didn't worry about 
making it exactly like the oracle skin, where we colored the joining 
line to the icons. I'd just keep those the same.

A direction we are heading towards is to use pseudo-classes for 'state'. 
We have implemented this for the form controls. For example, when the 
af:inputText component is in the disabled state, the new skinning key is 
this:

af|inputText:disabled {} and the html we render is <span 
class="af_inputText p_AFDisabled">
and the css rule is:
af_inputText.p_AFDisabled {}.

This is a fairly new convention, and only the form controls are 
implemented this way so far, but we want to move in this direction.

So you'd have

af|processTrain::joint-icon:visited, and we'd parse this to be the af_processTrain_joint-icon_visited, or something like that.


Also, we don't render style classes on the background attribute, as far as I know. Instead we render it on the class attribute, and in the style class definition, they could set the background-image attribute.



Simon_Lessard@DMR.CA wrote:

>Hello,
>
>I'm currently working to modify the processTrain to accept more skin 
>selectors in order to open all icons provided by Oracle skin. The 
>selectors I plan to add are:
>
>  // processTrain styles used for the disabled links
>  public static final String AF_PROCESS_TRAIN_TEXT_STYLE_CLASS =
>    "af|processTrain::text";
>
>  // For outer margins
>  public static final String AF_PROCESS_TRAIN_MARGIN_START_STYLE_CLASS =
>    "af|processTrain::margin-start";
>  public static final String AF_PROCESS_TRAIN_MARGIN_END_STYLE_CLASS =
>    "af|processTrain::margin-end";
>
>  // For inner spacing
>  public static final String AF_PROCESS_TRAIN_SPACING_STYLE_CLASS =
>    "af|processTrain::step-spacing";
>
>  // For active steps
>  public static final String AF_PROCESS_TRAIN_ACTIVE_START_ICON_NAME = 
>    "af|processTrain::step-active-start-icon";
>  public static final String AF_PROCESS_TRAIN_ACTIVE_END_ICON_NAME = 
>    "af|processTrain::step-active-end-icon";
>
>  // For visited steps
>  public static final String AF_PROCESS_TRAIN_VISITED_START_ICON_NAME = 
>    "af|processTrain::step-visited-start-icon";
>  public static final String AF_PROCESS_TRAIN_VISITED_END_ICON_NAME = 
>    "af|processTrain::step-visited-end-icon";
>
>  // For unvisited steps
>  public static final String AF_PROCESS_TRAIN_UNVISITED_START_ICON_NAME = 
>    "af|processTrain::step-unvisited-start-icon";
>  public static final String AF_PROCESS_TRAIN_UNVISITED_END_ICON_NAME = 
>    "af|processTrain::step-unvisited-end-icon";
>
>  // For disabled steps
>  public static final String AF_PROCESS_TRAIN_DISABLED_START_ICON_NAME = 
>    "af|processTrain::step-disabled-start-icon";
>  public static final String AF_PROCESS_TRAIN_DISABLED_END_ICON_NAME = 
>    "af|processTrain::step-disabled-end-icon";
>
>  // For joints
>  public static final String AF_PROCESS_TRAIN_JOINT_VISITED_ICON_NAME = 
>    "af|processTrain::joint-visited-icon";
>  public static final String AF_PROCESS_TRAIN_JOINT_UNVISITED_ICON_NAME = 
>    "af|processTrain::joint-unvisited-icon";
>
>  // For backward overflows
>  public static final String 
>AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_STYLE_CLASS =
>    "af|processTrain::overflow-backward";
>  public static final String 
>AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_START_ICON_NAME = 
>    "af|processTrain::overflow-backward-start-icon";
>  public static final String 
>AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_END_ICON_NAME = 
>    "af|processTrain::overflow-backward-end-icon";
>
>  // For forward overflows
>  public static final String AF_PROCESS_TRAIN_OVERFLOW_FORWARD_STYLE_CLASS 
>=
>    "af|processTrain::overflow-forward";
>  public static final String 
>AF_PROCESS_TRAIN_OVERFLOW_FORWARD_START_ICON_NAME = 
>    "af|processTrain::overflow-forward-start-icon";
>  public static final String 
>AF_PROCESS_TRAIN_OVERFLOW_FORWARD_END_ICON_NAME = 
>    "af|processTrain::overflow-forward-end-icon";
>
>The target HTML structure for the process train in LtR mode is:
>
><table align="center" border="0" cellpadding="0" cellspacing="0" 
>class="af|processTrain">
>  <tbody>
>    <tr>
>      <td class="af|processTrain::margin-start" rowspan="2"></td>
>
>      <td align="right" class="af|processTrain::overflow-backward">
>        <img src="af|processTrain::overflow-backward-start-icon" 
>title="%step-label%" alt="%step-label% : previous set"/>
>      </td>
>      <td background="af|processTrain::joint-visited-icon" align="left" 
>class="af|processTrain::overflow-backward>
>        <img src="af|processTrain::overflow-backward-end-icon" alt="">
>      </td>
>
>      <td background="af|processTrain::joint-visited-icon" class="
>af|processTrain::step-spacing"></td>
>
>      <td background="af|processTrain::joint-visited-icon" align="right" 
>class="af|processTrain::step-visited">
>        <img src="af|processTrain::step-visited-start-icon" 
>title="%step-label%" alt="%step-label% : previous step"/>
>      </td>
>      <td background="af|processTrain::joint-visited-icon" align="left" 
>class="af|processTrain::step-visited">
>        <img src="af|processTrain::step-visited-end-icon" alt="">
>      </td>
>
>      <td background="af|processTrain::joint-visited-icon" class="
>af|processTrain::step-spacing"></td>
>
>      <td background="af|processTrain::joint-visited-icon" align="right" 
>class="af|processTrain::step-active">
>        <img src="af|processTrain::step-active-start-icon" 
>title="%step-label%" alt="%step-label% : active step"/>
>      </td>
>      <td background="af|processTrain::joint-unvisited-icon" align="left" 
>class="af|processTrain::step-active">
>        <img src="af|processTrain::step-active-end-icon" alt="">
>      </td>
>
>      <td background="af|processTrain::joint-unvisited-icon" class="
>af|processTrain::step-spacing"></td>
>
>      <td background="af|processTrain::joint-unvisited-icon" align="right" 
>class="af|processTrain::step-unvisited">
>        <img src="af|processTrain::step-unvisited-start-icon" 
>title="%step-label%" alt="%step-label% : next step"/>
>      </td>
>      <td background="af|processTrain::joint-unvisited-icon" align="left" 
>class="af|processTrain::step-unvisited">
>        <img src="af|processTrain::step-unvisited-end-icon" alt="">
>      </td>
>
>      <td background="af|processTrain::joint-unvisited-icon" class="
>af|processTrain::step-spacing"></td>
>
>      <td background="af|processTrain::joint-unvisited-icon" align="right" 
>class="af|processTrain::overflow-forward">
>        <img src="af|processTrain::overflow-forward-start-icon" 
>title="%step-label%" alt="%step-label% : next set"/>
>      </td>
>      <td align="left" class="af|processTrain::overflow-forward">
>        <img src="af|processTrain::overflow-forward-end-icon" alt="">
>      </td>
>
>      <td class="af|processTrain::margin-end" rowspan="2"></td>
>    </tr>
>    <tr>
>      <td colspan="2" class="af|processTrain::overflow-backward">
>        <a class="af|processTrain::link">%step-label%</a>
>      </td>
>      <td colspan="2" class="af|processTrain::step-visited">
>        <a class="af|processTrain::link">%step-label%</a>
>      </td>
>      <td colspan="2" class="af|processTrain::step-active">
>        <a class="af|processTrain::link">%step-label%</a>
>      </td>
>      <td colspan="2" class="af|processTrain::step-unvisited">
>        <a class="af|processTrain::text">%step-label%</a>
>      </td>
>      <td colspan="2" class="af|processTrain::overflow-forward">
>        <a class="af|processTrain::text">%step-label%</a>
>      </td>
>    </tr>
>  </tbody>
></table>
>
>Is that ok with you?
>
>Simon Lessard
>DMR Conseil Inc. (http://www.dmrconseil.ca)
>Téléphone : (418) 653-6881
>
>Sun Certified Programmer for Java 2 Platform 1.4
>  
>


Re: Coding conventions

Posted by Matthias Wessendorf <ma...@apache.org>.
> "Oh no, someone has changed the conventions again!" ;)

well, we can *track* that changes... so have in mind, that we observe that.
:))


-- 
Matthias Wessendorf

futher stuff:
blog: http://jroller.com/page/mwessendorf
mail: mwessendorf-at-gmail-dot-com

Re: Coding conventions

Posted by Cosma Colanicchia <co...@gmail.com>.
2006/7/7, Matthias Wessendorf <ma...@apache.org>:

>
> feel free to add/change content
>

"Oh no, someone has changed the conventions again!" ;)

Re: Coding conventions

Posted by Matthias Wessendorf <ma...@apache.org>.
http://wiki.apache.org/myfaces/coding

feel free to add/change content

On 7/7/06, Matthias Wessendorf <ma...@apache.org> wrote:
> done
>
> On 7/7/06, Matthias Wessendorf <ma...@apache.org> wrote:
> > no, not yet.
> >
> > but I do later
> >
> > On 7/7/06, Pavitra Subramaniam <pa...@oracle.com> wrote:
> > > Matthias,
> > > Have you already added the items here to our WIKI?
> > >
> > > Thanks
> > > - Pavitra
> > >
> > > -----Original Message-----
> > > From: mwessendorf@gmail.com [mailto:mwessendorf@gmail.com] On Behalf Of Matthias Wessendorf
> > > Sent: Thursday, July 06, 2006 9:16 AM
> > > To: adffaces-user@incubator.apache.org
> > > Subject: Re: Coding conventions
> > >
> > > yes
> > >
> > > On 7/6/06, Adam Winer <aw...@gmail.com> wrote:
> > > > On 7/6/06, Simon_Lessard@dmr.ca <Si...@dmr.ca> wrote:
> > > > >
> > > > > Hello,
> > > > >
> > > > > Do we have a section on the site about the coding conventions we're
> > > > > supposed to follow? Currently ADF Faces seems to use the following:
> > > > >
> > > > > Private members and methods use underscore (_) prefix ;
> > > >
> > > >
> > > > Yes.  In addition, package-private use double underscore prefixes.
> > > > This is intentionally ugly;  we strongly discourage the use of
> > > > package-private access, and in general recommend everything receive
> > > > the most limited access possible.
> > > >
> > > > Constants are imported using implements on a contant interface
> > > > (Shouldn't
> > > > > we use fully qualified name or static imports instead?) ;
> > > >
> > > >
> > > > This isn't a standard as such;  it was a common coding practice (esp.
> > > > UIConstants), but we're moving away from it.
> > > >
> > > > Constants and attributes are defined at the end of the class files,
> > > > after
> > > > > methods ;
> > > >
> > > >
> > > > Yep.
> > > >
> > > > Constant names are in uppercase, with each words separated with an
> > > > > underscore (standard rule) ;
> > > >
> > > >
> > > >
> > > > Yep.
> > > >
> > > > Method and variable names are in lowercase except for the first letter
> > > > of
> > > > > every word after the first forming them that should be in uppercase
> > > > > ;
> > > >
> > > >
> > > > Yep.
> > > >
> > > >
> > > > Methods don't seem to appear in any specific order (any rule on this?)
> > > > ;
> > > >
> > > >
> > > >
> > > > They're *supposed* to go:  constructor, public, protected, package, private.
> > > > We've been lax in enforcing that.
> > > >
> > > > Asbtract classes does not seems to be used much, instead they provide
> > > > a
> > > > > protected method with a dummy behavior to be overridden ;
> > > >
> > > >
> > > > It varies;  it's used here and there.
> > > >
> > > > Generics are used, but not always (should we convert every classes we
> > > > see
> > > > > to use them?) ;
> > > >
> > > >
> > > > It started as a JDK 1.2 codebase, so not used all over the place.
> > > > We're converting piece-by-piece.
> > > >
> > > >
> > > > > @SuppressWarning("unchecked") is not used (should we start using
> > > > > this when converting to generics is not an option? Eclipse whine
> > > > > much for some classes because of this).
> > > >
> > > >
> > > > Happy to have it used where necessary.  Ditto @Override.  (Again, it
> > > > wasn't a Java 5.0 codebase 'til relatively recently.)
> > > >
> > > > Is there any other rule to follow?
> > > >
> > > >
> > > > Some obvious ones - no calls to System.out/err.println, don't discard
> > > > exceptions (unless it's entirely intentional - log them instead).
> > > > Also,
> > > > 2 space indent, no use of tabs allowed at all.  I'm sure I'll think of
> > > > others.
> > > >
> > > > Can someone wikify this?
> > > >
> > > > Thanks,
> > > > Adam
> > > >
> > > >
> > >
> > >
> > > --
> > > Matthias Wessendorf
> > >
> > > futher stuff:
> > > blog: http://jroller.com/page/mwessendorf
> > > mail: mwessendorf-at-gmail-dot-com
> > >
> > >
> >
> >
> > --
> > Matthias Wessendorf
> >
> > futher stuff:
> > blog: http://jroller.com/page/mwessendorf
> > mail: mwessendorf-at-gmail-dot-com
> >
>
>
> --
> Matthias Wessendorf
>
> futher stuff:
> blog: http://jroller.com/page/mwessendorf
> mail: mwessendorf-at-gmail-dot-com
>


-- 
Matthias Wessendorf

futher stuff:
blog: http://jroller.com/page/mwessendorf
mail: mwessendorf-at-gmail-dot-com

Re: Coding conventions

Posted by Matthias Wessendorf <ma...@apache.org>.
done

On 7/7/06, Matthias Wessendorf <ma...@apache.org> wrote:
> no, not yet.
>
> but I do later
>
> On 7/7/06, Pavitra Subramaniam <pa...@oracle.com> wrote:
> > Matthias,
> > Have you already added the items here to our WIKI?
> >
> > Thanks
> > - Pavitra
> >
> > -----Original Message-----
> > From: mwessendorf@gmail.com [mailto:mwessendorf@gmail.com] On Behalf Of Matthias Wessendorf
> > Sent: Thursday, July 06, 2006 9:16 AM
> > To: adffaces-user@incubator.apache.org
> > Subject: Re: Coding conventions
> >
> > yes
> >
> > On 7/6/06, Adam Winer <aw...@gmail.com> wrote:
> > > On 7/6/06, Simon_Lessard@dmr.ca <Si...@dmr.ca> wrote:
> > > >
> > > > Hello,
> > > >
> > > > Do we have a section on the site about the coding conventions we're
> > > > supposed to follow? Currently ADF Faces seems to use the following:
> > > >
> > > > Private members and methods use underscore (_) prefix ;
> > >
> > >
> > > Yes.  In addition, package-private use double underscore prefixes.
> > > This is intentionally ugly;  we strongly discourage the use of
> > > package-private access, and in general recommend everything receive
> > > the most limited access possible.
> > >
> > > Constants are imported using implements on a contant interface
> > > (Shouldn't
> > > > we use fully qualified name or static imports instead?) ;
> > >
> > >
> > > This isn't a standard as such;  it was a common coding practice (esp.
> > > UIConstants), but we're moving away from it.
> > >
> > > Constants and attributes are defined at the end of the class files,
> > > after
> > > > methods ;
> > >
> > >
> > > Yep.
> > >
> > > Constant names are in uppercase, with each words separated with an
> > > > underscore (standard rule) ;
> > >
> > >
> > >
> > > Yep.
> > >
> > > Method and variable names are in lowercase except for the first letter
> > > of
> > > > every word after the first forming them that should be in uppercase
> > > > ;
> > >
> > >
> > > Yep.
> > >
> > >
> > > Methods don't seem to appear in any specific order (any rule on this?)
> > > ;
> > >
> > >
> > >
> > > They're *supposed* to go:  constructor, public, protected, package, private.
> > > We've been lax in enforcing that.
> > >
> > > Asbtract classes does not seems to be used much, instead they provide
> > > a
> > > > protected method with a dummy behavior to be overridden ;
> > >
> > >
> > > It varies;  it's used here and there.
> > >
> > > Generics are used, but not always (should we convert every classes we
> > > see
> > > > to use them?) ;
> > >
> > >
> > > It started as a JDK 1.2 codebase, so not used all over the place.
> > > We're converting piece-by-piece.
> > >
> > >
> > > > @SuppressWarning("unchecked") is not used (should we start using
> > > > this when converting to generics is not an option? Eclipse whine
> > > > much for some classes because of this).
> > >
> > >
> > > Happy to have it used where necessary.  Ditto @Override.  (Again, it
> > > wasn't a Java 5.0 codebase 'til relatively recently.)
> > >
> > > Is there any other rule to follow?
> > >
> > >
> > > Some obvious ones - no calls to System.out/err.println, don't discard
> > > exceptions (unless it's entirely intentional - log them instead).
> > > Also,
> > > 2 space indent, no use of tabs allowed at all.  I'm sure I'll think of
> > > others.
> > >
> > > Can someone wikify this?
> > >
> > > Thanks,
> > > Adam
> > >
> > >
> >
> >
> > --
> > Matthias Wessendorf
> >
> > futher stuff:
> > blog: http://jroller.com/page/mwessendorf
> > mail: mwessendorf-at-gmail-dot-com
> >
> >
>
>
> --
> Matthias Wessendorf
>
> futher stuff:
> blog: http://jroller.com/page/mwessendorf
> mail: mwessendorf-at-gmail-dot-com
>


-- 
Matthias Wessendorf

futher stuff:
blog: http://jroller.com/page/mwessendorf
mail: mwessendorf-at-gmail-dot-com

Re: Coding conventions

Posted by Matthias Wessendorf <ma...@apache.org>.
no, not yet.

but I do later

On 7/7/06, Pavitra Subramaniam <pa...@oracle.com> wrote:
> Matthias,
> Have you already added the items here to our WIKI?
>
> Thanks
> - Pavitra
>
> -----Original Message-----
> From: mwessendorf@gmail.com [mailto:mwessendorf@gmail.com] On Behalf Of Matthias Wessendorf
> Sent: Thursday, July 06, 2006 9:16 AM
> To: adffaces-user@incubator.apache.org
> Subject: Re: Coding conventions
>
> yes
>
> On 7/6/06, Adam Winer <aw...@gmail.com> wrote:
> > On 7/6/06, Simon_Lessard@dmr.ca <Si...@dmr.ca> wrote:
> > >
> > > Hello,
> > >
> > > Do we have a section on the site about the coding conventions we're
> > > supposed to follow? Currently ADF Faces seems to use the following:
> > >
> > > Private members and methods use underscore (_) prefix ;
> >
> >
> > Yes.  In addition, package-private use double underscore prefixes.
> > This is intentionally ugly;  we strongly discourage the use of
> > package-private access, and in general recommend everything receive
> > the most limited access possible.
> >
> > Constants are imported using implements on a contant interface
> > (Shouldn't
> > > we use fully qualified name or static imports instead?) ;
> >
> >
> > This isn't a standard as such;  it was a common coding practice (esp.
> > UIConstants), but we're moving away from it.
> >
> > Constants and attributes are defined at the end of the class files,
> > after
> > > methods ;
> >
> >
> > Yep.
> >
> > Constant names are in uppercase, with each words separated with an
> > > underscore (standard rule) ;
> >
> >
> >
> > Yep.
> >
> > Method and variable names are in lowercase except for the first letter
> > of
> > > every word after the first forming them that should be in uppercase
> > > ;
> >
> >
> > Yep.
> >
> >
> > Methods don't seem to appear in any specific order (any rule on this?)
> > ;
> >
> >
> >
> > They're *supposed* to go:  constructor, public, protected, package, private.
> > We've been lax in enforcing that.
> >
> > Asbtract classes does not seems to be used much, instead they provide
> > a
> > > protected method with a dummy behavior to be overridden ;
> >
> >
> > It varies;  it's used here and there.
> >
> > Generics are used, but not always (should we convert every classes we
> > see
> > > to use them?) ;
> >
> >
> > It started as a JDK 1.2 codebase, so not used all over the place.
> > We're converting piece-by-piece.
> >
> >
> > > @SuppressWarning("unchecked") is not used (should we start using
> > > this when converting to generics is not an option? Eclipse whine
> > > much for some classes because of this).
> >
> >
> > Happy to have it used where necessary.  Ditto @Override.  (Again, it
> > wasn't a Java 5.0 codebase 'til relatively recently.)
> >
> > Is there any other rule to follow?
> >
> >
> > Some obvious ones - no calls to System.out/err.println, don't discard
> > exceptions (unless it's entirely intentional - log them instead).
> > Also,
> > 2 space indent, no use of tabs allowed at all.  I'm sure I'll think of
> > others.
> >
> > Can someone wikify this?
> >
> > Thanks,
> > Adam
> >
> >
>
>
> --
> Matthias Wessendorf
>
> futher stuff:
> blog: http://jroller.com/page/mwessendorf
> mail: mwessendorf-at-gmail-dot-com
>
>


-- 
Matthias Wessendorf

futher stuff:
blog: http://jroller.com/page/mwessendorf
mail: mwessendorf-at-gmail-dot-com

RE: Coding conventions

Posted by Pavitra Subramaniam <pa...@oracle.com>.
Matthias,
Have you already added the items here to our WIKI? 

Thanks
- Pavitra

-----Original Message-----
From: mwessendorf@gmail.com [mailto:mwessendorf@gmail.com] On Behalf Of Matthias Wessendorf
Sent: Thursday, July 06, 2006 9:16 AM
To: adffaces-user@incubator.apache.org
Subject: Re: Coding conventions

yes

On 7/6/06, Adam Winer <aw...@gmail.com> wrote:
> On 7/6/06, Simon_Lessard@dmr.ca <Si...@dmr.ca> wrote:
> >
> > Hello,
> >
> > Do we have a section on the site about the coding conventions we're 
> > supposed to follow? Currently ADF Faces seems to use the following:
> >
> > Private members and methods use underscore (_) prefix ;
>
>
> Yes.  In addition, package-private use double underscore prefixes.
> This is intentionally ugly;  we strongly discourage the use of 
> package-private access, and in general recommend everything receive 
> the most limited access possible.
>
> Constants are imported using implements on a contant interface 
> (Shouldn't
> > we use fully qualified name or static imports instead?) ;
>
>
> This isn't a standard as such;  it was a common coding practice (esp.
> UIConstants), but we're moving away from it.
>
> Constants and attributes are defined at the end of the class files, 
> after
> > methods ;
>
>
> Yep.
>
> Constant names are in uppercase, with each words separated with an
> > underscore (standard rule) ;
>
>
>
> Yep.
>
> Method and variable names are in lowercase except for the first letter 
> of
> > every word after the first forming them that should be in uppercase 
> > ;
>
>
> Yep.
>
>
> Methods don't seem to appear in any specific order (any rule on this?) 
> ;
>
>
>
> They're *supposed* to go:  constructor, public, protected, package, private.
> We've been lax in enforcing that.
>
> Asbtract classes does not seems to be used much, instead they provide 
> a
> > protected method with a dummy behavior to be overridden ;
>
>
> It varies;  it's used here and there.
>
> Generics are used, but not always (should we convert every classes we 
> see
> > to use them?) ;
>
>
> It started as a JDK 1.2 codebase, so not used all over the place.  
> We're converting piece-by-piece.
>
>
> > @SuppressWarning("unchecked") is not used (should we start using 
> > this when converting to generics is not an option? Eclipse whine 
> > much for some classes because of this).
>
>
> Happy to have it used where necessary.  Ditto @Override.  (Again, it 
> wasn't a Java 5.0 codebase 'til relatively recently.)
>
> Is there any other rule to follow?
>
>
> Some obvious ones - no calls to System.out/err.println, don't discard 
> exceptions (unless it's entirely intentional - log them instead).  
> Also,
> 2 space indent, no use of tabs allowed at all.  I'm sure I'll think of 
> others.
>
> Can someone wikify this?
>
> Thanks,
> Adam
>
>


--
Matthias Wessendorf

futher stuff:
blog: http://jroller.com/page/mwessendorf
mail: mwessendorf-at-gmail-dot-com


Re: Coding conventions

Posted by Matthias Wessendorf <ma...@apache.org>.
yes

On 7/6/06, Adam Winer <aw...@gmail.com> wrote:
> On 7/6/06, Simon_Lessard@dmr.ca <Si...@dmr.ca> wrote:
> >
> > Hello,
> >
> > Do we have a section on the site about the coding conventions we're
> > supposed to follow? Currently ADF Faces seems to use the following:
> >
> > Private members and methods use underscore (_) prefix ;
>
>
> Yes.  In addition, package-private use double underscore prefixes.
> This is intentionally ugly;  we strongly discourage the use of
> package-private
> access, and in general recommend everything receive the most limited
> access possible.
>
> Constants are imported using implements on a contant interface (Shouldn't
> > we use fully qualified name or static imports instead?) ;
>
>
> This isn't a standard as such;  it was a common coding practice (esp.
> UIConstants), but we're moving away from it.
>
> Constants and attributes are defined at the end of the class files, after
> > methods ;
>
>
> Yep.
>
> Constant names are in uppercase, with each words separated with an
> > underscore (standard rule) ;
>
>
>
> Yep.
>
> Method and variable names are in lowercase except for the first letter of
> > every word after the first forming them that should be in uppercase ;
>
>
> Yep.
>
>
> Methods don't seem to appear in any specific order (any rule on this?) ;
>
>
>
> They're *supposed* to go:  constructor, public, protected, package, private.
> We've been lax in enforcing that.
>
> Asbtract classes does not seems to be used much, instead they provide a
> > protected method with a dummy behavior to be overridden ;
>
>
> It varies;  it's used here and there.
>
> Generics are used, but not always (should we convert every classes we see
> > to use them?) ;
>
>
> It started as a JDK 1.2 codebase, so not used all over the place.  We're
> converting piece-by-piece.
>
>
> > @SuppressWarning("unchecked") is not used (should we start using this when
> > converting to generics is not an option? Eclipse whine much for some
> > classes because of this).
>
>
> Happy to have it used where necessary.  Ditto @Override.  (Again, it
> wasn't a Java 5.0 codebase 'til relatively recently.)
>
> Is there any other rule to follow?
>
>
> Some obvious ones - no calls to System.out/err.println, don't discard
> exceptions (unless it's entirely intentional - log them instead).  Also,
> 2 space indent, no use of tabs allowed at all.  I'm sure I'll think of
> others.
>
> Can someone wikify this?
>
> Thanks,
> Adam
>
>


-- 
Matthias Wessendorf

futher stuff:
blog: http://jroller.com/page/mwessendorf
mail: mwessendorf-at-gmail-dot-com

Re: Coding conventions

Posted by Adam Winer <aw...@gmail.com>.
On 7/6/06, Simon_Lessard@dmr.ca <Si...@dmr.ca> wrote:
>
> Hello,
>
> Do we have a section on the site about the coding conventions we're
> supposed to follow? Currently ADF Faces seems to use the following:
>
> Private members and methods use underscore (_) prefix ;


Yes.  In addition, package-private use double underscore prefixes.
This is intentionally ugly;  we strongly discourage the use of
package-private
access, and in general recommend everything receive the most limited
access possible.

Constants are imported using implements on a contant interface (Shouldn't
> we use fully qualified name or static imports instead?) ;


This isn't a standard as such;  it was a common coding practice (esp.
UIConstants), but we're moving away from it.

Constants and attributes are defined at the end of the class files, after
> methods ;


Yep.

Constant names are in uppercase, with each words separated with an
> underscore (standard rule) ;



Yep.

Method and variable names are in lowercase except for the first letter of
> every word after the first forming them that should be in uppercase ;


Yep.


Methods don't seem to appear in any specific order (any rule on this?) ;



They're *supposed* to go:  constructor, public, protected, package, private.
We've been lax in enforcing that.

Asbtract classes does not seems to be used much, instead they provide a
> protected method with a dummy behavior to be overridden ;


It varies;  it's used here and there.

Generics are used, but not always (should we convert every classes we see
> to use them?) ;


It started as a JDK 1.2 codebase, so not used all over the place.  We're
converting piece-by-piece.


> @SuppressWarning("unchecked") is not used (should we start using this when
> converting to generics is not an option? Eclipse whine much for some
> classes because of this).


Happy to have it used where necessary.  Ditto @Override.  (Again, it
wasn't a Java 5.0 codebase 'til relatively recently.)

Is there any other rule to follow?


Some obvious ones - no calls to System.out/err.println, don't discard
exceptions (unless it's entirely intentional - log them instead).  Also,
2 space indent, no use of tabs allowed at all.  I'm sure I'll think of
others.

Can someone wikify this?

Thanks,
Adam

Coding conventions

Posted by Si...@DMR.CA.
Hello,

Do we have a section on the site about the coding conventions we're 
supposed to follow? Currently ADF Faces seems to use the following:

Private members and methods use underscore (_) prefix ;
Constants are imported using implements on a contant interface (Shouldn't 
we use fully qualified name or static imports instead?) ;
Constants and attributes are defined at the end of the class files, after 
methods ;
Constant names are in uppercase, with each words separated with an 
underscore (standard rule) ;
Method and variable names are in lowercase except for the first letter of 
every word after the first forming them that should be in uppercase ;
Methods don't seem to appear in any specific order (any rule on this?) ;
Asbtract classes does not seems to be used much, instead they provide a 
protected method with a dummy behavior to be overridden ;
Generics are used, but not always (should we convert every classes we see 
to use them?) ;
@SuppressWarning("unchecked") is not used (should we start using this when 
converting to generics is not an option? Eclipse whine much for some 
classes because of this).

Is there any other rule to follow?


Regards,

Simon Lessard
DMR Conseil Inc. (http://www.dmrconseil.ca)
Téléphone : (418) 653-6881

Sun Certified Programmer for Java 2 Platform 1.4

ProcessTrain enhancement

Posted by Si...@DMR.CA.
Hello,

I'm currently working to modify the processTrain to accept more skin 
selectors in order to open all icons provided by Oracle skin. The 
selectors I plan to add are:

  // processTrain styles used for the disabled links
  public static final String AF_PROCESS_TRAIN_TEXT_STYLE_CLASS =
    "af|processTrain::text";

  // For outer margins
  public static final String AF_PROCESS_TRAIN_MARGIN_START_STYLE_CLASS =
    "af|processTrain::margin-start";
  public static final String AF_PROCESS_TRAIN_MARGIN_END_STYLE_CLASS =
    "af|processTrain::margin-end";

  // For inner spacing
  public static final String AF_PROCESS_TRAIN_SPACING_STYLE_CLASS =
    "af|processTrain::step-spacing";

  // For active steps
  public static final String AF_PROCESS_TRAIN_ACTIVE_START_ICON_NAME = 
    "af|processTrain::step-active-start-icon";
  public static final String AF_PROCESS_TRAIN_ACTIVE_END_ICON_NAME = 
    "af|processTrain::step-active-end-icon";

  // For visited steps
  public static final String AF_PROCESS_TRAIN_VISITED_START_ICON_NAME = 
    "af|processTrain::step-visited-start-icon";
  public static final String AF_PROCESS_TRAIN_VISITED_END_ICON_NAME = 
    "af|processTrain::step-visited-end-icon";

  // For unvisited steps
  public static final String AF_PROCESS_TRAIN_UNVISITED_START_ICON_NAME = 
    "af|processTrain::step-unvisited-start-icon";
  public static final String AF_PROCESS_TRAIN_UNVISITED_END_ICON_NAME = 
    "af|processTrain::step-unvisited-end-icon";

  // For disabled steps
  public static final String AF_PROCESS_TRAIN_DISABLED_START_ICON_NAME = 
    "af|processTrain::step-disabled-start-icon";
  public static final String AF_PROCESS_TRAIN_DISABLED_END_ICON_NAME = 
    "af|processTrain::step-disabled-end-icon";

  // For joints
  public static final String AF_PROCESS_TRAIN_JOINT_VISITED_ICON_NAME = 
    "af|processTrain::joint-visited-icon";
  public static final String AF_PROCESS_TRAIN_JOINT_UNVISITED_ICON_NAME = 
    "af|processTrain::joint-unvisited-icon";

  // For backward overflows
  public static final String 
AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_STYLE_CLASS =
    "af|processTrain::overflow-backward";
  public static final String 
AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_START_ICON_NAME = 
    "af|processTrain::overflow-backward-start-icon";
  public static final String 
AF_PROCESS_TRAIN_OVERFLOW_BACKWARD_END_ICON_NAME = 
    "af|processTrain::overflow-backward-end-icon";

  // For forward overflows
  public static final String AF_PROCESS_TRAIN_OVERFLOW_FORWARD_STYLE_CLASS 
=
    "af|processTrain::overflow-forward";
  public static final String 
AF_PROCESS_TRAIN_OVERFLOW_FORWARD_START_ICON_NAME = 
    "af|processTrain::overflow-forward-start-icon";
  public static final String 
AF_PROCESS_TRAIN_OVERFLOW_FORWARD_END_ICON_NAME = 
    "af|processTrain::overflow-forward-end-icon";

The target HTML structure for the process train in LtR mode is:

<table align="center" border="0" cellpadding="0" cellspacing="0" 
class="af|processTrain">
  <tbody>
    <tr>
      <td class="af|processTrain::margin-start" rowspan="2"></td>

      <td align="right" class="af|processTrain::overflow-backward">
        <img src="af|processTrain::overflow-backward-start-icon" 
title="%step-label%" alt="%step-label% : previous set"/>
      </td>
      <td background="af|processTrain::joint-visited-icon" align="left" 
class="af|processTrain::overflow-backward>
        <img src="af|processTrain::overflow-backward-end-icon" alt="">
      </td>

      <td background="af|processTrain::joint-visited-icon" class="
af|processTrain::step-spacing"></td>

      <td background="af|processTrain::joint-visited-icon" align="right" 
class="af|processTrain::step-visited">
        <img src="af|processTrain::step-visited-start-icon" 
title="%step-label%" alt="%step-label% : previous step"/>
      </td>
      <td background="af|processTrain::joint-visited-icon" align="left" 
class="af|processTrain::step-visited">
        <img src="af|processTrain::step-visited-end-icon" alt="">
      </td>

      <td background="af|processTrain::joint-visited-icon" class="
af|processTrain::step-spacing"></td>

      <td background="af|processTrain::joint-visited-icon" align="right" 
class="af|processTrain::step-active">
        <img src="af|processTrain::step-active-start-icon" 
title="%step-label%" alt="%step-label% : active step"/>
      </td>
      <td background="af|processTrain::joint-unvisited-icon" align="left" 
class="af|processTrain::step-active">
        <img src="af|processTrain::step-active-end-icon" alt="">
      </td>

      <td background="af|processTrain::joint-unvisited-icon" class="
af|processTrain::step-spacing"></td>

      <td background="af|processTrain::joint-unvisited-icon" align="right" 
class="af|processTrain::step-unvisited">
        <img src="af|processTrain::step-unvisited-start-icon" 
title="%step-label%" alt="%step-label% : next step"/>
      </td>
      <td background="af|processTrain::joint-unvisited-icon" align="left" 
class="af|processTrain::step-unvisited">
        <img src="af|processTrain::step-unvisited-end-icon" alt="">
      </td>

      <td background="af|processTrain::joint-unvisited-icon" class="
af|processTrain::step-spacing"></td>

      <td background="af|processTrain::joint-unvisited-icon" align="right" 
class="af|processTrain::overflow-forward">
        <img src="af|processTrain::overflow-forward-start-icon" 
title="%step-label%" alt="%step-label% : next set"/>
      </td>
      <td align="left" class="af|processTrain::overflow-forward">
        <img src="af|processTrain::overflow-forward-end-icon" alt="">
      </td>

      <td class="af|processTrain::margin-end" rowspan="2"></td>
    </tr>
    <tr>
      <td colspan="2" class="af|processTrain::overflow-backward">
        <a class="af|processTrain::link">%step-label%</a>
      </td>
      <td colspan="2" class="af|processTrain::step-visited">
        <a class="af|processTrain::link">%step-label%</a>
      </td>
      <td colspan="2" class="af|processTrain::step-active">
        <a class="af|processTrain::link">%step-label%</a>
      </td>
      <td colspan="2" class="af|processTrain::step-unvisited">
        <a class="af|processTrain::text">%step-label%</a>
      </td>
      <td colspan="2" class="af|processTrain::overflow-forward">
        <a class="af|processTrain::text">%step-label%</a>
      </td>
    </tr>
  </tbody>
</table>

Is that ok with you?

Simon Lessard
DMR Conseil Inc. (http://www.dmrconseil.ca)
Téléphone : (418) 653-6881

Sun Certified Programmer for Java 2 Platform 1.4

Re: AW: [SPAM] - Skin Enhancement Request - Bayesian Filter detected spam

Posted by Jeanne Waldman <je...@oracle.com>.
Yes, I think it is a great idea. Definitely submit an enhancement request.

Dan Robinson wrote:

> Jeanne,
>
> Are you therefore supportive of this.  Should we create an enhancement
> request?
>
> Danny
>
> On 6/28/06, Jeanne Waldman <je...@oracle.com> wrote:
>
>>
>> It sounds like you'd like it if you had a skinning key like this:
>>
>> af|inputText:required::content
>>
>> - Jeanne
>>
>> Dan Robinson wrote:
>>
>> > Thanks Guys, that seemed to work.
>> >
>> > We've yet to upgrade to the very latest Trinidad release, so I guess
>> > that's
>> > why the 'af|inputText.requiredFieldMarker::content' method didn't
>> > work, but
>> > we're using Markus' method and plan to switch over once we're
>> up-to-date.
>> >
>> > I'm not a huge fan of the contentStyle approach, but would love a
>> > 'contentClass' tag instead.  Having our devs understand and put styles
>> > into
>> > pages is not an approach I want to take.
>> >
>> > Better still I'd love an out-of-the-box style we can override for
>> > required
>> > fields that just workswhen required or showRequired are true.
>> >
>> > Danny
>> >
>> > On 6/28/06, Jeanne Waldman <je...@oracle.com> wrote:
>> >
>> >>
>> >> The styleClass attribute for the form components goes on the root dom
>> >> element of the component, which isn't the <input> or <textArea>. We
>> >> should be doing this for all our components, and if we are not, we'll
>> >> need to enhance them to do this. This is for consistency, and it 
>> makes
>> >> it easier to write skinning rules.
>> >>
>> >> In the case of inputText where changing the styles of the 'content'
>> (aka
>> >> the input/textArea) piece of the component is common, we've added a
>> >> 'contentStyle' attribute. So you can essentially do what Markus
>> >> suggested, but use the contentStyle attribute. By essentially, I mean
>> >> that contentStyle takes  styles, not style classes. So you would do
>> >> this:
>> >>
>> >> contentStyle="#{bindings.Title.mandatory ? 'background-color:
>> >> rgb(255,255,181);border-style: solid ;' : 'background-color: white;
>> >>   border-style: solid ;'}"
>> >>
>> >>
>> >> I just thought of another way you can do this using the skinning 
>> file.
>> >> Do what Markus suggested, but I would change the name of the
>> >> styleClasses:
>> >>
>> >>             <af:inputText value="#{bindings.Title.inputValue}"
>> >>                           label="#{bindings.Title.label}"
>> >>                           required="#{bindings.Title.mandatory}"
>> >>                           styleClass="#{bindings.Title.mandatory ?
>> >> 'requiredFieldMarker' : 'nonrequiredMarker'}"
>> >>                           columns="#{bindings.Title.displayWidth}">
>> >>             </af:inputText>
>> >>
>> >> The in the skinning file you can do this:
>> >>
>> >> /* When the af|inputText's component has the styleClass set to
>> >> requiredFieldMarker, set its 'content' piece */
>> >> af|inputText.requiredFieldMarker::content {
>> >> background-color: rgb(255,255,181);
>> >> border-style: solid ;
>> >> }
>> >>
>> >> - Jeanne
>> >>
>> >> Markus Heinisch wrote:
>> >>
>> >> >Hi Dan,
>> >> >
>> >> >Are you looking for a solution like this:
>> >> >
>> >> >            <af:inputText value="#{bindings.Title.inputValue}"
>> >> >                          label="#{bindings.Title.label}"
>> >> >                          required="#{bindings.Title.mandatory}"
>> >> >                          styleClass="#{bindings.Title.mandatory ?
>> >> 'required' : 'nonrequired'}"
>> >> >                          columns="#{bindings.Title.displayWidth}">
>> >> >            </af:inputText>
>> >> >
>> >> >The EL expression in the attribute styleClass makes the trick. 
>> The EL
>> >> expression resolves to styleClass="required" when the Title is
>> mandatory
>> >> (example uses Oracle ADF which provides for a property like 'Title'
>> some
>> >> metadata like 'mandatory' or 'updatable').
>> >> >
>> >> >The styleclass must be defined in a CSS or your Skin-CSS:
>> >> >
>> >> >input.required, textarea.required, select.required {
>> >> >  background-color: rgb(255,255,181);
>> >> >  border-style: solid ;
>> >> >}
>> >> >input.nonrequired, textarea.nonrequired, select.nonrequired {
>> >> >  background-color: white;
>> >> >  border-style: solid ;
>> >> >}
>> >> >
>> >> >>From my point of view everything you need is available to solve 
>> your
>> >> styling needs. ;-)
>> >> >
>> >> >Cheers,
>> >> >Markus
>> >> >------------------------------------------
>> >> >Markus Heinisch
>> >> >
>> >> >Dipl.-Inform.
>> >> >Consultant
>> >> >
>> >> >Trivadis GmbH
>> >> >Freischützstrasse 92
>> >> >81927 München
>> >> >Germany
>> >> >
>> >> >Tel.: +49-89-99275930
>> >> >Fax : +49-89-99275959
>> >> >Mobile: +49-162-2959616
>> >> >mailto:markus.heinisch@trivadis.com
>> >> >http://www.trivadis.com
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >>-----Ursprüngliche Nachricht-----
>> >> >>Von: Dan Robinson [mailto:dannyjrobinson@gmail.com]
>> >> >>Gesendet: Mittwoch, 28. Juni 2006 18:02
>> >> >>An: adffaces-user@incubator.apache.org
>> >> >>Betreff: [SPAM] - Skin Enhancement Request - Bayesian Filter
>> >> >>detected spam
>> >> >>
>> >> >>I don't think this is currently possible, but please prove me 
>> wrong!
>> >> >>
>> >> >>We'd like to provide a skin configuration that would cause
>> >> >>certain styles to be appled when a field is marked as
>> >> >>required.  Specifically, we'd like to cause the input field
>> >> >>background colour to be changed to make it very obvious that
>> >> >>it is required.
>> >> >>
>> >> >>So far we've only been able to set the background color for
>> >> >>all elements of an input field (label, tip, etc.).
>> >> >>
>> >> >>I guess an extension of this would be to make the label bold etc.
>> etc.
>> >> >>
>> >> >>Thanks,
>> >> >>
>> >> >>Danny
>> >> >>
>> >> >>
>> >> >>
>> >> >
>> >> >
>> >> >
>> >>
>> >>
>> >
>>
>>
>


Re: AW: [SPAM] - Skin Enhancement Request - Bayesian Filter detected spam

Posted by Dan Robinson <da...@gmail.com>.
Jeanne,

Are you therefore supportive of this.  Should we create an enhancement
request?

Danny

On 6/28/06, Jeanne Waldman <je...@oracle.com> wrote:
>
> It sounds like you'd like it if you had a skinning key like this:
>
> af|inputText:required::content
>
> - Jeanne
>
> Dan Robinson wrote:
>
> > Thanks Guys, that seemed to work.
> >
> > We've yet to upgrade to the very latest Trinidad release, so I guess
> > that's
> > why the 'af|inputText.requiredFieldMarker::content' method didn't
> > work, but
> > we're using Markus' method and plan to switch over once we're
> up-to-date.
> >
> > I'm not a huge fan of the contentStyle approach, but would love a
> > 'contentClass' tag instead.  Having our devs understand and put styles
> > into
> > pages is not an approach I want to take.
> >
> > Better still I'd love an out-of-the-box style we can override for
> > required
> > fields that just workswhen required or showRequired are true.
> >
> > Danny
> >
> > On 6/28/06, Jeanne Waldman <je...@oracle.com> wrote:
> >
> >>
> >> The styleClass attribute for the form components goes on the root dom
> >> element of the component, which isn't the <input> or <textArea>. We
> >> should be doing this for all our components, and if we are not, we'll
> >> need to enhance them to do this. This is for consistency, and it makes
> >> it easier to write skinning rules.
> >>
> >> In the case of inputText where changing the styles of the 'content'
> (aka
> >> the input/textArea) piece of the component is common, we've added a
> >> 'contentStyle' attribute. So you can essentially do what Markus
> >> suggested, but use the contentStyle attribute. By essentially, I mean
> >> that contentStyle takes  styles, not style classes. So you would do
> >> this:
> >>
> >> contentStyle="#{bindings.Title.mandatory ? 'background-color:
> >> rgb(255,255,181);border-style: solid ;' : 'background-color: white;
> >>   border-style: solid ;'}"
> >>
> >>
> >> I just thought of another way you can do this using the skinning file.
> >> Do what Markus suggested, but I would change the name of the
> >> styleClasses:
> >>
> >>             <af:inputText value="#{bindings.Title.inputValue}"
> >>                           label="#{bindings.Title.label}"
> >>                           required="#{bindings.Title.mandatory}"
> >>                           styleClass="#{bindings.Title.mandatory ?
> >> 'requiredFieldMarker' : 'nonrequiredMarker'}"
> >>                           columns="#{bindings.Title.displayWidth}">
> >>             </af:inputText>
> >>
> >> The in the skinning file you can do this:
> >>
> >> /* When the af|inputText's component has the styleClass set to
> >> requiredFieldMarker, set its 'content' piece */
> >> af|inputText.requiredFieldMarker::content {
> >> background-color: rgb(255,255,181);
> >> border-style: solid ;
> >> }
> >>
> >> - Jeanne
> >>
> >> Markus Heinisch wrote:
> >>
> >> >Hi Dan,
> >> >
> >> >Are you looking for a solution like this:
> >> >
> >> >            <af:inputText value="#{bindings.Title.inputValue}"
> >> >                          label="#{bindings.Title.label}"
> >> >                          required="#{bindings.Title.mandatory}"
> >> >                          styleClass="#{bindings.Title.mandatory ?
> >> 'required' : 'nonrequired'}"
> >> >                          columns="#{bindings.Title.displayWidth}">
> >> >            </af:inputText>
> >> >
> >> >The EL expression in the attribute styleClass makes the trick. The EL
> >> expression resolves to styleClass="required" when the Title is
> mandatory
> >> (example uses Oracle ADF which provides for a property like 'Title'
> some
> >> metadata like 'mandatory' or 'updatable').
> >> >
> >> >The styleclass must be defined in a CSS or your Skin-CSS:
> >> >
> >> >input.required, textarea.required, select.required {
> >> >  background-color: rgb(255,255,181);
> >> >  border-style: solid ;
> >> >}
> >> >input.nonrequired, textarea.nonrequired, select.nonrequired {
> >> >  background-color: white;
> >> >  border-style: solid ;
> >> >}
> >> >
> >> >>From my point of view everything you need is available to solve your
> >> styling needs. ;-)
> >> >
> >> >Cheers,
> >> >Markus
> >> >------------------------------------------
> >> >Markus Heinisch
> >> >
> >> >Dipl.-Inform.
> >> >Consultant
> >> >
> >> >Trivadis GmbH
> >> >Freischützstrasse 92
> >> >81927 München
> >> >Germany
> >> >
> >> >Tel.: +49-89-99275930
> >> >Fax : +49-89-99275959
> >> >Mobile: +49-162-2959616
> >> >mailto:markus.heinisch@trivadis.com
> >> >http://www.trivadis.com
> >> >
> >> >
> >> >
> >> >
> >> >>-----Ursprüngliche Nachricht-----
> >> >>Von: Dan Robinson [mailto:dannyjrobinson@gmail.com]
> >> >>Gesendet: Mittwoch, 28. Juni 2006 18:02
> >> >>An: adffaces-user@incubator.apache.org
> >> >>Betreff: [SPAM] - Skin Enhancement Request - Bayesian Filter
> >> >>detected spam
> >> >>
> >> >>I don't think this is currently possible, but please prove me wrong!
> >> >>
> >> >>We'd like to provide a skin configuration that would cause
> >> >>certain styles to be appled when a field is marked as
> >> >>required.  Specifically, we'd like to cause the input field
> >> >>background colour to be changed to make it very obvious that
> >> >>it is required.
> >> >>
> >> >>So far we've only been able to set the background color for
> >> >>all elements of an input field (label, tip, etc.).
> >> >>
> >> >>I guess an extension of this would be to make the label bold etc.
> etc.
> >> >>
> >> >>Thanks,
> >> >>
> >> >>Danny
> >> >>
> >> >>
> >> >>
> >> >
> >> >
> >> >
> >>
> >>
> >
>
>

Re: AW: [SPAM] - Skin Enhancement Request - Bayesian Filter detected spam

Posted by Jeanne Waldman <je...@oracle.com>.
It sounds like you'd like it if you had a skinning key like this:

af|inputText:required::content

- Jeanne

Dan Robinson wrote:

> Thanks Guys, that seemed to work.
>
> We've yet to upgrade to the very latest Trinidad release, so I guess 
> that's
> why the 'af|inputText.requiredFieldMarker::content' method didn't 
> work, but
> we're using Markus' method and plan to switch over once we're up-to-date.
>
> I'm not a huge fan of the contentStyle approach, but would love a
> 'contentClass' tag instead.  Having our devs understand and put styles 
> into
> pages is not an approach I want to take.
>
> Better still I'd love an out-of-the-box style we can override for 
> required
> fields that just workswhen required or showRequired are true.
>
> Danny
>
> On 6/28/06, Jeanne Waldman <je...@oracle.com> wrote:
>
>>
>> The styleClass attribute for the form components goes on the root dom
>> element of the component, which isn't the <input> or <textArea>. We
>> should be doing this for all our components, and if we are not, we'll
>> need to enhance them to do this. This is for consistency, and it makes
>> it easier to write skinning rules.
>>
>> In the case of inputText where changing the styles of the 'content' (aka
>> the input/textArea) piece of the component is common, we've added a
>> 'contentStyle' attribute. So you can essentially do what Markus
>> suggested, but use the contentStyle attribute. By essentially, I mean
>> that contentStyle takes  styles, not style classes. So you would do 
>> this:
>>
>> contentStyle="#{bindings.Title.mandatory ? 'background-color:
>> rgb(255,255,181);border-style: solid ;' : 'background-color: white;
>>   border-style: solid ;'}"
>>
>>
>> I just thought of another way you can do this using the skinning file.
>> Do what Markus suggested, but I would change the name of the 
>> styleClasses:
>>
>>             <af:inputText value="#{bindings.Title.inputValue}"
>>                           label="#{bindings.Title.label}"
>>                           required="#{bindings.Title.mandatory}"
>>                           styleClass="#{bindings.Title.mandatory ?
>> 'requiredFieldMarker' : 'nonrequiredMarker'}"
>>                           columns="#{bindings.Title.displayWidth}">
>>             </af:inputText>
>>
>> The in the skinning file you can do this:
>>
>> /* When the af|inputText's component has the styleClass set to
>> requiredFieldMarker, set its 'content' piece */
>> af|inputText.requiredFieldMarker::content {
>> background-color: rgb(255,255,181);
>> border-style: solid ;
>> }
>>
>> - Jeanne
>>
>> Markus Heinisch wrote:
>>
>> >Hi Dan,
>> >
>> >Are you looking for a solution like this:
>> >
>> >            <af:inputText value="#{bindings.Title.inputValue}"
>> >                          label="#{bindings.Title.label}"
>> >                          required="#{bindings.Title.mandatory}"
>> >                          styleClass="#{bindings.Title.mandatory ?
>> 'required' : 'nonrequired'}"
>> >                          columns="#{bindings.Title.displayWidth}">
>> >            </af:inputText>
>> >
>> >The EL expression in the attribute styleClass makes the trick. The EL
>> expression resolves to styleClass="required" when the Title is mandatory
>> (example uses Oracle ADF which provides for a property like 'Title' some
>> metadata like 'mandatory' or 'updatable').
>> >
>> >The styleclass must be defined in a CSS or your Skin-CSS:
>> >
>> >input.required, textarea.required, select.required {
>> >  background-color: rgb(255,255,181);
>> >  border-style: solid ;
>> >}
>> >input.nonrequired, textarea.nonrequired, select.nonrequired {
>> >  background-color: white;
>> >  border-style: solid ;
>> >}
>> >
>> >>From my point of view everything you need is available to solve your
>> styling needs. ;-)
>> >
>> >Cheers,
>> >Markus
>> >------------------------------------------
>> >Markus Heinisch
>> >
>> >Dipl.-Inform.
>> >Consultant
>> >
>> >Trivadis GmbH
>> >Freischützstrasse 92
>> >81927 München
>> >Germany
>> >
>> >Tel.: +49-89-99275930
>> >Fax : +49-89-99275959
>> >Mobile: +49-162-2959616
>> >mailto:markus.heinisch@trivadis.com
>> >http://www.trivadis.com
>> >
>> >
>> >
>> >
>> >>-----Ursprüngliche Nachricht-----
>> >>Von: Dan Robinson [mailto:dannyjrobinson@gmail.com]
>> >>Gesendet: Mittwoch, 28. Juni 2006 18:02
>> >>An: adffaces-user@incubator.apache.org
>> >>Betreff: [SPAM] - Skin Enhancement Request - Bayesian Filter
>> >>detected spam
>> >>
>> >>I don't think this is currently possible, but please prove me wrong!
>> >>
>> >>We'd like to provide a skin configuration that would cause
>> >>certain styles to be appled when a field is marked as
>> >>required.  Specifically, we'd like to cause the input field
>> >>background colour to be changed to make it very obvious that
>> >>it is required.
>> >>
>> >>So far we've only been able to set the background color for
>> >>all elements of an input field (label, tip, etc.).
>> >>
>> >>I guess an extension of this would be to make the label bold etc. etc.
>> >>
>> >>Thanks,
>> >>
>> >>Danny
>> >>
>> >>
>> >>
>> >
>> >
>> >
>>
>>
>


Re: AW: [SPAM] - Skin Enhancement Request - Bayesian Filter detected spam

Posted by Dan Robinson <da...@gmail.com>.
Thanks Guys, that seemed to work.

We've yet to upgrade to the very latest Trinidad release, so I guess that's
why the 'af|inputText.requiredFieldMarker::content' method didn't work, but
we're using Markus' method and plan to switch over once we're up-to-date.

I'm not a huge fan of the contentStyle approach, but would love a
'contentClass' tag instead.  Having our devs understand and put styles into
pages is not an approach I want to take.

Better still I'd love an out-of-the-box style we can override for required
fields that just workswhen required or showRequired are true.

Danny

On 6/28/06, Jeanne Waldman <je...@oracle.com> wrote:
>
> The styleClass attribute for the form components goes on the root dom
> element of the component, which isn't the <input> or <textArea>. We
> should be doing this for all our components, and if we are not, we'll
> need to enhance them to do this. This is for consistency, and it makes
> it easier to write skinning rules.
>
> In the case of inputText where changing the styles of the 'content' (aka
> the input/textArea) piece of the component is common, we've added a
> 'contentStyle' attribute. So you can essentially do what Markus
> suggested, but use the contentStyle attribute. By essentially, I mean
> that contentStyle takes  styles, not style classes. So you would do this:
>
> contentStyle="#{bindings.Title.mandatory ? 'background-color:
> rgb(255,255,181);border-style: solid ;' : 'background-color: white;
>   border-style: solid ;'}"
>
>
> I just thought of another way you can do this using the skinning file.
> Do what Markus suggested, but I would change the name of the styleClasses:
>
>             <af:inputText value="#{bindings.Title.inputValue}"
>                           label="#{bindings.Title.label}"
>                           required="#{bindings.Title.mandatory}"
>                           styleClass="#{bindings.Title.mandatory ?
> 'requiredFieldMarker' : 'nonrequiredMarker'}"
>                           columns="#{bindings.Title.displayWidth}">
>             </af:inputText>
>
> The in the skinning file you can do this:
>
> /* When the af|inputText's component has the styleClass set to
> requiredFieldMarker, set its 'content' piece */
> af|inputText.requiredFieldMarker::content {
> background-color: rgb(255,255,181);
> border-style: solid ;
> }
>
> - Jeanne
>
> Markus Heinisch wrote:
>
> >Hi Dan,
> >
> >Are you looking for a solution like this:
> >
> >            <af:inputText value="#{bindings.Title.inputValue}"
> >                          label="#{bindings.Title.label}"
> >                          required="#{bindings.Title.mandatory}"
> >                          styleClass="#{bindings.Title.mandatory ?
> 'required' : 'nonrequired'}"
> >                          columns="#{bindings.Title.displayWidth}">
> >            </af:inputText>
> >
> >The EL expression in the attribute styleClass makes the trick. The EL
> expression resolves to styleClass="required" when the Title is mandatory
> (example uses Oracle ADF which provides for a property like 'Title' some
> metadata like 'mandatory' or 'updatable').
> >
> >The styleclass must be defined in a CSS or your Skin-CSS:
> >
> >input.required, textarea.required, select.required {
> >  background-color: rgb(255,255,181);
> >  border-style: solid ;
> >}
> >input.nonrequired, textarea.nonrequired, select.nonrequired {
> >  background-color: white;
> >  border-style: solid ;
> >}
> >
> >>From my point of view everything you need is available to solve your
> styling needs. ;-)
> >
> >Cheers,
> >Markus
> >------------------------------------------
> >Markus Heinisch
> >
> >Dipl.-Inform.
> >Consultant
> >
> >Trivadis GmbH
> >Freischützstrasse 92
> >81927 München
> >Germany
> >
> >Tel.: +49-89-99275930
> >Fax : +49-89-99275959
> >Mobile: +49-162-2959616
> >mailto:markus.heinisch@trivadis.com
> >http://www.trivadis.com
> >
> >
> >
> >
> >>-----Ursprüngliche Nachricht-----
> >>Von: Dan Robinson [mailto:dannyjrobinson@gmail.com]
> >>Gesendet: Mittwoch, 28. Juni 2006 18:02
> >>An: adffaces-user@incubator.apache.org
> >>Betreff: [SPAM] - Skin Enhancement Request - Bayesian Filter
> >>detected spam
> >>
> >>I don't think this is currently possible, but please prove me wrong!
> >>
> >>We'd like to provide a skin configuration that would cause
> >>certain styles to be appled when a field is marked as
> >>required.  Specifically, we'd like to cause the input field
> >>background colour to be changed to make it very obvious that
> >>it is required.
> >>
> >>So far we've only been able to set the background color for
> >>all elements of an input field (label, tip, etc.).
> >>
> >>I guess an extension of this would be to make the label bold etc. etc.
> >>
> >>Thanks,
> >>
> >>Danny
> >>
> >>
> >>
> >
> >
> >
>
>

Re: AW: [SPAM] - Skin Enhancement Request - Bayesian Filter detected spam

Posted by Jeanne Waldman <je...@oracle.com>.
The styleClass attribute for the form components goes on the root dom 
element of the component, which isn't the <input> or <textArea>. We 
should be doing this for all our components, and if we are not, we'll 
need to enhance them to do this. This is for consistency, and it makes 
it easier to write skinning rules.

In the case of inputText where changing the styles of the 'content' (aka 
the input/textArea) piece of the component is common, we've added a 
'contentStyle' attribute. So you can essentially do what Markus 
suggested, but use the contentStyle attribute. By essentially, I mean 
that contentStyle takes  styles, not style classes. So you would do this:

contentStyle="#{bindings.Title.mandatory ? 'background-color: rgb(255,255,181);border-style: solid ;' : 'background-color: white;
  border-style: solid ;'}"


I just thought of another way you can do this using the skinning file.
Do what Markus suggested, but I would change the name of the styleClasses:

            <af:inputText value="#{bindings.Title.inputValue}"
                          label="#{bindings.Title.label}"
                          required="#{bindings.Title.mandatory}"
                          styleClass="#{bindings.Title.mandatory ? 'requiredFieldMarker' : 'nonrequiredMarker'}"
                          columns="#{bindings.Title.displayWidth}">
            </af:inputText>

The in the skinning file you can do this:

/* When the af|inputText's component has the styleClass set to 
requiredFieldMarker, set its 'content' piece */
af|inputText.requiredFieldMarker::content {
 background-color: rgb(255,255,181);
 border-style: solid ;
}

 - Jeanne

Markus Heinisch wrote:

>Hi Dan,
>
>Are you looking for a solution like this:
>
>            <af:inputText value="#{bindings.Title.inputValue}"
>                          label="#{bindings.Title.label}"
>                          required="#{bindings.Title.mandatory}"
>                          styleClass="#{bindings.Title.mandatory ? 'required' : 'nonrequired'}"
>                          columns="#{bindings.Title.displayWidth}">
>            </af:inputText>
>
>The EL expression in the attribute styleClass makes the trick. The EL expression resolves to styleClass="required" when the Title is mandatory (example uses Oracle ADF which provides for a property like 'Title' some metadata like 'mandatory' or 'updatable').
>
>The styleclass must be defined in a CSS or your Skin-CSS:
>
>input.required, textarea.required, select.required {
>  background-color: rgb(255,255,181);
>  border-style: solid ;
>}
>input.nonrequired, textarea.nonrequired, select.nonrequired {
>  background-color: white;
>  border-style: solid ;
>}
>
>>>From my point of view everything you need is available to solve your styling needs. ;-)
>
>Cheers,
>Markus
>------------------------------------------
>Markus Heinisch      
>
>Dipl.-Inform. 
>Consultant 
>
>Trivadis GmbH 
>Freischützstrasse 92 
>81927 München 
>Germany 
> 
>Tel.: +49-89-99275930
>Fax : +49-89-99275959 
>Mobile: +49-162-2959616 
>mailto:markus.heinisch@trivadis.com 
>http://www.trivadis.com
> 
>
>  
>
>>-----Ursprüngliche Nachricht-----
>>Von: Dan Robinson [mailto:dannyjrobinson@gmail.com] 
>>Gesendet: Mittwoch, 28. Juni 2006 18:02
>>An: adffaces-user@incubator.apache.org
>>Betreff: [SPAM] - Skin Enhancement Request - Bayesian Filter 
>>detected spam
>>
>>I don't think this is currently possible, but please prove me wrong!
>>
>>We'd like to provide a skin configuration that would cause 
>>certain styles to be appled when a field is marked as 
>>required.  Specifically, we'd like to cause the input field 
>>background colour to be changed to make it very obvious that 
>>it is required.
>>
>>So far we've only been able to set the background color for 
>>all elements of an input field (label, tip, etc.).
>>
>>I guess an extension of this would be to make the label bold etc. etc.
>>
>>Thanks,
>>
>>Danny
>>
>>    
>>
>
>  
>


Re: How to style a single tr:inputText with a background-color depending on a state?

Posted by Simon Lessard <si...@gmail.com>.
When skinning, you should assume the least possible about the markup being
generated as it can change from version to version. Try to use skin
selectors most of the time. If you want to skin all required input in some
consistent way, not just inputText, you can use aliases. Like the patch I
made also include two new aliases:

.AFRequiredContent:alias
.AFRequiredLabel:alias

So let say you would like to make all required fields' label in caps and all
inputs' background yellow, it'll be achievable using the following :

.AFRequiredContent:alias
{
  background-color: yellow;
}

.AFRequiredLabel:alias
{
  text-transform: uppercase;
}

I'll try to have the patch commited asap.


Regards,

~ Simon

On 8/31/06, Markus Heinisch <Ma...@trivadis.com> wrote:
>
> Thanks Simon, that will solve my actual problem.
>
> BUT: Does that mean that I can't associate an tr:inputText with a style
> class selector?
> When I have a different use case (say, mark all optional <input>
> components or something else) then I can't do it by myself, it must be
> implemented in Trinindad??
>
> Cheers,
> Markus
>
>
>
> ________________________________
>
> From: Simon Lessard [mailto:simon.lessard.3@gmail.com]
> Sent: Thu 31.08.2006 17:55
> To: adffaces-user@incubator.apache.org
> Subject: Re: How to style a single tr:inputText with a background-color
> depending on a state?
>
>
>
> Hello Markus,
>
> It will be possible soon since I posted a patch about this, we only need
> to
> commit it when we're sure it works fine. We have a small issue with states
> currently though so it might not be today. You'll be able to do just what
> you want using <af|inputText:required::content/>
>
>
> Regards,
>
> ~ Simon
>
> On 8/31/06, Markus Heinisch <Ma...@trivadis.com> wrote:
> >
> > Hi,
> >
> > I want to style required input fields (tr:inputText) with a different
> > background color and only the <input> element should be affected.
> > With ADF Faces I used a little trick (see below).
> >
> > Now I want to use Trinidad and the trick doesn't work anymore!
> > I have found no way to style a single component instance with a style
> > class.
> > (Don't want to write an inline style for every required form field).
> >
> > The documentation says about attribute styleClass:
> > "If in ADF, styleClass and inlineStyle were rendered on the label and
> the
> > <input>. In Trinidad, these attributes are rendered on the root dom
> > element."
> >
> > Sorry, have no clue what that means. Does it mean the root of the
> document
> > or the parent of the <input> element which is a <td>?
> > In the end it make no difference if I use attribute styleClass or not.
> :-(
> >
> > Any hints are welcome!
> >
> > Thanks,
> > Markus
> >
> >
> >
> > ________________________________
> >
> > From: Markus Heinisch [mailto:Markus.Heinisch@trivadis.com]
> > Sent: Wed 28.06.2006 18:24
> > To: adffaces-user@incubator.apache.org
> > Subject: AW: [SPAM] - Skin Enhancement Request - Bayesian Filter
> detected
> > spam
> >
> >
> >
> > Hi Dan,
> >
> > Are you looking for a solution like this:
> >
> >             <af:inputText value="#{bindings.Title.inputValue}"
> >                           label="#{bindings.Title.label}"
> >                           required="#{bindings.Title.mandatory}"
> >                           styleClass="#{bindings.Title.mandatory ?
> > 'required' : 'nonrequired'}"
> >                           columns="#{bindings.Title.displayWidth}">
> >             </af:inputText>
> >
> > The EL expression in the attribute styleClass makes the trick. The EL
> > expression resolves to styleClass="required" when the Title is mandatory
> > (example uses Oracle ADF which provides for a property like 'Title' some
> > metadata like 'mandatory' or 'updatable').
> >
> > The styleclass must be defined in a CSS or your Skin-CSS:
> >
> > input.required, textarea.required, select.required {
> >   background-color: rgb(255,255,181);
> >   border-style: solid ;
> > }
> > input.nonrequired, textarea.nonrequired, select.nonrequired {
> >   background-color: white;
> >   border-style: solid ;
> > }
> >
> > From my point of view everything you need is available to solve your
> > styling needs. ;-)
> >
> > Cheers,
> > Markus
> > ------------------------------------------
> > Markus Heinisch
> >
> > Dipl.-Inform.
> > Consultant
> >
> > Trivadis GmbH
> > Freischützstrasse 92
> > 81927 München
> > Germany
> >
> > Tel.: +49-89-99275930
> > Fax : +49-89-99275959
> > Mobile: +49-162-2959616
> > mailto:markus.heinisch@trivadis.com
> > http://www.trivadis.com
> >
> >
> > > -----Ursprüngliche Nachricht-----
> > > Von: Dan Robinson [mailto:dannyjrobinson@gmail.com]
> > > Gesendet: Mittwoch, 28. Juni 2006 18:02
> > > An: adffaces-user@incubator.apache.org
> > > Betreff: [SPAM] - Skin Enhancement Request - Bayesian Filter
> > > detected spam
> > >
> > > I don't think this is currently possible, but please prove me wrong!
> > >
> > > We'd like to provide a skin configuration that would cause
> > > certain styles to be appled when a field is marked as
> > > required.  Specifically, we'd like to cause the input field
> > > background colour to be changed to make it very obvious that
> > > it is required.
> > >
> > > So far we've only been able to set the background color for
> > > all elements of an input field (label, tip, etc.).
> > >
> > > I guess an extension of this would be to make the label bold etc. etc.
> > >
> > > Thanks,
> > >
> > > Danny
> > >
> >
> >
> >
>
>
>
>

RE: How to style a single tr:inputText with a background-color depending on a state?

Posted by Markus Heinisch <Ma...@trivadis.com>.
Thanks Simon, that will solve my actual problem.
 
BUT: Does that mean that I can't associate an tr:inputText with a style class selector?
When I have a different use case (say, mark all optional <input> components or something else) then I can't do it by myself, it must be implemented in Trinindad??
 
Cheers,
Markus
 
 

________________________________

From: Simon Lessard [mailto:simon.lessard.3@gmail.com]
Sent: Thu 31.08.2006 17:55
To: adffaces-user@incubator.apache.org
Subject: Re: How to style a single tr:inputText with a background-color depending on a state?



Hello Markus,

It will be possible soon since I posted a patch about this, we only need to
commit it when we're sure it works fine. We have a small issue with states
currently though so it might not be today. You'll be able to do just what
you want using <af|inputText:required::content/>


Regards,

~ Simon

On 8/31/06, Markus Heinisch <Ma...@trivadis.com> wrote:
>
> Hi,
>
> I want to style required input fields (tr:inputText) with a different
> background color and only the <input> element should be affected.
> With ADF Faces I used a little trick (see below).
>
> Now I want to use Trinidad and the trick doesn't work anymore!
> I have found no way to style a single component instance with a style
> class.
> (Don't want to write an inline style for every required form field).
>
> The documentation says about attribute styleClass:
> "If in ADF, styleClass and inlineStyle were rendered on the label and the
> <input>. In Trinidad, these attributes are rendered on the root dom
> element."
>
> Sorry, have no clue what that means. Does it mean the root of the document
> or the parent of the <input> element which is a <td>?
> In the end it make no difference if I use attribute styleClass or not. :-(
>
> Any hints are welcome!
>
> Thanks,
> Markus
>
>
>
> ________________________________
>
> From: Markus Heinisch [mailto:Markus.Heinisch@trivadis.com]
> Sent: Wed 28.06.2006 18:24
> To: adffaces-user@incubator.apache.org
> Subject: AW: [SPAM] - Skin Enhancement Request - Bayesian Filter detected
> spam
>
>
>
> Hi Dan,
>
> Are you looking for a solution like this:
>
>             <af:inputText value="#{bindings.Title.inputValue}"
>                           label="#{bindings.Title.label}"
>                           required="#{bindings.Title.mandatory}"
>                           styleClass="#{bindings.Title.mandatory ?
> 'required' : 'nonrequired'}"
>                           columns="#{bindings.Title.displayWidth}">
>             </af:inputText>
>
> The EL expression in the attribute styleClass makes the trick. The EL
> expression resolves to styleClass="required" when the Title is mandatory
> (example uses Oracle ADF which provides for a property like 'Title' some
> metadata like 'mandatory' or 'updatable').
>
> The styleclass must be defined in a CSS or your Skin-CSS:
>
> input.required, textarea.required, select.required {
>   background-color: rgb(255,255,181);
>   border-style: solid ;
> }
> input.nonrequired, textarea.nonrequired, select.nonrequired {
>   background-color: white;
>   border-style: solid ;
> }
>
> From my point of view everything you need is available to solve your
> styling needs. ;-)
>
> Cheers,
> Markus
> ------------------------------------------
> Markus Heinisch
>
> Dipl.-Inform.
> Consultant
>
> Trivadis GmbH
> Freischützstrasse 92
> 81927 München
> Germany
>
> Tel.: +49-89-99275930
> Fax : +49-89-99275959
> Mobile: +49-162-2959616
> mailto:markus.heinisch@trivadis.com
> http://www.trivadis.com
>
>
> > -----Ursprüngliche Nachricht-----
> > Von: Dan Robinson [mailto:dannyjrobinson@gmail.com]
> > Gesendet: Mittwoch, 28. Juni 2006 18:02
> > An: adffaces-user@incubator.apache.org
> > Betreff: [SPAM] - Skin Enhancement Request - Bayesian Filter
> > detected spam
> >
> > I don't think this is currently possible, but please prove me wrong!
> >
> > We'd like to provide a skin configuration that would cause
> > certain styles to be appled when a field is marked as
> > required.  Specifically, we'd like to cause the input field
> > background colour to be changed to make it very obvious that
> > it is required.
> >
> > So far we've only been able to set the background color for
> > all elements of an input field (label, tip, etc.).
> >
> > I guess an extension of this would be to make the label bold etc. etc.
> >
> > Thanks,
> >
> > Danny
> >
>
>
>



Re: How to style a single tr:inputText with a background-color depending on a state?

Posted by Simon Lessard <si...@gmail.com>.
Hello Markus,

It will be possible soon since I posted a patch about this, we only need to
commit it when we're sure it works fine. We have a small issue with states
currently though so it might not be today. You'll be able to do just what
you want using <af|inputText:required::content/>


Regards,

~ Simon

On 8/31/06, Markus Heinisch <Ma...@trivadis.com> wrote:
>
> Hi,
>
> I want to style required input fields (tr:inputText) with a different
> background color and only the <input> element should be affected.
> With ADF Faces I used a little trick (see below).
>
> Now I want to use Trinidad and the trick doesn't work anymore!
> I have found no way to style a single component instance with a style
> class.
> (Don't want to write an inline style for every required form field).
>
> The documentation says about attribute styleClass:
> "If in ADF, styleClass and inlineStyle were rendered on the label and the
> <input>. In Trinidad, these attributes are rendered on the root dom
> element."
>
> Sorry, have no clue what that means. Does it mean the root of the document
> or the parent of the <input> element which is a <td>?
> In the end it make no difference if I use attribute styleClass or not. :-(
>
> Any hints are welcome!
>
> Thanks,
> Markus
>
>
>
> ________________________________
>
> From: Markus Heinisch [mailto:Markus.Heinisch@trivadis.com]
> Sent: Wed 28.06.2006 18:24
> To: adffaces-user@incubator.apache.org
> Subject: AW: [SPAM] - Skin Enhancement Request - Bayesian Filter detected
> spam
>
>
>
> Hi Dan,
>
> Are you looking for a solution like this:
>
>             <af:inputText value="#{bindings.Title.inputValue}"
>                           label="#{bindings.Title.label}"
>                           required="#{bindings.Title.mandatory}"
>                           styleClass="#{bindings.Title.mandatory ?
> 'required' : 'nonrequired'}"
>                           columns="#{bindings.Title.displayWidth}">
>             </af:inputText>
>
> The EL expression in the attribute styleClass makes the trick. The EL
> expression resolves to styleClass="required" when the Title is mandatory
> (example uses Oracle ADF which provides for a property like 'Title' some
> metadata like 'mandatory' or 'updatable').
>
> The styleclass must be defined in a CSS or your Skin-CSS:
>
> input.required, textarea.required, select.required {
>   background-color: rgb(255,255,181);
>   border-style: solid ;
> }
> input.nonrequired, textarea.nonrequired, select.nonrequired {
>   background-color: white;
>   border-style: solid ;
> }
>
> From my point of view everything you need is available to solve your
> styling needs. ;-)
>
> Cheers,
> Markus
> ------------------------------------------
> Markus Heinisch
>
> Dipl.-Inform.
> Consultant
>
> Trivadis GmbH
> Freischützstrasse 92
> 81927 München
> Germany
>
> Tel.: +49-89-99275930
> Fax : +49-89-99275959
> Mobile: +49-162-2959616
> mailto:markus.heinisch@trivadis.com
> http://www.trivadis.com
>
>
> > -----Ursprüngliche Nachricht-----
> > Von: Dan Robinson [mailto:dannyjrobinson@gmail.com]
> > Gesendet: Mittwoch, 28. Juni 2006 18:02
> > An: adffaces-user@incubator.apache.org
> > Betreff: [SPAM] - Skin Enhancement Request - Bayesian Filter
> > detected spam
> >
> > I don't think this is currently possible, but please prove me wrong!
> >
> > We'd like to provide a skin configuration that would cause
> > certain styles to be appled when a field is marked as
> > required.  Specifically, we'd like to cause the input field
> > background colour to be changed to make it very obvious that
> > it is required.
> >
> > So far we've only been able to set the background color for
> > all elements of an input field (label, tip, etc.).
> >
> > I guess an extension of this would be to make the label bold etc. etc.
> >
> > Thanks,
> >
> > Danny
> >
>
>
>

How to style a single tr:inputText with a background-color depending on a state?

Posted by Markus Heinisch <Ma...@trivadis.com>.
Hi,
 
I want to style required input fields (tr:inputText) with a different background color and only the <input> element should be affected.
With ADF Faces I used a little trick (see below).
 
Now I want to use Trinidad and the trick doesn't work anymore!
I have found no way to style a single component instance with a style class.
(Don't want to write an inline style for every required form field).
 
The documentation says about attribute styleClass: 
"If in ADF, styleClass and inlineStyle were rendered on the label and the <input>. In Trinidad, these attributes are rendered on the root dom element."
 
Sorry, have no clue what that means. Does it mean the root of the document or the parent of the <input> element which is a <td>? 
In the end it make no difference if I use attribute styleClass or not. :-(
 
Any hints are welcome!
 
Thanks,
Markus
 
 

________________________________

From: Markus Heinisch [mailto:Markus.Heinisch@trivadis.com]
Sent: Wed 28.06.2006 18:24
To: adffaces-user@incubator.apache.org
Subject: AW: [SPAM] - Skin Enhancement Request - Bayesian Filter detected spam



Hi Dan,

Are you looking for a solution like this:

            <af:inputText value="#{bindings.Title.inputValue}"
                          label="#{bindings.Title.label}"
                          required="#{bindings.Title.mandatory}"
                          styleClass="#{bindings.Title.mandatory ? 'required' : 'nonrequired'}"
                          columns="#{bindings.Title.displayWidth}">
            </af:inputText>

The EL expression in the attribute styleClass makes the trick. The EL expression resolves to styleClass="required" when the Title is mandatory (example uses Oracle ADF which provides for a property like 'Title' some metadata like 'mandatory' or 'updatable').

The styleclass must be defined in a CSS or your Skin-CSS:

input.required, textarea.required, select.required {
  background-color: rgb(255,255,181);
  border-style: solid ;
}
input.nonrequired, textarea.nonrequired, select.nonrequired {
  background-color: white;
  border-style: solid ;
}

From my point of view everything you need is available to solve your styling needs. ;-)

Cheers,
Markus
------------------------------------------
Markus Heinisch     

Dipl.-Inform.
Consultant

Trivadis GmbH
Freischützstrasse 92
81927 München
Germany

Tel.: +49-89-99275930
Fax : +49-89-99275959
Mobile: +49-162-2959616
mailto:markus.heinisch@trivadis.com
http://www.trivadis.com


> -----Ursprüngliche Nachricht-----
> Von: Dan Robinson [mailto:dannyjrobinson@gmail.com]
> Gesendet: Mittwoch, 28. Juni 2006 18:02
> An: adffaces-user@incubator.apache.org
> Betreff: [SPAM] - Skin Enhancement Request - Bayesian Filter
> detected spam
>
> I don't think this is currently possible, but please prove me wrong!
>
> We'd like to provide a skin configuration that would cause
> certain styles to be appled when a field is marked as
> required.  Specifically, we'd like to cause the input field
> background colour to be changed to make it very obvious that
> it is required.
>
> So far we've only been able to set the background color for
> all elements of an input field (label, tip, etc.).
>
> I guess an extension of this would be to make the label bold etc. etc.
>
> Thanks,
>
> Danny
>