Re: Bookmarkable images from db
Hi, Actually there is a clean and easy Wicket way to do this. No servlets, no URL hand writing. It is achieved by using a shared resource with parameters as mentioned above. I have described it http://dotev.blogspot.com/2009/11/serving-images-and-other-resources-with.html here . Best regards, Peter Juan Pablo Picasso wrote: Hi, I've implemented this by mounting a bookmarkable page and writing into the response. I've imagine this bypasses some useful wicket features, but was the only way I use bookmarkable urls like /image/someImageName for mapping user uploaded images: #Application this.mount(new IndexedParamUrlCodingStrategy(/image, ImagePage.class)); #ImagePage class public class ImagePage extends WebPage { private static Logger logger = LoggerFactory.getLogger(ImagePage.class); @Override protected void onRender(MarkupStream markupStream) { String imageName = (String) this.getRequest().getParameterMap().get(0); byte[] fileContents = PersistenceFacade.readFile(imageName); try { this.getResponse().getOutputStream().write(fileContents); } catch (IOException e) { logger.error(Could not write image [ + imageName + ] into the response, e); } } } } Any suggestions are welcome, regards! Juan On Mon, Nov 2, 2009 at 3:00 PM, Alex Objelean alex_objel...@yahoo.comwrote: Exactly. You can see the example posted by Vytautas Racelis earlier at this link: http://xaloon.googlecode.com/svn/trunk/xaloon-wicket-repository/src/main/java/org/xaloon/wicket/component/resource/ImageLink.java I prefer to do it this way: http://pastebin.com/m328e21ff The first example allow you to use directly an Image component, while the second allows you to build the url of any resource by name.. Alex Objelean Peter Dotchev wrote: Hi Alex, I check SharedResources, but as I understand it I would have to add there a Resource object for each image. After checking again the javadoc there might be another way. Display each image with Image constructor that takes ValueMap and provide there some image identification. Add a single Resource object for all images and from getResourceStream() implementation to call getParameters() which will return the same parameters passed to Image constructor and tell me which image to return. Will this work? Best regards, Petar Alexandru Objelean wrote: Besides the servlet, there is also a wicket way of do it: - Use shared resource, which is stateless and bookmarkable If you need more informations about this approach, search on forum or just ask... and I'll provide you with some examples of how I do it.. Alex Objelean Peter Dotchev wrote: Hi, My app allows users to upload images and I store them in JCR http://en.wikipedia.org/wiki/Content_repository_API_for_Java. I can get InputStream for each one of them. I want to display images in specific pages and I want image URLs to be stable/bookmarkable. Also I don't want these pages to use the session in any way. I checked again chapter 9 about images from Wicket In Action but such use case is not addressed there. I found that SharedResources allows for stable URLs, but I cannot register each individual image. What approach would you suggest? Best regards, Peter -- View this message in context: http://old.nabble.com/Bookmarkable-images-from-db-tp26154577p26157757.html Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org -- View this message in context: http://old.nabble.com/Bookmarkable-images-from-db-tp26154577p26693928.html Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: ExternalLink takes IModelString for label
https://issues.apache.org/jira/browse/WICKET-2588 igor.vaynberg wrote: yep, so we cant fix it in 1.4.x, but add an rfe for 1.5 -igor On Sun, Nov 22, 2009 at 2:24 PM, Peter Dotchev dotc...@gmail.com wrote: Hi Wicketeers, I just noticed that this constructor public ExternalLink(final String id, final IModelString href, final *IModelString* label) takes IModelString for label. This is somewhat limiting since the model could hold a number or a date for example. Actually passing a raw IModel with any object inside works just fine. It would be more appropriate if this constructor takes IModel? for the label as done in Label constructor. Unfortunately ExternalLink offers a public method getLabel() that returns the label as IModelString. So it seems changing it would break compatibility. Using wicket 1.4.1. Best regards, Peter - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org -- View this message in context: http://old.nabble.com/ExternalLink-takes-IModel%3CString%3E-for-label-tp26470239p26477595.html Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: Why don't all Link classes support a label like ExternalLink does?
Hi, I also find myself often in the situation to create two components Link + Label for a link. So, I would appreciate if Link's used their model for the element content. Best regards, Peter Martijn Dashorst wrote: Not everybody puts a label inside a link. Not as common as you might think it is. It is also common to attach a link to a span, div, td or even tr. Martijn On Wed, Dec 17, 2008 at 12:29 AM, Phil Grimm phil.gr...@gmail.com wrote: Guys, Maybe I'm missing something, but it seems odd that I need to create custom components in order to set the label on a link. The ability to set the label (the text the user sees) on a link seems like a very basic use case. Why would that not be provided in all Link classes? So far, I've needed to create my own LabeledLink, LabeledSubmitLink and now it looks like I need to create a LabeledPageLink in order to do what ExternalLink already provides. I'm not sure this is the best way to do this, but this is what I've done to implement a Link that allows the label to be specified. public class LabeledLink extends Link { protected String label; public LabeledLink(java.lang.String id, IModel model, String label) { super(id, model); this.label = label; } @Override protected void onComponentTagBody(final MarkupStream markupStream, final ComponentTag openTag) { replaceComponentTagBody(markupStream, openTag, label); } } Is there a better way? Am I missing something? Thanks! Phil -- Become a Wicket expert, learn from the best: http://wicketinaction.com Apache Wicket 1.3.4 is released Get it now: http://www.apache.org/dyn/closer.cgi/wicket/1.3. - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org -- View this message in context: http://old.nabble.com/Why-don%27t-all-Link-classes-support-a-label-like-ExternalLink-does--tp21044160p26469569.html Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
ExternalLink takes IModelString for label
Hi Wicketeers, I just noticed that this constructor public ExternalLink(final String id, final IModelString href, final *IModelString* label) takes IModelString for label. This is somewhat limiting since the model could hold a number or a date for example. Actually passing a raw IModel with any object inside works just fine. It would be more appropriate if this constructor takes IModel? for the label as done in Label constructor. Unfortunately ExternalLink offers a public method getLabel() that returns the label as IModelString. So it seems changing it would break compatibility. Using wicket 1.4.1. Best regards, Peter
Re: WicketFilter.getLastModified creates a RequestCycle but does not clean it up
created jira item https://issues.apache.org/jira/browse/WICKET-2566 Regards, Peter igor.vaynberg wrote: peter, please open a jira issue. looks like a bug to me. -igor On Sat, Nov 7, 2009 at 1:52 PM, Peter Dotchev dotc...@gmail.com wrote: Hi Wicketeers, I noticed that WicketFilter.getLastModified creates a RequestCycle but does not /detach /it, so onEndRequest is not called. I use JCR and open a session to it on first use (lazy init). I store the JCR session in th RequestCycle. I close the JCR session in RequestCycle.onEndRequest (overriden). Kind of Open Session In View pattern. When WicketFilter.getLastModified calls Resource.getResourceStream() I have to open a JCR session to stream the requested resource. But then onEndRequest is not called on the RequestCycle so the JCR session remains open. By debugging I found the following sequence in WicketFilter: doFilter getLastModified webApplication.newRequestCycle resource.getResourceStream // requestCycle.detach - this is commented requestCycle.unset // this does not call onEndRequest doGet webApplication.newRequestCycle // second RequestCycle is created cycle.request() // this calls again getResourceStream but also RequestCycle.detach It turns out two RequestCycle's are created but only the second one is detached. Also Resource.getResourceStream is called twice. This is all for one request. I use Wicket 1.4.1. Best regards, Peter - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org -- View this message in context: http://old.nabble.com/WicketFilter.getLastModified-creates-a-RequestCycle-but-does-not-clean-it-up-tp26249003p26262469.html Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
WicketFilter.getLastModified creates a RequestCycle but does not clean it up
Hi Wicketeers, I noticed that WicketFilter.getLastModified creates a RequestCycle but does not /detach /it, so onEndRequest is not called. I use JCR and open a session to it on first use (lazy init). I store the JCR session in th RequestCycle. I close the JCR session in RequestCycle.onEndRequest (overriden). Kind of Open Session In View pattern. When WicketFilter.getLastModified calls Resource.getResourceStream() I have to open a JCR session to stream the requested resource. But then onEndRequest is not called on the RequestCycle so the JCR session remains open. By debugging I found the following sequence in WicketFilter: doFilter getLastModified webApplication.newRequestCycle resource.getResourceStream // requestCycle.detach - this is commented requestCycle.unset // this does not call onEndRequest doGet webApplication.newRequestCycle // second RequestCycle is created cycle.request() // this calls again getResourceStream but also RequestCycle.detach It turns out two RequestCycle's are created but only the second one is detached. Also Resource.getResourceStream is called twice. This is all for one request. I use Wicket 1.4.1. Best regards, Peter
Re: Bookmarkable images from db
Hi Alex, I check SharedResources, but as I understand it I would have to add there a Resource object for each image. After checking again the javadoc there might be another way. Display each image with Image constructor that takes ValueMap and provide there some image identification. Add a single Resource object for all images and from getResourceStream() implementation to call getParameters() which will return the same parameters passed to Image constructor and tell me which image to return. Will this work? Best regards, Petar Alexandru Objelean wrote: Besides the servlet, there is also a wicket way of do it: - Use shared resource, which is stateless and bookmarkable If you need more informations about this approach, search on forum or just ask... and I'll provide you with some examples of how I do it.. Alex Objelean Peter Dotchev wrote: Hi, My app allows users to upload images and I store them in JCR http://en.wikipedia.org/wiki/Content_repository_API_for_Java. I can get InputStream for each one of them. I want to display images in specific pages and I want image URLs to be stable/bookmarkable. Also I don't want these pages to use the session in any way. I checked again chapter 9 about images from Wicket In Action but such use case is not addressed there. I found that SharedResources allows for stable URLs, but I cannot register each individual image. What approach would you suggest? Best regards, Peter -- View this message in context: http://old.nabble.com/Bookmarkable-images-from-db-tp26154577p26157711.html Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Bookmarkable images from db
Hi, My app allows users to upload images and I store them in JCR http://en.wikipedia.org/wiki/Content_repository_API_for_Java. I can get InputStream for each one of them. I want to display images in specific pages and I want image URLs to be stable/bookmarkable. Also I don't want these pages to use the session in any way. I checked again chapter 9 about images from Wicket In Action but such use case is not addressed there. I found that SharedResources allows for stable URLs, but I cannot register each individual image. What approach would you suggest? Best regards, Peter
Data validation and form components
Hi, Setter methods of my business logic classes perform validation and throw exceptions if given parameter is invalid. I don't have separate methods for data validation. In my wicket form I use CompoundPropertyModel which sets user entered values directly in the business object. If the user enters invalid value, the setter method throws some exception and the error page is shown. How can I intercept this exception and show the error message in a feedback panel keeping the form open? Best regards, Peter - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Why is LoadableDetachableModel read-only?
Hi, setObject() is not supported on LoadableDetachableModel because it extends AbstractReadOnlyModel. What is the reason for this? This way LoadableDetachableModel cannot be used with form controls. In my case I have a DropDownChoice with a list of non-serializable objects. What kind of model could I use to store the selected object? Best regards, Petar -- View this message in context: http://www.nabble.com/Why-is-LoadableDetachableModel-read-only--tf4740811.html#a13556640 Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
substitute same value in several places
Hi, I'd like to use the same value in several places of a page, e.g. two labels with same content. Let's say I want to substitute the same property using CompoundPropertyModel. How can I do that in Wicket 1.3? Thanks for your help. Peter -- View this message in context: http://www.nabble.com/substitute-same-value-in-several-places-tf4530268.html#a12927782 Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Custom page - class mapping
Hello, I'd like to use custom convention for page class names. Something like Home.html - HomePage.class How can I do this in wicket 1.3? I don't want to mount each page separately. I guess I should implement IRequestTargetUrlCodingStrategy but would not like to do it from scratch. Any hints? Best regards, Peter -- View this message in context: http://www.nabble.com/Custom-page-%3C-%3E-class-mapping-tf4358968.html#a12422814 Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]