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