Sam Hough wrote:
> 
> Your still breaking my requirement that this behaviour is encapsulated
> within MyFancyRepeatingView ;) I really do appreciate all your code and I
> think I'm learning a lot even if I sound horribly ungrateful. I'm warming
> to every child component having a special behaviour object. Although it
> seems expensive does show nice encapsulation.
> 
> How about MyFancyRepeatingView has a singleton behaviour object that it
> checks is attached to all its children (should be quick as identity
> operation - in childIterator). Requires only single instance for whole
> application... I might be able to convince the HTML monkey that he only
> needs class="first" so I don't need to iterate through all the siblings.
> 

Then add the behaviors in onBeforeRender():

public class MyRepeatingView extends RepeatingView {
        public MyRepeatingView(String id) {
                super(id);
        }
        protected void onBeforeRender() {
                super.onBeforeRender();
                int idx = 0;
                Iterator iter = iterator();
                while (iter.hasNext()) {
                        Component child = (Component) iter.next();
                        if (idx == 0 || idx == size() - 1) {
                                child.add(new AttributeModifier("class", true, 
new Model(
                                                idx == 0 ? "first" : "last")) {
                                        public boolean isTemporary() {
                                                return true;
                                        }
                                });
                        }
                        idx++;
                }
        }
}
-- 
View this message in context: 
http://www.nabble.com/Reach-into-a-component-to-change-XML-attribute-tf4527906.html#a12965598
Sent from the Wicket - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to