override oncomponenttag and add the class there dynamically instead of
using an attribute modifier

-igor


On Wed, Mar 26, 2008 at 5:23 AM, Eyal Golan <[EMAIL PROTECTED]> wrote:
> Hi,
>  I have a DataTable that I want to add to it a class name in a specific
>  situation.
>  Otherwise, I want to remove it.
>
>  Here's the class:
>  package com....;
>
>  import org.apache.wicket.behavior.AttributeAppender;
>  import org.apache.wicket.behavior.HeaderContributor;
>  import
>  org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable;
>  import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
>  import
>  
> org.apache.wicket.extensions.markup.html.repeater.data.table.ISortableDataProvider
>  ;
>  import
>  
> org.apache.wicket.extensions.markup.html.repeater.data.table.NavigationToolbar
>  ;
>  import
>  org.apache.wicket.extensions.markup.html.repeater.data.table.NoRecordsToolbar
>  ;
>  import org.apache.wicket.markup.ComponentTag;
>  import org.apache.wicket.markup.MarkupStream;
>  import org.apache.wicket.markup.repeater.Item;
>  import org.apache.wicket.model.IModel;
>  import org.apache.wicket.model.Model;
>
>  public class MyDataTable extends DataTable {
>     private static final long serialVersionUID = -8952247313105963726L;
>
>     public MyDataTable(String id, IColumn[] columns, ISortableDataProvider
>  dataProvider,
>             int rowsPerPage) {
>         super(id, columns, dataProvider, rowsPerPage);
>         add(HeaderContributor.forCss("/.../style/MyDataTable.css"));
>         // add(new SimpleAttributeModifier("rules", "all"));
>         add(new AttributeAppender("class", true, new Model("myTable"), "
>  "));
>         addTopToolbar(new NavigationToolbar(this));
>         addTopToolbar(new MyHeadersToolbar(this, dataProvider));
>         addBottomToolbar(new NoRecordsToolbar(this));
>         *if (dataProvider.size() == 0) {
>             add(new AttributeAppender("class", true, new
>  Model("emptyTable"), " "));
>         } else {
>             //Here I want to remove the 'emptyTable' class.
>  //            MarkupStream markupStream = getAssociatedMarkupStream(false);
>         }*
>
>     }
>
>     @Override
>     protected void onComponentTag(ComponentTag tag) {
>         super.onComponentTag(tag);
>
>     }
>
>     @Override
>     protected Item newRowItem(final String id, int index, final IModel
>  model) {
>         Item item = new Item(id, index, model);
>         item.add(new AttributeAppender("class", true, new Model(index % 2 ==
>  0 ? "odd"
>                 : "even"), " "));
>         return item;
>     }
>  }
>
>  Any suggetsions?
>
>  --
>  Eyal Golan
>  [EMAIL PROTECTED]
>
>  Visit: http://jvdrums.sourceforge.net/
>

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

Reply via email to