You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by chinedu efoagui <ch...@gmail.com> on 2010/01/04 13:31:32 UTC

images in AjaxDefaultdatable

hello
I have a an object which contains a boolean field (true ,false) it renders well.
I want to do is instead on of it showing true or false on the cell. I
want it to show an image if it is true and another image if the
attribute is false?
Please how can i achieve this?
Thank you

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: images in AjaxDefaultdatable

Posted by chinedu efoagui <ch...@gmail.com>.
k thanks

On Mon, Jan 4, 2010 at 3:07 PM, Ernesto Reinaldo Barreiro
<re...@gmail.com> wrote:
> You are right.... Just create a panel and place the image there....
>
> Try this
>
> import org.apache.wicket.ResourceReference;
> import
> org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
> import
> org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn;
> import org.apache.wicket.markup.repeater.Item;
> import org.apache.wicket.model.IModel;
>
> public class BooleanImageColumn extends PropertyColumn<Boolean> {
>
>    private static final long serialVersionUID = 1L;
>
>
>    private static final ResourceReference TRUE_IMG = new
> ResourceReference(BooleanImageColumn.class, "true.gif");
>    private static final ResourceReference FALSE_IMG = new
> ResourceReference(BooleanImageColumn.class, "false.gif");
>
>    public BooleanImageColumn(IModel<String> displayModel, String
> propertyExpression) {
>        super(displayModel, propertyExpression);
>    }
>
>    public BooleanImageColumn(IModel<String> displayModel, String
> sortProperty, String propertyExpression) {
>        super(displayModel, sortProperty, propertyExpression);
>    }
>
>
>    @Override
>    public void populateItem(Item<ICellPopulator<Boolean>> item, String
> componentId, IModel<Boolean> rowModel) {
>        if(rowModel.getObject() == null ||
> rowModel.getObject().equals(Boolean.FALSE))
>            item.add(new ImagePanel(componentId, FALSE_IMG));
>        else
>            item.add(new ImagePanel(componentId, TRUE_IMG));
>    }
> }
>
> where
>
> import org.apache.wicket.ResourceReference;
> import org.apache.wicket.markup.html.image.NonCachingImage;
> import org.apache.wicket.markup.html.panel.Panel;
>
> public class ImagePanel extends Panel {
>
>    private static final long serialVersionUID = 1L;
>
>    /**
>     * @param id
>     */
>    public ImagePanel(String id, ResourceReference image) {
>        super(id);
>        add(new NonCachingImage("image", image));
>    }
>
> }
>
> and ImagePanel.html
>
> <html>
>    <body>
>        <wicket:panel>
>        <img wicket:id="image"/>
>        </wicket:panel>
>    </body>
> </html>
>
> Ernesto
>
> On Mon, Jan 4, 2010 at 2:49 PM, chinedu efoagui <ch...@gmail.com>wrote:
>
>> I applied you class with a few modifications it gave me this error.
>> I think it is expecting an img tag somewhere
>>
>> [code]
>> WicketMessage: Component cell must be applied to a tag of type 'img',
>> not '<span wicket:id="cell">' (line 0, column 0)
>> [markup =
>> file:/C:/Users/bond/.netbeans/6.8/apache-tomcat-6.0.20_base/work/Catalina/localhost/hr/loader/org/apache/wicket/extensions/markup/html/repeater/data/table/DataTable.html
>> <!--
>>
>> <wicket:panel>
>> <thead wicket:id="topToolbars">
>>        <wicket:container wicket:id="toolbar"></wicket:container>
>> </thead>
>> <thead wicket:id="bottomToolbars">
>>        <wicket:container wicket:id="toolbar"></wicket:container>
>> </thead>
>> <tbody>
>>        <tr wicket:id="rows">
>>                <td wicket:id="cells">
>>                        <span wicket:id="cell">[cell]</span>
>>                </td>
>>        </tr>
>> </tbody>
>> </wicket:panel>
>>
>> , index = 21, current = '<span wicket:id="cell">' (line 27, column 4)]
>>     at
>> org.apache.wicket.markup.MarkupStream.throwMarkupException(MarkupStream.java:465)
>>     at org.apache.wicket.Component.checkComponentTag(Component.java:3475)
>>     at
>> org.apache.wicket.markup.html.image.Image.onComponentTag(Image.java:228)
>>     at
>> org.apache.wicket.markup.html.image.NonCachingImage.onComponentTag(NonCachingImage.java:124)
>>     at org.apache.wicket.Component.renderComponent(Component.java:2597)
>>     at
>> org.apache.wicket.markup.html.WebComponent.onRender(WebComponent.java:62)
>>     at org.apache.wicket.Component.render(Component.java:2457)
>>     at
>> org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1414)
>>     at
>> org.apache.wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:1577)
>>     at
>> org.apache.wicket.MarkupContainer.onComponentTagBody(MarkupContainer.java:1501)
>>     at org.a
>> [code]
>>
>> On Mon, Jan 4, 2010 at 2:04 PM, chinedu efoagui <ch...@gmail.com>
>> wrote:
>> > thank i will try it and give u feed back
>> >
>> > On Mon, Jan 4, 2010 at 2:02 PM, Ernesto Reinaldo Barreiro
>> > <re...@gmail.com> wrote:
>> >> I haven't tried it but this might work
>> >>
>> >> public class BooleanImageColumn extends PropertyColumn<Boolean> {
>> >>
>> >>    private static final long serialVersionUID = 1L;
>> >>
>> >>
>> >>    private static final ResourceReference TRUE_IMG = new
>> >> ResourceReference(BooleanImageColumn.class, "true.gif");
>> >>    private static final ResourceReference FALSE_IMG = new
>> >> ResourceReference(BooleanImageColumn.class, "false.gif");
>> >>
>> >>    public BooleanImageColumn(IModel<String> displayModel, String
>> >> propertyExpression) {
>> >>        super(displayModel, propertyExpression);
>> >>    }
>> >>
>> >>    public BooleanImageColumn(IModel<String> displayModel, String
>> >> sortProperty, String propertyExpression) {
>> >>        super(displayModel, sortProperty, propertyExpression);
>> >>    }
>> >>
>> >>
>> >>    @Override
>> >>    public void populateItem(Item<ICellPopulator<Boolean>> item, String
>> >> componentId, IModel<Boolean> rowModel) {
>> >>        if(rowModel.getObject() == null ||
>> >> rowModel.getObject().equals(Boolean.FALSE))
>> >>            item.add(new NonCachingImage(componentId, FALSE_IMG));
>> >>        else
>> >>            item.add(new NonCachingImage(componentId, TRUE_IMG));
>> >>    }
>> >> }
>> >>
>> >> Just place a "true.gif" and a "false.gif" on the same package as
>> >> BooleanImageColumn.
>> >>
>> >> Ernesto
>> >>
>> >> On Mon, Jan 4, 2010 at 1:31 PM, chinedu efoagui <chinedubond@gmail.com
>> >wrote:
>> >>
>> >>> hello
>> >>> I have a an object which contains a boolean field (true ,false) it
>> renders
>> >>> well.
>> >>> I want to do is instead on of it showing true or false on the cell. I
>> >>> want it to show an image if it is true and another image if the
>> >>> attribute is false?
>> >>> Please how can i achieve this?
>> >>> Thank you
>> >>>
>> >>> ---------------------------------------------------------------------
>> >>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> >>> For additional commands, e-mail: users-help@wicket.apache.org
>> >>>
>> >>>
>> >>
>> >
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>>
>>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: images in AjaxDefaultdatable

