That's why we have examples :
http://www.wicket-library.com/wicket-examples/images/wicket/bookmarkable/org.apache.wicket.examples.source.SourcesPage?SourcesPage_class=org.apache.wicket.examples.images.Home&source=ImagesApplication.java

If this doesn't help then do something like:

WebComponent img = new WebComponent("img");
CharSequence url = urlFor(new PackageResourceReference(Some.class, "some.png"));
img.add(AttributeModifier.append("src", url));


On Thu, Jul 14, 2011 at 2:44 PM, Mike Mander <wicket-m...@gmx.de> wrote:
> Hello again,
>
> call me stupid, but i don't get it (ImageButton loading shared image
> resource). What i did so far is:
> Application.init()
> <code>
> String key = new CompressedResourceReference(WicketApplication.class,
> "res/img/search_go.png").getSharedResourceKey();
> mountSharedResource("img/search_go.png", key);
> </code>
>
> MyComponent.<init>
> form.add(new ImageButton("doSearch", new
> ResourceReference("img/search_go.png")));
>
> MyComponent.html
> <input wicket:id="doSearch" type="image" name="submit" class="submit" />
>
> But the statelessChecker still complains on my ImageButton:
>
> Root cause:
>
> java.lang.IllegalArgumentException: '[Page class = HomePage, id = 0, version
> = 0]' claims to be stateless but isn't. Offending component:
> [MarkupContainer [Component id = doSearch, page = HomePage, path =
> 0:ambiance:search:searchSlot:doSearch.ImageButton, isVisible = true,
> isVersioned = true]]
> at
> org.apache.wicket.devutils.stateless.StatelessChecker.onBeforeRender(StatelessChecker.java:98)
> at
> org.apache.wicket.Application.notifyPostComponentOnBeforeRenderListeners(Application.java:1202)
> at org.apache.wicket.Component.internalBeforeRender(Component.java:1067)
>
> I couldn't find any doc for adding an image to shared resources and use it
> by component.
>
> Can someone please help me out here?
> Thanks
> Mike
>
>> by making them shared ?!
>>
>> On Tue, Jul 12, 2011 at 3:55 PM, Mike Mander<wicket-m...@gmx.de>  wrote:
>>>
>>> Thanks Martin for the dev-utils hint. You're right for my problem.
>>> It seems that all my images have the statelessHint = false.
>>>
>>> But: How can i make my image resource references stateless?
>>>
>>> Thanks
>>> Mike
>>>
>>>> I think ImageButton is the component that makes it stateful.
>>>>
>>>> To be sure use wicket-devutils, annotate the page with
>>>> @StatelessComponent and add StatelessChecker as
>>>> IComponentOnBeforeRenderListener in your application.
>>>>
>>>> On Tue, Jul 12, 2011 at 2:14 PM, Mike Mander<wicket-m...@gmx.de>
>>>>  wrote:
>>>>>
>>>>> Hi,
>>>>>
>>>>> i use a page with a border. I add a panel with a stateless form to the
>>>>> border and the page gets stateful. Why?
>>>>> The symtoms are - NotSerializableExceptions and RuntimeException if i
>>>>> click
>>>>> the submit.
>>>>> Form action:
>>>>>
>>>>>
>>>>> ../../../../Overview.html/gdw_exact/Party/of/47/wicket:interface/:0:ambiance:search:searchSlot::IFormSubmitListener::
>>>>>
>>>>> I'm definitly doing something stupid, but i can't see what. Maybe
>>>>> someone
>>>>> can point me to a doc or something.
>>>>>
>>>>> Thanks
>>>>> Mike
>>>>>
>>>>> ShopBorder.java
>>>>> <code>
>>>>> public class ShopBorder extends Border {
>>>>>
>>>>>    public ShopBorder(String id) {
>>>>>        super(id);
>>>>>        add(searchSlot());
>>>>>    }
>>>>>
>>>>>    private Component searchSlot() {
>>>>>        return new SearchSlot("search") {
>>>>>            @Override
>>>>>            protected void setSearchterm(String searchterm) {
>>>>>                getPage().getPageParameters().put("sTerm", searchterm);
>>>>>                setResponsePage(getPage().getClass(),
>>>>> getPage().getPageParameters());
>>>>>            };
>>>>>        };
>>>>>    }
>>>>> }
>>>>> </code>
>>>>>
>>>>> SearchSlot.java
>>>>> <code>
>>>>> public abstract class SearchSlot extends Panel {
>>>>>
>>>>>    public SearchSlot(String id) {
>>>>>        super(id);
>>>>>        IModel<String>    term = new Model<String>();
>>>>>        StatelessForm<String>    form = new
>>>>> StatelessForm<String>("searchSlot",
>>>>> term) {
>>>>>            @Override
>>>>>            protected void onSubmit() {
>>>>>                setSearchterm(getModelObject());
>>>>>                super.onSubmit();
>>>>>            }
>>>>>        };
>>>>>        form.add(new TextField<String>("searchTerm", term));
>>>>>        form.add(new ImageButton("doSearch", new
>>>>> CompressedResourceReference(WicketApplication.class,
>>>>> "res/img/go.png")));
>>>>>        add(form);
>>>>>    }
>>>>>
>>>>>    protected abstract void setSearchterm(String searchterm);
>>>>> }
>>>>> </code>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>>>>> For additional commands, e-mail: users-h...@wicket.apache.org
>>>>>
>>>>>
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>>> For additional commands, e-mail: users-h...@wicket.apache.org
>>>
>>>
>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>



-- 
Martin Grigorov
jWeekend
Training, Consulting, Development
http://jWeekend.com

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

Reply via email to