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/