Posted by Ernesto Reinaldo Barreiro <re...@gmail.com>.
You are right.... Just create a panel and place the image there....

Try this

import org.apache.wicket.ResourceReference;
import
org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
import
org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn;
import org.apache.wicket.markup.repeater.Item;
import org.apache.wicket.model.IModel;

public class BooleanImageColumn extends PropertyColumn<Boolean> {

    private static final long serialVersionUID = 1L;


    private static final ResourceReference TRUE_IMG = new
ResourceReference(BooleanImageColumn.class, "true.gif");
    private static final ResourceReference FALSE_IMG = new
ResourceReference(BooleanImageColumn.class, "false.gif");

    public BooleanImageColumn(IModel<String> displayModel, String
propertyExpression) {
        super(displayModel, propertyExpression);
    }

    public BooleanImageColumn(IModel<String> displayModel, String
sortProperty, String propertyExpression) {
        super(displayModel, sortProperty, propertyExpression);
    }


    @Override
    public void populateItem(Item<ICellPopulator<Boolean>> item, String
componentId, IModel<Boolean> rowModel) {
        if(rowModel.getObject() == null ||
rowModel.getObject().equals(Boolean.FALSE))
            item.add(new ImagePanel(componentId, FALSE_IMG));
        else
            item.add(new ImagePanel(componentId, TRUE_IMG));
    }
}

