Jeanne and I were discussing this exact same workaround for IE6 :), yesterday - I'll let her explain it.
- Pavitra > -----Original Message----- > From: Simon Lessard [mailto:[EMAIL PROTECTED] > Sent: Wednesday, August 30, 2006 6:10 AM > To: [email protected] > Subject: Re: TrainRenderer using the new train selectors > > Hello, > > I did not have any nightmare in the end, I found a quote > instead: "Don't be too hard with Microsoft Internet Explorer, > it is not bad, you can download Firefox with it". > > Anyway, I thought about a work around as well but it's far > from easy and/or convenient. The idea would be to keep the > state in the selector rather than extracting it and add > automatic rule-ref from the parent selector. e.g. if you have > af|train::stop:unvisited, instead of being splitted as > af_train_stop p_AFUnvisited, it would become one selector > af_train_stop_unvisited but a rule-ref would be added at > parsing level to af_train_stop selector. > > > Regards, > > ~ Simon > > On 8/29/06, Simon Lessard <[EMAIL PROTECTED]> wrote: > > > > Ok, I found the reproduction case... It's going to be painful... > > Microsoft must have worked hard to invent such bug: > > > > This code is working > > > > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " > > http://www.w3.org/TR/html4/loose.dtd"> > > <html> > > <head> > > <title>5.8.3 Class Selectors</title> > > <meta http-equiv="Content-Style-Type" content="text/css"> > > <style type="text/css"> > > P.liberty.give {color: blue; border: 2px solid red; > background: > > white;} > > </style> > > </head> > > <body> > > <p class="liberty me"> > > This is a paragraph with a class of 'liberty me', > and should > > NOT be red (border), white (background), and blue (foreground). > > </p> > > </body> > > </html> > > > > > > This code is not: > > > > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " > > http://www.w3.org/TR/html4/loose.dtd"> > > <html> > > <head> > > <title>5.8.3 Class Selectors</title> > > <meta http-equiv="Content-Style-Type" content="text/css"> > > <style type="text/css"> > > P.give.liberty {color: blue; border: 2px solid red; > background: > > white;} > > </style> > > </head> > > <body> > > <p class="liberty me"> > > This is a paragraph with a class of 'liberty me', > and should > > NOT be red (border), white (background), and blue (foreground). > > </p> > > </body> > > </html> > > > > > > The difference? MSIE is actually only evaluating the last class > > defined in the rule so in the first example, the p element does not > > match "give" class so the style is not applied (and it > should not be). > > In the second, it matches .liberty and thus the style is applied. > > Please someone, tell me you got a lifesaver idea to work > around that insanity. > > > > > > Goodnight... Another nightmare is coming for me I'm sure, > > > > > > > > ~ Simon > > > > > > On 8/29/06, Simon Lessard < [EMAIL PROTECTED]> wrote: > > > > > > *mumble* > > > > > > http://blogs.msdn.com/ie/archive/2005/07/29/445242.aspx > > > > > > *mumble* > > > > > > > > > On 8/29/06, Simon Lessard <[EMAIL PROTECTED]> wrote: > > > > > > > > Is it possible that IE is so dumb that it interprets > > > > > > > > .af_train_join.p_AFDisabled as .af_train_join OR .p_AFDisabled > > > > rather than the specified .af_train_join AND .p_AFDisabled? > > > > > > > > My diagnosis makes it looks like it and if it's really > the case, > > > > it might be a problem for many or our skinning by state > selectors. > > > > Anyone knows any work around? > > > > > > > > > > > > Regards, > > > > > > > > ~ Simon > > > > > > > > > > > > On 8/29/06, Simon Lessard < [EMAIL PROTECTED]> wrote: > > > > > > > > > > Yes it would. I'll start by uploading that damned patch first > > > > > though... And since I have a rendering issue with IE, > this will > > > > > take one more day... Damned IE... Oh and I support > RTL fine already as well... > > > > > There's just that strange bug if joins under IE... > > > > > > > > > > The generated CSS includes the class and this is the > only class > > > > > using that join icon... > > > > > > > > > > .af_train_join.p_AFUnvisited,.xc1.p_AFUnvisited > > > > > > {background-image:url('/TrinidadDemo-MenuModel-context-root/skin > > > > > > s/train/skin_images/JoinUnvisited.gif');background-repeat:repeat > > > > > -x} > > > > > > > > > > > > > > > > > > > > > > > > > The classes on the content cell are > > > > > > > > > > <td colspan="3" class="p_AFUnvisited x72 x73"> > > > > > <!-- Start: org.apache.myfaces.trinidad.Command["_id5"] --> > > > > > <a > > > > > onclick="submitForm('_id2',1,{source:'_id4:2:_id5'});return > > > > > false;" href="#" class="x79">Useless step</a> </td> > > > > > > > > > > And the join get rendered for that step in a strange > way... ... > > > > > I hate IE... > > > > > > > > > > > > > > > Regards, > > > > > > > > > > ~ Simon > > > > > > > > > > > > > > > > > > > > On 8/29/06, Pavitra Subramaniam > <[EMAIL PROTECTED]> > > > > > wrote: > > > > > > > > > > > > It may also be a good idea to update > MVariableResolver.java, > > > > > > the test code that sets up MenuModel #{pageList}, > to include > > > > > > the visited, disabled, unvisited + readOnly states. > Right now > > > > > > the train golden file only tests for selected and > unvisited states. > > > > > > > > > > > > - Pavitra > > > > > > > > > > > > > > > > > > > -----Original Message----- > > > > > > > From: Pavitra Subramaniam > > > > > > > [mailto:[EMAIL PROTECTED] > > > > > > ] > > > > > > > Sent: Tuesday, August 29, 2006 2:46 PM > > > > > > > To: [email protected] > > > > > > > Subject: RE: TrainRenderer using the new train selectors > > > > > > > > > > > > > > Hello Simon, Jeanne, > > > > > > > > > > > > > > I have some comments on both your email exhanges. I have > > > > > > > consolidated all the items below as it was > getting hard to read. > > > > > > > > > > > > > > > > > > > > > >>>> > > > > > > > - af|train::stop combinable with :selected, :disabled, > > > > > > > :completed (will probably become p_AFVisited) and > :unvisited. > > > > > > > You can append :readOnly at the end of the result. So > > > > > > > af|train::stop:unvisited:readOnly is valid > > > > > > > >>>> > > > > > > > > > > > > > > - Do you think we need to support an > > > > > > "af|train::stop:visited:readOnly" > > > > > > > - I believe Jeanne wanted to have states that don't use > > > > > > > camel case. So readOnly should be read-only > > > > > > > > > > > > > > >>>> > > > > > > > - af|train::link > > > > > > > >>>> > > > > > > > - should this be ::stop-link or ::link good enough? > > > > > > > > > > > > > > > > > > > > > >>>> > > > > > > > - af|train::join combinable with :disabled, :completed, > > > > > > > :unvisited and :outer (:outer is used to add > joins outside > > > > > > > the edge of the train. I don't think many will > use it, but > > > > > > > it cost nothing and add more customization > > > > > > > possibilities) > > > > > > > >>>> > > > > > > > > > > > > > > - :join-outer pseudo element is good enough. Is this used > > > > > > > outside the parent train icons or between the > parent train > > > > > > > icons and the overflow (or stop)? > > > > > > > - do we still have the join-overflow? This comes > between the > > > > > > > overflow and regular stops. It may be useful in > cases where > > > > > > > only these joins need not be displayed. > > > > > > > > > > > > > > > > > > > > > >>>> > > > > > > > - af|train::overflow-start combinable with :disabled and > > > > > > :readOnly > > > > > > > - af|train::overflow-end combinable with :disabled, > > > > > > > :unvisited and :readOnly > > > > > > > >>>> > > > > > > > > > > > > > > - Do you think we should support :unvisited state on > > > > > > > overflow-start? This may be useful in cases where > the train > > > > > > > is not sequential? I have a scenario where all > stops in the > > > > > > > train are enabled and user can jump around any > stop without > > > > > > > a prescribed order. > > > > > > > > > > > > > > >>>> > > > > > > > I have the following valid suffixes: (I could not use > > > > > > > ::content for example since double :: is now > prevented from > > > > > > > Adam's change to prevent some strange behavior it seem) > > > > > > > -content (for example, the following is valid: > > > > > > > af|train::stop-content and > > > > > > > af|train::stop:selected-content. This selector > refers to the > > > > > > > link cell > > > > > > > af|(of the train) > > > > > > > >>>> > > > > > > > > > > > > > > - I agree with Jeanne. Let's call it > stop-content:selected. > > > > > > > I don't think we need stop-content:visited or > > > > > > > stop-content:unvisited. It's an overkill. > > > > > > > > > > > > > > >>>> > > > > > > > -icon-block (as above but refers to the icon cell) > > > > > > > >>>> > > > > > > > > > > > > > > - Perhaps we should have a convention of using > -block suffix > > > > > > > for style classes that go on <div> and -cell for > styles that > > > > > > > go on td. Is that acceptable? > > > > > > > > > > > > > > >>>> > > > > > > > I use the same join rule as you, that is previous stop > > > > > > > determine the join state, except for the join after the > > > > > > > selected stop. The only exception are disabled > stops, those > > > > > > > have disabled joins on both sides. > > > > > > > >>>> > > > > > > > > > > > > > > - the join after the selected stop should ideally > have the > > > > > > > state of the following stop. Isn't it? Do you > think it will > > > > > > > be easier to just show the left join of a > disabled stop as > > > > > > > "disabled". So if an unvisited stop follows the disabled > > > > > > > stop, the join between them will show up as unvisited. At > > > > > > > least this is how I have implemented it. I use > the same rule > > > > > > > for displaying joins before overflows. > > > > > > > > > > > > > > > > > > > > > >>>> > > > > > > > I also go rid of the separator, it's redundant as you can > > > > > > > add padding to -content selector. I also added > two aliases > > > > > > > .AFTrainContent:alias and .AFTrainIconBlock. So > you can add > > > > > > > spacing between stop with something like the following: > > > > > > > .AFTrainContent:alias > > > > > > > { > > > > > > > padding-left: 8px; > > > > > > > padding-right: 8px; > > > > > > > } > > > > > > > >>>> > > > > > > > When you say separator, do you mean the spacer that > > > > > > > separates stops? Where is the alias above > included? Can you > > > > > > > send me a HTML fragment? > > > > > > > > > > > > > > Thanks > > > > > > > - Pavitra > > > > > > > > > > > > > > > > > > > > > > -----Original Message----- > > > > > > > > From: Simon Lessard [mailto: [EMAIL PROTECTED] > > > > > > > > Sent: Tuesday, August 29, 2006 11:43 AM > > > > > > > > To: [email protected] > > > > > > > > Subject: Re: TrainRenderer using the new train selectors > > > > > > > > > > > > > > > > Ok, > > > > > > > > > > > > > > > > Then if those selectors are ok for you as well Pavitra > > > > > > > > I'll > > > > > > > make the > > > > > > > > changes to -outer and and -icon-cell tonight and upload > > > > > > > > the > > > > > > > patch as > > > > > > > > well as a test skin I used. > > > > > > > > > > > > > > > > > > > > > > > > Regards, > > > > > > > > > > > > > > > > ~ Simon > > > > > > > > > > > > > > > > On 8/29/06, Jeanne Waldman < > [EMAIL PROTECTED]> wrote: > > > > > > > > > > > > > > > > > > yep, it all makes sense. > > > > > > > > > I can see where you'd want to use a ::content. That > > > > > > > > > would > > > > > > > > make sense. > > > > > > > > > We don't do this yet in any of our skinning > keys, so I > > > > > > > > > am > > > > > > > fine with > > > > > > > > > the -content, since we do that all over the place. :) > > > > > > > > > > > > > > > > > > - Jeanne > > > > > > > > > > > > > > > > > > Simon Lessard wrote: > > > > > > > > > > > > > > > > > > > Oups, comments below > > > > > > > > > > > > > > > > > > > > On 8/29/06, Jeanne Waldman > <[EMAIL PROTECTED] > > > > > > > > > > > > > > > > > wrote: > > > > > > > > > > > > > > > > > > > >> > > > > > > > > > >> one question below > > > > > > > > > >> > > > > > > > > > >> Simon Lessard wrote: > > > > > > > > > >> > > > > > > > > > >> > Hello Pavitra, > > > > > > > > > >> > > > > > > > > > > >> > I had to do about the same changes on my side. > > > > > > > > > >> > Here's > > > > > > > > my list of > > > > > > > > > >> selector > > > > > > > > > >> > and the rules I used: > > > > > > > > > >> > > > > > > > > > > >> > - af|train::stop combinable with :selected, > > > > > > > > > >> > :disabled, > > > > > > > > :completed > > > > > > > > > >> (will > > > > > > > > > >> > probably become p_AFVisited) and :unvisited. You > > > > > > > > > >> > can > > > > > > append > > > > > > > > > >> > :readOnly at the end of the result. So > > > > > > > > > >> > af|train::stop:unvisited:readOnly is valid > > > > > > > > > >> > - af|train::link > > > > > > > > > >> > - af|train::join combinable with :disabled, > > > > > > > > > >> > :completed, :unvisited > > > > > > > > > and > > > > > > > > > >> > :outer (:outer is used to add joins outside the > > > > > > > > > >> > edge of > > > > > > the > > > > > > > > > >> > train. I don't think many will use it, > but it cost > > > > > > > nothing and > > > > > > > > > >> > add more > > > > > > > > > customization > > > > > > > > > >> > possibilities) > > > > > > > > > >> > > > > > > > > > >> Is :outer a state? It sounds to me like it > should be > > > > > > > > > >> af|train::join-outer > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > yes, it could be ::join-outer, was made a > state only > > > > > > > > > > to > > > > > > fit the > > > > > > > > > > other join selectors, but it does make more > sense to > > > > > > > > > > use > > > > > > > > -outer for > > > > > > > > > > that one. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Does that make more sense now? > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Regards, > > > > > > > > > > > > > > > > > > > > ~ Simon > > > > > > > > > > > > > > > > > > > >> - af|train::overflow-start combinable with > :disabled > > > > > > > > > >> and > > > > > > > > :readOnly > > > > > > > > > >> > - af|train::overflow-end combinable with > :disabled, > > > > > > > :unvisited > > > > > > > > > >> > and :readOnly > > > > > > > > > >> > > > > > > > > > > >> > I have the following valid suffixes: (I > could not > > > > > > > > > >> > use > > > > > > > > ::content > > > > > > > > > >> > for example since double :: is now prevented from > > > > > > > > Adam's change > > > > > > > > > >> > to prevent some strange behavior it seem) > > > > > > > > > >> > > > > > > > > > >> I don't think two pseudo-elements make > sense, does it? > > > > > > > I suppose > > > > > > > > > >> you could have a piece of a piece. Adam > prevented it > > > > > > > > because there > > > > > > > > > >> were bugs in it. I can't recall what the bugs were. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > I was seeing them more as sub-elements, like > > > > > > ::stop::content > > > > > > > > > > (content of the > > > > > > > > > > stop) > > > > > > > > > > > > > > > > > > > >> -content (for example, the following is valid: > > > > > > > > > >> af|train::stop-content > > > > > > > > > >> > and > > > > > > > > > >> > af|train::stop:selected-content. This selector > > > > > > > > > >> > af|refers > > > > > > > > to the link > > > > > > > > > cell > > > > > > > > > >> fo > > > > > > > > > >> > the train) > > > > > > > > > >> > > > > > > > > > >> What does a :selected-content 'state' mean? > > > > > > > > > >> How is it different than > af|train::stop-content:selected? > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > My bad there, af|train::stop-content:selected is > > > > > > > > > > actually > > > > > > > > what I use. > > > > > > > > > > Even > > > > > > > > > > if a better selector would have been > > > > > > > > > > af|train::stop:selected::content imho. > > > > > > > > > > > > > > > > > > > >> -icon-block (as above but refers to the icon cell) > > > > > > > > > >> > > > > > > > > > >> Could you say -icon-cell? We use 'cell' > quite a bit > > > > > > > > > >> in > > > > > > > > our skinning > > > > > > > > > >> selectors. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Yes I could, I was using block only because > it was in > > > > > > Pavitra > > > > > > > > > > document > > > > > > > > > at > > > > > > > > > > first. > > > > > > > > > > > > > > > > > > > >> > > > > > > > > > >> > The icons follow the same rule. > > > > > > > > > >> > > > > > > > > > > >> > On 8/28/06, Pavitra Subramaniam > > > > > > > > <[EMAIL PROTECTED] > > > > > > > > > > >> wrote: > > > > > > > > > >> > > > > > > > > > > >> >> > > > > > > > > > >> >> Hello Simon, > > > > > > > > > >> >> > > > > > > > > > >> >> I have also almost completed implementing the > > > > > > TrainRenderer > > > > > > > > > >> >> using > > > > > > > > > the > > > > > > > > > >> >> new > > > > > > > > > >> >> skin selectors. It's great to know you > are done as > > > > > > > > well. If you > > > > > > > > > >> plan to > > > > > > > > > >> >> check in the train renderer code > anytime soon, can > > > > > > > > > >> >> we > > > > > > > > agree on > > > > > > > > > >> >> the common list of skin selectors, so that I can > > > > > > > > reuse them for > > > > > > > > > >> >> my work internally at Oracle? I had to make the > > > > > > following > > > > > > > > > >> >> changes and wanted to give you > > > > > > > > > an > > > > > > > > > >> >> update. > > > > > > > > > >> >> > > > > > > > > > >> >> 1. I had to introduce a new state called > > > > > > > "read-only". This is > > > > > > > > > >> different > > > > > > > > > >> >> from "disabled" state, like I explained in a > > > > > > > > > >> >> previous > > > > > > email. > > > > > > > > > >> >> > > > > > > > > > >> >> 2. I removed some redundant skin hooks - I can > > > > > > > > > >> >> send > > > > > > you the > > > > > > > > > >> >> updated > > > > > > > > > >> list > > > > > > > > > >> >> of selectors I am using. I also couldn't get the > > > > > > > "pass-through > > > > > > > > > >> states" > > > > > > > > > >> >> :visited, :active and :unvisited to > work, just as > > > > > > > > you. So I have > > > > > > > > > >> >> temporarily defined selectors like Jeanne > > > > > > > > > >> >> suggested > > > > > > (using > > > > > > > > > >> >> p_AFVisited, p_AFUnvisited etc. and renamed > > > > > > > > > >> >> :active to :selected). > > > > > > > > > >> >> > > > > > > > > > >> >> 3. Finally I have simplified the rules for > > > > > > > > determining the state > > > > > > > > > >> >> of joins. > > > > > > > > > >> >> I figured it would be much simpler if we did the > > > > > > > > following. The > > > > > > > > > >> >> join to the left of a stop, is 'always > in the same > > > > > > > > state as the > > > > > > > > > >> >> stop' (Overflows could also follow the > same rules > > > > > > > > > >> >> as > > > > > > > > stops). So > > > > > > > > > >> >> for instance for a train > > > > > > > > > >> like > > > > > > > > > >> >> > > > > > > > > > >> >> V ----- VR ----- UV ----- A ----- D > ----- UVR ----- V > > > > > > > > > >> >> vr uv v d > uvr v > > > > > > > > > >> >> > > > > > > > > > >> >> > > > > > > > > > >> >> NOTE: The only exception, is the join > to the left > > > > > > > of an active > > > > > > > > > >> stop is > > > > > > > > > >> >> visited. Also, UVR and VR are stops > that are in 2 > > > > > > states > > > > > > > > > >> >> simulataneously - 'visited & read-only' and > > > > > > > > > >> >> 'unvisited > > > > > > & > > > > > > > > > >> >> read-only'. Read-only implies > > > > > > > > > >> the > > > > > > > > > >> >> stop cannot be reached (and hence not > clickable) > > > > > > > > > >> >> and > > > > > > > > is dictated > > > > > > > > > >> by the > > > > > > > > > >> >> 'readOnly' property on the component > > > > > > commandNavigationItem. > > > > > > > > > >> >> > > > > > > > > > >> >> Please let me know if the above is ok. > > > > > > > > > >> >> > > > > > > > > > >> >> > > > > > > > > > >> >> Thanks > > > > > > > > > >> >> - Pavitra > > > > > > > > > >> >> > > > > > > > > > >> >> > > > > > > > > > >> >> > -----Original Message----- > > > > > > > > > >> >> > From: Simon Lessard > > > > > > > > > >> >> > [mailto:[EMAIL PROTECTED] > > > > > > ] > > > > > > > > > >> >> > Sent: Monday, August 28, 2006 11:43 AM > > > > > > > > > >> >> > To: [email protected] > > > > > > > > > >> >> > Subject: Re: Train selectors > > > > > > > > > >> >> > > > > > > > > > > >> >> > Hmmm you mean somthing like af|train:: > > > > > > stop.p_AFVisited? > > > > > > > > > >> >> > > > > > > > > > > >> >> > On 8/28/06, Jeanne Waldman > > > > > > > > < [EMAIL PROTECTED]> wrote: > > > > > > > > > >> >> > > > > > > > > > > > >> >> > > I was thinking :selected for :active. > > > > > > > > > >> >> > > :selected > > > > > > > could be > > > > > > > > > >> >> > > used > > > > > > > > > for > > > > > > > > > >> >> > > other components, too. > > > > > > > > > >> >> > > For :visited/:unvisited, I can't think of a > > > > > > > > > >> >> > > better > > > > > > name. > > > > > > > > > >> >> > I'm thinking > > > > > > > > > >> >> > > that we should use .p_AFVisited, > > > > > > > > > >> >> > > .P_AFUnvisited > > > > > > > until we > > > > > > > > > >> >> > > have > > > > > > > > > the > > > > > > > > > >> >> > > pseudo-class support in. These > wouldn't in a > > > > > > public api > > > > > > > > > >> >> > format, though. > > > > > > > > > >> >> > > > > > > > > > > > >> >> > > - Jeanne > > > > > > > > > >> >> > > > > > > > > > > > >> >> > > [EMAIL PROTECTED] wrote: > > > > > > > > > >> >> > > > > > > > > > > > >> >> > > >Hello, > > > > > > > > > >> >> > > > > > > > > > > > > >> >> > > >I thought about the following name changes > > > > > > > > > >> >> > > >for > > > > > > > > the selectors: > > > > > > > > > >> >> > > > > > > > > > > > > >> >> > > >:active --> :current or :selected > > > > > > > > :visited/:unvisited --> > > > > > > > > > >> >> > > >:completed/:uncompleted or > > > > > > > > > :seen/:unseen > > > > > > > > > >> >> > > > > > > > > > > > > >> >> > > > > > > > > > > > > >> >> > > >Do you have any other idea/preference? > > > > > > > > > >> >> > > > > > > > > > > > > >> >> > > > > > > > > > > > > >> >> > > >Regards, > > > > > > > > > >> >> > > > > > > > > > > > > >> >> > > >~ Simon > > > > > > > > > >> >> > > > > > > > > > > > > >> >> > > > > > > > > > > > > >> >> > > > > > > > > > > > > >> >> > > > > > > > > > > > > >> >> > > > > > > > > > > > > >> >> > > >"Simon Lessard" > <[EMAIL PROTECTED] > > > > > > > > > > >> >> > > >2006-08-25 22:49 Please respond to > > > > > > > > > >> >> > > >adffaces-dev > > > > > > > > > >> >> > > > > > > > > > > > > >> >> > > > To: "Trinidad - Dev" > > > > > > > > > >> >> > <[email protected]> > > > > > > > > > >> >> > > > cc: > > > > > > > > > >> >> > > > Subject: Train selectors > > > > > > > > > >> >> > > > > > > > > > > > > >> >> > > > > > > > > > > > > >> >> > > >Yes... again... > > > > > > > > > >> >> > > > > > > > > > > > > >> >> > > >I made a new renderer and it work > quite well, > > > > > > > > but I had to > > > > > > > > > >> >> > > >use :ora-visited and :ora-active for some > > > > > > > > selectors because > > > > > > > > > >> >> > > >those > > > > > > > > > >> are > > > > > > > > > >> >> > > >"pass through" > > > > > > > > > >> >> > > >values. > > > > > > > > > >> >> > > >Anyone have better name suggestion while we > > > > > > > > implement state > > > > > > > > > >> >> > > >interception on a per component basis? > > > > > > > > > >> >> > > > > > > > > > > > > >> >> > > > > > > > > > > > > >> >> > > >Regards, > > > > > > > > > >> >> > > > > > > > > > > > > >> >> > > >~ Simon > > > > > > > > > >> >> > > > > > > > > > > > > >> >> > > > > > > > > > > > > >> >> > > > > > > > > > > > > >> >> > > > > > > > > > > > > >> >> > > > > > > > > > > > >> >> > > > > > > > > > > > >> >> > > > > > > > > > > >> >> > > > > > > > > > > >> >> > > > > > > > > > > >> >> > > > > > > > > > >> >> > > > > > > > > > >> > > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >
