Re: Regression in 1.3.0-beta3(?)
I don't use any AjaxFAllbackOrderByBorder or anything else in my code. So I think there must be another trigger for the bug, too. Johannes Schneider Jonas-21 wrote: I've been able to reproduce the problem with a these few classes: http://www.nabble.com/file/p12409279/Expected_close_tag.zip Expected_close_tag.zip It seems to be caused by the problem that BorderBodyResolver warns about: Unlike OrderByBorder, AjaxFallbackOrderByBorder doesn't add the BorderBodyContainer so it fits the markup. Now, if AjaxFallbackOrderByBorder is wrapped in another Border (as in my attached example), we don't get that nice log message, instead we get that 'Expected close tag for ...' message. So, it seems https://issues.apache.org/jira/browse/WICKET-166 actually IS relevant for wicket 1.3.0. (Of course the fix looks now different because of the api change) cheers, Jonas igor.vaynberg wrote: hmm, if you could create a quickstart for this it would be very helpful. -igor -- Johannes Schneider Im Lindenwasen 15 72810 Gomaringen Fon +49 7072 9229972 Fax +49 7072 50 Mobil +49 178 1364488 [EMAIL PROTECTED] http://www.johannes-schneider.info smime.p7s Description: S/MIME Cryptographic Signature
Re: Portlet Support
Hi All, many thanks for pointing me to the right direction. Regards Dipu On 8/30/07, Matej Knopp [EMAIL PROTECTED] wrote: Hi Ate, thanks for the examples. The progress is tremendous. Awesome. -Matej On 8/30/07, Ate Douma [EMAIL PROTECTED] wrote: Martijn Dashorst wrote: I think it is in a branch in our apache repo: http://svn.apache.org/repos/asf/wicket/branches/wicket-1.3-portlet-support/ Yes, and there is a corresponding JIRA issue with several subtasks which I use for tracking the current state (and some minimal documentation): https://issues.apache.org/jira/browse/WICKET-647 If you are interested in testing that out, I've provided a downloadable Jetspeed-2 installer which the wicket-examples application deployed as portlet application here: http://people.apache.org/~ate/wicket/ Note though the above branch was created on July 14 from the trunk at that time (r547242), and the portlet-support (as currently checked in) isn't perfect or without some serious bugs yet. But, I've started working on a updated version of the portlet-support this week which is based on the latest 1.3.0-beta3 release and it is progressing rather well. I hope to commit this update tomorrow or else early next week the latest. For that, I plan to create a new branch, wicket-1.3.0-beta3-portlet-support, as merging back in all the trunk changes since the branch (reliably) turned out to be far too much work. So, I started from scratch again, applying my original changes by hand, bit by bit (man, being on a branch of a project which moves as quickly as Wicket is painful...). Which turned out to be not a bad idea after all: I cleaned up and improved several changes along the lines as well as refactored several new classes and methods names to better reflect their purpose. Luckily, as the new portlet-support (in contrast to the one from 1.2.x) is now using transparent bridging wicket to the portlet environment, those internal changes didn't have any effect on the usage. Anyway, you will all soon see that the portlet-support has progressed nicely, to the point I think it covers many to most standard use-cases (albeit there still are and always will be a few area's where portlet support is difficult or even formally impossible to provide). The nicest part I think is that it turned out to require very little changes to the wicket core, and AFAIK all of those are transparent, meaning these changes have zero effect for existing plain servlet based applications! In my opinion, it should be ready for trunk integration soon now (after proper review of course), we just need to find and agree upon the right time frame. Right now I'm working on getting popup/modal windows also working properly, and once that's finished I'll check the stuff in under the new branch. One last important fact I need to mention is that I've build some of the portlet-support features upon the anticipated new Portlet 2.0 API (JSR-286, of which I'm also an EG member). As JSR-286 isn't released yet (but very soon now...), and no (formal) implementations exists or are even allowed, I have defined some supporting interfaces, specifically for header contributions and Portlet ResourceURLs. To be able to actually run wicket with the new portlet-support within a portal, you'll need portal specific implementations for these interfaces. As soon as JSR-286 is available as well as supporting portals, those interfaces can be retrofitted back upon JSR-286 APIs and you won't need such proprietary implementations anymore. For my own testing, and because I'm also a Jetspeed committer, I've already provided Jetspeed-2 specific support implementations. Since the latest Jetspeed-2.1.2 release, these are provided out-of-the-box with the portal itself. For more information about this, see: http://issues.apache.org/jira/browse/PB-65 So, for now, you might be required to test and experiment using Jetspeed-2, although I think I already saw someone report it running on Liferay as well. Regards, Ate Martijn On 8/30/07, Igor Vaynberg [EMAIL PROTECTED] wrote: it has moved to wicket-stuff because none of the core committers have time to keep it up to date. i believe Ate was reworking it into something better, his work in progress is in wicket-stuff -igor On 8/30/07, Dipu Seminlal [EMAIL PROTECTED] wrote: Hi All, I checked out the wicket trunk and found that the Portlet package has disappeared from where it was. Has it been moved to somewhere else or did the Portlet support got removed totally ? What is the future plans for the Portlet support in wicket. Thanks Dipu - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional
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]
MarkupContainer.get(path) or hold reference?
Any distinct differences between using MarkupContainer.get(path) or just holding a reference to a component? The latter seems faster and more consistent with GWT/Swing? Got a vague memory of reading somewhere that holding lots of references to Components is an anti-pattern but I can't find it again and I don't think it elaborated. I'm thinking of simple use cases like wanting to disable a button during an event. So should I do get(myButton) or when I create the button hold onto a reference? Thanks Sam -- View this message in context: http://www.nabble.com/MarkupContainer.get%28path%29-or-hold-reference--tf4358991.html#a12422870 Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: MarkupContainer.get(path) or hold reference?
Any distinct differences between using MarkupContainer.get(path) or just holding a reference to a component? The latter seems faster and more consistent with GWT/Swing? Got a vague memory of reading somewhere that holding lots of references to Components is an anti-pattern but I can't find it again and I don't think it elaborated. I'm thinking of simple use cases like wanting to disable a button during an event. So should I do get(myButton) or when I create the button hold onto a reference? I would hold onto a reference. Much better when you refactor and for tracking down what happens in your code. And it doesn't matter for memory consumption here, as you'd have myButton in your hierarchy anyway, right? Eelco - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: MarkupContainer.get(path) or hold reference?
Great. I must have just imagined the anti-pattern comment or got it the wrong way around. Thanks Eelco Hillenius wrote: Any distinct differences between using MarkupContainer.get(path) or just holding a reference to a component? The latter seems faster and more consistent with GWT/Swing? Got a vague memory of reading somewhere that holding lots of references to Components is an anti-pattern but I can't find it again and I don't think it elaborated. I'm thinking of simple use cases like wanting to disable a button during an event. So should I do get(myButton) or when I create the button hold onto a reference? I would hold onto a reference. Much better when you refactor and for tracking down what happens in your code. And it doesn't matter for memory consumption here, as you'd have myButton in your hierarchy anyway, right? Eelco - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- View this message in context: http://www.nabble.com/MarkupContainer.get%28path%29-or-hold-reference--tf4358991.html#a12423048 Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: MarkupContainer.get(path) or hold reference?
Great. I must have just imagined the anti-pattern comment or got it the wrong way around. An anti pattern in Wicket 1.2 would be to keep passing pages in to other pages. One back page is no problem, but a linked list out of them would eat considerable memory. In Wicket 1.3 this is hardly relevant since Johan and Matej optimized the hell out of how pages are serialized. And just in general, keep in mind that everything that can be referenced from components/ a page means it is part of it's state (which might hurt you in a cluster if you over-do it). Eelco - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
wicketstuff-dojo: deprecated warnings?
Using the DojoDatePicker widget from wicketstuff-dojo (1.3.0-beta) gives a dojo warning: DEBUG: DEPRECATED: dojo.widget.Manager.getImplementationName Could not locate widget implementation for simpledropdowndatepicker in dojo.widget registered to namespace dojo. Developers must specify correct namespaces for all non-Dojo widgets -- will be removed in version: 0.5 Any fix for this? It doesn't look to nice :) gr, Thies - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: MarkupContainer.get(path) or hold reference?
Thanks Eelco, On a related subject. Why does Wicket get us to do: new Button(id) { @Override public void onSubmit() { } }; rather than: Button b = new Button(id); b.addOnSubmit(new SubmitHandler() { public void onSubmit(Field f) { } }}; ? The latter seems more common elsewhere. Is it taste or something more concrete? I was sulking a bit trying to do: final Button a = new Button(a); final Button b = new Button(b); a. addOnSubmit(new SubmitHandler() { public void onSubmit(FIeld f) { a.setEnabled(false); b.setEnabled(true); } }; b.addOnSubmit(new SubmitHandler() { public void onSubmit(Field f) { a.setEnabled(true); b.setEnabled(false); } }; Probably me still trying to convert from GWT ;) Eelco Hillenius wrote: Great. I must have just imagined the anti-pattern comment or got it the wrong way around. An anti pattern in Wicket 1.2 would be to keep passing pages in to other pages. One back page is no problem, but a linked list out of them would eat considerable memory. In Wicket 1.3 this is hardly relevant since Johan and Matej optimized the hell out of how pages are serialized. And just in general, keep in mind that everything that can be referenced from components/ a page means it is part of it's state (which might hurt you in a cluster if you over-do it). Eelco - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- View this message in context: http://www.nabble.com/MarkupContainer.get%28path%29-or-hold-reference--tf4358991.html#a12424669 Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Session.get() from non-Wicket-Filter/Servlet and the RequestCycle
You don't interact with WicketSessionFilter directly. You just set it up, providing name of your WicketFilter ad argument. You need to map the WicketSessionFilter to same url as your non-wicket filter/servlet and make sure that you use a non-wicket filter WicketSessionFilter gets invoked first. Then in your custom filter/servlet you can obtain wicket session using just Session.get(). -Matej On 8/31/07, Thomas Singer [EMAIL PROTECTED] wrote: What is the preferred way of obtaining a WebSession from a non-Wicket-Filter/Servlet. I've taken a look at WicketSessionFilter, but this one requires a filterName init parameter and seems to expect the session as a HttpSession parameter. But how the WebSession should come into the HttpSession without setting it from the wicket code? Tom - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: MarkupContainer.get(path) or hold reference?
using addSomeEventHandler would also remove the need for: @Override protected boolean wantOnSelectionChangedNotifications() { return true; } in DropDownChoice presumably? -- View this message in context: http://www.nabble.com/MarkupContainer.get%28path%29-or-hold-reference--tf4358991.html#a12424932 Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Tree not redrawn when resetting root node
I have a tree that I reset the root node when a user selects on another component (Component A). However, the tree is not redrawn until I click on the tree (the previous tree contents are shown). Besides Tree.invalidateAll() and DefaultTreeModel.nodeStructureChanged(tnode ) DefaultTreeModel.nodeChanged( tnode ) DefaultTreeModel.reload() Is there anything else I can do as these do not work? Note: not using AJAX at the moment...a page refresh is being done when selecting Component A. Thanks - Doug -- View this message in context: http://www.nabble.com/Tree-not-%22redrawn%22-when-resetting-root-node-tf4359637.html#a12424854 Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Tree not redrawn when resetting root node
What does it mean reset root node. What exactly do you do with your TreeModel. And what tree model are you using? -Matej On 8/31/07, Doug Leeper [EMAIL PROTECTED] wrote: I have a tree that I reset the root node when a user selects on another component (Component A). However, the tree is not redrawn until I click on the tree (the previous tree contents are shown). Besides Tree.invalidateAll() and DefaultTreeModel.nodeStructureChanged(tnode ) DefaultTreeModel.nodeChanged( tnode ) DefaultTreeModel.reload() Is there anything else I can do as these do not work? Note: not using AJAX at the moment...a page refresh is being done when selecting Component A. Thanks - Doug -- View this message in context: http://www.nabble.com/Tree-not-%22redrawn%22-when-resetting-root-node-tf4359637.html#a12424854 Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Download link from DynamicWebResource?
Hi Jan this is working very smoothly.. It should be part of core wicket... Maybe a little more generic... regards Nino Jan Kriesten wrote: hi nino, i use something like that to download dynamically generated excel-files. to get a resourcestream, i use this class: --- package wicket.util; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.util.Locale; import org.apache.wicket.util.resource.IResourceStream; import org.apache.wicket.util.resource.ResourceStreamNotFoundException; import org.apache.wicket.util.time.Time; public class ByteArrayResourceStream implements IResourceStream { private static final long serialVersionUID = 1L; private Locale locale = null; private byte[] content = null; private String contentType = null; public ByteArrayResourceStream( byte[] content, String contentType ) { this.content = content; this.contentType = contentType; } public void close( ) throws IOException { } public String getContentType( ) { return(contentType); } public InputStream getInputStream( ) throws ResourceStreamNotFoundException { return(new ByteArrayInputStream( content )); } public Locale getLocale( ) { return(locale); } public long length( ) { return(content.length); } public void setLocale( Locale locale ) { this.locale = locale; } public Time lastModifiedTime( ) { return null; } } --8--- then i just implement a link to my resource: ---8--- public class XlsLink extends Link { private static final long serialVersionUID = 1L; byte[] xls = null; public XlsLink( String id, byte[] xls ) { super( id ); this.xls = xls; } public void onClick( ) { IResourceStream resourceStream = new ByteArrayResourceStream( xls, application/vnd.ms-excel ); getRequestCycle().setRequestTarget( new ResourceStreamRequestTarget( resourceStream ) { public String getFileName( ) { return(export.xls); } } ); } } ---8-- that's all about it. best regards, --- jan. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Session.get() from non-Wicket-Filter/Servlet and the RequestCycle
Matej and Johan, thanks for your feed-back. I've tried to avoid the WicketSessionFilter and make everything work from our code. Just curious: is the WicketSessionFilter handled something special by Wicket? Or how does it get the WebSession reference? Tom Matej Knopp wrote: You don't interact with WicketSessionFilter directly. You just set it up, providing name of your WicketFilter ad argument. You need to map the WicketSessionFilter to same url as your non-wicket filter/servlet and make sure that you use a non-wicket filter WicketSessionFilter gets invoked first. Then in your custom filter/servlet you can obtain wicket session using just Session.get(). -Matej On 8/31/07, Thomas Singer [EMAIL PROTECTED] wrote: What is the preferred way of obtaining a WebSession from a non-Wicket-Filter/Servlet. I've taken a look at WicketSessionFilter, but this one requires a filterName init parameter and seems to expect the session as a HttpSession parameter. But how the WebSession should come into the HttpSession without setting it from the wicket code? Tom - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Session.get() from non-Wicket-Filter/Servlet and the RequestCycle
look at the source :) On 8/31/07, Thomas Singer [EMAIL PROTECTED] wrote: Matej and Johan, thanks for your feed-back. I've tried to avoid the WicketSessionFilter and make everything work from our code. Just curious: is the WicketSessionFilter handled something special by Wicket? Or how does it get the WebSession reference? Tom Matej Knopp wrote: You don't interact with WicketSessionFilter directly. You just set it up, providing name of your WicketFilter ad argument. You need to map the WicketSessionFilter to same url as your non-wicket filter/servlet and make sure that you use a non-wicket filter WicketSessionFilter gets invoked first. Then in your custom filter/servlet you can obtain wicket session using just Session.get(). -Matej On 8/31/07, Thomas Singer [EMAIL PROTECTED] wrote: What is the preferred way of obtaining a WebSession from a non-Wicket-Filter/Servlet. I've taken a look at WicketSessionFilter, but this one requires a filterName init parameter and seems to expect the session as a HttpSession parameter. But how the WebSession should come into the HttpSession without setting it from the wicket code? Tom - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Session.get() from non-Wicket-Filter/Servlet and the RequestCycle
Did you read my first mail in this thread? How does the WebSession reference comes into the HttpSession? That's what I don't understand for now. Tom Johan Compagner wrote: look at the source :) On 8/31/07, Thomas Singer [EMAIL PROTECTED] wrote: Matej and Johan, thanks for your feed-back. I've tried to avoid the WicketSessionFilter and make everything work from our code. Just curious: is the WicketSessionFilter handled something special by Wicket? Or how does it get the WebSession reference? Tom Matej Knopp wrote: You don't interact with WicketSessionFilter directly. You just set it up, providing name of your WicketFilter ad argument. You need to map the WicketSessionFilter to same url as your non-wicket filter/servlet and make sure that you use a non-wicket filter WicketSessionFilter gets invoked first. Then in your custom filter/servlet you can obtain wicket session using just Session.get(). -Matej On 8/31/07, Thomas Singer [EMAIL PROTECTED] wrote: What is the preferred way of obtaining a WebSession from a non-Wicket-Filter/Servlet. I've taken a look at WicketSessionFilter, but this one requires a filterName init parameter and seems to expect the session as a HttpSession parameter. But how the WebSession should come into the HttpSession without setting it from the wicket code? Tom - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: How to integrate wicket frame work with spring
You can also look at qwicket.sf.net for some ideas on integrating spring and wicket. It's a little out of date atm but the ideas are the same either way On 8/30/07, bhupat parmar [EMAIL PROTECTED] wrote: hi i need help in integrating wicket frame work with spring frame .i am using direct approach for this but my dao object is returning null.and the applicationcontext.xml is bean id=wicketApplication class=project.MyApplication property name=contactDao ref=contactDao/ /bean is throwing exception for undefined bean. can some body help. thanks
Re: Component Factory and code against interface
igor, I've not been able to get rid of the requirement I've been given to support an Ajax capable client and old browser with tiny bit of JavaScript. Your words seem more true than ever but I can't think of a better way of doing it than the Swing/AWT style with our own simple objects being proxies to different Wicket components. e.g. AjaxButton or Button... What would you do if you were me? Before I try and make our prototype ship shape ;) Today your words seemed even more true as I'm tempted to digress from the Wicket style and use event handler style: someButton.add(new EventHandler... So as you say writing our own framework. igor.vaynberg wrote: the ui layer is generally not portable. if you start building your own abstraction to make it portable you will end up with a pretty big mess because you will be working against whatever framework you are using and eventually that abstraction will turn into a framework itself. -igor On 8/24/07, Sam Hough [EMAIL PROTECTED] wrote: Many thanks Igor, that sounds like a very pragmatic approach. I was thinking about all sorts of horrible kludges like re-rendering the whole page and seeing how elements changed or hooking into the serialisation. Taken away another reason to do my over complicated solution ;) Am I worrying over nothing that developers might get carried away using vast number of components and fiddling with attributes that will make the application difficult to test and maybe one day port? Restricting the set of components can presumably end up with a more consistent UI... Anyway, thanks for all your time and sage advice. -- View this message in context: http://www.nabble.com/Component-Factory-and-code-against-interface-tf4311047.html#a12308606 Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- View this message in context: http://www.nabble.com/Component-Factory-and-code-against-interface-tf4311047.html#a12426453 Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: CheckGroup in a DataTable
Ok. I noticed in the updateModel method of the CheckGroup it is clearing the collection each time before adding the new ones to avoid duplicates in the collection. So I created a new component that extends the CheckGroup and changed the updateModel method. I removed the collection.clear() and instead of adding all the items, I check to make sure they don't already exist. Now it holds those checks across pages. public void updateModel() { Collection collection = (Collection)getModelObject(); if (collection == null) { collection = (Collection)getConvertedInput(); setModelObject(collection); } else { modelChanging(); Collection input = (Collection)getConvertedInput(); if(input != null input.size() 0) { for (Iterator iterator = input.iterator(); iterator.hasNext();) { Object object = (Object)iterator.next(); if(!collection.contains(object)) { collection.add(object); } } } modelChanged(); } } On 8/30/07, Igor Vaynberg [EMAIL PROTECTED] wrote: and you are sure all links in the navigator are submit links? if so then post a quickstart and we will take a look -igor On 8/30/07, Tim Lantry [EMAIL PROTECTED] wrote: I implemented hascode and equals on the row model object. I still get the same results. I also added the onBeforeRender and onAfterRender to the page to check the contents of the List. From page 1 I checked two boxes. I then hit the next page. before render and after render both and the two Objects in the list. I then hit the previous page link and before render and after render both had an empty list. On 8/30/07, Tim Lantry [EMAIL PROTECTED] wrote: No, in my test I didn't include the hascode/equals methods. I will give that a try. On 8/30/07, Igor Vaynberg [EMAIL PROTECTED] wrote: and whatever that model is it has a proper hashcode/equals implemented? -igor On 8/30/07, Tim Lantry [EMAIL PROTECTED] wrote: Yes, I added an onSubmit method on the form and it has all the checked models in the List. Then it changes pages and the next time I submit or change pages, they are gone. On 8/30/07, Igor Vaynberg [EMAIL PROTECTED] wrote: are you sure they are being submitted properly, meaining does that list make it into checkgroup's model when switch pages? -igor On 8/30/07, Tim Lantry [EMAIL PROTECTED] wrote: I am using a Check component inside of a DataTable. The DataTable is surrounded by a CheckGroup. The model on each Check component is the Row Model. This works great to get a list of checked rows. Is there a good way to retain the checks across pages? I created a new Navigator component that uses SubmitLinks instead of the Link component, but he List of models doesn't retain the objects from the previous page. Any suggestions?
Re: Session.get() from non-Wicket-Filter/Servlet and the RequestCycle
OK, let's look at the sources of WicketSessionFilter. According to my understanding: init() method: - the filterName init parameter (which is stored as a member, but should in a local variable) defines the sessionKey doFilter() method: - first the httpSession will be fetched if available - out of the httpSession the (wicket-)session is fetched as attribute using the sessionKey - only if this one is found, it will be set to Session.set() This creates following question for me: - Where the httpSession attribute with the sessionKey is set? - Is there a working example available where WicketSessionFilter is used? Tom Johan Compagner wrote: again look at the source :) Session.get() will create a WicketSession object. (Session.findOrCreate()) And if you then make a statefull page that has to be stored in the session, the session will also be stored. (Session.bind()) johan On 8/31/07, Thomas Singer [EMAIL PROTECTED] wrote: Did you read my first mail in this thread? How does the WebSession reference comes into the HttpSession? That's what I don't understand for now. Tom Johan Compagner wrote: look at the source :) On 8/31/07, Thomas Singer [EMAIL PROTECTED] wrote: Matej and Johan, thanks for your feed-back. I've tried to avoid the WicketSessionFilter and make everything work from our code. Just curious: is the WicketSessionFilter handled something special by Wicket? Or how does it get the WebSession reference? Tom Matej Knopp wrote: You don't interact with WicketSessionFilter directly. You just set it up, providing name of your WicketFilter ad argument. You need to map the WicketSessionFilter to same url as your non-wicket filter/servlet and make sure that you use a non-wicket filter WicketSessionFilter gets invoked first. Then in your custom filter/servlet you can obtain wicket session using just Session.get(). -Matej On 8/31/07, Thomas Singer [EMAIL PROTECTED] wrote: What is the preferred way of obtaining a WebSession from a non-Wicket-Filter/Servlet. I've taken a look at WicketSessionFilter, but this one requires a filterName init parameter and seems to expect the session as a HttpSession parameter. But how the WebSession should come into the HttpSession without setting it from the wicket code? Tom - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Update a ListView (Solved)
Just need to remember only the model get updated for each request. So after I changed to code as follows, it works! After: PageableListView messageListView = new PageableListView(messageTable, new PropertyModel(this, messages), 5) Before: PageableListView messageListView = new PageableListView(messageTable, messages, 5) Julie juliez wrote: I have a simple page to that contains an input box, a drop down list with a submit button and a table below it. When a user inputs something, chooses the item in the drop down list and hit the submit button, the table should be refreshed. It seems a lot like the GuestBook in the example. I first implemented the table with AjaxFallbackDefaultDataTable with a list of AbstractColumn and it works well. But then I changed to use PagableListView and couldn't get the table content refreshed. The code is like this (1, 2 and 3 are in one method, 4 is in another method) 0. In the constructor: initiate the instance variable of messages. messages = personService.doGetMessages(currentUser); 1. The text area The model is an Object of Message class. final IModel messageModel = new CompoundPropertyModel(new Message()); form.add(new TextArea(message, new PropertyModel(messageModel, message)).setRequired(true)); 2. The drop down list The model is an Object of Person class which I retrieved from database. form.add(new DropDownChoice(receiver, new PropertyModel(messageModel, person), new LoadableDetachableModel() { protected Object load() { return personService.doFindUsers(); } }, new ChoiceRenderer(formattedName)).setRequired(true)); 3. The button form.add(new Button(sendButton) { public void onSubmit() { Message message = (Message) messageModel.getObject(); personService.doSendPersonMessage(message); message.setMessage(); messages = personService.doGetMessages(currentUser); //REFRESH THE LIST } }); 4. The List View The model is a list of Message(s) PageableListView messageListView = new PageableListView(messageTable, messages, 5) { protected void populateItem(ListItem item) { Message message = (Message)item.getModelObject(); item.add(new Label(messageContent, message.getMessage())); } }; form.add(messageListView); Question: a. The messages in the ListView hasn't been refreshed when it is refreshed in the onSubmit() in the button code. Why? b. In the button code (#3 in the code list), if I reset the model of the ListView in onSubmit() as follows to replace the refresh of messages, the table is refreshed. But I don't think it's the right way to do it, right? getParent().get(messageTable).setModelObject(personService.doGetMessages(currentUser)); c. What's the difference of using DataTable and ListView in Wicket? If it's discussed before, please just tell me this. Thanks! Julie -- View this message in context: http://www.nabble.com/Update-a-ListView-tf4355194.html#a12428138 Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
WizardStep isComplete and Next button interaction
When I create a WizardStep, I automatically call setComplete( false ). When the user performs the necessary option (selects an item), I call setComplete( true ). However, the Next button is disabled even though I called setComplete( true ). Actually, I found out that once you call setComplete( false ) or if isComplete() returns false, the Next button will never become disabled. I am currently using wicket-extensions-1.2.6 but with wicket 1.3.0 beta2 -- View this message in context: http://www.nabble.com/WizardStep-%22isComplete%22-and-Next-button-interaction-tf4360742.html#a12428359 Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
wicket:container beta3 and post snapshots
I suddenly started getting errors using wicket:container saying it failed to handle it. Is anyone else seeing this or is my env just really busted?
Re: MarkupContainer.get(path) or hold reference?
we went with the cheapest variant possible as default. a callback method doesnt have the memory overhead of holding onto a list, besides since buttons/links 99% of the time only have a single listener anyways it makes sense. if you have a lot of cases where you need more then one listener you can create a subclass that delegates the call. -igor On 8/31/07, Sam Hough [EMAIL PROTECTED] wrote: Thanks Eelco, On a related subject. Why does Wicket get us to do: new Button(id) { @Override public void onSubmit() { } }; rather than: Button b = new Button(id); b.addOnSubmit(new SubmitHandler() { public void onSubmit(Field f) { } }}; ? The latter seems more common elsewhere. Is it taste or something more concrete? I was sulking a bit trying to do: final Button a = new Button(a); final Button b = new Button(b); a. addOnSubmit(new SubmitHandler() { public void onSubmit(FIeld f) { a.setEnabled(false); b.setEnabled(true); } }; b.addOnSubmit(new SubmitHandler() { public void onSubmit(Field f) { a.setEnabled(true); b.setEnabled(false); } }; Probably me still trying to convert from GWT ;) Eelco Hillenius wrote: Great. I must have just imagined the anti-pattern comment or got it the wrong way around. An anti pattern in Wicket 1.2 would be to keep passing pages in to other pages. One back page is no problem, but a linked list out of them would eat considerable memory. In Wicket 1.3 this is hardly relevant since Johan and Matej optimized the hell out of how pages are serialized. And just in general, keep in mind that everything that can be referenced from components/ a page means it is part of it's state (which might hurt you in a cluster if you over-do it). Eelco - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- View this message in context: http://www.nabble.com/MarkupContainer.get%28path%29-or-hold-reference--tf4358991.html#a12424669 Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: CheckGroup in a DataTable
then the problem is that previously checked but now unchecked things wont be cleared from your collection -igor On 8/31/07, Tim Lantry [EMAIL PROTECTED] wrote: Ok. I noticed in the updateModel method of the CheckGroup it is clearing the collection each time before adding the new ones to avoid duplicates in the collection. So I created a new component that extends the CheckGroup and changed the updateModel method. I removed the collection.clear() and instead of adding all the items, I check to make sure they don't already exist. Now it holds those checks across pages. public void updateModel() { Collection collection = (Collection)getModelObject(); if (collection == null) { collection = (Collection)getConvertedInput(); setModelObject(collection); } else { modelChanging(); Collection input = (Collection)getConvertedInput(); if(input != null input.size() 0) { for (Iterator iterator = input.iterator(); iterator.hasNext();) { Object object = (Object)iterator.next(); if(!collection.contains(object)) { collection.add(object); } } } modelChanged(); } } On 8/30/07, Igor Vaynberg [EMAIL PROTECTED] wrote: and you are sure all links in the navigator are submit links? if so then post a quickstart and we will take a look -igor On 8/30/07, Tim Lantry [EMAIL PROTECTED] wrote: I implemented hascode and equals on the row model object. I still get the same results. I also added the onBeforeRender and onAfterRender to the page to check the contents of the List. From page 1 I checked two boxes. I then hit the next page. before render and after render both and the two Objects in the list. I then hit the previous page link and before render and after render both had an empty list. On 8/30/07, Tim Lantry [EMAIL PROTECTED] wrote: No, in my test I didn't include the hascode/equals methods. I will give that a try. On 8/30/07, Igor Vaynberg [EMAIL PROTECTED] wrote: and whatever that model is it has a proper hashcode/equals implemented? -igor On 8/30/07, Tim Lantry [EMAIL PROTECTED] wrote: Yes, I added an onSubmit method on the form and it has all the checked models in the List. Then it changes pages and the next time I submit or change pages, they are gone. On 8/30/07, Igor Vaynberg [EMAIL PROTECTED] wrote: are you sure they are being submitted properly, meaining does that list make it into checkgroup's model when switch pages? -igor On 8/30/07, Tim Lantry [EMAIL PROTECTED] wrote: I am using a Check component inside of a DataTable. The DataTable is surrounded by a CheckGroup. The model on each Check component is the Row Model. This works great to get a list of checked rows. Is there a good way to retain the checks across pages? I created a new Navigator component that uses SubmitLinks instead of the Link component, but he List of models doesn't retain the objects from the previous page. Any suggestions?
Re: Regression in 1.3.0-beta3(?)
have you tried it with trunk? -igor On 8/31/07, Johannes Schneider [EMAIL PROTECTED] wrote: I don't use any AjaxFAllbackOrderByBorder or anything else in my code. So I think there must be another trigger for the bug, too. Johannes Schneider Jonas-21 wrote: I've been able to reproduce the problem with a these few classes: http://www.nabble.com/file/p12409279/Expected_close_tag.zip Expected_close_tag.zip It seems to be caused by the problem that BorderBodyResolver warns about: Unlike OrderByBorder, AjaxFallbackOrderByBorder doesn't add the BorderBodyContainer so it fits the markup. Now, if AjaxFallbackOrderByBorder is wrapped in another Border (as in my attached example), we don't get that nice log message, instead we get that 'Expected close tag for ...' message. So, it seems https://issues.apache.org/jira/browse/WICKET-166 actually IS relevant for wicket 1.3.0. (Of course the fix looks now different because of the api change) cheers, Jonas igor.vaynberg wrote: hmm, if you could create a quickstart for this it would be very helpful. -igor -- Johannes Schneider Im Lindenwasen 15 72810 Gomaringen Fon +49 7072 9229972 Fax +49 7072 50 Mobil +49 178 1364488 [EMAIL PROTECTED] http://www.johannes-schneider.info
Re: Component Factory and code against interface
yeah, im def not saying that _everything_ will work like that, but it is _possible_ to do it. what we did is already cover the most common things like links and form submit buttons. so try to get that case working first instead of switching between button and ajaxbutton use ajaxfallbackbutton. what will happen is that your app will work with ajax in a browser, but as soon as you turn javascript off it will work with regular requests. all pretty much transparent. when you get that working the next step will be to crate a ajaxfallbackdropdown that will do ajax onchange notifications where possible, and fallback on regular when not. you can build a layer of these ajaxfallback components for your app. that is probably the way to go. it isnt 100% flexible, but you can work on that later. one step at a time. -igor On 8/31/07, Sam Hough [EMAIL PROTECTED] wrote: Igor, Thanks. I did have a look at that early on (so maybe I wasn't thinking Wicket enough to get it). It seemed to me that that didn't really help for things like forms etc that we want to work in Ajax style (partial update etc) and with full page refresh (only JavaScript being onchange for select element). Our test example for our prototype is a query builder where you can add/remove conditions and part of the form changes if you change what field you are searching. I can't see how to do this without switching between AjaxButton and Button depending on type of browser... Also changing if ListChoice uses the AjaxFormComponentUpdatingBehavior or onSelectionChanged... Wicket seems setup to allow power users to build very intricate Ajax app _OR_ plain HTML not really both at the same time. Sorry if I'm being thick. Think I'm bright enough for your original comment to worry me. Trying to grow out of the sort of geek who always has to rewrite everything ;) igor.vaynberg wrote: we already have support for unobtrusive ajax via AjaxFallbackLink and AjaxFallbackButton. read the javadoc for AjaxFallbackLink, i think it will be just what you are looking for. -igor On 8/31/07, Sam Hough [EMAIL PROTECTED] wrote: igor, I've not been able to get rid of the requirement I've been given to support an Ajax capable client and old browser with tiny bit of JavaScript. Your words seem more true than ever but I can't think of a better way of doing it than the Swing/AWT style with our own simple objects being proxies to different Wicket components. e.g. AjaxButton or Button... What would you do if you were me? Before I try and make our prototype ship shape ;) Today your words seemed even more true as I'm tempted to digress from the Wicket style and use event handler style: someButton.add(new EventHandler... So as you say writing our own framework. igor.vaynberg wrote: the ui layer is generally not portable. if you start building your own abstraction to make it portable you will end up with a pretty big mess because you will be working against whatever framework you are using and eventually that abstraction will turn into a framework itself. -igor On 8/24/07, Sam Hough [EMAIL PROTECTED] wrote: Many thanks Igor, that sounds like a very pragmatic approach. I was thinking about all sorts of horrible kludges like re-rendering the whole page and seeing how elements changed or hooking into the serialisation. Taken away another reason to do my over complicated solution ;) Am I worrying over nothing that developers might get carried away using vast number of components and fiddling with attributes that will make the application difficult to test and maybe one day port? Restricting the set of components can presumably end up with a more consistent UI... Anyway, thanks for all your time and sage advice. -- View this message in context: http://www.nabble.com/Component-Factory-and-code-against-interface-tf4311047.html#a12308606 Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- View this message in context: http://www.nabble.com/Component-Factory-and-code-against-interface-tf4311047.html#a12426453 Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- View this message in context: http://www.nabble.com/Component-Factory-and-code-against-interface-tf4311047.html#a12429106 Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail:
Re: Hierarchy of components
it helps when you paste the stacktrace -igor On 8/31/07, andrea pantaleoni [EMAIL PROTECTED] wrote: Hi, I build a page quite complex with 10 panels several listview a nd other components When I try to run the application I got always an error: hierarchy does not match (markup and page components) Anyone knows a way to DEBUG wicket to understand how is built the internal hierarchy of components for a page? Thanks a lot for any suggestion -- View this message in context: http://www.nabble.com/Hierarchy-of-components-tf4360349.html#a12427104 Sent from the Wicket - User mailing list archive at Nabble.com.
Re: Component Factory and code against interface
Igor, Thanks. I did have a look at that early on (so maybe I wasn't thinking Wicket enough to get it). It seemed to me that that didn't really help for things like forms etc that we want to work in Ajax style (partial update etc) and with full page refresh (only JavaScript being onchange for select element). Our test example for our prototype is a query builder where you can add/remove conditions and part of the form changes if you change what field you are searching. I can't see how to do this without switching between AjaxButton and Button depending on type of browser... Also changing if ListChoice uses the AjaxFormComponentUpdatingBehavior or onSelectionChanged... Wicket seems setup to allow power users to build very intricate Ajax app _OR_ plain HTML not really both at the same time. Sorry if I'm being thick. Think I'm bright enough for your original comment to worry me. Trying to grow out of the sort of geek who always has to rewrite everything ;) igor.vaynberg wrote: we already have support for unobtrusive ajax via AjaxFallbackLink and AjaxFallbackButton. read the javadoc for AjaxFallbackLink, i think it will be just what you are looking for. -igor On 8/31/07, Sam Hough [EMAIL PROTECTED] wrote: igor, I've not been able to get rid of the requirement I've been given to support an Ajax capable client and old browser with tiny bit of JavaScript. Your words seem more true than ever but I can't think of a better way of doing it than the Swing/AWT style with our own simple objects being proxies to different Wicket components. e.g. AjaxButton or Button... What would you do if you were me? Before I try and make our prototype ship shape ;) Today your words seemed even more true as I'm tempted to digress from the Wicket style and use event handler style: someButton.add(new EventHandler... So as you say writing our own framework. igor.vaynberg wrote: the ui layer is generally not portable. if you start building your own abstraction to make it portable you will end up with a pretty big mess because you will be working against whatever framework you are using and eventually that abstraction will turn into a framework itself. -igor On 8/24/07, Sam Hough [EMAIL PROTECTED] wrote: Many thanks Igor, that sounds like a very pragmatic approach. I was thinking about all sorts of horrible kludges like re-rendering the whole page and seeing how elements changed or hooking into the serialisation. Taken away another reason to do my over complicated solution ;) Am I worrying over nothing that developers might get carried away using vast number of components and fiddling with attributes that will make the application difficult to test and maybe one day port? Restricting the set of components can presumably end up with a more consistent UI... Anyway, thanks for all your time and sage advice. -- View this message in context: http://www.nabble.com/Component-Factory-and-code-against-interface-tf4311047.html#a12308606 Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- View this message in context: http://www.nabble.com/Component-Factory-and-code-against-interface-tf4311047.html#a12426453 Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- View this message in context: http://www.nabble.com/Component-Factory-and-code-against-interface-tf4311047.html#a12429106 Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: wicket:container beta3 and post snapshots
works fine for me WebMarkupContainer container = new WebMarkupContainer(container); add(container); container.add(new Label(label, hello)); wicket:container wicket:id=containerdiv wicket:id=label/div/wicket:container -igor On 8/31/07, Evan Chooly [EMAIL PROTECTED] wrote: I suddenly started getting errors using wicket:container saying it failed to handle it. Is anyone else seeing this or is my env just really busted?
Re: Hierarchy of components
Thanks a lot for the suggestion finally I solved the problem. Anyway I would find more helpful a clear debug that shows visually the internal hierarchy of components. Just to find quicker the bugs Andrea igor.vaynberg wrote: it helps when you paste the stacktrace -igor On 8/31/07, andrea pantaleoni [EMAIL PROTECTED] wrote: Hi, I build a page quite complex with 10 panels several listview a nd other components When I try to run the application I got always an error: hierarchy does not match (markup and page components) Anyone knows a way to DEBUG wicket to understand how is built the internal hierarchy of components for a page? Thanks a lot for any suggestion -- View this message in context: http://www.nabble.com/Hierarchy-of-components-tf4360349.html#a12427104 Sent from the Wicket - User mailing list archive at Nabble.com. -- View this message in context: http://www.nabble.com/Hierarchy-of-components-tf4360349.html#a12429312 Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Hierarchy of components
you should get that on the error page, unless you changed the error page used to your own -igor On 8/31/07, andrea pantaleoni [EMAIL PROTECTED] wrote: Thanks a lot for the suggestion finally I solved the problem. Anyway I would find more helpful a clear debug that shows visually the internal hierarchy of components. Just to find quicker the bugs Andrea igor.vaynberg wrote: it helps when you paste the stacktrace -igor On 8/31/07, andrea pantaleoni [EMAIL PROTECTED] wrote: Hi, I build a page quite complex with 10 panels several listview a nd other components When I try to run the application I got always an error: hierarchy does not match (markup and page components) Anyone knows a way to DEBUG wicket to understand how is built the internal hierarchy of components for a page? Thanks a lot for any suggestion -- View this message in context: http://www.nabble.com/Hierarchy-of-components-tf4360349.html#a12427104 Sent from the Wicket - User mailing list archive at Nabble.com. -- View this message in context: http://www.nabble.com/Hierarchy-of-components-tf4360349.html#a12429312 Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: best practice for a header component with links defined by the page
they are not fancier then generic data structures. they exist for a reason and can do things other generic data structures cannot. i suggest you read up on them, they are a pretty standard part of oop and are used throughout java - unless of course you have been living in a struts-like land where oop is replaced with procedural programming and you only use a small subset of java. -igor On 8/31/07, Kirk Israel [EMAIL PROTECTED] wrote: Well, that's a good point-- They aren't complex, per se, but they (and especially anonymous inner classes) seem to show up a lot more in the class of programming of which Applets and Wicket are both subsets than they do in most of the rest of Java land. So they're a little less familiar to me, and I'm not sure if they represent more complexity (given they're obviously fancier than using more generic data structures in that they may be doing arbitrarily complex things in their functions) or less (since they live in the same .java file as the page, and can be nicely tuned to handle the problem at hand). On 8/30/07, Igor Vaynberg [EMAIL PROTECTED] wrote: heh, if you think inner classes are complex you are def using the wrong framework -igor On 8/30/07, Kirk Israel [EMAIL PROTECTED] wrote: Ok, thanks... I refactored what i had with this in mind. It was a little more complicated because I want to delegate responsibility for generating the link and caption to the page (some of our links our kind of complex to promote lazy initialization), so the page is still calling into static functions to know what id to give the caption and label. Plus I had to create an additional class to hold that link plus the seperator( to do the comma and or in something like A, B or C) The list is then add(new ListView(linklist, listSepLinks) { private static final long serialVersionUID = 0L; public void populateItem(final ListItem listItem) { CaptionedLinkAndSeperator linkAndSep = (CaptionedLinkAndSeperator)listItem.getModelObject(); listItem.add(linkAndSep.getPageLink()); listItem.add(new Label(sep, linkAndSep.getSeperator())); } }); and the HTML is then span wicket:id=linklist a href=# wicket:id=link class=linkspan wicket:id=caption[LINK CAPTION]/span/aspan wicket:id = sep[,]/span /span So, the complexity isn't too bad despite the inner class and it's less kludgey than what i had earlier. Thanks. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: best practice for a header component with links defined by the page
That is why flat, page/request granularity web UI frameworks have succeeded. They are simple and procedural. The reason that languages such as Smalltalk, Java C# are much better than languages such as Fortan, Pascal and C is that the former have a range of syntax, objects, that their procedural predecessors lack. In an OO language one can wrap data and behavior up into objects and then assemble those objects and pass them to other objects. From my perspective that is the value that Wicket brings to web development. Now a developer has the power of OO instead of being stuck writing the same sort of procedural code that would be at home in Cobol. The bright side to all of this is that a Java developer that gets OO is worth 3 or 4 that don't. I review most of the interviews that come in to Vegas.com and I conduct most of the phone screen interviews. I don't consider anyone who doesn't get objects. That is our base line for entry. So put in the work. It's worth it. Oh, and does anyone want to move to sunny Las Vegas and work with a team of a dozen other developers who get it? We're still hiring -- especially folk with experience with Wicket. Cheers, Scott On 8/31/07, Kirk Israel [EMAIL PROTECTED] wrote: Well, that's a good point-- They aren't complex, per se, but they (and especially anonymous inner classes) seem to show up a lot more in the class of programming of which Applets and Wicket are both subsets than they do in most of the rest of Java land. So they're a little less familiar to me, and I'm not sure if they represent more complexity (given they're obviously fancier than using more generic data structures in that they may be doing arbitrarily complex things in their functions) or less (since they live in the same .java file as the page, and can be nicely tuned to handle the problem at hand). On 8/30/07, Igor Vaynberg [EMAIL PROTECTED] wrote: heh, if you think inner classes are complex you are def using the wrong framework -igor On 8/30/07, Kirk Israel [EMAIL PROTECTED] wrote: Ok, thanks... I refactored what i had with this in mind. It was a little more complicated because I want to delegate responsibility for generating the link and caption to the page (some of our links our kind of complex to promote lazy initialization), so the page is still calling into static functions to know what id to give the caption and label. Plus I had to create an additional class to hold that link plus the seperator( to do the comma and or in something like A, B or C) The list is then add(new ListView(linklist, listSepLinks) { private static final long serialVersionUID = 0L; public void populateItem(final ListItem listItem) { CaptionedLinkAndSeperator linkAndSep = (CaptionedLinkAndSeperator)listItem.getModelObject(); listItem.add(linkAndSep.getPageLink()); listItem.add(new Label(sep, linkAndSep.getSeperator())); } }); and the HTML is then span wicket:id=linklist a href=# wicket:id=link class=linkspan wicket:id=caption[LINK CAPTION]/span/aspan wicket:id = sep[,]/span /span So, the complexity isn't too bad despite the inner class and it's less kludgey than what i had earlier. Thanks. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Scott Swank reformed mathematician - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: best practice for a header component with links defined by the page
On 8/31/07, Kirk Israel [EMAIL PROTECTED] wrote: Probably the most difficult grinding of gears, then, for someone who gets the syntax and knows the basic concept in theory more than practice, is the idea that it's reasonable to make small, single uses class definitions (as opposed to setting properties on instances of classes) for the task at hand and not worry that they can't or won't be used elsewhere, just in the local file. On a surface level at least, this goes against the grain of objects as reusable components that should be first class objects (though obviously the trick can be to make the appropriate first class objects that can then be customized locally) that is wrong, the defininition of the object is not that it is reusable - it is that it encapsulates data and functions that act upon that data. the fact that this leads to good reusability is a side effect imho. so taking anonymous classes - no they are not reusable - but they are used to modify the behavior of whatever it is they subclass. inner classes are, in fact, reusable, but with a much smaller scope. they are reusable within the top level class. this is why not all classes, even top level, are public. -igor On 8/31/07, Igor Vaynberg [EMAIL PROTECTED] wrote: they are not fancier then generic data structures. they exist for a reason and can do things other generic data structures cannot. i suggest you read up on them, they are a pretty standard part of oop and are used throughout java - unless of course you have been living in a struts-like land where oop is replaced with procedural programming and you only use a small subset of java. -igor On 8/31/07, Kirk Israel [EMAIL PROTECTED] wrote: Well, that's a good point-- They aren't complex, per se, but they (and especially anonymous inner classes) seem to show up a lot more in the class of programming of which Applets and Wicket are both subsets than they do in most of the rest of Java land. So they're a little less familiar to me, and I'm not sure if they represent more complexity (given they're obviously fancier than using more generic data structures in that they may be doing arbitrarily complex things in their functions) or less (since they live in the same .java file as the page, and can be nicely tuned to handle the problem at hand). On 8/30/07, Igor Vaynberg [EMAIL PROTECTED] wrote: heh, if you think inner classes are complex you are def using the wrong framework -igor On 8/30/07, Kirk Israel [EMAIL PROTECTED] wrote: Ok, thanks... I refactored what i had with this in mind. It was a little more complicated because I want to delegate responsibility for generating the link and caption to the page (some of our links our kind of complex to promote lazy initialization), so the page is still calling into static functions to know what id to give the caption and label. Plus I had to create an additional class to hold that link plus the seperator( to do the comma and or in something like A, B or C) The list is then add(new ListView(linklist, listSepLinks) { private static final long serialVersionUID = 0L; public void populateItem(final ListItem listItem) { CaptionedLinkAndSeperator linkAndSep = (CaptionedLinkAndSeperator)listItem.getModelObject(); listItem.add(linkAndSep.getPageLink()); listItem.add(new Label(sep, linkAndSep.getSeperator())); } }); and the HTML is then span wicket:id=linklist a href=# wicket:id=link class=linkspan wicket:id=caption[LINK CAPTION]/span/aspan wicket:id = sep[,]/span /span So, the complexity isn't too bad despite the inner class and it's less kludgey than what i had earlier. Thanks. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: best practice for a header component with links defined by the page
On 8/31/07, Scott Swank [EMAIL PROTECTED] wrote: That is why flat, page/request granularity web UI frameworks have succeeded. They are simple and procedural. The reason that languages such as Smalltalk, Java C# are much better than languages such as Fortan, Pascal and C is that the former have a range of syntax, objects, that their procedural predecessors lack. I want to hear you argue with the people who feel Lisp (Paul Graham among them) is horribly under-represented in software development outside of Academia. (The trouble with Lisp (at least as it was taught in Princeton-program based Universities in the early 90s) is that, like a lot of languages, you tend to judge it on its common APIs and libraries, and for many students that's just a primitive little command loop with primitive file I/O at best.) And I swear, I'm trying to learn here, and not pick fights. I'm also trying to not let me sometimes working out of my comfort zone make me highly defensive or judgemental. So let me play devil's advocate here: You said flat, page/request granularity web UI frameworks have succeeded. They are simple and procedural. Simplicity is often regarded as a good thing. Probably, it is, in of itself, a good thing: the problem then occurs where you try to use the simple methods on problems they go beyond their scope. CGI-centric approaches offer some beautifully simple concepts, a pretty hammer that (I'd say) may well be right for many programming situations: a simple key/value map for input, another key/value map for storing things on a session, output as text that the browser will interpret and turn into screen elements. This may even map well to how civilians see the web. (as opposed to a desktop app). They click a link, they get a page. Click, page. Form, Click, page. But not every problem is a nail for this simple hammer. In practice, I'd say there are a few gotchas to be aware of w/ page-centric approaches. One is the general issue of conceptual weight. This is probably worse for shlubs like me, but even then, there tend to be more things to be kept track of, more potential interactions , and more things to know about -- especially because I feel, in practice, Wicket doesn't let you know THAT much less about the HTML, Javascript, and CSS,(There are exceptions, for the prebuilt component, but those aren't core Wicket.) but requires you to understand how to apply that knowledge in the Wicket context. The second gotcha for people, especially who are a bit procedural minded, is the stacktrace problem. The more OO- you are, the more what you are seeing on screen (whether a complete webpage or a stacktrace) is the result of properly established object and relations earlier in the app workflow, the tougher it can be to know where the mistake occurred. Sometimes it's not a problem, and the 2 lines you see of your code are around where the error was, and other times Wicket is pretty helpful in telling you the kind of thing that went wrong. So in short... I get objects and have for a while. But I'm learning that there are further levels of getness I can aspire to. In an OO language one can wrap data and behavior up into objects and then assemble those objects and pass them to other objects. From my perspective that is the value that Wicket brings to web development. Now a developer has the power of OO instead of being stuck writing the same sort of procedural code that would be at home in Cobol. The bright side to all of this is that a Java developer that gets OO is worth 3 or 4 that don't. I review most of the interviews that come in to Vegas.com and I conduct most of the phone screen interviews. I don't consider anyone who doesn't get objects. That is our base line for entry. So put in the work. It's worth it. Oh, and does anyone want to move to sunny Las Vegas and work with a team of a dozen other developers who get it? We're still hiring -- especially folk with experience with Wicket. Cheers, Scott On 8/31/07, Kirk Israel [EMAIL PROTECTED] wrote: Well, that's a good point-- They aren't complex, per se, but they (and especially anonymous inner classes) seem to show up a lot more in the class of programming of which Applets and Wicket are both subsets than they do in most of the rest of Java land. So they're a little less familiar to me, and I'm not sure if they represent more complexity (given they're obviously fancier than using more generic data structures in that they may be doing arbitrarily complex things in their functions) or less (since they live in the same .java file as the page, and can be nicely tuned to handle the problem at hand). On 8/30/07, Igor Vaynberg [EMAIL PROTECTED] wrote: heh, if you think inner classes are complex you are def using the wrong framework -igor On 8/30/07, Kirk Israel [EMAIL PROTECTED] wrote: Ok, thanks... I refactored what i had with this in mind. It was a little more
Re: Session.get() from non-Wicket-Filter/Servlet and the RequestCycle
Reading your mails i think you are a bit confused. to make it clear to me what you think WicketSessionFilter does Do you think that the WicketSessionFilter CREATES a WicketSession object for you? If you think that then that is what the big confusion is all about in this thread. The only thing the filter does is getting an existing wicket session that is stored in the http session and setting it for you in the the thread local so that you can access it from a none wicket thing. Ofcourse you need to first hit something in wicket itself. So that the wicket filter/servlet request did make one. Else it will always be empty. johan On 8/31/07, Thomas Singer [EMAIL PROTECTED] wrote: OK, let's look at the sources of WicketSessionFilter. According to my understanding: init() method: - the filterName init parameter (which is stored as a member, but should in a local variable) defines the sessionKey doFilter() method: - first the httpSession will be fetched if available - out of the httpSession the (wicket-)session is fetched as attribute using the sessionKey - only if this one is found, it will be set to Session.set() This creates following question for me: - Where the httpSession attribute with the sessionKey is set? - Is there a working example available where WicketSessionFilter is used? Tom Johan Compagner wrote: again look at the source :) Session.get() will create a WicketSession object. (Session.findOrCreate ()) And if you then make a statefull page that has to be stored in the session, the session will also be stored. (Session.bind()) johan On 8/31/07, Thomas Singer [EMAIL PROTECTED] wrote: Did you read my first mail in this thread? How does the WebSession reference comes into the HttpSession? That's what I don't understand for now. Tom Johan Compagner wrote: look at the source :) On 8/31/07, Thomas Singer [EMAIL PROTECTED] wrote: Matej and Johan, thanks for your feed-back. I've tried to avoid the WicketSessionFilter and make everything work from our code. Just curious: is the WicketSessionFilter handled something special by Wicket? Or how does it get the WebSession reference? Tom Matej Knopp wrote: You don't interact with WicketSessionFilter directly. You just set it up, providing name of your WicketFilter ad argument. You need to map the WicketSessionFilter to same url as your non-wicket filter/servlet and make sure that you use a non-wicket filter WicketSessionFilter gets invoked first. Then in your custom filter/servlet you can obtain wicket session using just Session.get(). -Matej On 8/31/07, Thomas Singer [EMAIL PROTECTED] wrote: What is the preferred way of obtaining a WebSession from a non-Wicket-Filter/Servlet. I've taken a look at WicketSessionFilter, but this one requires a filterName init parameter and seems to expect the session as a HttpSession parameter. But how the WebSession should come into the HttpSession without setting it from the wicket code? Tom - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Dynamic message for required validation in 1.3
statusDate.Required=${label} date is required! -igor On 8/31/07, Russell Morrisey [EMAIL PROTECTED] wrote: Hello, all, Wicket-1.3.0-SNAPSHOT I'm trying to customize the required error message automatically based on the field name. The field I'm working with is on a custom panel called IssueStatusPanel, and I have: IssueStatusPanel.properties: statusDate.Required=Status date is required! What I would like to have is something like: statusDate.Required={status} date is required! Where {status} is the name of the label associated with that item. My panel uses a ListView, with a Label for each status: //- //Edited down this code for clarity (I hope!) statuses = new ListView(statuses, new IssueStatusModel()) { ... protected void populateItem(ListItem item) { Radio radio = new Radio(status, [radioModel]); setupAjaxRadio(...); item.add(radio); item.add(new Label(statusLabel, new PropertyModel(item.getModel(), cycleStatus.description))); ... final DateTextField statusDate = new StatusDateTextField(statusDate, ...); statusDate.setRequired(true); //*Here is the validation I am trying to customize* item.add(statusDate); ... } } //- I want the text from cycleStatus.description to appear as {status} in my validation. I think I would want to implement AbstractValidator# variablesMap(IValidatable validatable), but I see that required no longer uses a validator in 1.3. Is there another route I can take, or do I have to implement a custom validator that does the same function as a required check? Do I need to have a label or label model attached to my DateTextField in order to use it as a field name? I am a little new to wicket's validations, so maybe there is a nice clean solution that I'm just not seeing. Any help is appreciated. Let me know if I need to provide any more information to show what I'm trying to do. Thanks! Russell Morrisey Computer Sciences Corporation NOTE: Regardless of content, this e-mail shall not operate to bind CSC to any order or other contract unless pursuant to explicit written agreement or government initiative expressly permitting the use of e-mail for such purpose.
Re: BookmarkablePage URL
you dont build urls like that, you mount pages - then you know what the url is. what is the full stack trace? -igor On 8/31/07, V. Jenks [EMAIL PROTECTED] wrote: I'm sure this has been asked 1000x but I'm unable to find the answer...and don't have enough time left to keep digging. I simply want to call a bookmarkable page and pass it a parameter value... I got this far but my guesses have so far been wrong: ?wicket:bookmarkablePage=:com.myapp.BookmarkedPagecatid=1 I get this error: ERROR [RequestCycle] Can't instantiate page using constructor public com.myapp.BookmarkedPage(wicket.PageParameters) and argument catid = 1 It seems strange that I'm unable to quickly find an example of the URL format. I've been away from Wicket for a few months and when I tried to use 1.2.6, I had a bunch of failures on code that currently works in 1.2.4, so I've stuck w/ that until I have time to figure out what's changed. Thanks! -- View this message in context: http://www.nabble.com/BookmarkablePage-URL-tf4362196.html#a12433271 Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: BookmarkablePage URL
On 8/31/07, V. Jenks [EMAIL PROTECTED] wrote: I'm sure this has been asked 1000x but I'm unable to find the answer...and don't have enough time left to keep digging. I simply want to call a bookmarkable page and pass it a parameter value... I got this far but my guesses have so far been wrong: ?wicket:bookmarkablePage=:com.myapp.BookmarkedPagecatid=1 I get this error: ERROR [RequestCycle] Can't instantiate page using constructor public com.myapp.BookmarkedPage(wicket.PageParameters) and argument catid = 1 That looks like there is a problem constructing your page, not so much the format. Could you look further in your stack trace? Does BookmarkedPage has a public default constructor or one with just a page parameters argument? Btw, if you mount your pages (per package or individually), it is a bit easier to test. Eelco - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: best practice for a header component with links defined by the page
On 8/31/07, Kirk Israel [EMAIL PROTECTED] wrote: On 8/31/07, Scott Swank [EMAIL PROTECTED] wrote: That is why flat, page/request granularity web UI frameworks have succeeded. They are simple and procedural. The reason that languages such as Smalltalk, Java C# are much better than languages such as Fortan, Pascal and C is that the former have a range of syntax, objects, that their procedural predecessors lack. I want to hear you argue with the people who feel Lisp (Paul Graham among them) is horribly under-represented in software development outside of Academia. (The trouble with Lisp (at least as it was taught in Princeton-program based Universities in the early 90s) is that, like a lot of languages, you tend to judge it on its common APIs and libraries, and for many students that's just a primitive little command loop with primitive file I/O at best.) And I swear, I'm trying to learn here, and not pick fights. I'm also trying to not let me sometimes working out of my comfort zone make me highly defensive or judgemental. So let me play devil's advocate here: You said flat, page/request granularity web UI frameworks have succeeded. They are simple and procedural. Simplicity is often regarded as a good thing. Probably, it is, in of itself, a good thing: the problem then occurs where you try to use the simple methods on problems they go beyond their scope. CGI-centric approaches offer some beautifully simple concepts, a pretty hammer that (I'd say) may well be right for many programming situations: a simple key/value map for input, another key/value map for storing things on a session, output as text that the browser will interpret and turn into screen elements. This may even map well to how civilians see the web. (as opposed to a desktop app). They click a link, they get a page. Click, page. Form, Click, page. But if you have application this simple, then using Wicket is like killing a fly with a racket launcher. But not every problem is a nail for this simple hammer. In practice, I'd say there are a few gotchas to be aware of w/ page-centric approaches. One is the general issue of conceptual weight. This is probably worse for shlubs like me, but even then, there tend to be more things to be kept track of, more potential interactions , and more things to know about -- especially because I feel, in practice, Wicket doesn't let you know THAT much less about the HTML, Javascript, and CSS,(There are exceptions, for the prebuilt component, but those aren't core Wicket.) but requires you to understand how to apply that knowledge in the Wicket context. Huh? You can write AJAX applications without writing a single line of javascript. And I know people who have next to nothing knowledge of Javascript and are developing AJAX application with Wicket. HTML? CSS? The point of Wicket is that it doesn't shield you from HTML or CSS. It doesn't even attempt to. If you don't want to know anything about HTML/CSS then Wicket definitely is wrong choices. But what Wicket shields you from is HTTP. You don't have to think in requests/responses. You don't have to construct URLs and to parse them. You don't have to maintain session attributes (how often do you cleanup session attributes in regular model 2 applications, if at all?). You don't have to process form submittions automatically (which button submitted the form? what should be selected checkbox value?). You probably haven't been burned enough by a manual state management (such as I can't add a tabbed panel into this page, because i'd have to change every single link to preserve the selected tab). Image a model 2 application with two sortable pageable lists, tree, tabbed panel and two forms. With Wicket it's dead simple. Try that with struts. The second gotcha for people, especially who are a bit procedural minded, is the stacktrace problem. The more OO- you are, the more what you are seeing on screen (whether a complete webpage or a stacktrace) is the result of properly established object and relations earlier in the app workflow, the tougher it can be to know where the mistake occurred. Sometimes it's not a problem, and the 2 lines you see of your code are around where the error was, and other times Wicket is pretty helpful in telling you the kind of thing that went wrong. So in short... I get objects and have for a while. But I'm learning that there are further levels of getness I can aspire to. Wicket is not for newbie OOP developers. We don't pretend that it is. That was never the goal. You need rather solid OO skills to get Wicket. But if you want to learn, I think Wicket is a pretty good material. -Matej In an OO language one can wrap data and behavior up into objects and then assemble those objects and pass them to other objects. From my perspective that is the value that Wicket brings to web development. Now a developer has the power of OO instead of being stuck writing the same
Re: BookmarkablePage URL
I guess I'm completely confused. I'm pretty sure I've done it this way before and it worked fine...but it's been a while. I've never mounted a URL before, I'm not familiar w/ it. I've been going through the Reference Library on the wiki and I can't find an example of how to do this and what the URL actually looks like...can you maybe point me to some instructions? Thanks! Eelco Hillenius wrote: On 8/31/07, V. Jenks [EMAIL PROTECTED] wrote: I'm sure this has been asked 1000x but I'm unable to find the answer...and don't have enough time left to keep digging. I simply want to call a bookmarkable page and pass it a parameter value... I got this far but my guesses have so far been wrong: ?wicket:bookmarkablePage=:com.myapp.BookmarkedPagecatid=1 I get this error: ERROR [RequestCycle] Can't instantiate page using constructor public com.myapp.BookmarkedPage(wicket.PageParameters) and argument catid = 1 That looks like there is a problem constructing your page, not so much the format. Could you look further in your stack trace? Does BookmarkedPage has a public default constructor or one with just a page parameters argument? Btw, if you mount your pages (per package or individually), it is a bit easier to test. Eelco - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- View this message in context: http://www.nabble.com/BookmarkablePage-URL-tf4362196.html#a12434374 Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: BookmarkablePage URL
it's simple :) application.mountBookmarkablePage(/home/page, HomePage.class); and the url can look like http://server.com/context/home/page/cat/4 -Matej On 8/31/07, V. Jenks [EMAIL PROTECTED] wrote: I guess I'm completely confused. I'm pretty sure I've done it this way before and it worked fine...but it's been a while. I've never mounted a URL before, I'm not familiar w/ it. I've been going through the Reference Library on the wiki and I can't find an example of how to do this and what the URL actually looks like...can you maybe point me to some instructions? Thanks! Eelco Hillenius wrote: On 8/31/07, V. Jenks [EMAIL PROTECTED] wrote: I'm sure this has been asked 1000x but I'm unable to find the answer...and don't have enough time left to keep digging. I simply want to call a bookmarkable page and pass it a parameter value... I got this far but my guesses have so far been wrong: ?wicket:bookmarkablePage=:com.myapp.BookmarkedPagecatid=1 I get this error: ERROR [RequestCycle] Can't instantiate page using constructor public com.myapp.BookmarkedPage(wicket.PageParameters) and argument catid = 1 That looks like there is a problem constructing your page, not so much the format. Could you look further in your stack trace? Does BookmarkedPage has a public default constructor or one with just a page parameters argument? Btw, if you mount your pages (per package or individually), it is a bit easier to test. Eelco - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- View this message in context: http://www.nabble.com/BookmarkablePage-URL-tf4362196.html#a12434374 Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: BookmarkablePage URL
http://wicketstuff.org/wicket13/niceurl/the/homepage/path but like i said, lets see the full stacktrace, might not even be a wicket problem -igor On 8/31/07, V. Jenks [EMAIL PROTECTED] wrote: I guess I'm completely confused. I'm pretty sure I've done it this way before and it worked fine...but it's been a while. I've never mounted a URL before, I'm not familiar w/ it. I've been going through the Reference Library on the wiki and I can't find an example of how to do this and what the URL actually looks like...can you maybe point me to some instructions? Thanks! Eelco Hillenius wrote: On 8/31/07, V. Jenks [EMAIL PROTECTED] wrote: I'm sure this has been asked 1000x but I'm unable to find the answer...and don't have enough time left to keep digging. I simply want to call a bookmarkable page and pass it a parameter value... I got this far but my guesses have so far been wrong: ?wicket:bookmarkablePage=:com.myapp.BookmarkedPagecatid=1 I get this error: ERROR [RequestCycle] Can't instantiate page using constructor public com.myapp.BookmarkedPage(wicket.PageParameters) and argument catid = 1 That looks like there is a problem constructing your page, not so much the format. Could you look further in your stack trace? Does BookmarkedPage has a public default constructor or one with just a page parameters argument? Btw, if you mount your pages (per package or individually), it is a bit easier to test. Eelco - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- View this message in context: http://www.nabble.com/BookmarkablePage-URL-tf4362196.html#a12434374 Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Dynamic message for required validation in 1.3
statusDate.Required=${label} date is required! -igor and formcomponent.setlabel(imodel) -igor Aha, there was a nicer way! I remember seeing ${label} in my co-worker's properties file for a different panel, but I didn't know that that property was set automatically when you stick a label on the component. Thanks, Igor! Russell Morrisey Computer Sciences Corporation NOTE: Regardless of content, this e-mail shall not operate to bind CSC to any order or other contract unless pursuant to explicit written agreement or government initiative expressly permitting the use of e-mail for such purpose.
Re: Tree not redrawn when resetting root node
See entry WICKET-914 https://issues.apache.org/jira/browse/WICKET-914 -- View this message in context: http://www.nabble.com/Tree-not-%22redrawn%22-when-resetting-root-node-tf4359637.html#a12435297 Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: WizardStep isComplete and Next button interaction
I have created issue WICKET-915 See https://issues.apache.org/jira/browse/WICKET-915 for attached quick start project -- View this message in context: http://www.nabble.com/WizardStep-%22isComplete%22-and-Next-button-interaction-tf4360742.html#a12435359 Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: WizardStep isComplete and Next button interaction
On 8/31/07, Eelco Hillenius [EMAIL PROTECTED] wrote: Thanks Dough, erm *Doug* not Dough. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: application deployment
what url are you hitting when you get a 404? also see this: https://svn.apache.org/repos/asf/wicket/trunk/archetypes/README it will let you quickly build a properly configured app - use archetype version 1.3.0-beta3 -igor On 8/31/07, Ghodmode [EMAIL PROTECTED] wrote: I'm new to Wicket, so I'm starting with the first example from the documentation and I'm having some trouble getting it to run. Visiting the Web app's page, I get a Tomcat 404 error. I must be making an obvious mistake, but I can't see it. Can anyone see what's wrong? ... Here's my directory structure relative to Tomcat's webapps folder: helloworld1/: total 8 -rw-r--r-- 1 vince vince 65 2007-09-01 11:28 index.html drwxrwxrwx 4 root root 4096 2007-09-01 11:47 WEB-INF helloworld1/WEB-INF: total 12 -rwxrwxrwx 1 root root 796 2007-09-01 08:28 web.xml drwxr-xr-x 3 vince vince 4096 2007-09-01 08:58 classes drwxrwxrwx 2 root root 4096 2007-09-01 11:28 lib helloworld1/WEB-INF/classes: total 4 drwxr-xr-x 2 vince vince 4096 2007-09-01 11:48 mypackage helloworld1/WEB-INF/classes/mypackage: total 16 -rwxr-xr-x 1 vince vince 243 2007-09-01 09:14 HelloWorld1.java -rwxr-xr-x 1 vince vince 238 2007-09-01 09:34 HelloWorld1Application.java -rw-r--r-- 1 vince vince 473 2007-09-01 09:35 HelloWorld1.class -rw-r--r-- 1 vince vince 363 2007-09-01 09:35 HelloWorld1Application.class helloworld1/WEB-INF/lib: total 1648 -rw-r--r-- 1 vince vince7449 2007-09-01 11:25 slf4j-simple-1.4.3.jar -rw-r--r-- 1 vince vince 15345 2007-09-01 11:26 slf4j-api-1.4.3.jar -rw-r--r-- 1 vince vince 1657246 2007-09-01 11:28 wicket-1.3.0-beta3.jar Here's my WebApplication: package mypackage; import org.apache.wicket.protocol.http.WebApplication; public class HelloWorld1Application extends WebApplication { public HelloWorld1Application() { } public Class getHomePage() { return HelloWorld1.class; } } Here's my web.xml: ?xml version=1.0 encoding=UTF-8? !DOCTYPE web-app PUBLIC -//Sun Microsystems, Inc.//DTD Web Application 2.3//EN http://java.sun.com/dtd/web-app_2_3.dtd; web-app context-param param-nameconfiguration/param-name param-valuedevelopment/param-value /context-param servlet servlet-nameHelloWorld1Application/servlet-name servlet-classorg.apache.wicket.protocol.http.WicketServlet /servlet-class init-param param-nameapplicationClassName/param-name param-valuemypackage.HelloWorld1Application/param-value /init-param load-on-startup1/load-on-startup /servlet servlet-mapping servlet-nameHelloWorld1Application/servlet-name url-pattern/helloworld1/*/url-pattern /servlet-mapping /web-app Thank you, Vince
Re: application deployment
Thank you for your reply Igor, I'm using http://home:8080/helloworld1/HelloWorld1Application I'll look at the archetypes info. I don't know Maven very well and I don't know Jetty at all. Even if I get it working with Maven and Jetty using the instructions at the README you provided I won't know how to duplicate those results using my own application under Tomcat. Thank you, Vince On 9/1/07, Igor Vaynberg [EMAIL PROTECTED] wrote: what url are you hitting when you get a 404? also see this: https://svn.apache.org/repos/asf/wicket/trunk/archetypes/README it will let you quickly build a properly configured app - use archetype version 1.3.0-beta3 -igor On 8/31/07, Ghodmode [EMAIL PROTECTED] wrote: I'm new to Wicket, so I'm starting with the first example from the documentation and I'm having some trouble getting it to run. Visiting the Web app's page, I get a Tomcat 404 error. I must be making an obvious mistake, but I can't see it. Can anyone see what's wrong? ... Here's my directory structure relative to Tomcat's webapps folder: helloworld1/: total 8 -rw-r--r-- 1 vince vince 65 2007-09-01 11:28 index.html drwxrwxrwx 4 root root 4096 2007-09-01 11:47 WEB-INF helloworld1/WEB-INF: total 12 -rwxrwxrwx 1 root root 796 2007-09-01 08:28 web.xml drwxr-xr-x 3 vince vince 4096 2007-09-01 08:58 classes drwxrwxrwx 2 root root 4096 2007-09-01 11:28 lib helloworld1/WEB-INF/classes: total 4 drwxr-xr-x 2 vince vince 4096 2007-09-01 11:48 mypackage helloworld1/WEB-INF/classes/mypackage: total 16 -rwxr-xr-x 1 vince vince 243 2007-09-01 09:14 HelloWorld1.java -rwxr-xr-x 1 vince vince 238 2007-09-01 09:34 HelloWorld1Application.java -rw-r--r-- 1 vince vince 473 2007-09-01 09:35 HelloWorld1.class -rw-r--r-- 1 vince vince 363 2007-09-01 09:35 HelloWorld1Application.class helloworld1/WEB-INF/lib: total 1648 -rw-r--r-- 1 vince vince7449 2007-09-01 11:25 slf4j-simple-1.4.3.jar -rw-r--r-- 1 vince vince 15345 2007-09-01 11:26 slf4j-api-1.4.3.jar -rw-r--r-- 1 vince vince 1657246 2007-09-01 11:28 wicket-1.3.0-beta3.jar Here's my WebApplication: package mypackage; import org.apache.wicket.protocol.http.WebApplication; public class HelloWorld1Application extends WebApplication { public HelloWorld1Application() { } public Class getHomePage() { return HelloWorld1.class; } } Here's my web.xml: ?xml version=1.0 encoding=UTF-8? !DOCTYPE web-app PUBLIC -//Sun Microsystems, Inc.//DTD Web Application 2.3//EN http://java.sun.com/dtd/web-app_2_3.dtd; web-app context-param param-nameconfiguration/param-name param-valuedevelopment/param-value /context-param servlet servlet-nameHelloWorld1Application/servlet-name servlet-classorg.apache.wicket.protocol.http.WicketServlet /servlet-class init-param param-nameapplicationClassName/param-name param-valuemypackage.HelloWorld1Application/param-value /init-param load-on-startup1/load-on-startup /servlet servlet-mapping servlet-nameHelloWorld1Application/servlet-name url-pattern/helloworld1/*/url-pattern /servlet-mapping /web-app Thank you, Vince
Re: application deployment
the url you are accesing is wrong http://localhost:8080/helloworld1/HelloWorld1Application you should access http://localhost:8080/helloworld1/http://localhost:8080/helloworld1/HelloWorld1Application -igor On 8/31/07, Ghodmode [EMAIL PROTECTED] wrote: more information: - I'm trying to access the page at http://localhost:8080/helloworld1/HelloWorld1Application - I realized that I didn't have the HelloWorld1.html file in the right place and I put it in the mypackage folder - I also tried removing the package from the code of both HelloWorld1.java, HelloWorld1Application.java. I moved the files up to the classes directory and recompiled so that both classes and the HTML file were all in the same directory exactly as defined in the deployment section in the new user guide in the wiki (ref: http://cwiki.apache.org/WICKET/newuserguide.html#Newuserguide-Deployingtheapplication ) After stopping and re-starting Tomcat, I still haven't had any luck. Thank you, Vince On 9/1/07, Ghodmode [EMAIL PROTECTED] wrote: I'm new to Wicket, so I'm starting with the first example from the documentation and I'm having some trouble getting it to run. Visiting the Web app's page, I get a Tomcat 404 error. I must be making an obvious mistake, but I can't see it. Can anyone see what's wrong? ... Here's my directory structure relative to Tomcat's webapps folder: helloworld1/: total 8 -rw-r--r-- 1 vince vince 65 2007-09-01 11:28 index.html drwxrwxrwx 4 root root 4096 2007-09-01 11:47 WEB-INF helloworld1/WEB-INF: total 12 -rwxrwxrwx 1 root root 796 2007-09-01 08:28 web.xml drwxr-xr-x 3 vince vince 4096 2007-09-01 08:58 classes drwxrwxrwx 2 root root 4096 2007-09-01 11:28 lib helloworld1/WEB-INF/classes: total 4 drwxr-xr-x 2 vince vince 4096 2007-09-01 11:48 mypackage helloworld1/WEB-INF/classes/mypackage: total 16 -rwxr-xr-x 1 vince vince 243 2007-09-01 09:14 HelloWorld1.java -rwxr-xr-x 1 vince vince 238 2007-09-01 09:34 HelloWorld1Application.java -rw-r--r-- 1 vince vince 473 2007-09-01 09:35 HelloWorld1.class -rw-r--r-- 1 vince vince 363 2007-09-01 09:35 HelloWorld1Application.class helloworld1/WEB-INF/lib: total 1648 -rw-r--r-- 1 vince vince7449 2007-09-01 11:25 slf4j-simple-1.4.3.jar -rw-r--r-- 1 vince vince 15345 2007-09-01 11:26 slf4j-api-1.4.3.jar -rw-r--r-- 1 vince vince 1657246 2007-09-01 11:28 wicket-1.3.0-beta3.jar Here's my WebApplication: package mypackage; import org.apache.wicket.protocol.http.WebApplication ; public class HelloWorld1Application extends WebApplication { public HelloWorld1Application() { } public Class getHomePage() { return HelloWorld1.class; } } Here's my web.xml: ?xml version=1.0 encoding=UTF-8? !DOCTYPE web-app PUBLIC -//Sun Microsystems, Inc.//DTD Web Application 2.3//EN http://java.sun.com/dtd/web-app_2_3.dtd; web-app context-param param-nameconfiguration/param-name param-valuedevelopment/param-value /context-param servlet servlet-nameHelloWorld1Application/servlet-name servlet-classorg.apache.wicket.protocol.http.WicketServlet /servlet-class init-param param-nameapplicationClassName/param-name param-valuemypackage.HelloWorld1Application/param-value /init-param load-on-startup1/load-on-startup /servlet servlet-mapping servlet-nameHelloWorld1Application/servlet-name url-pattern/helloworld1/*/url-pattern /servlet-mapping /web-app Thank you, Vince
Re: Rendering a BoxBorder without the black line border
Hi Eelco, thanks so much for your reply. Let me try to explain myself better... I've started with a BoxBorder mainly because the Navomatic example uses it around a navigation menu: actually, what I'm trying to build is something between 5 and 10 reusable navigation menus. I've already built a test navigation menu following the Navomatic example and it works just fine... Now, as I'm trying to use CSS-only styling, I first thought of using a BoxBorder with the black line set to not visible. Thies pointed out that I should extend Border and provide my own markup to get this kind of effect. But then, thanks to Igor's remarks, I realized that I may be using a Border where I should be using another container for the Links that make up the menu. Would you please recommend another navigation menu example, or suggest which container I should use in place of BoxBorder, if this is the case? Regards, Cristina Eelco Hillenius wrote: that's true, but I believe the CSS definition wouldn't be needed here anyway because the Border markup is inserted in a page section that already includes it. Still, you're right... Maybe I've asked the wrong question. Actually, what I need is a navigation menu. So I thought I should follow the Navomatic example, which uses a Border around the Links. Since I don't really need a Border, maybe I should look for another container for the Links, like a Panel. Does this seem more reasonable to you? I can't guess for you Christina, but were you maybe just trying out how borders work so that you can actually do something useful with it in a later stage? I think Igor is mainly wondering why you want to have a border that doesn't seem to do anything (yet). Eelco - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- View this message in context: http://www.nabble.com/Rendering-a-BoxBorder-without-the-black-line-border-tf4357178.html#a12436605 Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Rendering a BoxBorder without the black line border
On 8/31/07, Cristina [EMAIL PROTECTED] wrote: Hi Eelco, thanks so much for your reply. Let me try to explain myself better... I've started with a BoxBorder mainly because the Navomatic example uses it around a navigation menu: actually, what I'm trying to build is something between 5 and 10 reusable navigation menus. I've already built a test navigation menu following the Navomatic example and it works just fine... Now, as I'm trying to use CSS-only styling, I first thought of using a BoxBorder with the black line set to not visible. Thies pointed out that I should extend Border and provide my own markup to get this kind of effect. But then, thanks to Igor's remarks, I realized that I may be using a Border where I should be using another container for the Links that make up the menu. Would you please recommend another navigation menu example, or suggest which container I should use in place of BoxBorder, if this is the case? Maybe looking at this: http://wicketstuff.org/wicket13/template/ helps? Eelco - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]