where

import org.apache.wicket.ResourceReference;
import org.apache.wicket.markup.html.image.NonCachingImage;
import org.apache.wicket.markup.html.panel.Panel;

public class ImagePanel extends Panel {

    private static final long serialVersionUID = 1L;

    /**
     * @param id
     */
    public ImagePanel(String id, ResourceReference image) {
        super(id);
        add(new NonCachingImage("image", image));
    }

}

and ImagePanel.html

<html>
    <body>
        <wicket:panel>
        <img wicket:id="image"/>
        </wicket:panel>
    </body>
</html>

Ernesto

On Mon, Jan 4, 2010 at 2:49 PM, chinedu efoagui <ch...@gmail.com>wrote:

> I applied you class with a few modifications it gave me this error.
> I think it is expecting an img tag somewhere
>
> [code]
> WicketMessage: Component cell must be applied to a tag of type 'img',
> not '<span wicket:id="cell">' (line 0, column 0)
> [markup =
> file:/C:/Users/bond/.netbeans/6.8/apache-tomcat-6.0.20_base/work/Catalina/localhost/hr/loader/org/apache/wicket/extensions/markup/html/repeater/data/table/DataTable.html
> <!--
>
> <wicket:panel>
> <thead wicket:id="topToolbars">
>        <wicket:container wicket:id="toolbar"></wicket:container>
> </thead>
> <thead wicket:id="bottomToolbars">
>        <wicket:container wicket:id="toolbar"></wicket:container>
> </thead>
> <tbody>
>        <tr wicket:id="rows">
>                <td wicket:id="cells">
>                        <span wicket:id="cell">[cell]</span>
>                </td>
>        </tr>
> </tbody>
> </wicket:panel>
>
> , index = 21, current = '<span wicket:id="cell">' (line 27, column 4)]
>     at
> org.apache.wicket.markup.MarkupStream.throwMarkupException(MarkupStream.java:465)
>     at org.apache.wicket.Component.checkComponentTag(Component.java:3475)
>     at
> org.apache.wicket.markup.html.image.Image.onComponentTag(Image.java:228)
>     at
> org.apache.wicket.markup.html.image.NonCachingImage.onComponentTag(NonCachingImage.java:124)
>     at org.apache.wicket.Component.renderComponent(Component.java:2597)
>     at
> org.apache.wicket.markup.html.WebComponent.onRender(WebComponent.java:62)
>     at org.apache.wicket.Component.render(Component.java:2457)
>     at
> org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1414)
>     at
> org.apache.wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:1577)
>     at
> org.apache.wicket.MarkupContainer.onComponentTagBody(MarkupContainer.java:1501)
>     at org.a
> [code]
>
> On Mon, Jan 4, 2010 at 2:04 PM, chinedu efoagui <ch...@gmail.com>
> wrote:
> > thank i will try it and give u feed back
> >
> > On Mon, Jan 4, 2010 at 2:02 PM, Ernesto Reinaldo Barreiro
> > <re...@gmail.com> wrote:
> >> I haven't tried it but this might work
> >>
> >> public class BooleanImageColumn extends PropertyColumn<Boolean> {
> >>
> >>    private static final long serialVersionUID = 1L;
> >>
> >>
> >>    private static final ResourceReference TRUE_IMG = new
> >> ResourceReference(BooleanImageColumn.class, "true.gif");
> >>    private static final ResourceReference FALSE_IMG = new
> >> ResourceReference(BooleanImageColumn.class, "false.gif");
> >>
> >>    public BooleanImageColumn(IModel<String> displayModel, String
> >> propertyExpression) {
> >>        super(displayModel, propertyExpression);
> >>    }
> >>
> >>    public BooleanImageColumn(IModel<String> displayModel, String
> >> sortProperty, String propertyExpression) {
> >>        super(displayModel, sortProperty, propertyExpression);
> >>    }
> >>
> >>
> >>    @Override
> >>    public void populateItem(Item<ICellPopulator<Boolean>> item, String
> >> componentId, IModel<Boolean> rowModel) {
> >>        if(rowModel.getObject() == null ||
> >> rowModel.getObject().equals(Boolean.FALSE))
> >>            item.add(new NonCachingImage(componentId, FALSE_IMG));
> >>        else
> >>            item.add(new NonCachingImage(componentId, TRUE_IMG));
> >>    }
> >> }
> >>
> >> Just place a "true.gif" and a "false.gif" on the same package as
> >> BooleanImageColumn.
> >>
> >> Ernesto
> >>
> >> On Mon, Jan 4, 2010 at 1:31 PM, chinedu efoagui <chinedubond@gmail.com
> >wrote:
> >>
> >>> hello
> >>> I have a an object which contains a boolean field (true ,false) it
> renders
> >>> well.
> >>> I want to do is instead on of it showing true or false on the cell. I
> >>> want it to show an image if it is true and another image if the
> >>> attribute is false?
> >>> Please how can i achieve this?
> >>> Thank you
> >>>
> >>> ---------------------------------------------------------------------
> >>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> >>> For additional commands, e-mail: users-help@wicket.apache.org
> >>>
> >>>
> >>
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>

Re: images in AjaxDefaultdatable

Posted by chinedu efoagui <ch...@gmail.com>.
I applied you class with a few modifications it gave me this error.
I think it is expecting an img tag somewhere

[code]
WicketMessage: Component cell must be applied to a tag of type 'img',
not '<span wicket:id="cell">' (line 0, column 0)
[markup = file:/C:/Users/bond/.netbeans/6.8/apache-tomcat-6.0.20_base/work/Catalina/localhost/hr/loader/org/apache/wicket/extensions/markup/html/repeater/data/table/DataTable.html
<!--

<wicket:panel>
<thead wicket:id="topToolbars">
	<wicket:container wicket:id="toolbar"></wicket:container>
</thead>
<thead wicket:id="bottomToolbars">
	<wicket:container wicket:id="toolbar"></wicket:container>
</thead>
<tbody>
	<tr wicket:id="rows">
		<td wicket:id="cells">
			<span wicket:id="cell">[cell]</span>
		</td>
	</tr>
</tbody>
</wicket:panel>

, index = 21, current = '<span wicket:id="cell">' (line 27, column 4)]
     at org.apache.wicket.markup.MarkupStream.throwMarkupException(MarkupStream.java:465)
     at org.apache.wicket.Component.checkComponentTag(Component.java:3475)
     at org.apache.wicket.markup.html.image.Image.onComponentTag(Image.java:228)
     at org.apache.wicket.markup.html.image.NonCachingImage.onComponentTag(NonCachingImage.java:124)
     at org.apache.wicket.Component.renderComponent(Component.java:2597)
     at org.apache.wicket.markup.html.WebComponent.onRender(WebComponent.java:62)
     at org.apache.wicket.Component.render(Component.java:2457)
     at org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1414)
     at org.apache.wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:1577)
     at org.apache.wicket.MarkupContainer.onComponentTagBody(MarkupContainer.java:1501)
     at org.a
[code]

On Mon, Jan 4, 2010 at 2:04 PM, chinedu efoagui <ch...@gmail.com> wrote:
> thank i will try it and give u feed back
>
> On Mon, Jan 4, 2010 at 2:02 PM, Ernesto Reinaldo Barreiro
> <re...@gmail.com> wrote:
>> I haven't tried it but this might work
>>
>> public class BooleanImageColumn extends PropertyColumn<Boolean> {
>>
>>    private static final long serialVersionUID = 1L;
>>
>>
>>    private static final ResourceReference TRUE_IMG = new
>> ResourceReference(BooleanImageColumn.class, "true.gif");
>>    private static final ResourceReference FALSE_IMG = new
>> ResourceReference(BooleanImageColumn.class, "false.gif");
>>
>>    public BooleanImageColumn(IModel<String> displayModel, String
>> propertyExpression) {
>>        super(displayModel, propertyExpression);
>>    }
>>
>>    public BooleanImageColumn(IModel<String> displayModel, String
>> sortProperty, String propertyExpression) {
>>        super(displayModel, sortProperty, propertyExpression);
>>    }
>>
>>
>>    @Override
>>    public void populateItem(Item<ICellPopulator<Boolean>> item, String
>> componentId, IModel<Boolean> rowModel) {
>>        if(rowModel.getObject() == null ||
>> rowModel.getObject().equals(Boolean.FALSE))
>>            item.add(new NonCachingImage(componentId, FALSE_IMG));
>>        else
>>            item.add(new NonCachingImage(componentId, TRUE_IMG));
>>    }
>> }
>>
>> Just place a "true.gif" and a "false.gif" on the same package as
>> BooleanImageColumn.
>>
>> Ernesto
>>
>> On Mon, Jan 4, 2010 at 1:31 PM, chinedu efoagui <ch...@gmail.com>wrote:
>>
>>> hello
>>> I have a an object which contains a boolean field (true ,false) it renders
>>> well.
>>> I want to do is instead on of it showing true or false on the cell. I
>>> want it to show an image if it is true and another image if the
>>> attribute is false?
>>> Please how can i achieve this?
>>> Thank you
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>
>>>
>>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: images in AjaxDefaultdatable

