Actually I meant to say
2) :disabled, :active, :unvisited, :visited, :rtl are pseudo-classes that
represent a state and
3) overflow-next and overflow-prev, stop, join, join-overflow etc are pseudo
elements. As you mentioned all pseudo-elements can support many states and can
be in one or more states at the same time.
I have also attached a sample css that uses the styles referred to by the HTML
below. These need to be defined in the base-desktop.xss file.
SAMPLE STYLES FOR TRAIN
-----------------------
/***********************************
Train Styles
***********************************/
/* for the processTrain */
.af-train {
margin-left: auto;
margin-right: auto;
font-size:11px;
font-family:Tahoma;
}
/***********************************
Joins
***********************************/
/* for joins between the overflow icons and the stops */
.af|train::join-overflow {
min-width:20px;
width:100%;
height:1px;
}
/* join (between overflow and stop icons) in disabled state */
.af|train::join-overflow:disabled {
background-color: #A6B3C8;
}
/* join (between overflow and stop icons) in visited state */
.af|train::join-overflow:visited {
background-color: #72007C;
}
/* join (between overflow and stop icons) in unvisited state */
.af|train::join-overflow:unvisited {
background-color: #3463D3;
}
/* for joins between stops */
.af|train::join {
min-width:20px;
width:100%;
height: 1px;
}
/* join in visited state */
.af|train::join:visited {
background-color: #72007C;
}
/* join in unvisited state */
.af|train::join:unvisited {
background-color: #3463D3;
}
/* join in disabled state */
.af|train::join:disabled {
background-color: #A6B3C8;
}
/***********************************
Spacers
***********************************/
/* spacer used between stops */
.af|train::stop-spacer {
height: 1px;
width: 5px;
}
/* stop spacer in visited state */
.af|train::stop-spacer:visited {
background-color: #72007C;
}
/* stop spacer in unvisited state */
.af|train::stop-spacer:unvisited {
background-color: #3463D3;
}
/* stop spacer in disabled state */
.af|train::stop-spacer:disabled {
background-color: #A6B3C8;
}
/* spacer used between parent train and stops */
.af|train::parent-spacer {
height: 1px;
width: 5px;
}
/* spacer used for margins in the beginning and end of the train */
.af|train::margin-end,
.af|train::margin-start {
height: 1px;
width: 1px;
}
/***************************************
Icons: Parent Train, stop & Overflow
***************************************/
/* block that displays the parent start icon*/
.af|train::parent-start-icon-block
{
text-align:right;
}
/* block that displays the parent start icon*/
.af|train::parent-end-icon-block
{
text-align:left;
}
/* icon to indicate a parent process in the beginning of a sub train */
.af|train::parent-start-icon {
height:13px;
width:13px;
content:url(../images/stop-parent.png);
}
/* icon to indicate a parent process in the end of a sub train */
.af|train::parent-end-icon {
height:13px;
width:13px;
content:url(../images/stop-parent-end.png);
}
/* block that displays the overflow image */
.af|train::overflow-icon-block {
position:relative;top:-1px;
}
/* overflow start icon in visited state (indicates presence of previous steps)
*/
.af|train::overflow-start-icon:visited
{
height:13px;
width:13px;
content:url(../images/overflow-start-visited.png);
}
/* overflow start icon in disabled state (indicates presence of previous stops)
*/
.af|train::overflow-start-icon:disabled
{
height:13px;
width:13px;
content:url(../images/overflow-start-disabled.png);
}
/* overflow end icon in disabled state (indicates presence of more stops) */
.af|train::overflow-end-icon:disabled
{
height:13px;
width:13px;
content:url(../images/overflow-end-disabled.png);
}
/* overflow end icon in unvisited state (indicates presence of more stops) */
.af|train::overflow-end-icon:unvisited
{
height:13px;
width:13px;
content:url(../images/overflow-end-unvisited.png);
}
/* overflow end icon in visited state (indicates presence of visited stops in
the next set) */
.af|train::overflow-end-icon:visited
{
height:13px;
width:13px;
content:url(../images/overflow-end-unvisited.png);
}
/* block that displays a stop icon (active/disabled/visited/unvisited) */
.af|train::stop-icon-block
{
}
/* stop icon in visited state */
.af|train::stop-icon:visited {
height:13px;
width:13px;
content:url(../images/stop-visited.png);
}
/* stop icon in active state */
.af|train::stop-icon:active {
height:13px;
width:13px;
content:url(../images/stop-active.png);
}
/* stop icon in unvisited state */
.af|train::stop-icon:unvisited {
height:13px;
width:13px;
content:url(../images/stop-unvisited.png);
}
/* stop icon in disabled state */
.af|train::stop-icon:disabled {
height:13px;
width:13px;
content:url(../images/stop-disabled.png);
}
/************************************************
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
{
display:block;
padding-top:2px;
padding-bottom:2px;
padding-left:1px;
padding-right:1px;
text-align:right;
}
/* content area in the end of the train, to display the parent process name */
.af|train::parent-end-content
{
display:block;
padding-top:2px;
padding-bottom:2px;
padding-left:1px;
padding-right:1px;
text-align:left;
}
/*
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
{
display:block;
padding-top:2px;
padding-bottom:2px;
padding-left:1px;
padding-right:1px;
text-align:center;
}
/* content area to display the stop name */
.af|train::stop-content
{
padding-left:2px;
padding-right:2px;
padding-top:2px;
padding-bottom:2px;
text-align:center;
}
/* 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
{
color:#737373;
}
/* 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
{
font-weight:bold;
color:#000000;
text-align:center;
padding-left:5px;
padding-right:5px;
}
/* link for a stop */
.af|train::stop-link
{
text-decoration:none;
}
/* link for an unvisited stop */
.af|train::stop-link:unvisited
{
text-decoration:underline;
color:#003399;
}
/* link for an visited stop */
.af|train::stop-link:visited
{
text-decoration:underline;
color:#72007C;
}
/* link for an active stop */
.af|train::stop-link:active
{
color:#000000;
}
/* link for an disabled stop */
.af|train::stop-link:disabled
{
color:#737373;
}
/* link for an overflow in disabled state */
.af|train::overflow-link:disabled
{
text-decoration:none;
color:#737373;
}
/* link for an overflow in visited state */
.af|train::overflow-link:visited
{
text-decoration:underline;
color:#72007C;
}
/* link for an overflow in unvisited state */
.af|train::overflow-link:unvisited
{
text-decoration:underline;
color:#003399;
}
- Pavitra
-----Original Message-----
From: Simon Lessard [mailto:[EMAIL PROTECTED]
Sent: Tuesday, August 22, 2006 11:42 AM
To: [email protected]; [EMAIL PROTECTED]
Subject: Re: ADFFACES-60
Note taken, thanks Pavitra.
On 8/22/06, Pavitra Subramaniam <[EMAIL PROTECTED]> wrote:
>
> Hello Simon,
>
> Simon, I am delayed in providing a fix on Trinidad. Please go ahead
> with your solution but I would recommend we use the skin hooks we
> discussed earlier and agreed on (Email titled: Process Train Skin Selectors).
>
> 1) Can we use the word stop instead of station?
> 2) :disabled, :visited, :unvisited, :active are states and not pseudo
> elements.
> 3) overflow-next and overflow-prev are pseudo elements and should
> follow the convention - af|train::overflow-next,
> af|train::overflow-prev. For a full list of pseudo-elements, refer to my
> earlier email.
> 4) I have markup that makes use of one stop icon instead of 2 (left
> and right). I think we should do that and the example I have attached
> will provide a . Please see example for train HTML markup, below. If
> you need me to send you a sample CSS file, that uses these skin hooks,
> please let me know.
>
> Thanks
> Pavitra
>
> Sample HTML for train that uses one stop icon
> ---------------------------------------------
> <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">
> <!-- af|train::parent-start-icon -->
> <img src="images\step_parent.png" alt="Process A:
> Step A"
> width="13px" height="13px"/>
> </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">
> <!-- af|processTrain::overflow-start-visited-icon -->
> <img src="images\overflow_start_visited.png"
> alt="Previous Steps"
> width="7px" height="7px"/>
> </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::step-spacer
> af|train::step-spacer:visited"><span></span></div></td>
>
> <!-- STEP -->
> <td>
> <table cellpadding="0" cellspacing="0" border="0" width="100%">
> <tbody>
> <tr>
> <td width="50%">
> <div class="af|train::join-overflow
> af|train::join-overflow:visited">
> <span></span></div></td>
> <td>
> <div class="af_train_step_icon_block">
> <img src="images\step_visited.png" alt="Visited Step:
> Step 1"
> width="13px" height="13px"/>
> </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_step_spacer af_train_step_spacer_visited">
> <span></span>
> </div>
> </td>
>
> <!-- STEP -->
> <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_step_icon_block">
> <img src="images\step_active.png" alt="Active Step:
> Step 2"
> width="13px" height="13px"/>
> </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_step_spacer af_train_step_spacer_unvisited">
> <span></span>
> </div>
> </td>
>
> <!-- STEP -->
> <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_step_icon_block">
> <img src="images\step_unvisited.png" alt="Unvisited
> Step: Step 3"
> width="13px" height="13px"/>
> </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_step_spacer
> af_train_step_spacer_disabled"><span></span></div></td>
>
> <!-- STEP -->
> <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_step_icon_block">
> <img src="images\step_disabled.png" alt="Disabled Step:
> Step 4"
> width="13px" height="13px"/>
> </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_step_spacer af_train_step_spacer_disabled">
> <span></span>
> </div>
> </td>
>
> <!-- STEP -->
> <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_step_icon_block">
> <img src="images\step_disabled.png" alt="Disabled Step:
> Step 5"
> width="13px" height="13px"/>
> </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_step_spacer af_train_step_spacer_disabled">
> <span></span>
> </div>
> </td>
>
> <!-- STEP -->
> <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_step_icon_block">
> <img src="images\step_disabled.png" alt="Disabled Step:
> Step 5"
> width="13px" height="13px"/>
> </div>
> </td>
> <td width="50%">
> <div class="af_train_join_overflow
> af_train_join_overflow_disabled">
> <span></span>
> </div>
> </td>
> </tr>
> </tbody>
> </table>
> </td>
>
> <td>
> <div class="af_train_step_spacer af_train_step_spacer_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_overflow
> af_train_join_overflow_disabled">
> <span></span></div></td>
> <td style="width:1px;">
> <div class="af_train_overflow_icon_block">
> <img src="images\overflow_end_disabled.png"
> alt="Next Steps"
> width="7px" height="7px"/>
> </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="images\step_parent_end.png" alt="Process A:
> Step A"
> width="13px" height="13px"/>
> </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_step_content af_train_step_content_visited">
> <a href="" class="af_train_step_link
> af_train_step_link_visited">Step 1</a>
> </div>
> </td>
> <td></td>
>
> <td>
> <div class="af_train_step_content af_train_step_content_active">
> <a href="" class="af_train_step_link
> af_train_step_link_active">StepStepStep 2</a>
> </div>
> </td>
> <td></td>
>
> <td>
> <div class="af_train_step_content
> af_train_step_content_unvisited">
> <a href="" class="af_train_step_link
> af_train_step_link_unvisited">Step 3</a>
> </div>
> </td>
> <td></td>
>
> <td>
> <div class="af_train_step_content af_train_step_content_disabled">
> <a href="" class="af_train_step_link
> af_train_step_link_disabled">Step 4</a>
> </div>
> </td>
> <td></td>
>
> <td>
> <div class="af_train_step_content af_train_step_content_disabled">
> <a href="" class="af_train_step_link
> af_train_step_link_disabled">StepStepStep 5</a>
> </div>
> </td>
> <td></td>
>
> <td>
> <div class="af_train_step_content af_train_step_content_disabled">
> <a href="" class="af_train_step_link
> af_train_step_link_disabled">StepStep 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: Simon Lessard [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, August 22, 2006 10:59 AM
> To: Trinidad - Dev
> Subject: ADFFACES-60
>
> Hello,
>
> Anyone know if Pavitra is still working on the processTrain? If not
> I'll work on that issue and should be done with it tomorrow or so.
> I'll use the following hooks:
>
> af|train
> af|train::station
> af|train::station::join
> af|train::station::link
> af|train::station::left-icon
> af|train::station::right-icon
>
> The station will accept the following pseudoClass:
> :active (except on ::station::join since joins can only be visited or
> not) :disabled :overflow-next (except on ::station::join since joins
> can only be visited or
> not)
> :overflow-prev (except on ::station::join since joins can only be
> visited or
> not)
> :unvisited
> :visited
>
> And hopefully :disabled will be combinable with any of the other
> pseduClass.
>
> There's one thing I dislike though (and I think Jeanne does as well):
> the ::left-icon and ::right-icon. A single icon per station station
> would be far more interesting. However, I cannot find a way to
> generate markup code accepting one and not having a major drawback. So
> if someone feels inspired I would be glad to see a better solution.
>
> Note: I already tried the following solution (extract showing only
> active station code) <table class="af|train">
> <tr>
> <td class="af|train::station:visited::join"> </td>
> <td class="af|train::station:active" style="width:1em;"><img
> src="af|train::station:active::station-icon"/></td>
> <td class="af|train::station:unvisited::join"> </td>
> </tr>
> <tr>
> <td colspan="3" class="af|train::station:active"/>
> </tr>
> </table>
>
> The above code won't work if af|train::station:active specifies a
> width (Which happen to be very useful if you want equidistant
> stations)
>
>
> Regards,
>
> ~ Simon
>
>
>