hhmmmm,
the isEnabled() of the AttributeAppender is a really cool tool.
I used it in another place.
I have a StyledDataTable that overridden onComponentTag:

    @Override
    protected void onComponentTag(ComponentTag tag) {
        super.onComponentTag(tag);
        if (dataProvider.size() == 0) {
            CharSequence oldClassName = tag.getString("class");
            if (oldClassName == null || oldClassName.equals("")) {
                tag.put("class", "emptyTable");
            } else {
                tag.put("class", oldClassName + " " + "emptyTable");
            }
        }
    }

And instead, I put in the constructor:

        add(new AttributeAppender("class", true, new Model("emptyTable"), "
") {
            private static final long serialVersionUID = 1L;

            @Override
            public boolean isEnabled(Component component) {
                return (EurekifyDataTable.this.dataProvider.size() == 0);
            }
        });


That is so much better ..


On Tue, Apr 29, 2008 at 2:18 PM, Gerolf Seitz <[EMAIL PROTECTED]>
wrote:

> instead of the custom AbstractBehavior, you could add an
> AttributeAppender like this:
> link.add(new AttributeAppender("class", true, new
> Model("disabledPaginLink"), " ") {
>   public boolean isEnabled() {
>    return !getComponent().isEnabled();
>  }
> });
>
>  Gerolf
>
> On Tue, Apr 29, 2008 at 1:09 PM, Eyal Golan <[EMAIL PROTECTED]> wrote:
>
> > thanks,
> > here's what I did.
> > 1. I have a StyledAjaxNavigationToolbar that overrides:
> >    @Override
> >    protected PagingNavigator newPagingNavigator(String navigatorId,
> final
> > DataTable table) {
> >        return new StyledAjaxPagingNavigator(navigatorId, table);
> >    }
> >
> > 2. Then my StyledAjaxPagingNavigator overrides:
> >    @Override
> >    protected PagingNavigation newNavigation(IPageable pageable,
> >            IPagingLabelProvider labelProvider) {
> >        return new StyledAjaxPagingNavigation("navigation", pageable,
> > labelProvider);
> >    }
> >
> > 3. StyledAjaxPagingNavigation overrides:
> >    @Override
> >    protected Link newPagingNavigationLink(String id, IPageable pageable,
> > int pageIndex) {
> >        Link link = super.newPagingNavigationLink(id, pageable,
> pageIndex);
> >        link.add(new AbstractBehavior() {
> >            private static final long serialVersionUID = 1L;
> >
> >            @Override
> >            public void onComponentTag(Component component, ComponentTag
> > tag) {
> >                super.onComponentTag(component, tag);
> >                if (!component.isEnabled()) {
> >                    CharSequence oldClassName = tag.getString("class");
> >                    if (oldClassName == null || oldClassName.equals(""))
> {
> >                        tag.put("class", "disabledPagingLink");
> >                    } else {
> >                        tag.put("class", oldClassName + " " +
> > "disabledPagingLink");
> >                    }
> >                }
> >            }
> >        });
> >        return link;
> >    }
> >
> > And then, in the CSS file I do whatever I want...
> >
> > And now, is this the best way to access the PNL ?
> > Was I able to get the newPagingNavigationLink with less overridden
> > classes?
> >
> > And thanks for you help.
> > I really enjoy this Wicket stuff!! It's so wicked ;)
> >
> > On Tue, Apr 29, 2008 at 12:43 PM, Gerolf Seitz <[EMAIL PROTECTED]>
> > wrote:
> >
> > > On Tue, Apr 29, 2008 at 11:00 AM, Eyal Golan <[EMAIL PROTECTED]>
> wrote:
> > >
> > > > wow!!
> > > > cool. That was so educational :)
> > > > Thanks.
> > > >
> > > np :)
> > >
> > >
> > > >
> > > > If I change this, it will change EVERYTHING, right?
> > >
> > > yes, this is the setting for all disabled links.
> > >
> > >
> > > >
> > > > What if I want to do something like: <em style="color: green;"> only
> > for
> > > > this PNL ?
> > > > Is there a way?
> > >
> > > there are numerous ;)
> > >
> > > you could add a SimpleAttributeModifier to the specific PNL:
> > > PNL link = new PNL(...);
> > > link.add(new SimpleAttributeModifier("class", "green") {
> > >  public boolean isEnabled() {
> > >    return !getComponent().isEnabled();
> > >  }
> > > }
> > >
> > > you could easily achieve the same result with overriding
> > > PNL#onComponentTag ...
> > >
> > >
> > > Gerolf
> > >
> >
> >
> >
> > --
> > Eyal Golan
> > [EMAIL PROTECTED]
> >
> > Visit: http://jvdrums.sourceforge.net/
> >
>



-- 
Eyal Golan
[EMAIL PROTECTED]

Visit: http://jvdrums.sourceforge.net/

Reply via email to