Posted by chinedu efoagui <ch...@gmail.com>.
thank i will try it and give u feed back

On Mon, Jan 4, 2010 at 2:02 PM, Ernesto Reinaldo Barreiro
<re...@gmail.com> wrote:
> I haven't tried it but this might work
>
> public class BooleanImageColumn extends PropertyColumn<Boolean> {
>
>    private static final long serialVersionUID = 1L;
>
>
>    private static final ResourceReference TRUE_IMG = new
> ResourceReference(BooleanImageColumn.class, "true.gif");
>    private static final ResourceReference FALSE_IMG = new
> ResourceReference(BooleanImageColumn.class, "false.gif");
>
>    public BooleanImageColumn(IModel<String> displayModel, String
> propertyExpression) {
>        super(displayModel, propertyExpression);
>    }
>
>    public BooleanImageColumn(IModel<String> displayModel, String
> sortProperty, String propertyExpression) {
>        super(displayModel, sortProperty, propertyExpression);
>    }
>
>
>    @Override
>    public void populateItem(Item<ICellPopulator<Boolean>> item, String
> componentId, IModel<Boolean> rowModel) {
>        if(rowModel.getObject() == null ||
> rowModel.getObject().equals(Boolean.FALSE))
>            item.add(new NonCachingImage(componentId, FALSE_IMG));
>        else
>            item.add(new NonCachingImage(componentId, TRUE_IMG));
>    }
> }
>
> Just place a "true.gif" and a "false.gif" on the same package as
> BooleanImageColumn.
>
> Ernesto
>
> On Mon, Jan 4, 2010 at 1:31 PM, chinedu efoagui <ch...@gmail.com>wrote:
>
>> hello
>> I have a an object which contains a boolean field (true ,false) it renders
>> well.
>> I want to do is instead on of it showing true or false on the cell. I
>> want it to show an image if it is true and another image if the
>> attribute is false?
>> Please how can i achieve this?
>> Thank you
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>>
>>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: images in AjaxDefaultdatable

Posted by Ernesto Reinaldo Barreiro <re...@gmail.com>.
I haven't tried it but this might work

public class BooleanImageColumn extends PropertyColumn<Boolean> {

    private static final long serialVersionUID = 1L;


    private static final ResourceReference TRUE_IMG = new
ResourceReference(BooleanImageColumn.class, "true.gif");
    private static final ResourceReference FALSE_IMG = new
ResourceReference(BooleanImageColumn.class, "false.gif");

    public BooleanImageColumn(IModel<String> displayModel, String
propertyExpression) {
        super(displayModel, propertyExpression);
    }

    public BooleanImageColumn(IModel<String> displayModel, String
sortProperty, String propertyExpression) {
        super(displayModel, sortProperty, propertyExpression);
    }


    @Override
    public void populateItem(Item<ICellPopulator<Boolean>> item, String
componentId, IModel<Boolean> rowModel) {
        if(rowModel.getObject() == null ||
rowModel.getObject().equals(Boolean.FALSE))
            item.add(new NonCachingImage(componentId, FALSE_IMG));
        else
            item.add(new NonCachingImage(componentId, TRUE_IMG));
    }
}

Just place a "true.gif" and a "false.gif" on the same package as
BooleanImageColumn.

Ernesto

On Mon, Jan 4, 2010 at 1:31 PM, chinedu efoagui <ch...@gmail.com>wrote:

> hello
> I have a an object which contains a boolean field (true ,false) it renders
> well.
> I want to do is instead on of it showing true or false on the cell. I
> want it to show an image if it is true and another image if the
> attribute is false?
> Please how can i achieve this?
> Thank you
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>