Re: [Wicket-user] pagemap problem with late arriving ajax request
Hi, Great work again! I cannot reproduce the error with my test application any more. We still have one page which hits page expired, but after looking it I think it is a different case (I'll get back if necessary after I have taken a better look at it). Thaks for help, Ari S. - Original Message - From: Igor Vaynberg [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Thursday, May 25, 2006 7:49 PM Subject: Re: [Wicket-user] pagemap problem with late arriving ajax request hmm, i guess really the only way to fix it would be to sync around my patch can you try that and see if it fixes the problem? Index: D:/ws/wicket_1_2/src/java/wicket/request/compound/DefaultRequestTargetResolverStrategy.java === --- D:/ws/wicket_1_2/src/java/wicket/request/compound/DefaultRequestTargetResolverStrategy.java (revision 5854) +++ D:/ws/wicket_1_2/src/java/wicket/request/compound/DefaultRequestTargetResolverStrategy.java (working copy) @@ -92,6 +92,7 @@ final String path = requestParameters.getPath(); if (requestParameters.getComponentPath() != null) { +synchronized (requestCycle.getSession()) { // we need to check if this request has been flagged as // process-only-if-path-is-active and if so make sure this condition // is met @@ -138,6 +139,7 @@ } } } + } if (processRequest) @@ -149,6 +151,7 @@ return EmptyRequestTarget.getInstance(); } } +} // see whether this request points to a bookmarkable page else if (requestParameters.getBookmarkablePageClass() != null) { -Igor On 5/24/06, Ari Suutari [EMAIL PROTECTED] wrote: Hi, Sorry it took some time to respond - I sat down and wrote a somewhat simple test program that I can redistribute if required. ok here is my first pass. i cannot reproduce the problem, so i am kinda flying blind here - all i know for sure is that it compiles it seems to me that as soon as you change the page the browser dumps the old javascript, in my case looks like it also dumps any running ajax requests. i tried both ie and ffox. i added a self upating counter that keeps updating every 1 sec and a link to go to another page, havent been able to catch the right timing i guess I did some more testing also. As I mentioned in my first e-mail, our setup is *similar* to self updating timer. The difference to timer is that we have an applet receiving events from server. The applet then executes javascript function to fire ajax update when needed. It looks like that the threads in applet continue to run for some time even after link is clicked (ie. applet is not stopped immediately) and seem to be able to run javascript on page also. At least using an applet here is the easiest way to reproduce the situation. (And I understand that we are bending wicket a lot here :) - but compared to what we had earlier wicket+ajax is very elegant and simple) anyways, i am attaching the patch, let me know if it works for you and we can take it from here The patch mostly works; however, there seems to be a small window where two threads (one from click and other one from ajax) can be executing at DefaultRequestTargetResolverStrategy which still results in page expired. My test application is available at: http://download.syncrontech.com/public/wicket-ajax-race.zip How to test: - load ExpireTestPage1 - click on page 2 link - click on to page 1. Without your Igor's patch, you'll get page expired almost always With Igor's patch, it requires some rather mad and rapid clicking of links to get the requests generated so that error still occurs. But it is still there. Ari S. - Original Message - On 5/23/06, Igor Vaynberg [EMAIL PROTECTED] wrote: i got up extra early to take care of this, so by the end of the day -igor On 5/23/06, Ari Suutari [EMAIL PROTECTED] wrote: This is so great ! TIA, Ari S. - Original Message - From: Johan Compagner [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Tuesday, May 23, 2006 11:37 AM Subject: Re: [Wicket-user] pagemap problem with late arriving ajax request We will fix it in the 1.2 branch. I am currently a bit full of work for at least 2 days. So i can only look at it by the end of this week. johan On 5/23/06, Ari Suutari [EMAIL PROTECTED] wrote: Hi, best thing todo currently is to have that -1 check in the pagemap and make your own version of wicket 1.2 We already decided to put my modified version to production and if there are no side effects from my change we can keep it for some time. in trunk (2.0) this is already fixed in the default setting because we refactored the pagemap and have now a different
Re: [Wicket-user] pagemap problem with late arriving ajax request
Hi, Sorry it took some time to respond - I sat down and wrote a somewhat simple test program that I can redistribute if required. ok here is my first pass. i cannot reproduce the problem, so i am kinda flying blind here - all i know for sure is that it compiles it seems to me that as soon as you change the page the browser dumps the old javascript, in my case looks like it also dumps any running ajax requests. i tried both ie and ffox. i added a self upating counter that keeps updating every 1 sec and a link to go to another page, havent been able to catch the right timing i guess I did some more testing also. As I mentioned in my first e-mail, our setup is *similar* to self updating timer. The difference to timer is that we have an applet receiving events from server. The applet then executes javascript function to fire ajax update when needed. It looks like that the threads in applet continue to run for some time even after link is clicked (ie. applet is not stopped immediately) and seem to be able to run javascript on page also. At least using an applet here is the easiest way to reproduce the situation. (And I understand that we are bending wicket a lot here :) - but compared to what we had earlier wicket+ajax is very elegant and simple) anyways, i am attaching the patch, let me know if it works for you and we can take it from here The patch mostly works; however, there seems to be a small window where two threads (one from click and other one from ajax) can be executing at DefaultRequestTargetResolverStrategy which still results in page expired. My test application is available at: http://download.syncrontech.com/public/wicket-ajax-race.zip How to test: - load ExpireTestPage1 - click on page 2 link - click on to page 1. Without your Igor's patch, you'll get page expired almost always With Igor's patch, it requires some rather mad and rapid clicking of links to get the requests generated so that error still occurs. But it is still there. Ari S. - Original Message - On 5/23/06, Igor Vaynberg [EMAIL PROTECTED] wrote: i got up extra early to take care of this, so by the end of the day -igor On 5/23/06, Ari Suutari [EMAIL PROTECTED] wrote: This is so great ! TIA, Ari S. - Original Message - From: Johan Compagner [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Tuesday, May 23, 2006 11:37 AM Subject: Re: [Wicket-user] pagemap problem with late arriving ajax request We will fix it in the 1.2 branch. I am currently a bit full of work for at least 2 days. So i can only look at it by the end of this week. johan On 5/23/06, Ari Suutari [EMAIL PROTECTED] wrote: Hi, best thing todo currently is to have that -1 check in the pagemap and make your own version of wicket 1.2 We already decided to put my modified version to production and if there are no side effects from my change we can keep it for some time. in trunk (2.0) this is already fixed in the default setting because we refactored the pagemap and have now a different default pagemap and httpsessionstore. You mean that if I would use 2.0 from trunk the problem would go away ? If so, would it be possible to back-port the new pagemap to 1.2 branch ? Not as default, but something that I could turn on from application settings ? Another point: when 1.2 is released, someone else might also hit this problem so it might be necessary to implement some kind of fix anyway (at least for us, some pages were almost unusable because of this as other pages worked quite ok - it seems that YMMV). Ari S. On 5/23/06, Ari Suutari [EMAIL PROTECTED] wrote: Hi, It is very important for us to get this fixed, preferably for 1.2. If any wicket committer is willing to help us, we will pay for the work (please contact me directly by e-mail for this). Ari S. - Original Message - From: Igor Vaynberg [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Monday, May 22, 2006 6:21 PM Subject: Re: [Wicket-user] pagemap problem with late arriving ajax request problem is, not every ajax behavior uses version -1. i guess we need to have the ability to tag a request as process-only-if-page-is-active -Igor On 5/22/06, Ari Suutari [EMAIL PROTECTED] wrote: If I modify the PageMap.java like this: final Page get(final int id, int versionNumber) { final IPageMapEntry entry = (IPageMapEntry)session.getAttribute(attributeForId(id)); if (entry != null) { if (versionNumber == -1) { Access a = peekAccess(); if (a.getId() != id) return null; } So this kludgery piece of the code checks that if request is coming from ajax (ie. versionNumber == -1
Re: [Wicket-user] pagemap problem with late arriving ajax request
Hi, It is very important for us to get this fixed, preferably for 1.2. If any wicket committer is willing to help us, we will pay for the work (please contact me directly by e-mail for this). Ari S. - Original Message - From: Igor Vaynberg [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Monday, May 22, 2006 6:21 PM Subject: Re: [Wicket-user] pagemap problem with late arriving ajax request problem is, not every ajax behavior uses version -1. i guess we need to have the ability to tag a request as process-only-if-page-is-active -Igor On 5/22/06, Ari Suutari [EMAIL PROTECTED] wrote: If I modify the PageMap.java like this: final Page get(final int id, int versionNumber) { final IPageMapEntry entry = (IPageMapEntry)session.getAttribute(attributeForId(id)); if (entry != null) { if (versionNumber == -1) { Access a = peekAccess(); if (a.getId() != id) return null; } So this kludgery piece of the code checks that if request is coming from ajax (ie. versionNumber == -1) and the topmost page is not the one being requested - return null. After adding this it looks like I cannot reproduce the problem any more. Ari S. - Original Message - From: Johan Compagner [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Monday, May 22, 2006 2:37 PM Subject: Re: [Wicket-user] pagemap problem with late arriving ajax request So what request comes first? The ajax request should always do -1 (so latest release) So if the request from the new page did come first then the ajax request shouild work on that new page. If the ajax request did come a bit earlier then there shouldn't be a problem at all because the last reqest will be the normal link click for a new page. johan On 5/22/06, Ari Suutari [EMAIL PROTECTED] wrote: I cannot figure out any workaround myself. UnversionedBehaviorListener seems to use -1 as page version number, would it make any sense to try to alter PageMap so that if version is -1 the page stack is not cleared ? Ari S. - Original Message - From: Matej Knopp [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Monday, May 22, 2006 11:44 AM Subject: Re: [Wicket-user] pagemap problem with late arriving ajax request I guess this is because in 1.2 pagemap behaves like stack. Johan? -Matej Ari Suutari wrote: Hi, I'm having a problem with wicket's ajax stuff where an ajax request fired by previous page hits the web server after user has clicked a link which has already transferred him to next page. This might be a problem in my application, but I'm seeking for ideas to solve this. From web server's access log: First there are some normal ajax requests arriving from browser: 192.168.5.102 - - [22/May/2006:07:46:43 +] GET /wicket?wicket:interface=:0:uiPanel:viewPanel:normalView:panels:0:panel:listTableSpan:-1:IUnversionedBehaviorListenerwicket:behaviorId=0random= 0.35930677427195573 HTTP/1.1 200 824 192.168.5.102 - - [22/May/2006:07:46:43 +] GET /wicket?wicket:interface=:0:uiPanel:viewPanel:normalView:panels:0:panel:listTableSpan:-1:IUnversionedBehaviorListenerwicket:behaviorId=0random= 0.11935459751117722 HTTP/1.1 200 824 Here, user clicks a link which transfers application to help page, it is displayed ok. 192.168.5.102 - - [22/May/2006:07:46:43 +] GET /wicket?wicket:interface=:0:uiPanel:topPanel:showHelp:34:ILinkListener HTTP/1.1 302 - 192.168.5.102 - - [22/May/2006:07:46:43 +] GET /wicket?wicket:interface=:34:: HTTP/1.1 200 3191 Now, for some reason a ajax request arrives from previous page, which causes to pagemap stack to be popped so the page user's browser is on is removed from page map. 192.168.5.102 - - [22/May/2006:07:46:43 +] GET /wicket?wicket:interface=:0:uiPanel:viewPanel:normalView:panels:0:panel:listTableSpan:-1:IUnversionedBehaviorListenerwicket:behaviorId=0random= 0.2873453536331084 HTTP/1.1 200 824 Now, user presses a link on the page but gets 'page expired' message, because the page is no longer in pagemap. 192.168.5.102 - - [22/May/2006:07:46:44 +] GET /wicket?wicket:interface=:34:back::ILinkListener HTTP/1.1 404 651 Any ideas what I could do to fix this ? The ajax requests are fired asynchronously by a system which is very similar to AjaxSelfUpdatingTimerBehaviour stuff. Ari S. --- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https
Re: [Wicket-user] pagemap problem with late arriving ajax request
Hi, best thing todo currently is to have that -1 check in the pagemap and make your own version of wicket 1.2 We already decided to put my modified version to production and if there are no side effects from my change we can keep it for some time. in trunk (2.0) this is already fixed in the default setting because we refactored the pagemap and have now a different default pagemap and httpsessionstore. You mean that if I would use 2.0 from trunk the problem would go away ? If so, would it be possible to back-port the new pagemap to 1.2 branch ? Not as default, but something that I could turn on from application settings ? Another point: when 1.2 is released, someone else might also hit this problem so it might be necessary to implement some kind of fix anyway (at least for us, some pages were almost unusable because of this as other pages worked quite ok - it seems that YMMV). Ari S. On 5/23/06, Ari Suutari [EMAIL PROTECTED] wrote: Hi, It is very important for us to get this fixed, preferably for 1.2. If any wicket committer is willing to help us, we will pay for the work (please contact me directly by e-mail for this). Ari S. - Original Message - From: Igor Vaynberg [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Monday, May 22, 2006 6:21 PM Subject: Re: [Wicket-user] pagemap problem with late arriving ajax request problem is, not every ajax behavior uses version -1. i guess we need to have the ability to tag a request as process-only-if-page-is-active -Igor On 5/22/06, Ari Suutari [EMAIL PROTECTED] wrote: If I modify the PageMap.java like this: final Page get(final int id, int versionNumber) { final IPageMapEntry entry = (IPageMapEntry)session.getAttribute(attributeForId(id)); if (entry != null) { if (versionNumber == -1) { Access a = peekAccess(); if (a.getId() != id) return null; } So this kludgery piece of the code checks that if request is coming from ajax (ie. versionNumber == -1) and the topmost page is not the one being requested - return null. After adding this it looks like I cannot reproduce the problem any more. Ari S. - Original Message - From: Johan Compagner [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Monday, May 22, 2006 2:37 PM Subject: Re: [Wicket-user] pagemap problem with late arriving ajax request So what request comes first? The ajax request should always do -1 (so latest release) So if the request from the new page did come first then the ajax request shouild work on that new page. If the ajax request did come a bit earlier then there shouldn't be a problem at all because the last reqest will be the normal link click for a new page. johan On 5/22/06, Ari Suutari [EMAIL PROTECTED] wrote: I cannot figure out any workaround myself. UnversionedBehaviorListener seems to use -1 as page version number, would it make any sense to try to alter PageMap so that if version is -1 the page stack is not cleared ? Ari S. - Original Message - From: Matej Knopp [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Monday, May 22, 2006 11:44 AM Subject: Re: [Wicket-user] pagemap problem with late arriving ajax request I guess this is because in 1.2 pagemap behaves like stack. Johan? -Matej Ari Suutari wrote: Hi, I'm having a problem with wicket's ajax stuff where an ajax request fired by previous page hits the web server after user has clicked a link which has already transferred him to next page. This might be a problem in my application, but I'm seeking for ideas to solve this. From web server's access log: First there are some normal ajax requests arriving from browser: 192.168.5.102 - - [22/May/2006:07:46:43 +] GET /wicket?wicket:interface=:0:uiPanel:viewPanel:normalView:panels:0:panel:listTableSpan:-1:IUnversionedBehaviorListenerwicket:behaviorId=0random= 0.35930677427195573 HTTP/1.1 200 824 192.168.5.102 - - [22/May/2006:07:46:43 +] GET /wicket?wicket:interface=:0:uiPanel:viewPanel:normalView:panels:0:panel:listTableSpan:-1:IUnversionedBehaviorListenerwicket:behaviorId=0random= 0.11935459751117722 HTTP/1.1 200 824 Here, user clicks a link which transfers application to help page, it is displayed ok. 192.168.5.102 - - [22/May/2006:07:46:43 +] GET /wicket?wicket:interface=:0:uiPanel:topPanel:showHelp:34:ILinkListener HTTP/1.1 302 - 192.168.5.102 - - [22/May/2006:07:46:43 +] GET /wicket?wicket:interface=:34:: HTTP/1.1 200 3191 Now, for some reason a ajax request arrives from previous page, which causes to pagemap stack to be popped so the page user's browser is on is removed from page map. 192.168.5.102 - - [22/May/2006:07:46:43 +] GET /wicket
Re: [Wicket-user] pagemap problem with late arriving ajax request
This is so great ! TIA, Ari S. - Original Message - From: Johan Compagner [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Tuesday, May 23, 2006 11:37 AM Subject: Re: [Wicket-user] pagemap problem with late arriving ajax request We will fix it in the 1.2 branch. I am currently a bit full of work for at least 2 days. So i can only look at it by the end of this week. johan On 5/23/06, Ari Suutari [EMAIL PROTECTED] wrote: Hi, best thing todo currently is to have that -1 check in the pagemap and make your own version of wicket 1.2 We already decided to put my modified version to production and if there are no side effects from my change we can keep it for some time. in trunk (2.0) this is already fixed in the default setting because we refactored the pagemap and have now a different default pagemap and httpsessionstore. You mean that if I would use 2.0 from trunk the problem would go away ? If so, would it be possible to back-port the new pagemap to 1.2 branch ? Not as default, but something that I could turn on from application settings ? Another point: when 1.2 is released, someone else might also hit this problem so it might be necessary to implement some kind of fix anyway (at least for us, some pages were almost unusable because of this as other pages worked quite ok - it seems that YMMV). Ari S. On 5/23/06, Ari Suutari [EMAIL PROTECTED] wrote: Hi, It is very important for us to get this fixed, preferably for 1.2. If any wicket committer is willing to help us, we will pay for the work (please contact me directly by e-mail for this). Ari S. - Original Message - From: Igor Vaynberg [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Monday, May 22, 2006 6:21 PM Subject: Re: [Wicket-user] pagemap problem with late arriving ajax request problem is, not every ajax behavior uses version -1. i guess we need to have the ability to tag a request as process-only-if-page-is-active -Igor On 5/22/06, Ari Suutari [EMAIL PROTECTED] wrote: If I modify the PageMap.java like this: final Page get(final int id, int versionNumber) { final IPageMapEntry entry = (IPageMapEntry)session.getAttribute(attributeForId(id)); if (entry != null) { if (versionNumber == -1) { Access a = peekAccess(); if (a.getId() != id) return null; } So this kludgery piece of the code checks that if request is coming from ajax (ie. versionNumber == -1) and the topmost page is not the one being requested - return null. After adding this it looks like I cannot reproduce the problem any more. Ari S. - Original Message - From: Johan Compagner [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Monday, May 22, 2006 2:37 PM Subject: Re: [Wicket-user] pagemap problem with late arriving ajax request So what request comes first? The ajax request should always do -1 (so latest release) So if the request from the new page did come first then the ajax request shouild work on that new page. If the ajax request did come a bit earlier then there shouldn't be a problem at all because the last reqest will be the normal link click for a new page. johan On 5/22/06, Ari Suutari [EMAIL PROTECTED] wrote: I cannot figure out any workaround myself. UnversionedBehaviorListener seems to use -1 as page version number, would it make any sense to try to alter PageMap so that if version is -1 the page stack is not cleared ? Ari S. - Original Message - From: Matej Knopp [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Monday, May 22, 2006 11:44 AM Subject: Re: [Wicket-user] pagemap problem with late arriving ajax request I guess this is because in 1.2 pagemap behaves like stack. Johan? -Matej Ari Suutari wrote: Hi, I'm having a problem with wicket's ajax stuff where an ajax request fired by previous page hits the web server after user has clicked a link which has already transferred him to next page. This might be a problem in my application, but I'm seeking for ideas to solve this. From web server's access log: First there are some normal ajax requests arriving from browser: 192.168.5.102 - - [22/May/2006:07:46:43 +] GET /wicket?wicket:interface=:0:uiPanel:viewPanel:normalView:panels:0:panel:listTableSpan:-1:IUnversionedBehaviorListenerwicket:behaviorId=0random= 0.35930677427195573 HTTP/1.1 200 824 192.168.5.102 - - [22/May/2006:07:46:43 +] GET /wicket?wicket:interface=:0:uiPanel:viewPanel:normalView:panels:0:panel:listTableSpan:-1:IUnversionedBehaviorListenerwicket:behaviorId=0random= 0.11935459751117722 HTTP/1.1 200 824 Here, user
[Wicket-user] pagemap problem with late arriving ajax request
Hi, I'm having a problem with wicket's ajax stuff where an ajax request fired by previous page hits the web server after user has clicked a link which has already transferred him to next page. This might be a problem in my application, but I'm seeking for ideas to solve this. From web server's access log: First there are some normal ajax requests arriving from browser: 192.168.5.102 - - [22/May/2006:07:46:43 +] GET /wicket?wicket:interface=:0:uiPanel:viewPanel:normalView:panels:0:panel:listTableSpan:-1:IUnversionedBehaviorListenerwicket:behaviorId=0random=0.35930677427195573 HTTP/1.1 200 824 192.168.5.102 - - [22/May/2006:07:46:43 +] GET /wicket?wicket:interface=:0:uiPanel:viewPanel:normalView:panels:0:panel:listTableSpan:-1:IUnversionedBehaviorListenerwicket:behaviorId=0random=0.11935459751117722 HTTP/1.1 200 824 Here, user clicks a link which transfers application to help page, it is displayed ok. 192.168.5.102 - - [22/May/2006:07:46:43 +] GET /wicket?wicket:interface=:0:uiPanel:topPanel:showHelp:34:ILinkListener HTTP/1.1 302 - 192.168.5.102 - - [22/May/2006:07:46:43 +] GET /wicket?wicket:interface=:34:: HTTP/1.1 200 3191 Now, for some reason a ajax request arrives from previous page, which causes to pagemap stack to be popped so the page user's browser is on is removed from page map. 192.168.5.102 - - [22/May/2006:07:46:43 +] GET /wicket?wicket:interface=:0:uiPanel:viewPanel:normalView:panels:0:panel:listTableSpan:-1:IUnversionedBehaviorListenerwicket:behaviorId=0random=0.2873453536331084 HTTP/1.1 200 824 Now, user presses a link on the page but gets 'page expired' message, because the page is no longer in pagemap. 192.168.5.102 - - [22/May/2006:07:46:44 +] GET /wicket?wicket:interface=:34:back::ILinkListener HTTP/1.1 404 651 Any ideas what I could do to fix this ? The ajax requests are fired asynchronously by a system which is very similar to AjaxSelfUpdatingTimerBehaviour stuff. Ari S. --- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] pagemap problem with late arriving ajax request
I cannot figure out any workaround myself. UnversionedBehaviorListener seems to use -1 as page version number, would it make any sense to try to alter PageMap so that if version is -1 the page stack is not cleared ? Ari S. - Original Message - From: Matej Knopp [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Monday, May 22, 2006 11:44 AM Subject: Re: [Wicket-user] pagemap problem with late arriving ajax request I guess this is because in 1.2 pagemap behaves like stack. Johan? -Matej Ari Suutari wrote: Hi, I'm having a problem with wicket's ajax stuff where an ajax request fired by previous page hits the web server after user has clicked a link which has already transferred him to next page. This might be a problem in my application, but I'm seeking for ideas to solve this. From web server's access log: First there are some normal ajax requests arriving from browser: 192.168.5.102 - - [22/May/2006:07:46:43 +] GET /wicket?wicket:interface=:0:uiPanel:viewPanel:normalView:panels:0:panel:listTableSpan:-1:IUnversionedBehaviorListenerwicket:behaviorId=0random=0.35930677427195573 HTTP/1.1 200 824 192.168.5.102 - - [22/May/2006:07:46:43 +] GET /wicket?wicket:interface=:0:uiPanel:viewPanel:normalView:panels:0:panel:listTableSpan:-1:IUnversionedBehaviorListenerwicket:behaviorId=0random=0.11935459751117722 HTTP/1.1 200 824 Here, user clicks a link which transfers application to help page, it is displayed ok. 192.168.5.102 - - [22/May/2006:07:46:43 +] GET /wicket?wicket:interface=:0:uiPanel:topPanel:showHelp:34:ILinkListener HTTP/1.1 302 - 192.168.5.102 - - [22/May/2006:07:46:43 +] GET /wicket?wicket:interface=:34:: HTTP/1.1 200 3191 Now, for some reason a ajax request arrives from previous page, which causes to pagemap stack to be popped so the page user's browser is on is removed from page map. 192.168.5.102 - - [22/May/2006:07:46:43 +] GET /wicket?wicket:interface=:0:uiPanel:viewPanel:normalView:panels:0:panel:listTableSpan:-1:IUnversionedBehaviorListenerwicket:behaviorId=0random=0.2873453536331084 HTTP/1.1 200 824 Now, user presses a link on the page but gets 'page expired' message, because the page is no longer in pagemap. 192.168.5.102 - - [22/May/2006:07:46:44 +] GET /wicket?wicket:interface=:34:back::ILinkListener HTTP/1.1 404 651 Any ideas what I could do to fix this ? The ajax requests are fired asynchronously by a system which is very similar to AjaxSelfUpdatingTimerBehaviour stuff. Ari S. --- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] pagemap problem with late arriving ajax request
The access log in my first e-mail was in chronological order, ie. user clicks a link on first page (this page has also ajax stuff active) and the java code in onClick transfers to new page by calling setResponsePage(new HelpPage()). But after the link click there still arrives one late ajax call from first page which messes up pagemap ie. wicket thinks that user has pressed back button. This is very timing-related and it isn't very easy to reproduce, but somehow our end-users seem to be able to produce it a lot and are very unhappy. I guess you'll have to click the link about same time as ajax timer decides to fire a request. Ari S. - Original Message - From: Johan Compagner [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Monday, May 22, 2006 2:37 PM Subject: Re: [Wicket-user] pagemap problem with late arriving ajax request So what request comes first? The ajax request should always do -1 (so latest release) So if the request from the new page did come first then the ajax request shouild work on that new page. If the ajax request did come a bit earlier then there shouldn't be a problem at all because the last reqest will be the normal link click for a new page. johan On 5/22/06, Ari Suutari [EMAIL PROTECTED] wrote: I cannot figure out any workaround myself. UnversionedBehaviorListener seems to use -1 as page version number, would it make any sense to try to alter PageMap so that if version is -1 the page stack is not cleared ? Ari S. - Original Message - From: Matej Knopp [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Monday, May 22, 2006 11:44 AM Subject: Re: [Wicket-user] pagemap problem with late arriving ajax request I guess this is because in 1.2 pagemap behaves like stack. Johan? -Matej Ari Suutari wrote: Hi, I'm having a problem with wicket's ajax stuff where an ajax request fired by previous page hits the web server after user has clicked a link which has already transferred him to next page. This might be a problem in my application, but I'm seeking for ideas to solve this. From web server's access log: First there are some normal ajax requests arriving from browser: 192.168.5.102 - - [22/May/2006:07:46:43 +] GET /wicket?wicket:interface=:0:uiPanel:viewPanel:normalView:panels:0:panel:listTableSpan:-1:IUnversionedBehaviorListenerwicket:behaviorId=0random= 0.35930677427195573 HTTP/1.1 200 824 192.168.5.102 - - [22/May/2006:07:46:43 +] GET /wicket?wicket:interface=:0:uiPanel:viewPanel:normalView:panels:0:panel:listTableSpan:-1:IUnversionedBehaviorListenerwicket:behaviorId=0random= 0.11935459751117722 HTTP/1.1 200 824 Here, user clicks a link which transfers application to help page, it is displayed ok. 192.168.5.102 - - [22/May/2006:07:46:43 +] GET /wicket?wicket:interface=:0:uiPanel:topPanel:showHelp:34:ILinkListener HTTP/1.1 302 - 192.168.5.102 - - [22/May/2006:07:46:43 +] GET /wicket?wicket:interface=:34:: HTTP/1.1 200 3191 Now, for some reason a ajax request arrives from previous page, which causes to pagemap stack to be popped so the page user's browser is on is removed from page map. 192.168.5.102 - - [22/May/2006:07:46:43 +] GET /wicket?wicket:interface=:0:uiPanel:viewPanel:normalView:panels:0:panel:listTableSpan:-1:IUnversionedBehaviorListenerwicket:behaviorId=0random= 0.2873453536331084 HTTP/1.1 200 824 Now, user presses a link on the page but gets 'page expired' message, because the page is no longer in pagemap. 192.168.5.102 - - [22/May/2006:07:46:44 +] GET /wicket?wicket:interface=:34:back::ILinkListener HTTP/1.1 404 651 Any ideas what I could do to fix this ? The ajax requests are fired asynchronously by a system which is very similar to AjaxSelfUpdatingTimerBehaviour stuff. Ari S. --- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- Using Tomcat but need to do more? Need to support web services
Re: [Wicket-user] pagemap problem with late arriving ajax request
If I modify the PageMap.java like this: final Page get(final int id, int versionNumber) { final IPageMapEntry entry = (IPageMapEntry)session.getAttribute(attributeForId(id)); if (entry != null) { if (versionNumber == -1) { Access a = peekAccess(); if (a.getId() != id) return null; } So this kludgery piece of the code checks that if request is coming from ajax (ie. versionNumber == -1) and the topmost page is not the one being requested - return null. After adding this it looks like I cannot reproduce the problem any more. Ari S. - Original Message - From: Johan Compagner [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Monday, May 22, 2006 2:37 PM Subject: Re: [Wicket-user] pagemap problem with late arriving ajax request So what request comes first? The ajax request should always do -1 (so latest release) So if the request from the new page did come first then the ajax request shouild work on that new page. If the ajax request did come a bit earlier then there shouldn't be a problem at all because the last reqest will be the normal link click for a new page. johan On 5/22/06, Ari Suutari [EMAIL PROTECTED] wrote: I cannot figure out any workaround myself. UnversionedBehaviorListener seems to use -1 as page version number, would it make any sense to try to alter PageMap so that if version is -1 the page stack is not cleared ? Ari S. - Original Message - From: Matej Knopp [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Monday, May 22, 2006 11:44 AM Subject: Re: [Wicket-user] pagemap problem with late arriving ajax request I guess this is because in 1.2 pagemap behaves like stack. Johan? -Matej Ari Suutari wrote: Hi, I'm having a problem with wicket's ajax stuff where an ajax request fired by previous page hits the web server after user has clicked a link which has already transferred him to next page. This might be a problem in my application, but I'm seeking for ideas to solve this. From web server's access log: First there are some normal ajax requests arriving from browser: 192.168.5.102 - - [22/May/2006:07:46:43 +] GET /wicket?wicket:interface=:0:uiPanel:viewPanel:normalView:panels:0:panel:listTableSpan:-1:IUnversionedBehaviorListenerwicket:behaviorId=0random= 0.35930677427195573 HTTP/1.1 200 824 192.168.5.102 - - [22/May/2006:07:46:43 +] GET /wicket?wicket:interface=:0:uiPanel:viewPanel:normalView:panels:0:panel:listTableSpan:-1:IUnversionedBehaviorListenerwicket:behaviorId=0random= 0.11935459751117722 HTTP/1.1 200 824 Here, user clicks a link which transfers application to help page, it is displayed ok. 192.168.5.102 - - [22/May/2006:07:46:43 +] GET /wicket?wicket:interface=:0:uiPanel:topPanel:showHelp:34:ILinkListener HTTP/1.1 302 - 192.168.5.102 - - [22/May/2006:07:46:43 +] GET /wicket?wicket:interface=:34:: HTTP/1.1 200 3191 Now, for some reason a ajax request arrives from previous page, which causes to pagemap stack to be popped so the page user's browser is on is removed from page map. 192.168.5.102 - - [22/May/2006:07:46:43 +] GET /wicket?wicket:interface=:0:uiPanel:viewPanel:normalView:panels:0:panel:listTableSpan:-1:IUnversionedBehaviorListenerwicket:behaviorId=0random= 0.2873453536331084 HTTP/1.1 200 824 Now, user presses a link on the page but gets 'page expired' message, because the page is no longer in pagemap. 192.168.5.102 - - [22/May/2006:07:46:44 +] GET /wicket?wicket:interface=:34:back::ILinkListener HTTP/1.1 404 651 Any ideas what I could do to fix this ? The ajax requests are fired asynchronously by a system which is very similar to AjaxSelfUpdatingTimerBehaviour stuff. Ari S. --- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly
[Wicket-user] Problems with AjaxSelfUpdatingTimerBehavior and buttons on same page
Hi, We are experiencing odd behaviour when a page has - a region, which is constantly updated by AjaxSelfUpdatingTimerBehavior (say each 3 seconds) - form with buttons When the page is initially loaded, timer starts updating values as expected. When a button on form is pressed, page is versioned to version 1. When timer updates it's region next time, it seems to request page version 0, which causes following stuff being output to log file: [http-80-Processor25] DEBUG Getting page [path = 0:ajaxSpan, versionNumber = 0] [http-80-Processor25] DEBUG Getting page [path = 0:ajaxSpan, versionNumber = 0] [http-80-Processor25] DEBUG UNDO: rollback [Page class = syncrontech.examples.testing.AjaxTestPage, id = 0] to version 1 [http-80-Processor25] DEBUG UNDO: rollback [Page class = syncrontech.examples.testing.AjaxTestPage, id = 0] to version 1 The timer and ajax continues to function, but when user presses a button (or link) it refers to page version 1 (as expected) but as this version was just discarded from page map user gets a 'page expired' message. No matter what version the page has reached, the ajax call seems to reset it to zero. I have a simple example code of the case, if someone needs it. Ari S. --- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
[Wicket-user] wicket 1.2 rc3: SubmitLink.getForm endless loop causes StackOverflowError
Hi, After updating from wicket 1.2 rc2 to wicket 1.2 rc3, we started getting StackOverflowErrors like this: java.lang.StackOverflowError wicket.markup.html.form.SubmitLink.getForm(SubmitLink.java:172) wicket.markup.html.form.SubmitLink.getForm(SubmitLink.java:172) wicket.markup.html.form.SubmitLink.getForm(SubmitLink.java:172) wicket.markup.html.form.SubmitLink.getForm(SubmitLink.java:172) wicket.markup.html.form.SubmitLink.getForm(SubmitLink.java:172) wicket.markup.html.form.SubmitLink.getForm(SubmitLink.java:172) wicket.markup.html.form.SubmitLink.getForm(SubmitLink.java:172) wicket.markup.html.form.SubmitLink.getForm(SubmitLink.java:172) wicket.markup.html.form.SubmitLink.getForm(SubmitLink.java:172) Ari S. smime.p7s Description: S/MIME cryptographic signature
Re: [Wicket-user] wicket 1.2 rc3: SubmitLink.getForm endless loop causes StackOverflowError
Looks like your problem is right here: /** * @return the Form for which this submit link submits */ public final Form getForm() { if (form == null) { form = getForm(); } return form; } ie. getForm calls getForm recursively :-( Ari S. - Original Message - From: Ari Suutari [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Wednesday, May 03, 2006 10:49 AM Subject: [Wicket-user] wicket 1.2 rc3: SubmitLink.getForm endless loop causes StackOverflowError Hi, After updating from wicket 1.2 rc2 to wicket 1.2 rc3, we started getting StackOverflowErrors like this: java.lang.StackOverflowError wicket.markup.html.form.SubmitLink.getForm(SubmitLink.java:172) wicket.markup.html.form.SubmitLink.getForm(SubmitLink.java:172) wicket.markup.html.form.SubmitLink.getForm(SubmitLink.java:172) wicket.markup.html.form.SubmitLink.getForm(SubmitLink.java:172) wicket.markup.html.form.SubmitLink.getForm(SubmitLink.java:172) wicket.markup.html.form.SubmitLink.getForm(SubmitLink.java:172) wicket.markup.html.form.SubmitLink.getForm(SubmitLink.java:172) wicket.markup.html.form.SubmitLink.getForm(SubmitLink.java:172) wicket.markup.html.form.SubmitLink.getForm(SubmitLink.java:172) Ari S. --- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] wicket 1.2 rc3: SubmitLink.getForm endless loop causes StackOverflowError
Yes, I noticed that myself also. I'll compile from svn. I'm just a little worried by new bugs being introduced at this late in RC phase of release. Ari S. - Original Message - From: Johan Compagner [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Wednesday, May 03, 2006 10:58 AM Subject: Re: [Wicket-user] wicket 1.2 rc3: SubmitLink.getForm endless loop causes StackOverflowError already fixed On 5/3/06, Ari Suutari [EMAIL PROTECTED] wrote: Looks like your problem is right here: /** * @return the Form for which this submit link submits */ public final Form getForm() { if (form == null) { form = getForm(); } return form; } ie. getForm calls getForm recursively :-( Ari S. - Original Message - From: Ari Suutari [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Wednesday, May 03, 2006 10:49 AM Subject: [Wicket-user] wicket 1.2 rc3: SubmitLink.getForm endless loop causes StackOverflowError Hi, After updating from wicket 1.2 rc2 to wicket 1.2 rc3, we started getting StackOverflowErrors like this: java.lang.StackOverflowError wicket.markup.html.form.SubmitLink.getForm(SubmitLink.java:172) wicket.markup.html.form.SubmitLink.getForm(SubmitLink.java:172) wicket.markup.html.form.SubmitLink.getForm(SubmitLink.java:172) wicket.markup.html.form.SubmitLink.getForm(SubmitLink.java:172) wicket.markup.html.form.SubmitLink.getForm(SubmitLink.java:172) wicket.markup.html.form.SubmitLink.getForm(SubmitLink.java:172) wicket.markup.html.form.SubmitLink.getForm(SubmitLink.java:172) wicket.markup.html.form.SubmitLink.getForm(SubmitLink.java:172) wicket.markup.html.form.SubmitLink.getForm(SubmitLink.java:172) Ari S. --- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] DatePickerSettings.setIfFormat no longer works
I spotted this because we have a ConverterFactory which returns DateConverters which have format string different from default (think it as customer requirement). Now, when I create a TextField (., Date.class) it uses converter from ConverterFactory and my custom format string. However, when I create a date picker, it just says new DateConverter instead of getting it from field (would be best, since one can overried getConverter in component) or from ConverterFactory. This results in DatePicker returning string that is unparseable by TextField. I think that the logic in DatePicker (ie. using java format string and DateConverter class) is move to right direction - however the current implementation is incomplete as I described above. This should be quite easy to fix, I think - maybe just replace new DateConverter by target.getConverter() in DatePicker ? Ari S. - Original Message - From: Johan Compagner [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Wednesday, May 03, 2006 12:19 PM Subject: Re: [Wicket-user] DatePickerSettings.setIfFormat no longer works it is very dangerous to do that. The 2 formats MUST be in sync so you should just specify the java format stirng you want to have. You shouldn't set the javascript format to something else (that is not the same as the java format string) or do you have a case where you have the datepicker but the value never get send back to the server?? (which seems odd) johan On 5/3/06, Ari Suutari [EMAIL PROTECTED] wrote: Hi, It looks like DatePickerSettings.setIfFormat no longer works. The value set by it is always overwritten by DatePicker.getInitScript, which calls settings.toScript with format taken from DateConverter. I would like two changes here: - adjust DatePickerSettings.toScript so that it calls setIfFormat only if ifFormat is null, ie. programmer hasn't provided any default. - adjust DatePicker so that it takes the DateConverter from ConverterFactory. Now it just creates an instance of DateConverter, which might have different format than the instance returned by ConverterFactory (which is used by textfields). This can result in situations where date string returned by picker is not parseable by text field. Ari S. --- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] DatePickerSettings.setIfFormat no longer works
Hi, see DatePicker.setDateConverter() method. I noticed this. you can set the dateconverter method on the datepicker that you want to use So if you made youre own. Also set it on the DatePicker itself. Yes, I know, but this is not consistent with the idea of converter factory. i can't use the target.getConverter() because that just returns a IConverter.. You can instead: IConverter ic = getConverter(); Converter c; DateConverter dc; c = (Converter)ic; dc = (DateConverter)c.get(Date.class); Not pretty, but I think it would work. Ari S. On 5/3/06, Ari Suutari [EMAIL PROTECTED] wrote: I spotted this because we have a ConverterFactory which returns DateConverters which have format string different from default (think it as customer requirement). Now, when I create a TextField (., Date.class) it uses converter from ConverterFactory and my custom format string. However, when I create a date picker, it just says new DateConverter instead of getting it from field (would be best, since one can overried getConverter in component) or from ConverterFactory. This results in DatePicker returning string that is unparseable by TextField. I think that the logic in DatePicker (ie. using java format string and DateConverter class) is move to right direction - however the current implementation is incomplete as I described above. This should be quite easy to fix, I think - maybe just replace new DateConverter by target.getConverter() in DatePicker ? Ari S. - Original Message - From: Johan Compagner [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Wednesday, May 03, 2006 12:19 PM Subject: Re: [Wicket-user] DatePickerSettings.setIfFormat no longer works it is very dangerous to do that. The 2 formats MUST be in sync so you should just specify the java format stirng you want to have. You shouldn't set the javascript format to something else (that is not the same as the java format string) or do you have a case where you have the datepicker but the value never get send back to the server?? (which seems odd) johan On 5/3/06, Ari Suutari [EMAIL PROTECTED] wrote: Hi, It looks like DatePickerSettings.setIfFormat no longer works. The value set by it is always overwritten by DatePicker.getInitScript, which calls settings.toScript with format taken from DateConverter. I would like two changes here: - adjust DatePickerSettings.toScript so that it calls setIfFormat only if ifFormat is null, ie. programmer hasn't provided any default. - adjust DatePicker so that it takes the DateConverter from ConverterFactory. Now it just creates an instance of DateConverter, which might have different format than the instance returned by ConverterFactory (which is used by textfields). This can result in situations where date string returned by picker is not parseable by text field. Ari S. --- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] DatePickerSettings.setIfFormat no longer works
Hi, i had that before but then we assume a lot of stuff (at least 2 instanceof checks) but changed it back to this: Thanks ! with a big TODO in it that this should be fixed/improved in 2.0 Indeed :-) Ari S. On 5/3/06, Ari Suutari [EMAIL PROTECTED] wrote: Hi, see DatePicker.setDateConverter() method. I noticed this. you can set the dateconverter method on the datepicker that you want to use So if you made youre own. Also set it on the DatePicker itself. Yes, I know, but this is not consistent with the idea of converter factory. i can't use the target.getConverter() because that just returns a IConverter.. You can instead: IConverter ic = getConverter(); Converter c; DateConverter dc; c = (Converter)ic; dc = (DateConverter)c.get(Date.class); Not pretty, but I think it would work. Ari S. On 5/3/06, Ari Suutari [EMAIL PROTECTED] wrote: I spotted this because we have a ConverterFactory which returns DateConverters which have format string different from default (think it as customer requirement). Now, when I create a TextField (., Date.class) it uses converter from ConverterFactory and my custom format string. However, when I create a date picker, it just says new DateConverter instead of getting it from field (would be best, since one can overried getConverter in component) or from ConverterFactory. This results in DatePicker returning string that is unparseable by TextField. I think that the logic in DatePicker (ie. using java format string and DateConverter class) is move to right direction - however the current implementation is incomplete as I described above. This should be quite easy to fix, I think - maybe just replace new DateConverter by target.getConverter() in DatePicker ? Ari S. - Original Message - From: Johan Compagner [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Wednesday, May 03, 2006 12:19 PM Subject: Re: [Wicket-user] DatePickerSettings.setIfFormat no longer works it is very dangerous to do that. The 2 formats MUST be in sync so you should just specify the java format stirng you want to have. You shouldn't set the javascript format to something else (that is not the same as the java format string) or do you have a case where you have the datepicker but the value never get send back to the server?? (which seems odd) johan On 5/3/06, Ari Suutari [EMAIL PROTECTED] wrote: Hi, It looks like DatePickerSettings.setIfFormat no longer works. The value set by it is always overwritten by DatePicker.getInitScript, which calls settings.toScript with format taken from DateConverter. I would like two changes here: - adjust DatePickerSettings.toScript so that it calls setIfFormat only if ifFormat is null, ie. programmer hasn't provided any default. - adjust DatePicker so that it takes the DateConverter from ConverterFactory. Now it just creates an instance of DateConverter, which might have different format than the instance returned by ConverterFactory (which is used by textfields). This can result in situations where date string returned by picker is not parseable by text field. Ari S. --- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly
Re: [Wicket-user] wicket hangs in Session.getPage (causes tomcat to run out of threads !)
Great ! I'll wait for next rc then. Ari S. - Original Message - From: Igor Vaynberg [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Wednesday, April 26, 2006 8:55 AM Subject: Re: [Wicket-user] wicket hangs in Session.getPage (causes tomcat to run out of threads !) should already be fixed in trunk. -Igor On 4/25/06, Ari Suutari [EMAIL PROTECTED] wrote: Hi, We have been preparing one part of our wicket application to production use. In testing there have been multple cases where whole application stops working and I think that we have now isolated to reason for this. One of my collegues noticed that there is a message on tomcat's log file: Apr 22, 2006 9:00:01 PM org.apache.tomcat.util.threads.ThreadPool logFull SEVERE: All threads (150) are currently busy, waiting. Increase maxThreads (150) or check the servlet status As 150 should be more than enough for current environment, he did some further research on issue, which shows that problem is related to case where end-user clicks a link on page before the page has completely rendered (users just do it and I think that it cannot be changed :-). When a link is clicked on page which hasn't fully rendered yet, following exception occurs: java.lang.NullPointerException at wicket.PageMap.removeEntry(PageMap.java:335) at wicket.PageMap.access(PageMap.java:628) at wicket.PageMap.get(PageMap.java:459) at wicket.Session.getPage(Session.java:395) at wicket.request.compound.DefaultRequestTargetResolverStrategy.resolveRenderedPage (DefaultRequestTargetResolverStrategy.java:149) at wicket.request.compound.DefaultRequestTargetResolverStrategy.resolve( DefaultRequestTargetResolverStrategy.java:92) at wicket.request.compound.AbstractCompoundRequestCycleProcessor.resolve( AbstractCompoundRequestCycleProcessor.java:48) at wicket.RequestCycle.step(RequestCycle.java:942) at wicket.RequestCycle.steps(RequestCycle.java:1034) at wicket.RequestCycle.request(RequestCycle.java:453) at wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:215) at javax.servlet.http.HttpServlet.service(HttpServlet.java:689) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) This wouldn't be a problem otherwise, but it seems that wicket does not recover from this situation, as the thread in tomcat is left waiting for like this: Name: http-80-Processor22 State: WAITING on [EMAIL PROTECTED] Total blocked: 7 Total waited: 5 Stack trace: java.lang.Object.wait(Native Method) java.lang.Object.wait(Object.java:474) wicket.Session.getPage(Session.java:386) wicket.request.compound.DefaultRequestTargetResolverStrategy.resolveRenderedPage (DefaultRequestTargetResolverStrategy.java:149) wicket.request.compound.DefaultRequestTargetResolverStrategy.resolve( DefaultRequestTargetResolverStrategy.java:92) wicket.request.compound.AbstractCompoundRequestCycleProcessor.resolve( AbstractCompoundRequestCycleProcessor.java:48) wicket.RequestCycle.step(RequestCycle.java:942) wicket.RequestCycle.steps(RequestCycle.java:1034) wicket.RequestCycle.request(RequestCycle.java:453) wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:215) javax.servlet.http.HttpServlet.service(HttpServlet.java:689) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) The thread just sits there forever so tomcat creates a new thread to serve next thread and if the user does similar things again we run out of threads. This is occurring on wicket 1.2 rc2 and it is rather serious issue for us since I cannot figure any workaround for this. Ari S. --- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] Question about localizing strings with .properties files
Hi, But java ResourceBundles don't know about styles and variations as fas as I know. I know only about locales. True. I meant that when ResourceBundles, if you have msgs_fi.properties and msgs.properties the system falls back to msgs.properties if requested message is not found in msgs_fi.properties. Ari S. Juergen On 4/26/06, Ari Suutari [EMAIL PROTECTED] wrote: Hi, What i (and presumably Ari) wanted tried to achieve, is to have some style-specific bundle wich only contains some keys with style-specific values and thus not having to maintain a bunch of property files if we add another key, eventhough it's value would be the same across all styles. But since this behaviour is *not* how java usually deals with .properties, i'm not sure if this is a bug. I think that this is the way how java handles ResourceBundles: lookup falls back to parent bundle if key is not found. Because of this I assumed that wicket's .properties would work same way. Ari S. --- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] Question about localizing strings with .properties files
Hi, What i (and presumably Ari) wanted tried to achieve, is to have some style-specific bundle wich only contains some keys with style-specific values and thus not having to maintain a bunch of property files if we add another key, eventhough it's value would be the same across all styles. But since this behaviour is *not* how java usually deals with .properties, i'm not sure if this is a bug. I think that this is the way how java handles ResourceBundles: lookup falls back to parent bundle if key is not found. Because of this I assumed that wicket's .properties would work same way. Ari S. --- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
[Wicket-user] wicket hangs in Session.getPage (causes tomcat to run out of threads !)
Hi, We have been preparing one part of our wicket application to production use. In testing there have been multple cases where whole application stops working and I think that we have now isolated to reason for this. One of my collegues noticed that there is a message on tomcat's log file: Apr 22, 2006 9:00:01 PM org.apache.tomcat.util.threads.ThreadPool logFull SEVERE: All threads (150) are currently busy, waiting. Increase maxThreads (150) or check the servlet status As 150 should be more than enough for current environment, he did some further research on issue, which shows that problem is related to case where end-user clicks a link on page before the page has completely rendered (users just do it and I think that it cannot be changed :-). When a link is clicked on page which hasn't fully rendered yet, following exception occurs: java.lang.NullPointerException at wicket.PageMap.removeEntry(PageMap.java:335) at wicket.PageMap.access(PageMap.java:628) at wicket.PageMap.get(PageMap.java:459) at wicket.Session.getPage(Session.java:395) at wicket.request.compound.DefaultRequestTargetResolverStrategy.resolveRenderedPage(DefaultRequestTargetResolverStrategy.java:149) at wicket.request.compound.DefaultRequestTargetResolverStrategy.resolve(DefaultRequestTargetResolverStrategy.java:92) at wicket.request.compound.AbstractCompoundRequestCycleProcessor.resolve(AbstractCompoundRequestCycleProcessor.java:48) at wicket.RequestCycle.step(RequestCycle.java:942) at wicket.RequestCycle.steps(RequestCycle.java:1034) at wicket.RequestCycle.request(RequestCycle.java:453) at wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:215) at javax.servlet.http.HttpServlet.service(HttpServlet.java:689) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) This wouldn't be a problem otherwise, but it seems that wicket does not recover from this situation, as the thread in tomcat is left waiting for like this: Name: http-80-Processor22 State: WAITING on [EMAIL PROTECTED] Total blocked: 7 Total waited: 5 Stack trace: java.lang.Object.wait(Native Method) java.lang.Object.wait(Object.java:474) wicket.Session.getPage(Session.java:386) wicket.request.compound.DefaultRequestTargetResolverStrategy.resolveRenderedPage(DefaultRequestTargetResolverStrategy.java:149) wicket.request.compound.DefaultRequestTargetResolverStrategy.resolve(DefaultRequestTargetResolverStrategy.java:92) wicket.request.compound.AbstractCompoundRequestCycleProcessor.resolve(AbstractCompoundRequestCycleProcessor.java:48) wicket.RequestCycle.step(RequestCycle.java:942) wicket.RequestCycle.steps(RequestCycle.java:1034) wicket.RequestCycle.request(RequestCycle.java:453) wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:215) javax.servlet.http.HttpServlet.service(HttpServlet.java:689) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) The thread just sits there forever so tomcat creates a new thread to serve next thread and if the user does similar things again we run out of threads. This is occurring on wicket 1.2 rc2 and it is rather serious issue for us since I cannot figure any workaround for this. Ari S. --- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
[Wicket-user] Question about localizing strings with .properties files
Hi, If I have following property files for my application: 1) Application_myskin_fi.properties message1=A 2) Application_myskin.properties message2= 3) Application.properties message3=CCC If I have three messages above, must I put values for these keys for each property file, or will wicket search files 2 and 3 even file 1 exists, ie. if i call Component.getString(message1) it is retrieved from file 1 but if I call Component.getString(message3) is is correctly read from file 3. I cannot get this to work and I'm not sure where the problem is. Ari S. --- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] wicket ajax memory leak with IE
Hi, From: Igor Vaynberg [EMAIL PROTECTED] even after i turned off drag and drop for the ajax console and drip showed no memory leaks the memory still leaked. /but/ if you navigate to a different page the memory is released. so i am inclined to believe this is not a memory leak but how explorer internally works. i am dropping this issue, any objections? Not from me, at least. Things are much better now due to pooling. I don't think that the small leak remaining will be a problem. Ari S. --- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] wicket ajax memory leak with IE
No problem, I think that remaining leaks is just how IE works Ari S. - Original Message - From: Matej Knopp [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Tuesday, April 18, 2006 10:08 AM Subject: Re: [Wicket-user] wicket ajax memory leak with IE I see, sorry, I have confused your example with another one. Just increasing one number really should't leak that much... -Matej Ari Suutari wrote: Hi, That depends.. If it's the example you sent here, the problem might be that the listview always grows. and at the end, you replace like thousands of rows with new ones, increasing the count on every request. What listview ? My example had only one Label: public AjaxTestPage() { WebMarkupContainer ajaxSpan = new WebMarkupContainer(ajaxSpan); ajaxSpan.add(new AjaxSelfUpdatingTimerBehavior(Duration.milliseconds(500))); ajaxSpan.add(new Label(counter, new PropertyModel(this, counterValue))); add(ajaxSpan); } No wonder, that the memory is disappearing ;). And there might be even some DOM/innerHTML leaks in IE, that are almost impossible to solve. I'm sure that there are leaks in IE. There have always been. So if this is the case, I suggest you to limit the number of rows in your example to a fixed number. So that you don't end replacing thousands of rows every two seconds. Looking at my code, I really don't understand what you mean, since the example has only the Label. Ari S. Ari Suutari wrote: Hi, As far as I know IE won't fire more than two simultanous http request. So i'm not quite sure about it. OK, I don't know how real this problem would be anyway. However, something still leaks slowly: I left a wicket page using AjaxSelfUpdatingTimer (which fires once per second) running over easter. When I came back tooffice today, the page was still updating itself but internet explorer was a log bigger (like 10x). But things are a *lot* better now - before a test like this would have crashed the browser. Ari S. -Matej Ari Suutari wrote: I found one potential (minor) problem: if timer creates ajax requests so frequently that web server lags behind the the system leaks again because it needs to always allocate new transport object since all existing ones are busy ? Maybe there should be some kind of upper limit for transport pool. Maybe this isn't any more such a big problem for most folks. It occurs me when updating a label with 100 ms timer (well, actually, maybe the timer in AjaxSelfUpdatingTimerBehavour shouldn't fire until previous request has completed ?) Ari S. - Original Message - From: Matej Knopp [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Wednesday, April 12, 2006 9:51 PM Subject: Re: [Wicket-user] wicket ajax memory leak with IE Hi, I made some changes, this really helps, at least it works for me: // AJAX FUNCTIONS function wicketAjaxCreateTransport() { var transport = null; if (window.XMLHttpRequest) { transport = new XMLHttpRequest(); } else { if (window.ActiveXObject) { transport = new ActiveXObject(Microsoft.XMLHTTP); } } if (transport==nullwicketAjaxDebugEnabled()) { var log=WicketAjaxDebug.logError; log(Could not locate ajax transport. Your browser does not support the required XMLHttpRequest object or wicket could not gain access to it.); } return transport; } var wicketAjaxTransports = []; function wicketAjaxGetTransport() { var t = wicketAjaxTransports; for (var i = 0; i t.length; ++i) { if (t[i].readyState == 0 || t[i].readyState == 4) { return t[i]; } } t[t.length] = wicketAjaxCreateTransport(); return t[t.length-1]; } function wicketAjaxGet(url, successHandler, failureHandler) { if (wicketAjaxDebugEnabled()) { var log=WicketAjaxDebug.logInfo; log(); log(initiating ajax GET request with...); log(url: +url); log(successHandler:+successHandler); log(failureHandler:+failureHandler); } var transport = wicketAjaxGetTransport(); if (transport == null) { return false; } transport.open(GET, url + random= + Math.random(), true); transport.onreadystatechange = function () { wicketAjaxOnStateChange(transport, successHandler, failureHandler); if (transport.readyState == 4) { transport.onreadystatechange = function () {}; transport = null; } }; transport.send(null); return true; } function wicketAjaxPost(url, body, successHandler, failureHandler) { if (wicketAjaxDebugEnabled()) { var log=WicketAjaxDebug.logInfo; log(); log(initiating ajax POST request with...); log(url: +url); log(body: +body); log(successHandler:+successHandler); log(failureHandler:+failureHandler); } var transport = wicketAjaxGetTransport(); if (transport == null) { return
Re: [Wicket-user] wicket ajax memory leak with IE
Hi, From: Igor Vaynberg [EMAIL PROTECTED] well, at some point the server calls will start returning right? and so xmlhttprequest objects will start being reused. it will consume memory to a certain point and then stop. if you ask me 100ms for an ajax update is unreasonable anyways, Well, that depends. Our applications mostly run in local ethernet, have quite fast servers and usually less than 100 users with Apache Tomcat. I understand that things woudn't work this fast for a public internet site, but for a local, small application it is doable. Actually, we did a web application using dhtml to update values with 250 ms cycle a few years ago and it has been working really well. this is what jetty 6 continuations are for which would be relatively simple to integrate into wicket as an alternative for ajax self updating behaviors. Is this jetty-only ? We have been rather commited on using tomcat. Ari S. --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnkkid=110944bid=241720dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] wicket ajax memory leak with IE
Hi, As far as I know IE won't fire more than two simultanous http request. So i'm not quite sure about it. OK, I don't know how real this problem would be anyway. However, something still leaks slowly: I left a wicket page using AjaxSelfUpdatingTimer (which fires once per second) running over easter. When I came back to office today, the page was still updating itself but internet explorer was a log bigger (like 10x). But things are a *lot* better now - before a test like this would have crashed the browser. Ari S. -Matej Ari Suutari wrote: I found one potential (minor) problem: if timer creates ajax requests so frequently that web server lags behind the the system leaks again because it needs to always allocate new transport object since all existing ones are busy ? Maybe there should be some kind of upper limit for transport pool. Maybe this isn't any more such a big problem for most folks. It occurs me when updating a label with 100 ms timer (well, actually, maybe the timer in AjaxSelfUpdatingTimerBehavour shouldn't fire until previous request has completed ?) Ari S. - Original Message - From: Matej Knopp [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Wednesday, April 12, 2006 9:51 PM Subject: Re: [Wicket-user] wicket ajax memory leak with IE Hi, I made some changes, this really helps, at least it works for me: // AJAX FUNCTIONS function wicketAjaxCreateTransport() { var transport = null; if (window.XMLHttpRequest) { transport = new XMLHttpRequest(); } else { if (window.ActiveXObject) { transport = new ActiveXObject(Microsoft.XMLHTTP); } } if (transport==nullwicketAjaxDebugEnabled()) { var log=WicketAjaxDebug.logError; log(Could not locate ajax transport. Your browser does not support the required XMLHttpRequest object or wicket could not gain access to it.); } return transport; } var wicketAjaxTransports = []; function wicketAjaxGetTransport() { var t = wicketAjaxTransports; for (var i = 0; i t.length; ++i) { if (t[i].readyState == 0 || t[i].readyState == 4) { return t[i]; } } t[t.length] = wicketAjaxCreateTransport(); return t[t.length-1]; } function wicketAjaxGet(url, successHandler, failureHandler) { if (wicketAjaxDebugEnabled()) { var log=WicketAjaxDebug.logInfo; log(); log(initiating ajax GET request with...); log(url: +url); log(successHandler:+successHandler); log(failureHandler:+failureHandler); } var transport = wicketAjaxGetTransport(); if (transport == null) { return false; } transport.open(GET, url + random= + Math.random(), true); transport.onreadystatechange = function () { wicketAjaxOnStateChange(transport, successHandler, failureHandler); if (transport.readyState == 4) { transport.onreadystatechange = function () {}; transport = null; } }; transport.send(null); return true; } function wicketAjaxPost(url, body, successHandler, failureHandler) { if (wicketAjaxDebugEnabled()) { var log=WicketAjaxDebug.logInfo; log(); log(initiating ajax POST request with...); log(url: +url); log(body: +body); log(successHandler:+successHandler); log(failureHandler:+failureHandler); } var transport = wicketAjaxGetTransport(); if (transport == null) { return false; } transport.open(POST, url + random= + Math.random(), true); transport.onreadystatechange = function () { wicketAjaxOnStateChange(transport, successHandler, failureHandler); if (transport.readyState == 4) { transport.onreadystatechange = function () {}; transport = null; } }; transport.setRequestHeader(Content-Type, application/x-www-form-urlencoded); transport.send(body); return true; } Matej Knopp wrote: I guess I have seen one. But it shouldn't be that difficult to get it done. I guess I might be able to look into it tonight. -Matej Igor Vaynberg wrote: is there a pooling implementation somewhere i can take a look at and borrow, im not really inerested in becoming a javascript wiz just because ms cant get it right. -Igor On 4/12/06, *Matej Knopp* [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] wrote: AFAIK There's nothing wrong with javascript. The problem is that creating XMLHttpRequest every time causes memory leak in IE. People tend to reuse one instance of xmlhttprequest, but that does not suffice here, i guess, therefore I suggested xmlhttprequests instances pooling. I tried to reuse one instance of xmlhttprequest and the leak was no longer there. At least with the test application. (The one in this thread). The only thing when you are reusing XmlHttpRequests is that you must call transport.open before you assign
Re: [Wicket-user] wicket ajax memory leak with IE
I can confirm that it works for me too. Hopefully this fix will get into next beta/rc of 1.2 ! Ari S. - Original Message - From: Matej Knopp [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Wednesday, April 12, 2006 9:51 PM Subject: Re: [Wicket-user] wicket ajax memory leak with IE Hi, I made some changes, this really helps, at least it works for me: // AJAX FUNCTIONS function wicketAjaxCreateTransport() { var transport = null; if (window.XMLHttpRequest) { transport = new XMLHttpRequest(); } else { if (window.ActiveXObject) { transport = new ActiveXObject(Microsoft.XMLHTTP); } } if (transport==nullwicketAjaxDebugEnabled()) { var log=WicketAjaxDebug.logError; log(Could not locate ajax transport. Your browser does not support the required XMLHttpRequest object or wicket could not gain access to it.); } return transport; } var wicketAjaxTransports = []; function wicketAjaxGetTransport() { var t = wicketAjaxTransports; for (var i = 0; i t.length; ++i) { if (t[i].readyState == 0 || t[i].readyState == 4) { return t[i]; } } t[t.length] = wicketAjaxCreateTransport(); return t[t.length-1]; } function wicketAjaxGet(url, successHandler, failureHandler) { if (wicketAjaxDebugEnabled()) { var log=WicketAjaxDebug.logInfo; log(); log(initiating ajax GET request with...); log(url: +url); log(successHandler:+successHandler); log(failureHandler:+failureHandler); } var transport = wicketAjaxGetTransport(); if (transport == null) { return false; } transport.open(GET, url + random= + Math.random(), true); transport.onreadystatechange = function () { wicketAjaxOnStateChange(transport, successHandler, failureHandler); if (transport.readyState == 4) { transport.onreadystatechange = function () {}; transport = null; } }; transport.send(null); return true; } function wicketAjaxPost(url, body, successHandler, failureHandler) { if (wicketAjaxDebugEnabled()) { var log=WicketAjaxDebug.logInfo; log(); log(initiating ajax POST request with...); log(url: +url); log(body: +body); log(successHandler:+successHandler); log(failureHandler:+failureHandler); } var transport = wicketAjaxGetTransport(); if (transport == null) { return false; } transport.open(POST, url + random= + Math.random(), true); transport.onreadystatechange = function () { wicketAjaxOnStateChange(transport, successHandler, failureHandler); if (transport.readyState == 4) { transport.onreadystatechange = function () {}; transport = null; } }; transport.setRequestHeader(Content-Type, application/x-www-form-urlencoded); transport.send(body); return true; } Matej Knopp wrote: I guess I have seen one. But it shouldn't be that difficult to get it done. I guess I might be able to look into it tonight. -Matej Igor Vaynberg wrote: is there a pooling implementation somewhere i can take a look at and borrow, im not really inerested in becoming a javascript wiz just because ms cant get it right. -Igor On 4/12/06, *Matej Knopp* [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] wrote: AFAIK There's nothing wrong with javascript. The problem is that creating XMLHttpRequest every time causes memory leak in IE. People tend to reuse one instance of xmlhttprequest, but that does not suffice here, i guess, therefore I suggested xmlhttprequests instances pooling. I tried to reuse one instance of xmlhttprequest and the leak was no longer there. At least with the test application. (The one in this thread). The only thing when you are reusing XmlHttpRequests is that you must call transport.open before you assign transport.onreadystate = ... (some weird IE related thing) -Matej Igor Vaynberg wrote: i looked through the javascript but nothing jumped out at me. did you notice anything cause im stumped. -Igor On 4/12/06, *Matej Knopp* [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] wrote: Yeah, it is. However, it's much smaller. But still, 10-15 kb per request. -Matej Igor Vaynberg wrote: is the leak still there if you turn off the ajax debug mode in IAjaxSettings? -Igor On 4/12/06, *Matej Knopp* [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] mailto: [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] wrote: Ari Suutari wrote: need
Re: [Wicket-user] wicket ajax memory leak with IE
debug mode in IAjaxSettings? -Igor On 4/12/06, *Matej Knopp* [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] mailto: [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] wrote: Ari Suutari wrote: need several requests at the same time. So maybe pooling of XmlHttpRequest(s) could work... Btw, does dojo use pooling (since there was no leak with it) ? Maybe it would make sense to check how they are getting around this. Ari S. Don't know, might be worth checking. But dojo codebase is quite big and the code little hard to read, mostly because dojo handles a lot of other things (back button support, etc.) -Matej -Matej Ari Suutari wrote: Hi, There is a browser-side memory leak in wicket ajax stuff when used with internet explorer. We discovered it when changing our application from wichet+dojo to wicket+wicket-ajax. Memory leak occurs only if wicket-ajax is used in IE. With dojo, there is on leak. Also, in firefox, neither solution leaks. There is a simple example available at http://download.syncrontech.com/public/wicketajaxleak.zip http://download.syncrontech.com/public/wicketajaxleak.zip http://download.syncrontech.com/public/wicketajaxleak.zip It just displays a number, increments it and displays it again using ajax. There is also a memory usage graph which has data from dojo and wicket-default ajax cases, from that it is easy to see how differenty these implementations behave. http://download.syncrontech.com/public/wicketajax.gif http://download.syncrontech.com/public/wicketajax.gif These runs were done agains wicket 1.2-beta3. This is a rather nasty problem for us, since we have a lot of pages, which update themselves very frequently based on data coming from automation systems. We did some looking around in wicket-ajax.js but didn't find anything obvious. Ari S. --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnkkid=110944bid=241720dat=121642 http://sel.as-us.falkag.net/sel?cmd=lnkkid=110944bid=241720dat=121642 http://sel.as-us.falkag.net/sel?cmd=lnkkid=110944bid=241720dat=121642 http://sel.as-us.falkag.net/sel?cmd=lnkkid=110944bid=241720dat=121642 http://sel.as-us.falkag.net/sel?cmd=lnkkid=110944bid=241720dat=121642 http://sel.as-us.falkag.net/sel?cmd=lnkkid=110944bid=241720dat=121642 http://sel.as-us.falkag.net/sel?cmd=lnkkid=110944bid=241720dat=121642 http://sel.as-us.falkag.net/sel?cmd=lnkkid=110944bid=241720dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net mailto:Wicket-user@lists.sourceforge.net mailto:Wicket-user@lists.sourceforge.net mailto:Wicket-user@lists.sourceforge.net mailto:Wicket-user@lists.sourceforge.net mailto:Wicket-user@lists.sourceforge.net mailto:Wicket-user@lists.sourceforge.net mailto:Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] wicket ajax memory leak with IE
Hi, Thanks for you response, I changed the wicket-ajax.js to create only one instance of XmlHttpRequest, and the memory leak in IE seemed to vanish. So the problem is that creating XmlHttpRequest probably causes a memory leak. Howewer, having only one instance of XmlHttpRequest doesn't seem to be the best idea either, mostly because there can be cases when you need several requests at the same time. Would a case like this be a page having multiple AjaxSelfUpdatingTimerBehavior regions ? Our developers are *very* fond of things like this. So maybe pooling of XmlHttpRequest(s) could work... Are you planning on adding this ? Ari S. Ari Suutari wrote: Hi, There is a browser-side memory leak in wicket ajax stuff when used with internet explorer. We discovered it when changing our application from wichet+dojo to wicket+wicket-ajax. Memory leak occurs only if wicket-ajax is used in IE. With dojo, there is on leak. Also, in firefox, neither solution leaks. There is a simple example available at http://download.syncrontech.com/public/wicketajaxleak.zip It just displays a number, increments it and displays it again using ajax. There is also a memory usage graph which has data from dojo and wicket-default ajax cases, from that it is easy to see how differenty these implementations behave. http://download.syncrontech.com/public/wicketajax.gif These runs were done agains wicket 1.2-beta3. This is a rather nasty problem for us, since we have a lot of pages, which update themselves very frequently based on data coming from automation systems. We did some looking around in wicket-ajax.js but didn't find anything obvious. Ari S. --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnkkid=110944bid=241720dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnkkid=110944bid=241720dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnkkid=110944bid=241720dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] wicket ajax memory leak with IE
need several requests at the same time. So maybe pooling of XmlHttpRequest(s) could work... Btw, does dojo use pooling (since there was no leak with it) ? Maybe it would make sense to check how they are getting around this. Ari S. -Matej Ari Suutari wrote: Hi, There is a browser-side memory leak in wicket ajax stuff when used with internet explorer. We discovered it when changing our application from wichet+dojo to wicket+wicket-ajax. Memory leak occurs only if wicket-ajax is used in IE. With dojo, there is on leak. Also, in firefox, neither solution leaks. There is a simple example available at http://download.syncrontech.com/public/wicketajaxleak.zip It just displays a number, increments it and displays it again using ajax. There is also a memory usage graph which has data from dojo and wicket-default ajax cases, from that it is easy to see how differenty these implementations behave. http://download.syncrontech.com/public/wicketajax.gif These runs were done agains wicket 1.2-beta3. This is a rather nasty problem for us, since we have a lot of pages, which update themselves very frequently based on data coming from automation systems. We did some looking around in wicket-ajax.js but didn't find anything obvious. Ari S. --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnkkid=110944bid=241720dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnkkid=110944bid=241720dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnkkid=110944bid=241720dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] update from beta2 to beta3 broke wicket:head in context of wicket:extend
We had to go back to beta2 because of this. It just hits us in too many places :-( Ari S. - Original Message - From: Ari Suutari [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Wednesday, April 05, 2006 12:55 PM Subject: Re: [Wicket-user] update from beta2 to beta3 broke wicket:head in context of wicket:extend Hi, What exactly do you mean. Inheritance for Pages is still supported. There is a simple example at http://download.syncrontech.com/public/wicketpageinheritanceproblem.zip trying to view TestExtendedPage2 with 1.2-beta3: Caused by: wicket.WicketRuntimeException: Expected to find wicket:child/ in base markup at wicket.markup.MergedMarkup.merge(MergedMarkup.java:315) at wicket.markup.MergedMarkup.init(MergedMarkup.java:50) at wicket.markup.MarkupCache.checkForMarkupInheritance(MarkupCache.java:440) at wicket.markup.MarkupCache.loadMarkup(MarkupCache.java:248) at wicket.markup.MarkupCache.loadMarkupAndWatchForChanges(MarkupCache.java:312) at wicket.markup.MarkupCache.getMarkup(MarkupCache.java:189) at wicket.markup.MarkupCache.getMarkupStream(MarkupCache.java:105) at wicket.MarkupContainer.getAssociatedMarkupStream(MarkupContainer.java:775) But the same code works perfectly with beta2. It seems that just simple markup inheritance is not eought to trigger the problem, there must be another class which is derived from class using markup inheritance (ie. in the example, TestExtendPage works, TestExtendedPage2 doesn't). Like with the other issue, I always appreciate simple unit test to verify it and to add it to the existing ones. I'm very sorry for not providing these examples as junit test cases. Getting more familiar with junit tests is on my to-do list, but currently I just cannot find time for it. Our applications are all quite large so I cannot directly post parts of them - because of this I always ask if the problem would already be known before building a simple example of the problem. What makes me a little worry (and sad) is that we have plenty of unit tests for headers and inheritance and I don't remember I changed the expected output, but still there are quite some issues poping up with it currently. So, junit tests are more than welcome. I understand this. If I promise that I'll start making junit test cases about my problems during next summer could you check these two problems with the example applications I provided :) Ari S. Juergen On 4/5/06, Ari Suutari [EMAIL PROTECTED] wrote: There seems to be also problems if wicket:child/ is used in page's html directly ie. in beta2 I was able to use markup inheritance on page level, but not in beta3. Ari S. - Original Message - From: Juergen Donnerstag [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Wednesday, April 05, 2006 9:41 AM Subject: Re: [Wicket-user] update from beta2 to beta3 broke wicket:head in context of wicket:extend Thanks. I'll check it out. Juergen On 4/5/06, Ari Suutari [EMAIL PROTECTED] wrote: There is a simple example in http://download.syncrontech.com/public/wicketheadproblem.zip Ari S. - Original Message - From: Juergen Donnerstag [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Tuesday, April 04, 2006 3:02 PM Subject: Re: [Wicket-user] update from beta2 to beta3 broke wicket:head in context of wicket:extend Note that wicket:head MUST be before body, /head, wicket:panel, wicket:border and wicket:extend. Unfortunately no error message is thrown yet. Its currently only my laptop. I need to test it further before committing. If that is not the case in your example, please send me a stripped down version of the page and panels etc preferably as junit test case like in src/test Juergen On 4/4/06, Ari Suutari [EMAIL PROTECTED] wrote: Hi, We just updates from 1.2 beta2 to beta3 and noticted that some our components using wicket:head stuff to add things to page's head no longer work. Closer examination shows that those components are also using wicket:extend tags. Things work if we put an empty wicket:extend/wicket:extend to base panel's html file - after that stuff from derived panel's wicket:head section appears on page. Ari S. --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnkkid=110944bid=241720dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by xPML, a groundbreaking
Re: [Wicket-user] update from beta2 to beta3 broke wicket:head in context of wicket:extend
Hi, beta 4 or rc1 will solve this. Great ! You can check out the new improved stuff already from svn trunk if you wish. Building a wicket distribution is a matter of mvn package :-) Yes, I know and I used to build our wicket jars locally, but when beta versions started being available I decided to use them instead (because I thought it would be easier to communicate about possible problems if we are working on a known state/version of wicket). Ari S. On 4/10/06, Ari Suutari [EMAIL PROTECTED] wrote: We had to go back to beta2 because of this. It just hits us in too many places :-( Ari S. - Original Message - From: Ari Suutari [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Wednesday, April 05, 2006 12:55 PM Subject: Re: [Wicket-user] update from beta2 to beta3 broke wicket:head in context of wicket:extend Hi, What exactly do you mean. Inheritance for Pages is still supported. There is a simple example at http://download.syncrontech.com/public/wicketpageinheritanceproblem.zip trying to view TestExtendedPage2 with 1.2-beta3: Caused by: wicket.WicketRuntimeException: Expected to find wicket:child/ in base markup at wicket.markup.MergedMarkup.merge(MergedMarkup.java:315) at wicket.markup.MergedMarkup.init(MergedMarkup.java:50) at wicket.markup.MarkupCache.checkForMarkupInheritance(MarkupCache.java :440) at wicket.markup.MarkupCache.loadMarkup(MarkupCache.java:248) at wicket.markup.MarkupCache.loadMarkupAndWatchForChanges( MarkupCache.java:312) at wicket.markup.MarkupCache.getMarkup(MarkupCache.java:189) at wicket.markup.MarkupCache.getMarkupStream(MarkupCache.java:105) at wicket.MarkupContainer.getAssociatedMarkupStream(MarkupContainer.java :775) But the same code works perfectly with beta2. It seems that just simple markup inheritance is not eought to trigger the problem, there must be another class which is derived from class using markup inheritance (ie. in the example, TestExtendPage works, TestExtendedPage2 doesn't). Like with the other issue, I always appreciate simple unit test to verify it and to add it to the existing ones. I'm very sorry for not providing these examples as junit test cases. Getting more familiar with junit tests is on my to-do list, but currently I just cannot find time for it. Our applications are all quite large so I cannot directly post parts of them - because of this I always ask if the problem would already be known before building a simple example of the problem. What makes me a little worry (and sad) is that we have plenty of unit tests for headers and inheritance and I don't remember I changed the expected output, but still there are quite some issues poping up with it currently. So, junit tests are more than welcome. I understand this. If I promise that I'll start making junit test cases about my problems during next summer could you check these two problems with the example applications I provided :) Ari S. Juergen On 4/5/06, Ari Suutari [EMAIL PROTECTED] wrote: There seems to be also problems if wicket:child/ is used in page's html directly ie. in beta2 I was able to use markup inheritance on page level, but not in beta3. Ari S. - Original Message - From: Juergen Donnerstag [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Wednesday, April 05, 2006 9:41 AM Subject: Re: [Wicket-user] update from beta2 to beta3 broke wicket:head in context of wicket:extend Thanks. I'll check it out. Juergen On 4/5/06, Ari Suutari [EMAIL PROTECTED] wrote: There is a simple example in http://download.syncrontech.com/public/wicketheadproblem.zip Ari S. - Original Message - From: Juergen Donnerstag [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Tuesday, April 04, 2006 3:02 PM Subject: Re: [Wicket-user] update from beta2 to beta3 broke wicket:head in context of wicket:extend Note that wicket:head MUST be before body, /head, wicket:panel, wicket:border and wicket:extend. Unfortunately no error message is thrown yet. Its currently only my laptop. I need to test it further before committing. If that is not the case in your example, please send me a stripped down version of the page and panels etc preferably as junit test case like in src/test Juergen On 4/4/06, Ari Suutari [EMAIL PROTECTED] wrote: Hi, We just updates from 1.2 beta2 to beta3 and noticted that some our components using wicket:head stuff to add things to page's head no longer work. Closer examination shows that those components are also using wicket:extend tags. Things work if we put an empty wicket:extend/wicket:extend to base panel's html file - after that stuff from derived panel's wicket:head section appears on page. Ari S
Re: [Wicket-user] update from beta2 to beta3 broke wicket:head in context of wicket:extend
There is a simple example in http://download.syncrontech.com/public/wicketheadproblem.zip Ari S. - Original Message - From: Juergen Donnerstag [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Tuesday, April 04, 2006 3:02 PM Subject: Re: [Wicket-user] update from beta2 to beta3 broke wicket:head in context of wicket:extend Note that wicket:head MUST be before body, /head, wicket:panel, wicket:border and wicket:extend. Unfortunately no error message is thrown yet. Its currently only my laptop. I need to test it further before committing. If that is not the case in your example, please send me a stripped down version of the page and panels etc preferably as junit test case like in src/test Juergen On 4/4/06, Ari Suutari [EMAIL PROTECTED] wrote: Hi, We just updates from 1.2 beta2 to beta3 and noticted that some our components using wicket:head stuff to add things to page's head no longer work. Closer examination shows that those components are also using wicket:extend tags. Things work if we put an empty wicket:extend/wicket:extend to base panel's html file - after that stuff from derived panel's wicket:head section appears on page. Ari S. --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnkkid=110944bid=241720dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnkkid=110944bid=241720dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] update from beta2 to beta3 broke wicket:head in context of wicket:extend
There seems to be also problems if wicket:child/ is used in page's html directly ie. in beta2 I was able to use markup inheritance on page level, but not in beta3. Ari S. - Original Message - From: Juergen Donnerstag [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Wednesday, April 05, 2006 9:41 AM Subject: Re: [Wicket-user] update from beta2 to beta3 broke wicket:head in context of wicket:extend Thanks. I'll check it out. Juergen On 4/5/06, Ari Suutari [EMAIL PROTECTED] wrote: There is a simple example in http://download.syncrontech.com/public/wicketheadproblem.zip Ari S. - Original Message - From: Juergen Donnerstag [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Tuesday, April 04, 2006 3:02 PM Subject: Re: [Wicket-user] update from beta2 to beta3 broke wicket:head in context of wicket:extend Note that wicket:head MUST be before body, /head, wicket:panel, wicket:border and wicket:extend. Unfortunately no error message is thrown yet. Its currently only my laptop. I need to test it further before committing. If that is not the case in your example, please send me a stripped down version of the page and panels etc preferably as junit test case like in src/test Juergen On 4/4/06, Ari Suutari [EMAIL PROTECTED] wrote: Hi, We just updates from 1.2 beta2 to beta3 and noticted that some our components using wicket:head stuff to add things to page's head no longer work. Closer examination shows that those components are also using wicket:extend tags. Things work if we put an empty wicket:extend/wicket:extend to base panel's html file - after that stuff from derived panel's wicket:head section appears on page. Ari S. --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnkkid=110944bid=241720dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnkkid=110944bid=241720dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnkkid=110944bid=241720dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] update from beta2 to beta3 broke wicket:head in context of wicket:extend
Hi, What exactly do you mean. Inheritance for Pages is still supported. There is a simple example at http://download.syncrontech.com/public/wicketpageinheritanceproblem.zip trying to view TestExtendedPage2 with 1.2-beta3: Caused by: wicket.WicketRuntimeException: Expected to find wicket:child/ in base markup at wicket.markup.MergedMarkup.merge(MergedMarkup.java:315) at wicket.markup.MergedMarkup.init(MergedMarkup.java:50) at wicket.markup.MarkupCache.checkForMarkupInheritance(MarkupCache.java:440) at wicket.markup.MarkupCache.loadMarkup(MarkupCache.java:248) at wicket.markup.MarkupCache.loadMarkupAndWatchForChanges(MarkupCache.java:312) at wicket.markup.MarkupCache.getMarkup(MarkupCache.java:189) at wicket.markup.MarkupCache.getMarkupStream(MarkupCache.java:105) at wicket.MarkupContainer.getAssociatedMarkupStream(MarkupContainer.java:775) But the same code works perfectly with beta2. It seems that just simple markup inheritance is not eought to trigger the problem, there must be another class which is derived from class using markup inheritance (ie. in the example, TestExtendPage works, TestExtendedPage2 doesn't). Like with the other issue, I always appreciate simple unit test to verify it and to add it to the existing ones. I'm very sorry for not providing these examples as junit test cases. Getting more familiar with junit tests is on my to-do list, but currently I just cannot find time for it. Our applications are all quite large so I cannot directly post parts of them - because of this I always ask if the problem would already be known before building a simple example of the problem. What makes me a little worry (and sad) is that we have plenty of unit tests for headers and inheritance and I don't remember I changed the expected output, but still there are quite some issues poping up with it currently. So, junit tests are more than welcome. I understand this. If I promise that I'll start making junit test cases about my problems during next summer could you check these two problems with the example applications I provided :) Ari S. Juergen On 4/5/06, Ari Suutari [EMAIL PROTECTED] wrote: There seems to be also problems if wicket:child/ is used in page's html directly ie. in beta2 I was able to use markup inheritance on page level, but not in beta3. Ari S. - Original Message - From: Juergen Donnerstag [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Wednesday, April 05, 2006 9:41 AM Subject: Re: [Wicket-user] update from beta2 to beta3 broke wicket:head in context of wicket:extend Thanks. I'll check it out. Juergen On 4/5/06, Ari Suutari [EMAIL PROTECTED] wrote: There is a simple example in http://download.syncrontech.com/public/wicketheadproblem.zip Ari S. - Original Message - From: Juergen Donnerstag [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Tuesday, April 04, 2006 3:02 PM Subject: Re: [Wicket-user] update from beta2 to beta3 broke wicket:head in context of wicket:extend Note that wicket:head MUST be before body, /head, wicket:panel, wicket:border and wicket:extend. Unfortunately no error message is thrown yet. Its currently only my laptop. I need to test it further before committing. If that is not the case in your example, please send me a stripped down version of the page and panels etc preferably as junit test case like in src/test Juergen On 4/4/06, Ari Suutari [EMAIL PROTECTED] wrote: Hi, We just updates from 1.2 beta2 to beta3 and noticted that some our components using wicket:head stuff to add things to page's head no longer work. Closer examination shows that those components are also using wicket:extend tags. Things work if we put an empty wicket:extend/wicket:extend to base panel's html file - after that stuff from derived panel's wicket:head section appears on page. Ari S. --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnkkid=110944bid=241720dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https
[Wicket-user] update from beta2 to beta3 broke wicket:head in context of wicket:extend
Hi, We just updates from 1.2 beta2 to beta3 and noticted that some our components using wicket:head stuff to add things to page's head no longer work. Closer examination shows that those components are also using wicket:extend tags. Things work if we put an empty wicket:extend/wicket:extend to base panel's html file - after that stuff from derived panel's wicket:head section appears on page. Ari S. --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnkkid=110944bid=241720dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] TextField and trimming blanks at end (and maybe at beginning)
To sum up discussion, I understood that trimming is going to be default behaviour on text fields (soon) ? Correct ? Ari S. - Original Message - From: Ari Suutari [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Monday, March 06, 2006 3:25 PM Subject: [Wicket-user] TextField and trimming blanks at end (and maybe at beginning) Hi, What might be the simplest way to change behaviour of whole wicket application so that TextField have their input trimmed of blanks at end ? I tried to do this via converters (I have my own converter factory), but it didn't work because Converter.convert doesn't do anything if String is being assigned to String field in model (it uses isAssignableFrom for this check). Ari S. --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnkkid=110944bid=241720dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnkkid=110944bid=241720dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] TextField and trimming blanks at end (and maybe at beginning)
Hi, Yes. After all, the name is Converter, not TypeConverter. Ari S. - Original Message - From: Eelco Hillenius [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Thursday, March 09, 2006 10:25 AM Subject: Re: [Wicket-user] TextField and trimming blanks at end (and maybe at beginning) It's potentially dangerous, second that. But the argument of whether it is a good use of converters or not aside, when I put on my user hat and look at that API, *I* would expect conversion to happen from input parameters to my model properties regardless whether it has the target type or not. Eelco On 3/9/06, Igor Vaynberg [EMAIL PROTECTED] wrote: this might have nasty side effects that we do not see right now. for example converters are going to start running on things they werent running on before. how is this going to affect existing applications? furthermore afaict the intention behind converters was to have a generic /type/ conversion framework for use inside wicket core. you can see they are intended to be /type/ converters by looking at the javadoc of IConverter.convert(Object, Class). how is a trimming string converter that is running on values that are already strings and trimming them going to affect places in wicket's core outside form processing? i still dont think this is the right approach. we should think of something else. getInput would be fine if we were just starting development. But we have a big application going to production soon and I'm seeking some kind of another alternative than telling all developers to change their TextFields to MyTrimmerTextFields. so why are you just now thinking about this? sounds to me like you are dealing with this issue too late. (not that we are not willing to help you) -Igor On 3/8/06, Eelco Hillenius [EMAIL PROTECTED] wrote: I agree with Ari and I am not against removing that check. Eelco On 3/8/06, Ari Suutari [EMAIL PROTECTED] wrote: Hi, getInput would be fine if we were just starting development. But we have a big application going to production soon and I'm seeking some kind of another alternative than telling all developers to change their TextFields to MyTrimmerTextFields. Converter interface has been very handy for me before, but it just failed on this one. Why should you think Converter only as datatype converter ? I'm sure that there are plenty of use cases where manipulating also the value would be handy. Also, I don't think that removing the short-circuit done by isAssignableFrom woundn't be a performace problem ? What I have liked about wicket a lot is that there are a lot of different interfaces that one can use to get between things and alter the behaviour for local needs without creating a derived component of each standard component. This is also the reason I'm insisting about similar solution here. Ari S. - Original Message - From: Igor Vaynberg [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Wednesday, March 08, 2006 9:23 AM Subject: Re: [Wicket-user] TextField and trimming blanks at end (and maybe at beginning) but is it really then a conversion? why run a Integer-Integer conversion or a String-String conversion? then you are really warping the converter into an input postprocessor. why not create a simple subclass of textfield and override getInput() ? -Igor On 3/7/06, Ari Suutari [EMAIL PROTECTED] wrote: Could someone also take a look at Converter so it could be used ? I mean this line in Converter.java: // Catch all cases where value is already the right type if (c.isAssignableFrom(value.getClass())) { return value; } This is some kind of a optimization, right ? But as a side effect it makes it impossible to do any conversion on textfield input if it is stored to String field in model (quite usual case, I think). Maybe just drop those lines ? Ari S. - Original Message - From: Eelco Hillenius [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Tuesday, March 07, 2006 7:22 PM Subject: Re: [Wicket-user] TextField and trimming blanks at end (and maybe at beginning) I don't think we need it in core. Maybe as an example somewhere. We have to get our users get used to working with custom components more, as that's one of the key points of Wicket imo :) Eelco On 3/7/06, Igor Vaynberg [EMAIL PROTECTED] wrote: but do we need this in core? its a trivial subclass, why not create it in your own codebase? if you guys want it in core you can have it, just asking. -Igor On 3/7/06, Ryan Sonnek [EMAIL PROTECTED] wrote: +1 for this solution. this seems to be the cleanest implementation to me and puts the responsibility on the developer to *use* the correct component. On 3/7/06, Igor Vaynberg [EMAIL PROTECTED] wrote: i guess thats true. you can create a subclass TrimmingTextField
Re: [Wicket-user] TextField and trimming blanks at end (and maybe at beginning)
AOP would be one solution, but haven't needed it so far with wicket, because there have always been elegant interfaces that I have been able to use to make things work like we want. That wouldn't be wicket's way of doing things, would it ? Ari S. - Original Message - From: Eelco Hillenius [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Thursday, March 09, 2006 10:27 AM Subject: Re: [Wicket-user] TextField and trimming blanks at end (and maybe at beginning) Ari, what about using AOP? Eelco On 3/9/06, Eelco Hillenius [EMAIL PROTECTED] wrote: It's potentially dangerous, second that. But the argument of whether it is a good use of converters or not aside, when I put on my user hat and look at that API, *I* would expect conversion to happen from input parameters to my model properties regardless whether it has the target type or not. Eelco On 3/9/06, Igor Vaynberg [EMAIL PROTECTED] wrote: this might have nasty side effects that we do not see right now. for example converters are going to start running on things they werent running on before. how is this going to affect existing applications? furthermore afaict the intention behind converters was to have a generic /type/ conversion framework for use inside wicket core. you can see they are intended to be /type/ converters by looking at the javadoc of IConverter.convert(Object, Class). how is a trimming string converter that is running on values that are already strings and trimming them going to affect places in wicket's core outside form processing? i still dont think this is the right approach. we should think of something else. getInput would be fine if we were just starting development. But we have a big application going to production soon and I'm seeking some kind of another alternative than telling all developers to change their TextFields to MyTrimmerTextFields. so why are you just now thinking about this? sounds to me like you are dealing with this issue too late. (not that we are not willing to help you) -Igor On 3/8/06, Eelco Hillenius [EMAIL PROTECTED] wrote: I agree with Ari and I am not against removing that check. Eelco On 3/8/06, Ari Suutari [EMAIL PROTECTED] wrote: Hi, getInput would be fine if we were just starting development. But we have a big application going to production soon and I'm seeking some kind of another alternative than telling all developers to change their TextFields to MyTrimmerTextFields. Converter interface has been very handy for me before, but it just failed on this one. Why should you think Converter only as datatype converter ? I'm sure that there are plenty of use cases where manipulating also the value would be handy. Also, I don't think that removing the short-circuit done by isAssignableFrom woundn't be a performace problem ? What I have liked about wicket a lot is that there are a lot of different interfaces that one can use to get between things and alter the behaviour for local needs without creating a derived component of each standard component. This is also the reason I'm insisting about similar solution here. Ari S. - Original Message - From: Igor Vaynberg [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Wednesday, March 08, 2006 9:23 AM Subject: Re: [Wicket-user] TextField and trimming blanks at end (and maybe at beginning) but is it really then a conversion? why run a Integer-Integer conversion or a String-String conversion? then you are really warping the converter into an input postprocessor. why not create a simple subclass of textfield and override getInput() ? -Igor On 3/7/06, Ari Suutari [EMAIL PROTECTED] wrote: Could someone also take a look at Converter so it could be used ? I mean this line in Converter.java: // Catch all cases where value is already the right type if (c.isAssignableFrom(value.getClass())) { return value; } This is some kind of a optimization, right ? But as a side effect it makes it impossible to do any conversion on textfield input if it is stored to String field in model (quite usual case, I think). Maybe just drop those lines ? Ari S. - Original Message - From: Eelco Hillenius [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Tuesday, March 07, 2006 7:22 PM Subject: Re: [Wicket-user] TextField and trimming blanks at end (and maybe at beginning) I don't think we need it in core. Maybe as an example somewhere. We have to get our users get used to working with custom components more, as that's one of the key points of Wicket imo :) Eelco On 3/7/06, Igor Vaynberg [EMAIL PROTECTED] wrote: but do we need this in core? its a trivial subclass, why not create it in your own codebase? if you guys want it in core you can have it, just asking
Re: [Wicket-user] TextField and trimming blanks at end (and maybe at beginning)
Whats the risk here ? The default StringConverter in wicket does nothing when invoked for String-String conversion. Ari S. - Original Message - From: Igor Vaynberg [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Thursday, March 09, 2006 10:42 AM Subject: Re: [Wicket-user] TextField and trimming blanks at end (and maybe at beginning) this is not a kind of a problem i would want to be tracing for, especially as a user. you add your own string converter and that suddenly breaks some internal feature that you dont even know about, or maybe it even breaks some 3rd party components. i know i feel strongly about this one. how strong do you feel? should we have a vote? -Igor On 3/9/06, Eelco Hillenius [EMAIL PROTECTED] wrote: It's potentially dangerous, second that. But the argument of whether it is a good use of converters or not aside, when I put on my user hat and look at that API, *I* would expect conversion to happen from input parameters to my model properties regardless whether it has the target type or not. Eelco On 3/9/06, Igor Vaynberg [EMAIL PROTECTED] wrote: this might have nasty side effects that we do not see right now. for example converters are going to start running on things they werent running on before. how is this going to affect existing applications? furthermore afaict the intention behind converters was to have a generic /type/ conversion framework for use inside wicket core. you can see they are intended to be /type/ converters by looking at the javadoc of IConverter.convert(Object, Class). how is a trimming string converter that is running on values that are already strings and trimming them going to affect places in wicket's core outside form processing? i still dont think this is the right approach. we should think of something else. getInput would be fine if we were just starting development. But we have a big application going to production soon and I'm seeking some kind of another alternative than telling all developers to change their TextFields to MyTrimmerTextFields. so why are you just now thinking about this? sounds to me like you are dealing with this issue too late. (not that we are not willing to help you) -Igor On 3/8/06, Eelco Hillenius [EMAIL PROTECTED] wrote: I agree with Ari and I am not against removing that check. Eelco On 3/8/06, Ari Suutari [EMAIL PROTECTED] wrote: Hi, getInput would be fine if we were just starting development. But we have a big application going to production soon and I'm seeking some kind of another alternative than telling all developers to change their TextFields to MyTrimmerTextFields. Converter interface has been very handy for me before, but it just failed on this one. Why should you think Converter only as datatype converter ? I'm sure that there are plenty of use cases where manipulating also the value would be handy. Also, I don't think that removing the short-circuit done by isAssignableFrom woundn't be a performace problem ? What I have liked about wicket a lot is that there are a lot of different interfaces that one can use to get between things and alter the behaviour for local needs without creating a derived component of each standard component. This is also the reason I'm insisting about similar solution here. Ari S. - Original Message - From: Igor Vaynberg [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Wednesday, March 08, 2006 9:23 AM Subject: Re: [Wicket-user] TextField and trimming blanks at end (and maybe at beginning) but is it really then a conversion? why run a Integer-Integer conversion or a String-String conversion? then you are really warping the converter into an input postprocessor. why not create a simple subclass of textfield and override getInput() ? -Igor On 3/7/06, Ari Suutari [EMAIL PROTECTED] wrote: Could someone also take a look at Converter so it could be used ? I mean this line in Converter.java: // Catch all cases where value is already the right type if (c.isAssignableFrom(value.getClass())) { return value; } This is some kind of a optimization, right ? But as a side effect it makes it impossible to do any conversion on textfield input if it is stored to String field in model (quite usual case, I think). Maybe just drop those lines ? Ari S. - Original Message - From: Eelco Hillenius [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Tuesday, March 07, 2006 7:22 PM Subject: Re: [Wicket-user] TextField and trimming blanks at end (and maybe at beginning) I don't think we need it in core. Maybe as an example somewhere. We have to get our users get used to working with custom components more, as that's one of the key points of Wicket imo :) Eelco On 3/7/06, Igor Vaynberg [EMAIL
Re: [Wicket-user] TextField and trimming blanks at end (and maybe at beginning)
This was also one idea that I considered. However, as it is more than just a one or two lines of code I decided to start this discussion in order to find a more elegant way. If you think about real-world applications, I would say that on-one wants to sit anwering support calls about odd incidents that occur because user's fields has some invisible spaces after value. I have been involved with form-based applications in several companies, for many years and always the policy has been to trim trailing blanks from fields. Otherwise the users will just get confused. Ari S. - Original Message - From: Eelco Hillenius [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Thursday, March 09, 2006 10:58 AM Subject: Re: [Wicket-user] TextField and trimming blanks at end (and maybe at beginning) Another thing you can do is copy 'n paste Converter, make your adjustement, and use that as the application wide converter. I think everyone is happy then, and I don't think it is a class that'll change often if ever. Eelco On 3/9/06, Ari Suutari [EMAIL PROTECTED] wrote: Whats the risk here ? The default StringConverter in wicket does nothing when invoked for String-String conversion. Ari S. - Original Message - From: Igor Vaynberg [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Thursday, March 09, 2006 10:42 AM Subject: Re: [Wicket-user] TextField and trimming blanks at end (and maybe at beginning) this is not a kind of a problem i would want to be tracing for, especially as a user. you add your own string converter and that suddenly breaks some internal feature that you dont even know about, or maybe it even breaks some 3rd party components. i know i feel strongly about this one. how strong do you feel? should we have a vote? -Igor On 3/9/06, Eelco Hillenius [EMAIL PROTECTED] wrote: It's potentially dangerous, second that. But the argument of whether it is a good use of converters or not aside, when I put on my user hat and look at that API, *I* would expect conversion to happen from input parameters to my model properties regardless whether it has the target type or not. Eelco On 3/9/06, Igor Vaynberg [EMAIL PROTECTED] wrote: this might have nasty side effects that we do not see right now. for example converters are going to start running on things they werent running on before. how is this going to affect existing applications? furthermore afaict the intention behind converters was to have a generic /type/ conversion framework for use inside wicket core. you can see they are intended to be /type/ converters by looking at the javadoc of IConverter.convert(Object, Class). how is a trimming string converter that is running on values that are already strings and trimming them going to affect places in wicket's core outside form processing? i still dont think this is the right approach. we should think of something else. getInput would be fine if we were just starting development. But we have a big application going to production soon and I'm seeking some kind of another alternative than telling all developers to change their TextFields to MyTrimmerTextFields. so why are you just now thinking about this? sounds to me like you are dealing with this issue too late. (not that we are not willing to help you) -Igor On 3/8/06, Eelco Hillenius [EMAIL PROTECTED] wrote: I agree with Ari and I am not against removing that check. Eelco On 3/8/06, Ari Suutari [EMAIL PROTECTED] wrote: Hi, getInput would be fine if we were just starting development. But we have a big application going to production soon and I'm seeking some kind of another alternative than telling all developers to change their TextFields to MyTrimmerTextFields. Converter interface has been very handy for me before, but it just failed on this one. Why should you think Converter only as datatype converter ? I'm sure that there are plenty of use cases where manipulating also the value would be handy. Also, I don't think that removing the short-circuit done by isAssignableFrom woundn't be a performace problem ? What I have liked about wicket a lot is that there are a lot of different interfaces that one can use to get between things and alter the behaviour for local needs without creating a derived component of each standard component. This is also the reason I'm insisting about similar solution here. Ari S. - Original Message - From: Igor Vaynberg [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Wednesday, March 08, 2006 9:23 AM Subject: Re: [Wicket-user] TextField and trimming blanks at end (and maybe at beginning) but is it really then a conversion? why run a Integer-Integer conversion or a String-String conversion? then you are really warping the converter
Re: [Wicket-user] TextField and trimming blanks at end (and maybe at beginning)
Could you make Converter not final, so I could subclass it and override convert ? Ari S. - Original Message - From: Eelco Hillenius [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Thursday, March 09, 2006 10:58 AM Subject: Re: [Wicket-user] TextField and trimming blanks at end (and maybe at beginning) Another thing you can do is copy 'n paste Converter, make your adjustement, and use that as the application wide converter. I think everyone is happy then, and I don't think it is a class that'll change often if ever. Eelco On 3/9/06, Ari Suutari [EMAIL PROTECTED] wrote: Whats the risk here ? The default StringConverter in wicket does nothing when invoked for String-String conversion. Ari S. - Original Message - From: Igor Vaynberg [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Thursday, March 09, 2006 10:42 AM Subject: Re: [Wicket-user] TextField and trimming blanks at end (and maybe at beginning) this is not a kind of a problem i would want to be tracing for, especially as a user. you add your own string converter and that suddenly breaks some internal feature that you dont even know about, or maybe it even breaks some 3rd party components. i know i feel strongly about this one. how strong do you feel? should we have a vote? -Igor On 3/9/06, Eelco Hillenius [EMAIL PROTECTED] wrote: It's potentially dangerous, second that. But the argument of whether it is a good use of converters or not aside, when I put on my user hat and look at that API, *I* would expect conversion to happen from input parameters to my model properties regardless whether it has the target type or not. Eelco On 3/9/06, Igor Vaynberg [EMAIL PROTECTED] wrote: this might have nasty side effects that we do not see right now. for example converters are going to start running on things they werent running on before. how is this going to affect existing applications? furthermore afaict the intention behind converters was to have a generic /type/ conversion framework for use inside wicket core. you can see they are intended to be /type/ converters by looking at the javadoc of IConverter.convert(Object, Class). how is a trimming string converter that is running on values that are already strings and trimming them going to affect places in wicket's core outside form processing? i still dont think this is the right approach. we should think of something else. getInput would be fine if we were just starting development. But we have a big application going to production soon and I'm seeking some kind of another alternative than telling all developers to change their TextFields to MyTrimmerTextFields. so why are you just now thinking about this? sounds to me like you are dealing with this issue too late. (not that we are not willing to help you) -Igor On 3/8/06, Eelco Hillenius [EMAIL PROTECTED] wrote: I agree with Ari and I am not against removing that check. Eelco On 3/8/06, Ari Suutari [EMAIL PROTECTED] wrote: Hi, getInput would be fine if we were just starting development. But we have a big application going to production soon and I'm seeking some kind of another alternative than telling all developers to change their TextFields to MyTrimmerTextFields. Converter interface has been very handy for me before, but it just failed on this one. Why should you think Converter only as datatype converter ? I'm sure that there are plenty of use cases where manipulating also the value would be handy. Also, I don't think that removing the short-circuit done by isAssignableFrom woundn't be a performace problem ? What I have liked about wicket a lot is that there are a lot of different interfaces that one can use to get between things and alter the behaviour for local needs without creating a derived component of each standard component. This is also the reason I'm insisting about similar solution here. Ari S. - Original Message - From: Igor Vaynberg [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Wednesday, March 08, 2006 9:23 AM Subject: Re: [Wicket-user] TextField and trimming blanks at end (and maybe at beginning) but is it really then a conversion? why run a Integer-Integer conversion or a String-String conversion? then you are really warping the converter into an input postprocessor. why not create a simple subclass of textfield and override getInput() ? -Igor On 3/7/06, Ari Suutari [EMAIL PROTECTED] wrote: Could someone also take a look at Converter so it could be used ? I mean this line in Converter.java: // Catch all cases where value is already the right type if (c.isAssignableFrom(value.getClass())) { return value; } This is some kind of a optimization, right
Re: [Wicket-user] TextField and trimming blanks at end (and maybe at beginning)
This is a great idea ! Thanks ! Ari S. - Original Message - From: Johan Compagner [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Thursday, March 09, 2006 12:29 PM Subject: Re: [Wicket-user] TextField and trimming blanks at end (and maybe at beginning) We could make it non final or make a delegate. class MyConverter implements IConverter { IConverter delegate = new Converter(); convert(Object value, Class clss) { if(value instanceof String and clss == String.class) { return value.trim(); } else { return delegate.convert(value,clss); } } } On 3/9/06, Ari Suutari [EMAIL PROTECTED] wrote: Could you make Converter not final, so I could subclass it and override convert ? Ari S. - Original Message - From: Eelco Hillenius [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Thursday, March 09, 2006 10:58 AM Subject: Re: [Wicket-user] TextField and trimming blanks at end (and maybe at beginning) Another thing you can do is copy 'n paste Converter, make your adjustement, and use that as the application wide converter. I think everyone is happy then, and I don't think it is a class that'll change often if ever. Eelco On 3/9/06, Ari Suutari [EMAIL PROTECTED] wrote: Whats the risk here ? The default StringConverter in wicket does nothing when invoked for String-String conversion. Ari S. - Original Message - From: Igor Vaynberg [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Thursday, March 09, 2006 10:42 AM Subject: Re: [Wicket-user] TextField and trimming blanks at end (and maybe at beginning) this is not a kind of a problem i would want to be tracing for, especially as a user. you add your own string converter and that suddenly breaks some internal feature that you dont even know about, or maybe it even breaks some 3rd party components. i know i feel strongly about this one. how strong do you feel? should we have a vote? -Igor On 3/9/06, Eelco Hillenius [EMAIL PROTECTED] wrote: It's potentially dangerous, second that. But the argument of whether it is a good use of converters or not aside, when I put on my user hat and look at that API, *I* would expect conversion to happen from input parameters to my model properties regardless whether it has the target type or not. Eelco On 3/9/06, Igor Vaynberg [EMAIL PROTECTED] wrote: this might have nasty side effects that we do not see right now. for example converters are going to start running on things they werent running on before. how is this going to affect existing applications? furthermore afaict the intention behind converters was to have a generic /type/ conversion framework for use inside wicket core. you can see they are intended to be /type/ converters by looking at the javadoc of IConverter.convert(Object, Class). how is a trimming string converter that is running on values that are already strings and trimming them going to affect places in wicket's core outside form processing? i still dont think this is the right approach. we should think of something else. getInput would be fine if we were just starting development. But we have a big application going to production soon and I'm seeking some kind of another alternative than telling all developers to change their TextFields to MyTrimmerTextFields. so why are you just now thinking about this? sounds to me like you are dealing with this issue too late. (not that we are not willing to help you) -Igor On 3/8/06, Eelco Hillenius [EMAIL PROTECTED] wrote: I agree with Ari and I am not against removing that check. Eelco On 3/8/06, Ari Suutari [EMAIL PROTECTED] wrote: Hi, getInput would be fine if we were just starting development. But we have a big application going to production soon and I'm seeking some kind of another alternative than telling all developers to change their TextFields to MyTrimmerTextFields. Converter interface has been very handy for me before, but it just failed on this one. Why should you think Converter only as datatype converter ? I'm sure that there are plenty of use cases where manipulating also the value would be handy. Also, I don't think that removing the short-circuit done by isAssignableFrom woundn't be a performace problem ? What I have liked about wicket a lot is that there are a lot of different interfaces that one can use to get between things and alter the behaviour for local needs without creating a derived component of each standard component. This is also the reason I'm insisting about similar solution here. Ari S. - Original Message - From: Igor Vaynberg [EMAIL PROTECTED] To: wicket-user
Re: [Wicket-user] TextField and trimming blanks at end (and maybe at beginning)
Hi, setTrimValue flag would be great (maybe there should be settings for left/right trim ?). Model might be also a working solution, but somehow I feel that this kind of task belongs to upper layer. Ari S. - Original Message - From: Igor Vaynberg [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Monday, March 06, 2006 7:11 PM Subject: Re: [Wicket-user] TextField and trimming blanks at end (and maybe at beginning) this should be a flag on the textfield so you can call setTrimValue(boolean) what do others think? if not you can write a model that trims for you on setObject() -Igor On 3/6/06, Ari Suutari [EMAIL PROTECTED] wrote: Hi, What might be the simplest way to change behaviour of whole wicket application so that TextField have their input trimmed of blanks at end ? I tried to do this via converters (I have my own converter factory), but it didn't work because Converter.convert doesn't do anything if String is being assigned to String field in model (it uses isAssignableFrom for this check). Ari S. --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnkkid=110944bid=241720dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnkkid=110944bid=241720dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] TextField and trimming blanks at end (and maybe at beginning)
Hi, But simple validation is already on wicket level. Of course we could argue on this, but I really think that right place for simple input cleanup is the user interface layer: - Let's say I have a model, which has field called code. - If user types new value for this in a field, I (and even user, I think) excepts that invisible blanks at end of code are removed. It is very easy to accidentally put them there with copy paste, for example. - However, if I code something like this: m.setCode(ZAP ); I sure except that it is stored excactly as I wrote. Besides, who it would harm if TextField TextArea had a flag like this ? Nobody forces one to use it. Ari S. - Original Message - From: Johan Compagner [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Tuesday, March 07, 2006 11:35 AM Subject: Re: [Wicket-user] TextField and trimming blanks at end (and maybe at beginning) a trim flag on what? Form component? I don't like that what does it do for non text fields? trimming should belong in a model. For example a ModelWrapper where you put youre real models in. johan On 3/7/06, Ari Suutari [EMAIL PROTECTED] wrote: Hi, setTrimValue flag would be great (maybe there should be settings for left/right trim ?). Model might be also a working solution, but somehow I feel that this kind of task belongs to upper layer. Ari S. - Original Message - From: Igor Vaynberg [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Monday, March 06, 2006 7:11 PM Subject: Re: [Wicket-user] TextField and trimming blanks at end (and maybe at beginning) this should be a flag on the textfield so you can call setTrimValue(boolean) what do others think? if not you can write a model that trims for you on setObject() -Igor On 3/6/06, Ari Suutari [EMAIL PROTECTED] wrote: Hi, What might be the simplest way to change behaviour of whole wicket application so that TextField have their input trimmed of blanks at end ? I tried to do this via converters (I have my own converter factory), but it didn't work because Converter.convert doesn't do anything if String is being assigned to String field in model (it uses isAssignableFrom for this check). Ari S. --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnkkid=110944bid=241720dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnkkid=110944bid=241720dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnkkid=110944bid=241720dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] TextField and trimming blanks at end (and maybe at beginning)
I tried to use Converter at first, of course. But it doesn't work, since string-string -conversion bypasses things. (read the end of this e-mail) Ari S. - Original Message - From: Johan Compagner [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Tuesday, March 07, 2006 3:44 PM Subject: Re: [Wicket-user] TextField and trimming blanks at end (and maybe at beginning) You also could use a Converter for this i guess. johan On 3/7/06, Ari Suutari [EMAIL PROTECTED] wrote: Hi, But simple validation is already on wicket level. Of course we could argue on this, but I really think that right place for simple input cleanup is the user interface layer: - Let's say I have a model, which has field called code. - If user types new value for this in a field, I (and even user, I think) excepts that invisible blanks at end of code are removed. It is very easy to accidentally put them there with copy paste, for example. - However, if I code something like this: m.setCode(ZAP ); I sure except that it is stored excactly as I wrote. Besides, who it would harm if TextField TextArea had a flag like this ? Nobody forces one to use it. Ari S. - Original Message - From: Johan Compagner [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Tuesday, March 07, 2006 11:35 AM Subject: Re: [Wicket-user] TextField and trimming blanks at end (and maybe at beginning) a trim flag on what? Form component? I don't like that what does it do for non text fields? trimming should belong in a model. For example a ModelWrapper where you put youre real models in. johan On 3/7/06, Ari Suutari [EMAIL PROTECTED] wrote: Hi, setTrimValue flag would be great (maybe there should be settings for left/right trim ?). Model might be also a working solution, but somehow I feel that this kind of task belongs to upper layer. Ari S. - Original Message - From: Igor Vaynberg [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Monday, March 06, 2006 7:11 PM Subject: Re: [Wicket-user] TextField and trimming blanks at end (and maybe at beginning) this should be a flag on the textfield so you can call setTrimValue(boolean) what do others think? if not you can write a model that trims for you on setObject() -Igor On 3/6/06, Ari Suutari [EMAIL PROTECTED] wrote: Hi, What might be the simplest way to change behaviour of whole wicket application so that TextField have their input trimmed of blanks at end ? I tried to do this via converters (I have my own converter factory), but it didn't work because Converter.convert doesn't do anything if String is being assigned to String field in model (it uses isAssignableFrom for this check). Ari S. --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnkkid=110944bid=241720dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnkkid=110944bid=241720dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnkkid=110944bid=241720dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnkkid=110944bid=241720dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] TextField and trimming blanks at end (and maybe at beginning)
I forgot to mention that: Converter would have been my preferred solution, because with it I could have easily modified trimming behavour of all my user interface components. So if this can be made to work it would be great. Ari S. - Original Message - From: Johan Compagner [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Tuesday, March 07, 2006 3:44 PM Subject: Re: [Wicket-user] TextField and trimming blanks at end (and maybe at beginning) You also could use a Converter for this i guess. johan On 3/7/06, Ari Suutari [EMAIL PROTECTED] wrote: Hi, But simple validation is already on wicket level. Of course we could argue on this, but I really think that right place for simple input cleanup is the user interface layer: - Let's say I have a model, which has field called code. - If user types new value for this in a field, I (and even user, I think) excepts that invisible blanks at end of code are removed. It is very easy to accidentally put them there with copy paste, for example. - However, if I code something like this: m.setCode(ZAP ); I sure except that it is stored excactly as I wrote. Besides, who it would harm if TextField TextArea had a flag like this ? Nobody forces one to use it. Ari S. - Original Message - From: Johan Compagner [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Tuesday, March 07, 2006 11:35 AM Subject: Re: [Wicket-user] TextField and trimming blanks at end (and maybe at beginning) a trim flag on what? Form component? I don't like that what does it do for non text fields? trimming should belong in a model. For example a ModelWrapper where you put youre real models in. johan On 3/7/06, Ari Suutari [EMAIL PROTECTED] wrote: Hi, setTrimValue flag would be great (maybe there should be settings for left/right trim ?). Model might be also a working solution, but somehow I feel that this kind of task belongs to upper layer. Ari S. - Original Message - From: Igor Vaynberg [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Monday, March 06, 2006 7:11 PM Subject: Re: [Wicket-user] TextField and trimming blanks at end (and maybe at beginning) this should be a flag on the textfield so you can call setTrimValue(boolean) what do others think? if not you can write a model that trims for you on setObject() -Igor On 3/6/06, Ari Suutari [EMAIL PROTECTED] wrote: Hi, What might be the simplest way to change behaviour of whole wicket application so that TextField have their input trimmed of blanks at end ? I tried to do this via converters (I have my own converter factory), but it didn't work because Converter.convert doesn't do anything if String is being assigned to String field in model (it uses isAssignableFrom for this check). Ari S. --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnkkid=110944bid=241720dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnkkid=110944bid=241720dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnkkid=110944bid=241720dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnkkid=110944bid=241720dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] TextField and trimming blanks at end (and maybe at beginning)
Could someone also take a look at Converter so it could be used ? I mean this line in Converter.java: // Catch all cases where value is already the right type if (c.isAssignableFrom(value.getClass())) { return value; } This is some kind of a optimization, right ? But as a side effect it makes it impossible to do any conversion on textfield input if it is stored to String field in model (quite usual case, I think). Maybe just drop those lines ? Ari S. - Original Message - From: Eelco Hillenius [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Tuesday, March 07, 2006 7:22 PM Subject: Re: [Wicket-user] TextField and trimming blanks at end (and maybe at beginning) I don't think we need it in core. Maybe as an example somewhere. We have to get our users get used to working with custom components more, as that's one of the key points of Wicket imo :) Eelco On 3/7/06, Igor Vaynberg [EMAIL PROTECTED] wrote: but do we need this in core? its a trivial subclass, why not create it in your own codebase? if you guys want it in core you can have it, just asking. -Igor On 3/7/06, Ryan Sonnek [EMAIL PROTECTED] wrote: +1 for this solution. this seems to be the cleanest implementation to me and puts the responsibility on the developer to *use* the correct component. On 3/7/06, Igor Vaynberg [EMAIL PROTECTED] wrote: i guess thats true. you can create a subclass TrimmingTextField that overrides getInput() and trims it. -Igor On 3/7/06, Johan Compagner [EMAIL PROTECTED] wrote: So before the input goes into the required/type conversion and validators we first trim it when that flag is set?. he also could just overwrite getInput() and trim the text when called. johan On 3/7/06, Igor Vaynberg [EMAIL PROTECTED] wrote: i was also thinking a trim flag on the textfield and textarea only. are you opposed to that also Johan? -Igor On 3/7/06, Johan Compagner [EMAIL PROTECTED] wrote: You also could use a Converter for this i guess. johan On 3/7/06, Ari Suutari [EMAIL PROTECTED] wrote: Hi, But simple validation is already on wicket level. Of course we could argue on this, but I really think that right place for simple input cleanup is the user interface layer: - Let's say I have a model, which has field called code. - If user types new value for this in a field, I (and even user, I think) excepts that invisible blanks at end of code are removed. It is very easy to accidentally put them there with copy paste, for example. - However, if I code something like this: m.setCode(ZAP ); I sure except that it is stored excactly as I wrote. Besides, who it would harm if TextField TextArea had a flag like this ? Nobody forces one to use it. Ari S. - Original Message - From: Johan Compagner [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Tuesday, March 07, 2006 11:35 AM Subject: Re: [Wicket-user] TextField and trimming blanks at end (and maybe at beginning) a trim flag on what? Form component? I don't like that what does it do for non text fields? trimming should belong in a model. For example a ModelWrapper where you put youre real models in. johan On 3/7/06, Ari Suutari [EMAIL PROTECTED] wrote: Hi, setTrimValue flag would be great (maybe there should be settings for left/right trim ?). Model might be also a working solution, but somehow I feel that this kind of task belongs to upper layer. Ari S. - Original Message - From: Igor Vaynberg [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Monday, March 06, 2006 7:11 PM Subject: Re: [Wicket-user] TextField and trimming blanks at end (and maybe at beginning) this should be a flag on the textfield so you can call setTrimValue(boolean) what do others think? if not you can write a model that trims for you on setObject() -Igor On 3/6/06, Ari Suutari [EMAIL PROTECTED] wrote: Hi, What might be the simplest way to change behaviour of whole wicket application so that TextField have their input trimmed of blanks at end ? I tried to do this via converters (I have my own converter factory), but it didn't work because Converter.convert doesn't do anything if String is being assigned to String field in model (it uses isAssignableFrom for this check). Ari S
[Wicket-user] Form.getValidatorKeyPrefix results in prefix being added twice to resource key
Hi, I just updated my wicket sources from cvs and found out that IValidatorResourceKeyFactory has been replaced by Form.getValidatorKeyPrefix. Ok, I changed my form so that is has: public String getValidatorKeyPrefix() { return msg.; } This results in message like this: [Warning: String resource for 'msg.msg.RequiredValidator' not found] ie. msg. is added twice to start of key. Ari S. --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnkkid=110944bid=241720dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
[Wicket-user] TextField and trimming blanks at end (and maybe at beginning)
Hi, What might be the simplest way to change behaviour of whole wicket application so that TextField have their input trimmed of blanks at end ? I tried to do this via converters (I have my own converter factory), but it didn't work because Converter.convert doesn't do anything if String is being assigned to String field in model (it uses isAssignableFrom for this check). Ari S. --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnkkid=110944bid=241720dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] Including a Wicket page in HTML-formatted email
Hi, Maybe you could use same classes that test cases do (they render pages to file and check that output is correct) I haven't tried them (yet), but there are several Mock* classes in wicket.protocol.http package. Ari S. - Original Message - From: Nick Heudecker [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Thursday, February 23, 2006 9:31 AM Subject: [Wicket-user] Including a Wicket page in HTML-formatted email I'd like to render a Wicket page to a stream, then include that content as the HTML body of an email message. Any suggestions on how to accomplish that? Thanks for your time. --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnkkid=110944bid=241720dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] VOTE
1. Give me the constructor change and the Java 5 functionality in one pass (Wicket 2.0) Ari S. --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnkkid=103432bid=230486dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
[Wicket-user] NullPointerException when accessing resources in last wicket snapshot
Hi, I updated to lastest wicket-snapshot (wicket-1.2-20060127-0105) and have been wondering why some things which add javascript to head no longer work. For example, datepicker accesses calendar.js like: http://coffee/person.app/resources/wicket.extensions.markup.html.datepicker.DatePicker/calendar.js Which returns: java.lang.NullPointerException java.util.HashMap.putAll(HashMap.java:490) wicket.util.value.ValueMap.init(ValueMap.java:78) wicket.Resource.setParameters(Resource.java:188) wicket.protocol.http.WicketServlet.getLastModified(WicketServlet.java:381) javax.servlet.http.HttpServlet.service(HttpServlet.java:685) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) syncrontech.common.storage.TxnServletFilter.doFilter(TxnServletFilter.java:72) With previous snapshot everything worked fine. Ari S. --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnkkid=103432bid=230486dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] NullPointerException when accessing resources in last wicket snapshot
It appears that offending change is this one: http://cvs.sourceforge.net/viewcvs.py/wicket/wicket/src/java/wicket/protocol/http/WicketServlet.java?r1=1.66r2=1.67 Ari S. - Original Message - From: Ari Suutari [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Tuesday, January 31, 2006 10:10 AM Subject: [Wicket-user] NullPointerException when accessing resources in last wicket snapshot Hi, I updated to lastest wicket-snapshot (wicket-1.2-20060127-0105) and have been wondering why some things which add javascript to head no longer work. For example, datepicker accesses calendar.js like: http://coffee/person.app/resources/wicket.extensions.markup.html.datepicker.DatePicker/calendar.js Which returns: java.lang.NullPointerException java.util.HashMap.putAll(HashMap.java:490) wicket.util.value.ValueMap.init(ValueMap.java:78) wicket.Resource.setParameters(Resource.java:188) wicket.protocol.http.WicketServlet.getLastModified(WicketServlet.java:381) javax.servlet.http.HttpServlet.service(HttpServlet.java:685) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) syncrontech.common.storage.TxnServletFilter.doFilter(TxnServletFilter.java:72) With previous snapshot everything worked fine. Ari S. --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnkkid=103432bid=230486dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnkkid=103432bid=230486dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] NullPointerException when accessing resources in last wicket snapshot
The problem is that calling Resource.setParameters with null results in an attempt to construct ValueMap with null, which doesn't work. Ari S. - Original Message - From: Igor Vaynberg [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Tuesday, January 31, 2006 10:32 AM Subject: Re: [Wicket-user] NullPointerException when accessing resources in last wicket snapshot this shouldnt cause problems, however i currently do not have time to look into why it was doing so. i disabled this in HEAD and left a todo for later. -Igor On 1/31/06, Ari Suutari [EMAIL PROTECTED] wrote: It appears that offending change is this one: http://cvs.sourceforge.net/viewcvs.py/wicket/wicket/src/java/wicket/protocol/http/WicketServlet.java?r1=1.66r2=1.67 Ari S. - Original Message - From: Ari Suutari [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Tuesday, January 31, 2006 10:10 AM Subject: [Wicket-user] NullPointerException when accessing resources in last wicket snapshot Hi, I updated to lastest wicket-snapshot (wicket-1.2-20060127-0105) and have been wondering why some things which add javascript to head no longer work. For example, datepicker accesses calendar.js like: http://coffee/person.app/resources/wicket.extensions.markup.html.datepicker.DatePicker/calendar.js Which returns: java.lang.NullPointerException java.util.HashMap.putAll(HashMap.java:490) wicket.util.value.ValueMap.init(ValueMap.java:78) wicket.Resource.setParameters(Resource.java:188) wicket.protocol.http.WicketServlet.getLastModified(WicketServlet.java :381) javax.servlet.http.HttpServlet.service(HttpServlet.java:685) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) syncrontech.common.storage.TxnServletFilter.doFilter( TxnServletFilter.java:72) With previous snapshot everything worked fine. Ari S. --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnkkid=103432bid=230486dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnkkid=103432bid=230486dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnkkid=103432bid=230486dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] NullPointerException when accessing resources in last wicket snapshot
This change is *not* present in snapshot. It has been added next day after snapshot was created. Obviously this fixes the problem, I'll take Resource.java from cvs and re-compile. Ari S. - Original Message - From: Igor Vaynberg [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Tuesday, January 31, 2006 11:03 AM Subject: Re: [Wicket-user] NullPointerException when accessing resources in last wicket snapshot really? you dont have this in your wicket.Resource public final void setParameters(final Map parameters) { if (parameters == null) { Resource.parameters.set(null); } else { Resource.parameters.set(new ValueMap(parameters)); } } -Igor On 1/31/06, Ari Suutari [EMAIL PROTECTED] wrote: The problem is that calling Resource.setParameters with null results in an attempt to construct ValueMap with null, which doesn't work. Ari S. - Original Message - From: Igor Vaynberg [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Tuesday, January 31, 2006 10:32 AM Subject: Re: [Wicket-user] NullPointerException when accessing resources in last wicket snapshot this shouldnt cause problems, however i currently do not have time to look into why it was doing so. i disabled this in HEAD and left a todo for later. -Igor On 1/31/06, Ari Suutari [EMAIL PROTECTED] wrote: It appears that offending change is this one: http://cvs.sourceforge.net/viewcvs.py/wicket/wicket/src/java/wicket/protocol/http/WicketServlet.java?r1=1.66r2=1.67 Ari S. - Original Message - From: Ari Suutari [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Tuesday, January 31, 2006 10:10 AM Subject: [Wicket-user] NullPointerException when accessing resources in last wicket snapshot Hi, I updated to lastest wicket-snapshot (wicket-1.2-20060127-0105) and have been wondering why some things which add javascript to head no longer work. For example, datepicker accesses calendar.js like: http://coffee/person.app/resources/wicket.extensions.markup.html.datepicker.DatePicker/calendar.js Which returns: java.lang.NullPointerException java.util.HashMap.putAll(HashMap.java:490) wicket.util.value.ValueMap.init(ValueMap.java:78) wicket.Resource.setParameters(Resource.java:188) wicket.protocol.http.WicketServlet.getLastModified(WicketServlet.java :381) javax.servlet.http.HttpServlet.service(HttpServlet.java:685) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) syncrontech.common.storage.TxnServletFilter.doFilter( TxnServletFilter.java:72) With previous snapshot everything worked fine. Ari S. --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnkkid=103432bid=230486dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnkkid=103432bid=230486dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnkkid=103432bid=230486dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnkkid=103432bid=230486dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] NullPointerException when accessing resources in last wicket snapshot
I can now confirm that when latest Resource.java the snapshot version works ok. Ari S. - Original Message - From: Igor Vaynberg [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Tuesday, January 31, 2006 11:16 AM Subject: Re: [Wicket-user] NullPointerException when accessing resources in last wicket snapshot ahh ok i will uncomment the line in the servlet then :) -Igor On 1/31/06, Ari Suutari [EMAIL PROTECTED] wrote: This change is *not* present in snapshot. It has been added next day after snapshot was created. Obviously this fixes the problem, I'll take Resource.javafrom cvs and re-compile. Ari S. - Original Message - From: Igor Vaynberg [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Tuesday, January 31, 2006 11:03 AM Subject: Re: [Wicket-user] NullPointerException when accessing resources in last wicket snapshot really? you dont have this in your wicket.Resource public final void setParameters(final Map parameters) { if (parameters == null) { Resource.parameters.set(null); } else { Resource.parameters.set(new ValueMap(parameters)); } } -Igor On 1/31/06, Ari Suutari [EMAIL PROTECTED] wrote: The problem is that calling Resource.setParameters with null results in an attempt to construct ValueMap with null, which doesn't work. Ari S. - Original Message - From: Igor Vaynberg [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Tuesday, January 31, 2006 10:32 AM Subject: Re: [Wicket-user] NullPointerException when accessing resources in last wicket snapshot this shouldnt cause problems, however i currently do not have time to look into why it was doing so. i disabled this in HEAD and left a todo for later. -Igor On 1/31/06, Ari Suutari [EMAIL PROTECTED] wrote: It appears that offending change is this one: http://cvs.sourceforge.net/viewcvs.py/wicket/wicket/src/java/wicket/protocol/http/WicketServlet.java?r1=1.66r2=1.67 Ari S. - Original Message - From: Ari Suutari [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Tuesday, January 31, 2006 10:10 AM Subject: [Wicket-user] NullPointerException when accessing resources in last wicket snapshot Hi, I updated to lastest wicket-snapshot (wicket-1.2-20060127-0105) and have been wondering why some things which add javascript to head no longer work. For example, datepicker accesses calendar.js like: http://coffee/person.app/resources/wicket.extensions.markup.html.datepicker.DatePicker/calendar.js Which returns: java.lang.NullPointerException java.util.HashMap.putAll(HashMap.java:490) wicket.util.value.ValueMap.init(ValueMap.java:78) wicket.Resource.setParameters(Resource.java:188) wicket.protocol.http.WicketServlet.getLastModified( WicketServlet.java :381) javax.servlet.http.HttpServlet.service(HttpServlet.java:685) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) syncrontech.common.storage.TxnServletFilter.doFilter( TxnServletFilter.java:72) With previous snapshot everything worked fine. Ari S. --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnkkid=103432bid=230486dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnkkid=103432bid=230486dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnkkid=103432bid=230486dat=121642 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download
[Wicket-user] Ajax and partial rendering: one problem more
Hi, After trying to implement more partial rendering stuff with ajax I ran into another problem, which seems very much like previous problems with ajax partial rendering of panel components. Previously the problem was that components inside panel couldn't be re-rendered with ajax. A very similar problem occurs if one has a container span inside panel, like this: html: span wicket:id=container span wicket:id=component-to-be-renderedblaah blaah/span /span java: public TestPanel extends Panel { public TestPanel() { WebMarkupContainer container = new WebMarkupContainer(container); WebMarkupContainer c = new WebMarkupContainer(compoment-to-be-renderderd); container.add(c); add(container); } } This results in similar mysterious errors related to markup stream or wrong output from ajax, so it looks like the recent fix works only for simple cases. I'm using cvs head version from 1.1.2006. Ari S. --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://ads.osdn.com/?ad_id=7637alloc_id=16865op=click ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] How to render part of page (with ajax maybe)
Hi, I extended the junit with such a case. And yes, it fails as well. If you can find time to look at this before 1.2 it would be great. If could try to help too, but so far it looks like I'll have to learn more about wicket internals before. Ari S. On 12/19/05, Ari Suutari [EMAIL PROTECTED] wrote: Hi again, SimplePageTest contains a test to rerender the Panel, but not a component inside a Panel, correct? Is that the test you added? Sorry, I missed this, but yes, this is specifically the case that seems to fail. My code is not a junit test case, it is more like a very much trimmed down version of the actual application.. Ari S. Juergen On 12/19/05, Ari Suutari [EMAIL PROTECTED] wrote: Ok, I have now reproduced the problem with simple page. If I have a page, which has a panel (with it's own html template) which contains some tags it is not possible to render those panel's tags via ajax handler from phonebook example. The difference with full page render and partial render with ajax seems to be that Panel's onRender calls renderAssociatedMarkup, which sets the markupStream for panel, then renders it's components and sets it back to original stream (which is page's stream). When trying the same via ajax, this is not happening, since the Panel is not asked to render, only one component inside it. Somehow partial rendering code should do the same magic as panel does during it's rendering (ie. the stuff in renderAssociatedMarkup). Ari S. - Original Message - From: Ari Suutari [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Monday, December 19, 2005 1:25 PM Subject: Re: [Wicket-user] How to render part of page (with ajax maybe) Hi, I can now report that things mostly work. But there are still some cases where the page renders ok, but some components don't when trying to render just a component. My application is already rather complex (I'm still digging deeper in this), but it looks like that there are cases where system tries to use invalid markup to render component, which results in exception or wrong output. I have verified this by debugging to Component.onRender -.. - MarkupStream.setCurrentIndex, after which stream is at bad position. Good thing is that behaviour is consistent, ie. it is always the same component/components that don't render themself correctly via ajax. I'm trying to build a simpler test case, if possible. Ari S. - Original Message - From: Juergen Donnerstag [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Friday, December 16, 2005 3:44 PM Subject: Re: [Wicket-user] How to render part of page (with ajax maybe) That that is true as well. You can not render a component inside a view, because these component by default get removed onEndRequest for optimization reason. I think you can avoid it by calling listView.setOptimized() Juergen On 12/16/05, Ari Suutari [EMAIL PROTECTED] wrote: Hi, I did some more testing. Instead of my original case, I tried to render a component hiearchy which is at upper level in my application and it works ! Could the problem in my original case be that the component I'm trying to render is inside pageable listview ? Ari S. - Original Message - From: Ari Suutari [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Friday, December 16, 2005 2:29 PM Subject: Re: [Wicket-user] How to render part of page (with ajax maybe) Ok, (Sorry for horrible formatting of this e-mail) I took code from AjaxHandler.java to my TestAjaxHandler, so it looks like this: import wicket.*; import wicket.protocol.http.*; import wicket.protocol.http.servlet.ServletWebRequest; import wicket.response.StringResponse; import wicket.util.resource.*; public class TestAjaxHandler extends AjaxHandler { protected String getImplementationId() { return test; } protected IResourceStream getResponse() { Component[] components = new Component[1]; components[0] = getComponent(); return render(components); } public IResourceStream render(final Component[] components) { StringBufferResourceStream response = new StringBufferResourceStream(text/xml); response.append(?xml version='1.0' encoding='utf-8'?); response.append(components); if (components != null) { Response resp = new StringResponse(); RequestCycle requestCycle = RequestCycle.get(); Response origResponse = requestCycle.getResponse(); try { requestCycle.setResponse(resp); for (int i=0; i components.length; i++) { resp.write(component cssid=''![CDATA[); Component component = components[i]; boolean renderBodyOnly = component.getRenderBodyOnly(); try { component.setRenderBodyOnly(true
Re: [Wicket-user] How to render part of page (with ajax maybe)
Hi, I can now report that things mostly work. But there are still some cases where the page renders ok, but some components don't when trying to render just a component. My application is already rather complex (I'm still digging deeper in this), but it looks like that there are cases where system tries to use invalid markup to render component, which results in exception or wrong output. I have verified this by debugging to Component.onRender -.. - MarkupStream.setCurrentIndex, after which stream is at bad position. Good thing is that behaviour is consistent, ie. it is always the same component/components that don't render themself correctly via ajax. I'm trying to build a simpler test case, if possible. Ari S. - Original Message - From: Juergen Donnerstag [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Friday, December 16, 2005 3:44 PM Subject: Re: [Wicket-user] How to render part of page (with ajax maybe) That that is true as well. You can not render a component inside a view, because these component by default get removed onEndRequest for optimization reason. I think you can avoid it by calling listView.setOptimized() Juergen On 12/16/05, Ari Suutari [EMAIL PROTECTED] wrote: Hi, I did some more testing. Instead of my original case, I tried to render a component hiearchy which is at upper level in my application and it works ! Could the problem in my original case be that the component I'm trying to render is inside pageable listview ? Ari S. - Original Message - From: Ari Suutari [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Friday, December 16, 2005 2:29 PM Subject: Re: [Wicket-user] How to render part of page (with ajax maybe) Ok, (Sorry for horrible formatting of this e-mail) I took code from AjaxHandler.java to my TestAjaxHandler, so it looks like this: import wicket.*; import wicket.protocol.http.*; import wicket.protocol.http.servlet.ServletWebRequest; import wicket.response.StringResponse; import wicket.util.resource.*; public class TestAjaxHandler extends AjaxHandler { protected String getImplementationId() { return test; } protected IResourceStream getResponse() { Component[] components = new Component[1]; components[0] = getComponent(); return render(components); } public IResourceStream render(final Component[] components) { StringBufferResourceStream response = new StringBufferResourceStream(text/xml); response.append(?xml version='1.0' encoding='utf-8'?); response.append(components); if (components != null) { Response resp = new StringResponse(); RequestCycle requestCycle = RequestCycle.get(); Response origResponse = requestCycle.getResponse(); try { requestCycle.setResponse(resp); for (int i=0; i components.length; i++) { resp.write(component cssid=''![CDATA[); Component component = components[i]; boolean renderBodyOnly = component.getRenderBodyOnly(); try { component.setRenderBodyOnly(true); component.render(); } catch (Exception ex) { resp.write(ex.toString()); } finally { component.setRenderBodyOnly(renderBodyOnly); } resp.write(]]component); } } finally { requestCycle.setResponse(origResponse); } response.append(resp.toString()); } response.append(/components); return response; } } --- On my panel, I have a Label, like this: Label l = new Label(ajaxTest); l.add(new TestAjaxHandler()); add(l); When I invoke the ajax handler, the xml I got back is: ?xml version='1.0' encoding='utf-8'?componentscomponent cssid=''![CDATA[java.lang.IndexOutOfBoundsException: Index: 28, Size: 17]]component/components The exception occurs somewhere where markup stream is initialized (I can try to debug there is is helpful). Wicket is compiled from cvs as of today about 14:00 EET. Ari S. - Original Message - From: Ari Suutari [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Friday, December 16, 2005 1:38 PM Subject: Re: [Wicket-user] How to render part of page (with ajax maybe) Got it. Ari S. - Original Message - From: Juergen Donnerstag [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Friday, December 16, 2005 1:35 PM Subject: Re: [Wicket-user] How to render part of page (with ajax maybe) Try http://www.wicket-library.com/wicket-phonebook.zip to download it. Juergen On 12/16/05, Juergen Donnerstag [EMAIL PROTECTED] wrote: sourceforge is currently blocking all mails with .zip attachments. I'll make it available for download tonight. Juergen On 12/16/05, Juergen Donnerstag [EMAIL PROTECTED] wrote: Please find attached a extended version of the phonebook example which uses an AjaxHandler to handle the CheckBox and the Counter. Note: this example is only working with a very recent version of wicket CVS HEAD
Re: [Wicket-user] How to render part of page (with ajax maybe)
Ok, I have now reproduced the problem with simple page. If I have a page, which has a panel (with it's own html template) which contains some tags it is not possible to render those panel's tags via ajax handler from phonebook example. The difference with full page render and partial render with ajax seems to be that Panel's onRender calls renderAssociatedMarkup, which sets the markupStream for panel, then renders it's components and sets it back to original stream (which is page's stream). When trying the same via ajax, this is not happening, since the Panel is not asked to render, only one component inside it. Somehow partial rendering code should do the same magic as panel does during it's rendering (ie. the stuff in renderAssociatedMarkup). Ari S. - Original Message - From: Ari Suutari [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Monday, December 19, 2005 1:25 PM Subject: Re: [Wicket-user] How to render part of page (with ajax maybe) Hi, I can now report that things mostly work. But there are still some cases where the page renders ok, but some components don't when trying to render just a component. My application is already rather complex (I'm still digging deeper in this), but it looks like that there are cases where system tries to use invalid markup to render component, which results in exception or wrong output. I have verified this by debugging to Component.onRender -.. - MarkupStream.setCurrentIndex, after which stream is at bad position. Good thing is that behaviour is consistent, ie. it is always the same component/components that don't render themself correctly via ajax. I'm trying to build a simpler test case, if possible. Ari S. - Original Message - From: Juergen Donnerstag [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Friday, December 16, 2005 3:44 PM Subject: Re: [Wicket-user] How to render part of page (with ajax maybe) That that is true as well. You can not render a component inside a view, because these component by default get removed onEndRequest for optimization reason. I think you can avoid it by calling listView.setOptimized() Juergen On 12/16/05, Ari Suutari [EMAIL PROTECTED] wrote: Hi, I did some more testing. Instead of my original case, I tried to render a component hiearchy which is at upper level in my application and it works ! Could the problem in my original case be that the component I'm trying to render is inside pageable listview ? Ari S. - Original Message - From: Ari Suutari [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Friday, December 16, 2005 2:29 PM Subject: Re: [Wicket-user] How to render part of page (with ajax maybe) Ok, (Sorry for horrible formatting of this e-mail) I took code from AjaxHandler.java to my TestAjaxHandler, so it looks like this: import wicket.*; import wicket.protocol.http.*; import wicket.protocol.http.servlet.ServletWebRequest; import wicket.response.StringResponse; import wicket.util.resource.*; public class TestAjaxHandler extends AjaxHandler { protected String getImplementationId() { return test; } protected IResourceStream getResponse() { Component[] components = new Component[1]; components[0] = getComponent(); return render(components); } public IResourceStream render(final Component[] components) { StringBufferResourceStream response = new StringBufferResourceStream(text/xml); response.append(?xml version='1.0' encoding='utf-8'?); response.append(components); if (components != null) { Response resp = new StringResponse(); RequestCycle requestCycle = RequestCycle.get(); Response origResponse = requestCycle.getResponse(); try { requestCycle.setResponse(resp); for (int i=0; i components.length; i++) { resp.write(component cssid=''![CDATA[); Component component = components[i]; boolean renderBodyOnly = component.getRenderBodyOnly(); try { component.setRenderBodyOnly(true); component.render(); } catch (Exception ex) { resp.write(ex.toString()); } finally { component.setRenderBodyOnly(renderBodyOnly); } resp.write(]]component); } } finally { requestCycle.setResponse(origResponse); } response.append(resp.toString()); } response.append(/components); return response; } } --- On my panel, I have a Label, like this: Label l = new Label(ajaxTest); l.add(new TestAjaxHandler()); add(l); When I invoke the ajax handler, the xml I got back is: ?xml version='1.0' encoding='utf-8'?componentscomponent cssid=''![CDATA[java.lang.IndexOutOfBoundsException: Index: 28, Size: 17]]component/components The exception occurs somewhere where markup stream is initialized (I can try to debug there is is helpful). Wicket is compiled from cvs as of today about 14:00 EET. Ari S. - Original
Re: [Wicket-user] How to render part of page (with ajax maybe)
Hi, It might that Panel is the problem, but I'm not sure you explanation is right. Well, I'm almost sure that my explanation is not right :-) The test code is available at http://www.suutari.iki.fi/tmp/simpletest.zip (it shows a simple page, with a link. Click the link to launch the ajax rendering, it shows the response in browser) Ari S. Panel.java protected void onRender() { // Render the tag that included this html compoment final MarkupStream markupStream = findMarkupStream(); validateMarkupStream(markupStream); renderAssociatedMarkup(panel, ...) ... } validateMarkupStream() either sets or reuses the markup and only afterwards renderAssociatedMarkup is called. Note: The markup associated with a Panel is the tag referencing the panel (span wicket:id=myPanel). Could please provide me the source and I'll check it. SimplePageTest contains a test to rerender the Panel, but not a component inside a Panel, correct? Is that the test you added? Juergen On 12/19/05, Ari Suutari [EMAIL PROTECTED] wrote: Ok, I have now reproduced the problem with simple page. If I have a page, which has a panel (with it's own html template) which contains some tags it is not possible to render those panel's tags via ajax handler from phonebook example. The difference with full page render and partial render with ajax seems to be that Panel's onRender calls renderAssociatedMarkup, which sets the markupStream for panel, then renders it's components and sets it back to original stream (which is page's stream). When trying the same via ajax, this is not happening, since the Panel is not asked to render, only one component inside it. Somehow partial rendering code should do the same magic as panel does during it's rendering (ie. the stuff in renderAssociatedMarkup). Ari S. - Original Message - From: Ari Suutari [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Monday, December 19, 2005 1:25 PM Subject: Re: [Wicket-user] How to render part of page (with ajax maybe) Hi, I can now report that things mostly work. But there are still some cases where the page renders ok, but some components don't when trying to render just a component. My application is already rather complex (I'm still digging deeper in this), but it looks like that there are cases where system tries to use invalid markup to render component, which results in exception or wrong output. I have verified this by debugging to Component.onRender -.. - MarkupStream.setCurrentIndex, after which stream is at bad position. Good thing is that behaviour is consistent, ie. it is always the same component/components that don't render themself correctly via ajax. I'm trying to build a simpler test case, if possible. Ari S. - Original Message - From: Juergen Donnerstag [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Friday, December 16, 2005 3:44 PM Subject: Re: [Wicket-user] How to render part of page (with ajax maybe) That that is true as well. You can not render a component inside a view, because these component by default get removed onEndRequest for optimization reason. I think you can avoid it by calling listView.setOptimized() Juergen On 12/16/05, Ari Suutari [EMAIL PROTECTED] wrote: Hi, I did some more testing. Instead of my original case, I tried to render a component hiearchy which is at upper level in my application and it works ! Could the problem in my original case be that the component I'm trying to render is inside pageable listview ? Ari S. - Original Message - From: Ari Suutari [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Friday, December 16, 2005 2:29 PM Subject: Re: [Wicket-user] How to render part of page (with ajax maybe) Ok, (Sorry for horrible formatting of this e-mail) I took code from AjaxHandler.java to my TestAjaxHandler, so it looks like this: import wicket.*; import wicket.protocol.http.*; import wicket.protocol.http.servlet.ServletWebRequest; import wicket.response.StringResponse; import wicket.util.resource.*; public class TestAjaxHandler extends AjaxHandler { protected String getImplementationId() { return test; } protected IResourceStream getResponse() { Component[] components = new Component[1]; components[0] = getComponent(); return render(components); } public IResourceStream render(final Component[] components) { StringBufferResourceStream response = new StringBufferResourceStream(text/xml); response.append(?xml version='1.0' encoding='utf-8'?); response.append(components); if (components != null) { Response resp = new StringResponse(); RequestCycle requestCycle = RequestCycle.get(); Response origResponse = requestCycle.getResponse(); try { requestCycle.setResponse(resp); for (int i=0; i components.length; i
Re: [Wicket-user] How to render part of page (with ajax maybe)
Hi again, SimplePageTest contains a test to rerender the Panel, but not a component inside a Panel, correct? Is that the test you added? Sorry, I missed this, but yes, this is specifically the case that seems to fail. My code is not a junit test case, it is more like a very much trimmed down version of the actual application.. Ari S. Juergen On 12/19/05, Ari Suutari [EMAIL PROTECTED] wrote: Ok, I have now reproduced the problem with simple page. If I have a page, which has a panel (with it's own html template) which contains some tags it is not possible to render those panel's tags via ajax handler from phonebook example. The difference with full page render and partial render with ajax seems to be that Panel's onRender calls renderAssociatedMarkup, which sets the markupStream for panel, then renders it's components and sets it back to original stream (which is page's stream). When trying the same via ajax, this is not happening, since the Panel is not asked to render, only one component inside it. Somehow partial rendering code should do the same magic as panel does during it's rendering (ie. the stuff in renderAssociatedMarkup). Ari S. - Original Message - From: Ari Suutari [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Monday, December 19, 2005 1:25 PM Subject: Re: [Wicket-user] How to render part of page (with ajax maybe) Hi, I can now report that things mostly work. But there are still some cases where the page renders ok, but some components don't when trying to render just a component. My application is already rather complex (I'm still digging deeper in this), but it looks like that there are cases where system tries to use invalid markup to render component, which results in exception or wrong output. I have verified this by debugging to Component.onRender -.. - MarkupStream.setCurrentIndex, after which stream is at bad position. Good thing is that behaviour is consistent, ie. it is always the same component/components that don't render themself correctly via ajax. I'm trying to build a simpler test case, if possible. Ari S. - Original Message - From: Juergen Donnerstag [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Friday, December 16, 2005 3:44 PM Subject: Re: [Wicket-user] How to render part of page (with ajax maybe) That that is true as well. You can not render a component inside a view, because these component by default get removed onEndRequest for optimization reason. I think you can avoid it by calling listView.setOptimized() Juergen On 12/16/05, Ari Suutari [EMAIL PROTECTED] wrote: Hi, I did some more testing. Instead of my original case, I tried to render a component hiearchy which is at upper level in my application and it works ! Could the problem in my original case be that the component I'm trying to render is inside pageable listview ? Ari S. - Original Message - From: Ari Suutari [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Friday, December 16, 2005 2:29 PM Subject: Re: [Wicket-user] How to render part of page (with ajax maybe) Ok, (Sorry for horrible formatting of this e-mail) I took code from AjaxHandler.java to my TestAjaxHandler, so it looks like this: import wicket.*; import wicket.protocol.http.*; import wicket.protocol.http.servlet.ServletWebRequest; import wicket.response.StringResponse; import wicket.util.resource.*; public class TestAjaxHandler extends AjaxHandler { protected String getImplementationId() { return test; } protected IResourceStream getResponse() { Component[] components = new Component[1]; components[0] = getComponent(); return render(components); } public IResourceStream render(final Component[] components) { StringBufferResourceStream response = new StringBufferResourceStream(text/xml); response.append(?xml version='1.0' encoding='utf-8'?); response.append(components); if (components != null) { Response resp = new StringResponse(); RequestCycle requestCycle = RequestCycle.get(); Response origResponse = requestCycle.getResponse(); try { requestCycle.setResponse(resp); for (int i=0; i components.length; i++) { resp.write(component cssid=''![CDATA[); Component component = components[i]; boolean renderBodyOnly = component.getRenderBodyOnly(); try { component.setRenderBodyOnly(true); component.render(); } catch (Exception ex) { resp.write(ex.toString()); } finally { component.setRenderBodyOnly(renderBodyOnly); } resp.write(]]component); } } finally { requestCycle.setResponse(origResponse); } response.append(resp.toString()); } response.append(/components); return response
Re: [Wicket-user] How to render part of page (with ajax maybe)
Hi, okay I'm kinda lost and I think i'm either doing somehting fundamentally wrong or missing something really stupid.. Me too. I tried to study the junit test that (re)renders a component, but cannot get it working with browser. What I tried was to create AjaxHandler to component and attempt to render that component in ajax handler's respond method: protected void respond() { RequestCycle cycle = RequestCycle.get(); cycle.setRequestTarget(new ComponentRequestTarget(c)); } It spits out following exception: [http-80-Processor24] ERROR Index: 30, Size: 17 java.lang.IndexOutOfBoundsException: Index: 30, Size: 17 at java.util.ArrayList.RangeCheck(ArrayList.java:547) at java.util.ArrayList.get(ArrayList.java:322) at java.util.Collections$UnmodifiableList.get(Collections.java:1155) at wicket.markup.Markup.get(Markup.java:143) at wicket.markup.MarkupStream.get(MarkupStream.java:324) at wicket.markup.MarkupStream.setCurrentIndex(MarkupStream.java:202) at wicket.Component.validateMarkupStream(Component.java:1442) at wicket.markup.html.panel.Panel.onRender(Panel.java:79) When I look at markupStream members in debugger, the don't look like markup of my panel. I would really appreciate a list of steps required to get a component rendered so that result goes back to browser. I don't need a complete implementation as I can use cvs version of wicket and fill in missing parts myself (if they are not of huge) but currently I must admit that I don't know where to start from. Ari S. this is the error I get when i call someRequestCycle.request(myLabel) I studied the simplepageTest rerender calls, I created a ComponentRequestTarget, set the target, and tried a lot of other things.. i keep getting the session error. 10:52:51.477 WARN!! Exception for /dojo/app?path=2:link1interface=ILinkListener java.lang.IllegalStateException: Internal Error: Page not attached to session. the generated page is span wicket:id=widreplaced/spanhtml head titleError 500 Internal+Error%3A+Page+not+attached+to+session/title /head body h2HTTP ERROR: 500 Internal+Error%3A+Page+not+attached+to+session/h2 pRequestURI=/dojo/app/p pismalla href=http://jetty.mortbay.org;Powered by Jetty:///a/small/i/p /body /html Eelco Hillenius wrote: Yeah. I'm just saying that you /should/ work with request targets instead of trying to render the component directly. Eelco On 12/2/05, Johan Compagner [EMAIL PROTECTED] wrote: that is what RequestCycle.request(component) does (and how the SimplePageTest works) On 12/2/05, Eelco Hillenius [EMAIL PROTECTED] wrote: you should use requestcycle.setResponseTarget with ComponentRequestTarget Eelco On 12/2/05, Marco van de Haar [EMAIL PROTECTED] wrote: Is there any concrete (simple) code example for rerendering a part of a page? I tried myRequestCycle.request(myComponent), but all I got were huge errors in my console. Ari Suutari wrote: Hi, Project wicket-stuff contains already some AJAX components (scriptaculous and dojo based ones). Wicket core contain a AjaxHandler and we provide a yet experimental component level re-render (requestcycle.render(component). Though the latter one is no yet accessible through a URL (that piece of code is missing; we've only tested it with junit tests). So, yes some parts have been done, it is not ready yet, but I think we are on a good way and some features can be used already. Because it is in an dev stage, feedback is very much welcome. So, If I create my own component (that I'm going to re-render with ajax) and add an interface based on IRequestListener I could build an URL that calls my component via that interface and returns re-rendering of component using requestcycle.render(this) ? Or is there a better way ? I took a look how IOnChangeListener is implemented on DropDownChoice and it looks rather simple to implement such a thing (although DropDownChoice uses it for different purposes) Ari S. Juergen On 11/25/05, Ari Suutari [EMAIL PROTECTED] wrote: Hi, We are developing applications, which have kind of a content 'push' system, ie. data arrives from factory automation and we visualize it on-line. Our traditional approach to this has been to send the data to browser (via applet and additional tcp socket) and use javascript to render it. However, I'm a little bit tempted to adjust our architecture so that we would only push a notification of change and then use ajax to re-render part of page. Would it be possible with wicket ? Typically, the part that would be re-rendered with ajax is just a text field or a table (rendering whole page is too slow, since the data rate can be quite fast; also flashes too much for slower cases). There was some discussion on mailing list that something like this would be in 1.2 ? Ari S
Re: [Wicket-user] How to render part of page (with ajax maybe)
Got it. Ari S. - Original Message - From: Juergen Donnerstag [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Friday, December 16, 2005 1:35 PM Subject: Re: [Wicket-user] How to render part of page (with ajax maybe) Try http://www.wicket-library.com/wicket-phonebook.zip to download it. Juergen On 12/16/05, Juergen Donnerstag [EMAIL PROTECTED] wrote: sourceforge is currently blocking all mails with .zip attachments. I'll make it available for download tonight. Juergen On 12/16/05, Juergen Donnerstag [EMAIL PROTECTED] wrote: Please find attached a extended version of the phonebook example which uses an AjaxHandler to handle the CheckBox and the Counter. Note: this example is only working with a very recent version of wicket CVS HEAD. And please note this is a starting point only (which is why it is not in cvs). It is not a sophisticated solution. I guess you found the dojo and scriptacoulous examples in wicket-stuff already? Juergen On 12/16/05, Ari Suutari [EMAIL PROTECTED] wrote: Hi, okay I'm kinda lost and I think i'm either doing somehting fundamentally wrong or missing something really stupid.. Me too. I tried to study the junit test that (re)renders a component, but cannot get it working with browser. What I tried was to create AjaxHandler to component and attempt to render that component in ajax handler's respond method: protected void respond() { RequestCycle cycle = RequestCycle.get(); cycle.setRequestTarget(new ComponentRequestTarget(c)); } It spits out following exception: [http-80-Processor24] ERROR Index: 30, Size: 17 java.lang.IndexOutOfBoundsException: Index: 30, Size: 17 at java.util.ArrayList.RangeCheck(ArrayList.java:547) at java.util.ArrayList.get(ArrayList.java:322) at java.util.Collections$UnmodifiableList.get(Collections.java:1155) at wicket.markup.Markup.get(Markup.java:143) at wicket.markup.MarkupStream.get(MarkupStream.java:324) at wicket.markup.MarkupStream.setCurrentIndex(MarkupStream.java:202) at wicket.Component.validateMarkupStream(Component.java:1442) at wicket.markup.html.panel.Panel.onRender(Panel.java:79) When I look at markupStream members in debugger, the don't look like markup of my panel. I would really appreciate a list of steps required to get a component rendered so that result goes back to browser. I don't need a complete implementation as I can use cvs version of wicket and fill in missing parts myself (if they are not of huge) but currently I must admit that I don't know where to start from. Ari S. this is the error I get when i call someRequestCycle.request(myLabel) I studied the simplepageTest rerender calls, I created a ComponentRequestTarget, set the target, and tried a lot of other things.. i keep getting the session error. 10:52:51.477 WARN!! Exception for /dojo/app?path=2:link1interface=ILinkListener java.lang.IllegalStateException: Internal Error: Page not attached to session. the generated page is span wicket:id=widreplaced/spanhtml head titleError 500 Internal+Error%3A+Page+not+attached+to+session/title /head body h2HTTP ERROR: 500 Internal+Error%3A+Page+not+attached+to+session/h2 pRequestURI=/dojo/app/p pismalla href=http://jetty.mortbay.org;Powered by Jetty:///a/small/i/p /body /html Eelco Hillenius wrote: Yeah. I'm just saying that you /should/ work with request targets instead of trying to render the component directly. Eelco On 12/2/05, Johan Compagner [EMAIL PROTECTED] wrote: that is what RequestCycle.request(component) does (and how the SimplePageTest works) On 12/2/05, Eelco Hillenius [EMAIL PROTECTED] wrote: you should use requestcycle.setResponseTarget with ComponentRequestTarget Eelco On 12/2/05, Marco van de Haar [EMAIL PROTECTED] wrote: Is there any concrete (simple) code example for rerendering a part of a page? I tried myRequestCycle.request(myComponent), but all I got were huge errors in my console. Ari Suutari wrote: Hi, Project wicket-stuff contains already some AJAX components (scriptaculous and dojo based ones). Wicket core contain a AjaxHandler and we provide a yet experimental component level re-render (requestcycle.render(component). Though the latter one is no yet accessible through a URL (that piece of code is missing; we've only tested it with junit tests). So, yes some parts have been done, it is not ready yet, but I think we are on a good way and some features can be used already. Because it is in an dev stage, feedback is very much welcome. So, If I create my own component (that I'm going to re-render with ajax) and add an interface based on IRequestListener I could
Re: [Wicket-user] How to render part of page (with ajax maybe)
Ok, (Sorry for horrible formatting of this e-mail) I took code from AjaxHandler.java to my TestAjaxHandler, so it looks like this: import wicket.*; import wicket.protocol.http.*; import wicket.protocol.http.servlet.ServletWebRequest; import wicket.response.StringResponse; import wicket.util.resource.*; public class TestAjaxHandler extends AjaxHandler { protected String getImplementationId() { return test; } protected IResourceStream getResponse() { Component[] components = new Component[1]; components[0] = getComponent(); return render(components); } public IResourceStream render(final Component[] components) { StringBufferResourceStream response = new StringBufferResourceStream(text/xml); response.append(?xml version='1.0' encoding='utf-8'?); response.append(components); if (components != null) { Response resp = new StringResponse(); RequestCycle requestCycle = RequestCycle.get(); Response origResponse = requestCycle.getResponse(); try { requestCycle.setResponse(resp); for (int i=0; i components.length; i++) { resp.write(component cssid=''![CDATA[); Component component = components[i]; boolean renderBodyOnly = component.getRenderBodyOnly(); try { component.setRenderBodyOnly(true); component.render(); } catch (Exception ex) { resp.write(ex.toString()); } finally { component.setRenderBodyOnly(renderBodyOnly); } resp.write(]]component); } } finally { requestCycle.setResponse(origResponse); } response.append(resp.toString()); } response.append(/components); return response; } } --- On my panel, I have a Label, like this: Label l = new Label(ajaxTest); l.add(new TestAjaxHandler()); add(l); When I invoke the ajax handler, the xml I got back is: ?xml version='1.0' encoding='utf-8'?componentscomponent cssid=''![CDATA[java.lang.IndexOutOfBoundsException: Index: 28, Size: 17]]component/components The exception occurs somewhere where markup stream is initialized (I can try to debug there is is helpful). Wicket is compiled from cvs as of today about 14:00 EET. Ari S. - Original Message - From: Ari Suutari [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Friday, December 16, 2005 1:38 PM Subject: Re: [Wicket-user] How to render part of page (with ajax maybe) Got it. Ari S. - Original Message - From: Juergen Donnerstag [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Friday, December 16, 2005 1:35 PM Subject: Re: [Wicket-user] How to render part of page (with ajax maybe) Try http://www.wicket-library.com/wicket-phonebook.zip to download it. Juergen On 12/16/05, Juergen Donnerstag [EMAIL PROTECTED] wrote: sourceforge is currently blocking all mails with .zip attachments. I'll make it available for download tonight. Juergen On 12/16/05, Juergen Donnerstag [EMAIL PROTECTED] wrote: Please find attached a extended version of the phonebook example which uses an AjaxHandler to handle the CheckBox and the Counter. Note: this example is only working with a very recent version of wicket CVS HEAD. And please note this is a starting point only (which is why it is not in cvs). It is not a sophisticated solution. I guess you found the dojo and scriptacoulous examples in wicket-stuff already? Juergen On 12/16/05, Ari Suutari [EMAIL PROTECTED] wrote: Hi, okay I'm kinda lost and I think i'm either doing somehting fundamentally wrong or missing something really stupid.. Me too. I tried to study the junit test that (re)renders a component, but cannot get it working with browser. What I tried was to create AjaxHandler to component and attempt to render that component in ajax handler's respond method: protected void respond() { RequestCycle cycle = RequestCycle.get(); cycle.setRequestTarget(new ComponentRequestTarget(c)); } It spits out following exception: [http-80-Processor24] ERROR Index: 30, Size: 17 java.lang.IndexOutOfBoundsException: Index: 30, Size: 17 at java.util.ArrayList.RangeCheck(ArrayList.java:547) at java.util.ArrayList.get(ArrayList.java:322) at java.util.Collections$UnmodifiableList.get(Collections.java:1155) at wicket.markup.Markup.get(Markup.java:143) at wicket.markup.MarkupStream.get(MarkupStream.java:324) at wicket.markup.MarkupStream.setCurrentIndex(MarkupStream.java:202) at wicket.Component.validateMarkupStream(Component.java:1442) at wicket.markup.html.panel.Panel.onRender(Panel.java:79) When I look at markupStream members in debugger, the don't look like markup of my panel. I would really appreciate a list of steps required to get a component rendered so that result goes back to browser. I don't need a complete implementation as I can use cvs version of wicket and fill in missing parts myself (if they are not of huge) but currently I must admit that I don't
[Wicket-user] How to render part of page (with ajax maybe)
Hi, We are developing applications, which have kind of a content 'push' system, ie. data arrives from factory automation and we visualize it on-line. Our traditional approach to this has been to send the data to browser (via applet and additional tcp socket) and use javascript to render it. However, I'm a little bit tempted to adjust our architecture so that we would only push a notification of change and then use ajax to re-render part of page. Would it be possible with wicket ? Typically, the part that would be re-rendered with ajax is just a text field or a table (rendering whole page is too slow, since the data rate can be quite fast; also flashes too much for slower cases). There was some discussion on mailing list that something like this would be in 1.2 ? Ari S. --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://ads.osdn.com/?ad_id=7637alloc_id=16865op=click ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] How to render part of page (with ajax maybe)
Hi, Project wicket-stuff contains already some AJAX components (scriptaculous and dojo based ones). Wicket core contain a AjaxHandler and we provide a yet experimental component level re-render (requestcycle.render(component). Though the latter one is no yet accessible through a URL (that piece of code is missing; we've only tested it with junit tests). So, yes some parts have been done, it is not ready yet, but I think we are on a good way and some features can be used already. Because it is in an dev stage, feedback is very much welcome. So, If I create my own component (that I'm going to re-render with ajax) and add an interface based on IRequestListener I could build an URL that calls my component via that interface and returns re-rendering of component using requestcycle.render(this) ? Or is there a better way ? I took a look how IOnChangeListener is implemented on DropDownChoice and it looks rather simple to implement such a thing (although DropDownChoice uses it for different purposes) Ari S. Juergen On 11/25/05, Ari Suutari [EMAIL PROTECTED] wrote: Hi, We are developing applications, which have kind of a content 'push' system, ie. data arrives from factory automation and we visualize it on-line. Our traditional approach to this has been to send the data to browser (via applet and additional tcp socket) and use javascript to render it. However, I'm a little bit tempted to adjust our architecture so that we would only push a notification of change and then use ajax to re-render part of page. Would it be possible with wicket ? Typically, the part that would be re-rendered with ajax is just a text field or a table (rendering whole page is too slow, since the data rate can be quite fast; also flashes too much for slower cases). There was some discussion on mailing list that something like this would be in 1.2 ? Ari S. --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://ads.osdn.com/?ad_id=7637alloc_id=16865op=click ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://ads.osdn.com/?ad_idv37alloc_id865opÃŒk ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://ads.osdn.com/?ad_idv37alloc_id865op=click ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] wicket:head and wicket:extend
Hi, Tried it. Doesn't work, same results. Ari S. - Original Message - From: Johan Compagner [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Friday, October 07, 2005 3:06 PM Subject: Re: [Wicket-user] wicket:head and wicket:extend try this: DeriverPanel.html: !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd; html xmlns=http://www.w3.org/1999/xhtml; head wicket:head this should go to page head tag! /wicket:head /head body wicket:extend derived panel stuffbr /wicket:extend /body /html On 10/7/05, Ari Suutari [EMAIL PROTECTED] wrote: Hi, Here is a simple example: TestPage, BasePanel and DerivedPanel. DerivedPanel tries to add stuff to head, using wicket:head. It works if I use wicket:panel in DerivedPanel instead of wicket:extend. Ari S. TestPage.java: - package syncrontech.examples.blastfurnace.wicket.test; import wicket.markup.html.WebPage; import wicket.markup.html.border.BoxBorder; import wicket.markup.html.form.TextField; import wicket.markup.html.image.Image; public class TestPage extends WebPage { public TestPage() { add(new DerivedPanel()); } } TestPage.html: !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd; html xmlns=http://www.w3.org/1999/xhtml; head /head body from pagebr span wicket:id=panel/span back to pagebr /body /html BasePanel.java: -- package syncrontech.examples.blastfurnace.wicket.test; import wicket.markup.html.panel.Panel; public class BasePanel extends Panel { public BasePanel() { super(panel); } } BasePanel.html: -- !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd; html xmlns=http://www.w3.org/1999/xhtml; head /head body wicket:panel from basepanelbr wicket:child/ back to basepanelbr /wicket:panel /body /html DeriverPanel.java: - package syncrontech.examples.blastfurnace.wicket.test; import wicket.markup.html.panel.Panel; public class DerivedPanel extends BasePanel { public DerivedPanel() { } } DeriverPanel.html: !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd; html xmlns=http://www.w3.org/1999/xhtml; head /head body wicket:head this should go to page head tag! /wicket:head wicket:extend derived panel stuffbr /wicket:extend /body /html - Original Message - From: Juergen Donnerstag [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Friday, October 07, 2005 12:35 PM Subject: Re: [Wicket-user] wicket:head and wicket:extend Ari, there are junit test cases in src/test which should test exactly what you ask for. That is, the functionality already exists, but obviously not flawless. Good you please be a bit more precise (may be a stripped down test case) which shows the problem. Thanks Juergen On 10/7/05, Ari Suutari [EMAIL PROTECTED] wrote: Hi, I just tried to use wicket:head with Panels. Works very nicely when I have panel html as wicket:panel. However, when using markup inheritance (I like it very much !) and wicket:extend it looks like the wicket:head doesn't add anything to head. Would be great if this worked also. Ari S. --- This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, discussions, and more. http://solutions.newsforge.com/ibmarch.tmpl ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, discussions, and more. http://solutions.newsforge.com/ibmarch.tmpl ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, discussions, and more. http://solutions.newsforge.com/ibmarch.tmpl ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, discussions, and more. http://solutions.newsforge.com/ibmarch.tmpl ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] wicket:head and wicket:extend
Hi, There seems to another thread related to this same issue in dev-list. See Problem with markup inheritance and header contributions in panels. It has a workaround, things work if one puts an empty wicket:head/wicket:head to base classes html file. Ari S. - Original Message - From: Juergen Donnerstag [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Friday, October 07, 2005 3:40 PM Subject: Re: [Wicket-user] wicket:head and wicket:extend Yes, Johan is right. wicket:head's parent tag must either be html or head. We should implement a check for that. Juergen On 10/7/05, Johan Compagner [EMAIL PROTECTED] wrote: try this: DeriverPanel.html: !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd html xmlns=http://www.w3.org/1999/xhtml; head wicket:head this should go to page head tag! /wicket:head /head body wicket:extend derived panel stuffbr /wicket:extend /body /html On 10/7/05, Ari Suutari [EMAIL PROTECTED] wrote: Hi, Here is a simple example: TestPage, BasePanel and DerivedPanel. DerivedPanel tries to add stuff to head, using wicket:head. It works if I use wicket:panel in DerivedPanel instead of wicket:extend. Ari S. TestPage.java: - package syncrontech.examples.blastfurnace.wicket.test; import wicket.markup.html.WebPage; import wicket.markup.html.border.BoxBorder; import wicket.markup.html.form.TextField; import wicket.markup.html.image.Image; public class TestPage extends WebPage { public TestPage() { add(new DerivedPanel()); } } TestPage.html : !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd html xmlns=http://www.w3.org/1999/xhtml; head /head body from pagebr span wicket:id=panel/span back to pagebr /body /html BasePanel.java: -- package syncrontech.examples.blastfurnace.wicket.test; import wicket.markup.html.panel.Panel; public class BasePanel extends Panel { public BasePanel() { super(panel); } } BasePanel.html: -- !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd; html xmlns=http://www.w3.org/1999/xhtml head /head body wicket:panel from basepanelbr wicket:child/ back to basepanelbr /wicket:panel /body /html DeriverPanel.java: - package syncrontech.examples.blastfurnace.wicket.test; import wicket.markup.html.panel.Panel; public class DerivedPanel extends BasePanel { public DerivedPanel() { } } DeriverPanel.html: !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd; html xmlns=http://www.w3.org/1999/xhtml; head /head body wicket:head this should go to page head tag! /wicket:head wicket:extend derived panel stuffbr /wicket:extend /body /html - Original Message - From: Juergen Donnerstag [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Friday, October 07, 2005 12:35 PM Subject: Re: [Wicket-user] wicket:head and wicket:extend Ari, there are junit test cases in src/test which should test exactly what you ask for. That is, the functionality already exists, but obviously not flawless. Good you please be a bit more precise (may be a stripped down test case) which shows the problem. Thanks Juergen On 10/7/05, Ari Suutari [EMAIL PROTECTED] wrote: Hi, I just tried to use wicket:head with Panels. Works very nicely when I have panel html as wicket:panel. However, when using markup inheritance (I like it very much !) and wicket:extend it looks like the wicket:head doesn't add anything to head. Would be great if this worked also. Ari S. --- This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, discussions, and more. http://solutions.newsforge.com/ibmarch.tmpl ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, discussions, and more. http://solutions.newsforge.com/ibmarch.tmpl ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, discussions, and more. http
[Wicket-user] stylesheets, autolinking and localization+styles
Hi, I'm having problems when trying to use session.setStyle with css files. If I put following snippet to my html: wicket:link autolink=true link href=../../../common/themes/main.css rel=stylesheet type=text/css / /wicket:link I have two css files, main.css and main_lightblue.css. With this html, wicket gives back main.css as expected when rendering. However, when I use session.setStyle(lightblue) I still get back main.css, not main_lightblue.css as I would expect (Changing the style seems to work on html files, wicket searches for ones with _lightblue.html ending). Is this expected to work or should it be done differently ? Ari S. --- This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, discussions, and more. http://solutions.newsforge.com/ibmarch.tmpl ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
[Wicket-user] wicket:head and wicket:extend
Hi, I just tried to use wicket:head with Panels. Works very nicely when I have panel html as wicket:panel. However, when using markup inheritance (I like it very much !) and wicket:extend it looks like the wicket:head doesn't add anything to head. Would be great if this worked also. Ari S. --- This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, discussions, and more. http://solutions.newsforge.com/ibmarch.tmpl ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] wicket:head and wicket:extend
Hi, Here is a simple example: TestPage, BasePanel and DerivedPanel. DerivedPanel tries to add stuff to head, using wicket:head. It works if I use wicket:panel in DerivedPanel instead of wicket:extend. Ari S. TestPage.java: - package syncrontech.examples.blastfurnace.wicket.test; import wicket.markup.html.WebPage; import wicket.markup.html.border.BoxBorder; import wicket.markup.html.form.TextField; import wicket.markup.html.image.Image; public class TestPage extends WebPage { public TestPage() { add(new DerivedPanel()); } } TestPage.html: !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd; html xmlns=http://www.w3.org/1999/xhtml; head /head body from pagebr span wicket:id=panel/span back to pagebr /body /html BasePanel.java: -- package syncrontech.examples.blastfurnace.wicket.test; import wicket.markup.html.panel.Panel; public class BasePanel extends Panel { public BasePanel() { super(panel); } } BasePanel.html: -- !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd; html xmlns=http://www.w3.org/1999/xhtml; head /head body wicket:panel from basepanelbr wicket:child/ back to basepanelbr /wicket:panel /body /html DeriverPanel.java: - package syncrontech.examples.blastfurnace.wicket.test; import wicket.markup.html.panel.Panel; public class DerivedPanel extends BasePanel { public DerivedPanel() { } } DeriverPanel.html: !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd; html xmlns=http://www.w3.org/1999/xhtml; head /head body wicket:head this should go to page head tag! /wicket:head wicket:extend derived panel stuffbr /wicket:extend /body /html - Original Message - From: Juergen Donnerstag [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Friday, October 07, 2005 12:35 PM Subject: Re: [Wicket-user] wicket:head and wicket:extend Ari, there are junit test cases in src/test which should test exactly what you ask for. That is, the functionality already exists, but obviously not flawless. Good you please be a bit more precise (may be a stripped down test case) which shows the problem. Thanks Juergen On 10/7/05, Ari Suutari [EMAIL PROTECTED] wrote: Hi, I just tried to use wicket:head with Panels. Works very nicely when I have panel html as wicket:panel. However, when using markup inheritance (I like it very much !) and wicket:extend it looks like the wicket:head doesn't add anything to head. Would be great if this worked also. Ari S. --- This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, discussions, and more. http://solutions.newsforge.com/ibmarch.tmpl ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, discussions, and more. http://solutions.newsforge.com/ibmarch.tmpl ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, discussions, and more. http://solutions.newsforge.com/ibmarch.tmpl ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] stylesheets, autolinking and localization+styles
Hi, Done, RFE # 1315708. Is there any workaround currently, maybe I could use wicket:id and attach a component to link tag to get expected behaviour now (so our web designers could live like the support was already there) ? Ari S. - Original Message - From: Juergen Donnerstag [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Friday, October 07, 2005 12:39 PM Subject: Re: [Wicket-user] stylesheets, autolinking and localization+styles It is currently not implemented to work like you expect. Autolinks currently do not support styles and locales. Mind you open an RFE for it. Thanks. Juergen On 10/7/05, Ari Suutari [EMAIL PROTECTED] wrote: Hi, I'm having problems when trying to use session.setStyle with css files. If I put following snippet to my html: wicket:link autolink=true link href=../../../common/themes/main.css rel=stylesheet type=text/css / /wicket:link I have two css files, main.css and main_lightblue.css. With this html, wicket gives back main.css as expected when rendering. However, when I use session.setStyle(lightblue) I still get back main.css, not main_lightblue.css as I would expect (Changing the style seems to work on html files, wicket searches for ones with _lightblue.html ending). Is this expected to work or should it be done differently ? Ari S. --- This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, discussions, and more. http://solutions.newsforge.com/ibmarch.tmpl ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, discussions, and more. http://solutions.newsforge.com/ibmarch.tmpl ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, discussions, and more. http://solutions.newsforge.com/ibmarch.tmpl ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] Image inside Border doesn't work correctly
Hi, As a general rule of thumb I prefer the current approach. But in order to solve your problem, why don't you just use the parent component (getParent()) to achieve hat you want? I don't understand. I have written some generic wicket components for our applications, which of the border component is one (it now wraps it's contents in a few div tags). Done, and this is packaged into jar. How, if the other people start using my border component and place it into their html with a span tags, their image tags no longer work. I don't think that they can add the Image objects to parent, since those tags are inside span tags of the border object. Ari S. Juergen On 10/4/05, Ari Suutari [EMAIL PROTECTED] wrote: Hi, It hasn't changed since the beginning. I wonder how it breaks existing code? Sorry, I didn't mean that it would break existing code, I meant that it breaks a html file which works as plain html (ie. the image is in the same directory as html file). I myself haven't noticed this before, since I used to have all related classes in same package. After moving generic stuff to separate package the problem came visible. How I think it should work is that the stuff injected by wicket:body shouldn't use the package/path of border component but instead the package/path of surrounding component (which would be page in simple cases or a panel in more complex ones). Ari S. Juergen On 10/4/05, Ari Suutari [EMAIL PROTECTED] wrote: Well, Wicket defines the correct place as the same package as the component. But this is wrong: - it breaks working html - although the border is a component, the stuff inside is not part of it. Ari S. On 10/3/05, Ari Suutari [EMAIL PROTECTED] wrote: Hi, Assume following html: span wicket:id=border img wicket:id=img src=test.png/ /span Now, If the application is in package syncrontech.test except that border is syncrontech.borders.NiceBorder (I have a separate package for common thingies) wicket is unable to find test.png during runtime, instead I get: wicket.WicketRuntimeException: Unable to find package resource [path = syncrontech/borders/test.png, style = null, locale = fi] Ie. it looks for image in wrong place (correct place is syncrontech/test/test.png). I'm using wicket 1.1-rc1. Ari S. --- This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, discussions, and more. http://solutions.newsforge.com/ibmarch.tmpl ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, discussions, and more. http://solutions.newsforge.com/ibmarch.tmpl ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, discussions, and more. http://solutions.newsforge.com/ibmarch.tmpl ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, discussions, and more. http://solutions.newsforge.com/ibmarch.tmpl ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, discussions, and more. http://solutions.newsforge.com/ibmarch.tmpl ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, discussions, and more. http://solutions.newsforge.com/ibmarch.tmpl ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, discussions, and more
Re: [Wicket-user] Image inside Border doesn't work correctly
Hi, You (Ari) are right that this conflicts with previewability though. This is one of the things where it would help to have IDE support. Well, I though that one of the main points with wicket was that html is previewable/editable with standard html tools, like dreamweaver. I think We'll be designing around this shortly by dropping idea of using border components since at least for our case I consider them broken (sad, but our project has to go on...) Ari S. On 10/4/05, Juergen Donnerstag [EMAIL PROTECTED] wrote: As a general rule of thumb I prefer the current approach. But in order to solve your problem, why don't you just use the parent component (getParent()) to achieve hat you want? Juergen On 10/4/05, Ari Suutari [EMAIL PROTECTED] wrote: Hi, It hasn't changed since the beginning. I wonder how it breaks existing code? Sorry, I didn't mean that it would break existing code, I meant that it breaks a html file which works as plain html (ie. the image is in the same directory as html file). I myself haven't noticed this before, since I used to have all related classes in same package. After moving generic stuff to separate package the problem came visible. How I think it should work is that the stuff injected by wicket:body shouldn't use the package/path of border component but instead the package/path of surrounding component (which would be page in simple cases or a panel in more complex ones). Ari S. Juergen On 10/4/05, Ari Suutari [EMAIL PROTECTED] wrote: Well, Wicket defines the correct place as the same package as the component. But this is wrong: - it breaks working html - although the border is a component, the stuff inside is not part of it. Ari S. On 10/3/05, Ari Suutari [EMAIL PROTECTED] wrote: Hi, Assume following html: span wicket:id=border img wicket:id=img src=test.png/ /span Now, If the application is in package syncrontech.test except that border is syncrontech.borders.NiceBorder (I have a separate package for common thingies) wicket is unable to find test.png during runtime, instead I get: wicket.WicketRuntimeException: Unable to find package resource [path = syncrontech/borders/test.png, style = null, locale = fi] Ie. it looks for image in wrong place (correct place is syncrontech/test/test.png). I'm using wicket 1.1-rc1. Ari S. --- This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, discussions, and more. http://solutions.newsforge.com/ibmarch.tmpl ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, discussions, and more. http://solutions.newsforge.com/ibmarch.tmpl ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, discussions, and more. http://solutions.newsforge.com/ibmarch.tmpl ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, discussions, and more. http://solutions.newsforge.com/ibmarch.tmpl ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, discussions, and more. http://solutions.newsforge.com/ibmarch.tmpl ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, discussions, and more. http://solutions.newsforge.com/ibmarch.tmpl ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] Image inside Border doesn't work correctly (example included)
Hi, Here is a very simple example, using BoxBorder from wicket: (works very well until you add img tag). What is wrong with this code ? TestPage.html: !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd; html xmlns=http://www.w3.org/1999/xhtml; head /head body span wicket:id=box this is inside box: input wicket:id=text type=text/br/ img wicket:id=img src=test.png/ /span /body /html TestPage.java: package syncrontech.examples.blastfurnace.wicket; import wicket.markup.html.WebPage; import wicket.markup.html.border.BoxBorder; import wicket.markup.html.form.TextField; import wicket.markup.html.image.Image; public class TestPage extends WebPage { public TestPage() { BoxBorder b = new BoxBorder(box); add(b); b.add(new TextField(text)); b.add(new Image(img)); } } Ari S. - Original Message - From: Eelco Hillenius [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Tuesday, October 04, 2005 9:17 AM Subject: Re: [Wicket-user] Image inside Border doesn't work correctly I agree. My approach is to think in reusable components that in this case have packaged images. Hence actually I view those images as an implementation detail and I don't want parent components to have to know about what resources a component needs. You (Ari) are right that this conflicts with previewability though. This is one of the things where it would help to have IDE support. Eelco On 10/4/05, Juergen Donnerstag [EMAIL PROTECTED] wrote: As a general rule of thumb I prefer the current approach. But in order to solve your problem, why don't you just use the parent component (getParent()) to achieve hat you want? Juergen On 10/4/05, Ari Suutari [EMAIL PROTECTED] wrote: Hi, It hasn't changed since the beginning. I wonder how it breaks existing code? Sorry, I didn't mean that it would break existing code, I meant that it breaks a html file which works as plain html (ie. the image is in the same directory as html file). I myself haven't noticed this before, since I used to have all related classes in same package. After moving generic stuff to separate package the problem came visible. How I think it should work is that the stuff injected by wicket:body shouldn't use the package/path of border component but instead the package/path of surrounding component (which would be page in simple cases or a panel in more complex ones). Ari S. Juergen On 10/4/05, Ari Suutari [EMAIL PROTECTED] wrote: Well, Wicket defines the correct place as the same package as the component. But this is wrong: - it breaks working html - although the border is a component, the stuff inside is not part of it. Ari S. On 10/3/05, Ari Suutari [EMAIL PROTECTED] wrote: Hi, Assume following html: span wicket:id=border img wicket:id=img src=test.png/ /span Now, If the application is in package syncrontech.test except that border is syncrontech.borders.NiceBorder (I have a separate package for common thingies) wicket is unable to find test.png during runtime, instead I get: wicket.WicketRuntimeException: Unable to find package resource [path = syncrontech/borders/test.png, style = null, locale = fi] Ie. it looks for image in wrong place (correct place is syncrontech/test/test.png). I'm using wicket 1.1-rc1. Ari S. --- This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, discussions, and more. http://solutions.newsforge.com/ibmarch.tmpl ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, discussions, and more. http://solutions.newsforge.com/ibmarch.tmpl ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, discussions, and more. http://solutions.newsforge.com/ibmarch.tmpl ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, discussions, and more. http
Re: [Wicket-user] Image inside Border doesn't work correctly (example included)
Hi, Ok, that makes things clearer. Thanks for the example. Now I agree with you. Would you please open up a bug for it. I'll to fix it. Bug # 1312787 submitted. Ari S. On 10/4/05, Ari Suutari [EMAIL PROTECTED] wrote: Hi, Here is a very simple example, using BoxBorder from wicket: (works very well until you add img tag). What is wrong with this code ? TestPage.html: !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd; html xmlns=http://www.w3.org/1999/xhtml; head /head body span wicket:id=box this is inside box: input wicket:id=text type=text/br/ img wicket:id=img src=test.png/ /span /body /html TestPage.java: package syncrontech.examples.blastfurnace.wicket; import wicket.markup.html.WebPage; import wicket.markup.html.border.BoxBorder; import wicket.markup.html.form.TextField; import wicket.markup.html.image.Image; public class TestPage extends WebPage { public TestPage() { BoxBorder b = new BoxBorder(box); add(b); b.add(new TextField(text)); b.add(new Image(img)); } } Ari S. - Original Message - From: Eelco Hillenius [EMAIL PROTECTED] To: wicket-user@lists.sourceforge.net Sent: Tuesday, October 04, 2005 9:17 AM Subject: Re: [Wicket-user] Image inside Border doesn't work correctly I agree. My approach is to think in reusable components that in this case have packaged images. Hence actually I view those images as an implementation detail and I don't want parent components to have to know about what resources a component needs. You (Ari) are right that this conflicts with previewability though. This is one of the things where it would help to have IDE support. Eelco On 10/4/05, Juergen Donnerstag [EMAIL PROTECTED] wrote: As a general rule of thumb I prefer the current approach. But in order to solve your problem, why don't you just use the parent component (getParent()) to achieve hat you want? Juergen On 10/4/05, Ari Suutari [EMAIL PROTECTED] wrote: Hi, It hasn't changed since the beginning. I wonder how it breaks existing code? Sorry, I didn't mean that it would break existing code, I meant that it breaks a html file which works as plain html (ie. the image is in the same directory as html file). I myself haven't noticed this before, since I used to have all related classes in same package. After moving generic stuff to separate package the problem came visible. How I think it should work is that the stuff injected by wicket:body shouldn't use the package/path of border component but instead the package/path of surrounding component (which would be page in simple cases or a panel in more complex ones). Ari S. Juergen On 10/4/05, Ari Suutari [EMAIL PROTECTED] wrote: Well, Wicket defines the correct place as the same package as the component. But this is wrong: - it breaks working html - although the border is a component, the stuff inside is not part of it. Ari S. On 10/3/05, Ari Suutari [EMAIL PROTECTED] wrote: Hi, Assume following html: span wicket:id=border img wicket:id=img src=test.png/ /span Now, If the application is in package syncrontech.test except that border is syncrontech.borders.NiceBorder (I have a separate package for common thingies) wicket is unable to find test.png during runtime, instead I get: wicket.WicketRuntimeException: Unable to find package resource [path = syncrontech/borders/test.png, style = null, locale = fi] Ie. it looks for image in wrong place (correct place is syncrontech/test/test.png). I'm using wicket 1.1-rc1. Ari S. --- This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, discussions, and more. http://solutions.newsforge.com/ibmarch.tmpl ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, discussions, and more. http://solutions.newsforge.com/ibmarch.tmpl ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, discussions, and more. http://solutions.newsforge.com/ibmarch.tmpl
[Wicket-user] Image inside Border doesn't work correctly
Hi, Assume following html: span wicket:id=border img wicket:id=img src=test.png/ /span Now, If the application is in package syncrontech.test except that border is syncrontech.borders.NiceBorder (I have a separate package for common thingies) wicket is unable to find test.png during runtime, instead I get: wicket.WicketRuntimeException: Unable to find package resource [path = syncrontech/borders/test.png, style = null, locale = fi] Ie. it looks for image in wrong place (correct place is syncrontech/test/test.png). I'm using wicket 1.1-rc1. Ari S. --- This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, discussions, and more. http://solutions.newsforge.com/ibmarch.tmpl ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] Image inside Border doesn't work correctly
Well, Wicket defines the correct place as the same package as the component. But this is wrong: - it breaks working html - although the border is a component, the stuff inside is not part of it. Ari S. On 10/3/05, Ari Suutari [EMAIL PROTECTED] wrote: Hi, Assume following html: span wicket:id=border img wicket:id=img src=test.png/ /span Now, If the application is in package syncrontech.test except that border is syncrontech.borders.NiceBorder (I have a separate package for common thingies) wicket is unable to find test.png during runtime, instead I get: wicket.WicketRuntimeException: Unable to find package resource [path = syncrontech/borders/test.png, style = null, locale = fi] Ie. it looks for image in wrong place (correct place is syncrontech/test/test.png). I'm using wicket 1.1-rc1. Ari S. --- This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, discussions, and more. http://solutions.newsforge.com/ibmarch.tmpl ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, discussions, and more. http://solutions.newsforge.com/ibmarch.tmpl ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, discussions, and more. http://solutions.newsforge.com/ibmarch.tmpl ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
[Wicket-user] PageableListView and changing rowsPerPage
Hi, Is there a way to alter number of rows displayed per page after the listview has been created ? I was going to build a page with pageable listview and a combo box with different rowsPerPage values, which would allow user to adjust the view size. But there is no setRowsPerPage method. Ari S. --- This SF.Net email is sponsored by Yahoo. Introducing Yahoo! Search Developer Network - Create apps using Yahoo! Search APIs Find out how you can build Yahoo! directly into your own Applications - visit http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] How to include panel contents without extra span ../span tags ?
Hi, Good idea to use the Flags. This way we could achieve both: a) don't have to synchronize yet another byte and b) no need to subclass for users. And because there are still a couple of bits left, we don't need to worry we'll get short in the future. Is there any possibility to get this feature implemented before 1.0 gets out ? Ari S. --- This SF.Net email is sponsored by Yahoo. Introducing Yahoo! Search Developer Network - Create apps using Yahoo! Search APIs Find out how you can build Yahoo! directly into your own Applications - visit http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
[Wicket-user] PageableListView and navigator
Hi, I'm using a PageableListView to display results of database query. There seems to be a problem with navigators 'last' link when amount of data in the vector being displayed changes. In my case, the listview's model is empty when it is created. It is filled when user pressed 'find' button. The PageableListViewNavigator has following code snipped in constructor: add(new PageableListViewNavigationLink(last, pageableListView, pageableListView .getPageCount() - 1)); As far as I understand, the last page number is calculated here and the 'last' link tries to move to that page. But this calculation should be redone when model changes (or is my code missing something ?) Ari S. --- This SF.Net email is sponsored by Yahoo. Introducing Yahoo! Search Developer Network - Create apps using Yahoo! Search APIs Find out how you can build Yahoo! directly into your own Applications - visit http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] PageableListView and navigator
Hi, ok this goes only wrong when the last should get bigger i guess? Because if it gets lower then the setCurrentPage will handle that if i am not mistaken But you are right last should recalculated when pressed but gettting the page count then. Can you open a bug report? Done, request id is 1209753. Ari S. Ari Suutari wrote: Hi, I'm using a PageableListView to display results of database query. There seems to be a problem with navigators 'last' link when amount of data in the vector being displayed changes. In my case, the listview's model is empty when it is created. It is filled when user pressed 'find' button. The PageableListViewNavigator has following code snipped in constructor: add(new PageableListViewNavigationLink(last, pageableListView, pageableListView .getPageCount() - 1)); As far as I understand, the last page number is calculated here and the 'last' link tries to move to that page. But this calculation should be redone when model changes (or is my code missing something ?) Ari S. --- This SF.Net email is sponsored by Yahoo. Introducing Yahoo! Search Developer Network - Create apps using Yahoo! Search APIs Find out how you can build Yahoo! directly into your own Applications - visit http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by Yahoo. Introducing Yahoo! Search Developer Network - Create apps using Yahoo! Search APIs Find out how you can build Yahoo! directly into your own Applications - visit http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by Yahoo. Introducing Yahoo! Search Developer Network - Create apps using Yahoo! Search APIs Find out how you can build Yahoo! directly into your own Applications - visit http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] How to include panel contents without extra span ../span tags ?
Hi, Two ideas come into my mind: a) ApplicationSettings.setStripWicketTag() used to do it. Not sure it still does It seems to strip only the wicket:id attribute. span remains. However if I replace span with wicket:span the whole tag is removed. Is this by design ? I didn't find any docs on wicket:span but I just happened to try it out and for my surprise it worked ! b) Subclass Panel to not write span .. to the output. I've done it some months ago but haven't tested it with current CVS. This would work for most of the cases. The ListView case would require subclassing the ListItem, since it attaches to the extra span in some of my cases. Doable, but not very elegant since it might require subclassing here and there. c) may be we should introduce an attribute like span wicket:id=... wicket:removeTag=true which will lead to wicket not printing the span tag but the body only. This would also work fine. Ari S. On 5/27/05, Ari Suutari [EMAIL PROTECTED] wrote: Hi, In my page I have following html snippet: span wicket:id=rows tr wicket:id=row class=dataRow_even tdspan wicket:id=codest/span/td tdspan wicket:id=eMailAddress[EMAIL PROTECTED]/span/td /tr span wicket:id=editOutline/ /span This is being used with ListView to render out a table. Each row contains a row with values taken from model and an optional row (for editing 'inplace'). This is works otherwise ok, but results in extra span tags in HTML table, which isn't fully compliant, there should be only tr tags. Is there a way to include Panel components so that the included Panel would completely replace the span tag ? Simpler example: Panel.html: wicket:panel form . /form /wicket:panel Page.html: body span wicket:id=formPanel/span /body Now this results in: body span form /form /span /body I would like to get following result: body form /form body Ari S. --- This SF.Net email is sponsored by Yahoo. Introducing Yahoo! Search Developer Network - Create apps using Yahoo! Search APIs Find out how you can build Yahoo! directly into your own Applications - visit http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by Yahoo. Introducing Yahoo! Search Developer Network - Create apps using Yahoo! Search APIs Find out how you can build Yahoo! directly into your own Applications - visit http://developer.yahoo.net/?fr___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by Yahoo. Introducing Yahoo! Search Developer Network - Create apps using Yahoo! Search APIs Find out how you can build Yahoo! directly into your own Applications - visit http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] How to include panel contents without extra span ../span tags ?
Hi again, c) may be we should introduce an attribute like span wicket:id=... wicket:removeTag=true which will lead to wicket not printing the span tag but the body only. Actually, introducing a new attribute might not be necessary: If classes like Panel and ListItem (or suitable base class) would have method like setOpenCloseTagRendering (false) one could turn this behaviour on in associated .java code. Wouldn't it be very simple to add something like this as general feature ? Ari S. Juergen On 5/27/05, Ari Suutari [EMAIL PROTECTED] wrote: Hi, In my page I have following html snippet: span wicket:id=rows tr wicket:id=row class=dataRow_even tdspan wicket:id=codest/span/td tdspan wicket:id=eMailAddress[EMAIL PROTECTED]/span/td /tr span wicket:id=editOutline/ /span This is being used with ListView to render out a table. Each row contains a row with values taken from model and an optional row (for editing 'inplace'). This is works otherwise ok, but results in extra span tags in HTML table, which isn't fully compliant, there should be only tr tags. Is there a way to include Panel components so that the included Panel would completely replace the span tag ? Simpler example: Panel.html: wicket:panel form . /form /wicket:panel Page.html: body span wicket:id=formPanel/span /body Now this results in: body span form /form /span /body I would like to get following result: body form /form body Ari S. --- This SF.Net email is sponsored by Yahoo. Introducing Yahoo! Search Developer Network - Create apps using Yahoo! Search APIs Find out how you can build Yahoo! directly into your own Applications - visit http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by Yahoo. Introducing Yahoo! Search Developer Network - Create apps using Yahoo! Search APIs Find out how you can build Yahoo! directly into your own Applications - visit http://developer.yahoo.net/?fr___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by Yahoo. Introducing Yahoo! Search Developer Network - Create apps using Yahoo! Search APIs Find out how you can build Yahoo! directly into your own Applications - visit http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] How to include panel contents without extra span ../span tags ?
Hi, Assuming we'd need it for MarkupContainer and not Component the overhead would be probably be neglectable, but it'd be (yet) another byte to be synchronized accross in a cluster. IMO it is worth it. MarkupContainer (or even WebMarkupContainer) would be enough, for at least me. Ari S. Juergen On 5/27/05, Ari Suutari [EMAIL PROTECTED] wrote: Hi again, c) may be we should introduce an attribute like span wicket:id=... wicket:removeTag=true which will lead to wicket not printing the span tag but the body only. Actually, introducing a new attribute might not be necessary: If classes like Panel and ListItem (or suitable base class) would have method like setOpenCloseTagRendering (false) one could turn this behaviour on in associated .java code. Wouldn't it be very simple to add something like this as general feature ? Ari S. Juergen On 5/27/05, Ari Suutari [EMAIL PROTECTED] wrote: Hi, In my page I have following html snippet: span wicket:id=rows tr wicket:id=row class=dataRow_even tdspan wicket:id=codest/span/td tdspan wicket:id=eMailAddress[EMAIL PROTECTED]/span/td /tr span wicket:id=editOutline/ /span This is being used with ListView to render out a table. Each row contains a row with values taken from model and an optional row (for editing 'inplace'). This is works otherwise ok, but results in extra span tags in HTML table, which isn't fully compliant, there should be only tr tags. Is there a way to include Panel components so that the included Panel would completely replace the span tag ? Simpler example: Panel.html: wicket:panel form . /form /wicket:panel Page.html: body span wicket:id=formPanel/span /body Now this results in: body span form /form /span /body I would like to get following result: body form /form body Ari S. --- This SF.Net email is sponsored by Yahoo. Introducing Yahoo! Search Developer Network - Create apps using Yahoo! Search APIs Find out how you can build Yahoo! directly into your own Applications - visit http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by Yahoo. Introducing Yahoo! Search Developer Network - Create apps using Yahoo! Search APIs Find out how you can build Yahoo! directly into your own Applications - visit http://developer.yahoo.net/?fr___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by Yahoo. Introducing Yahoo! Search Developer Network - Create apps using Yahoo! Search APIs Find out how you can build Yahoo! directly into your own Applications - visit http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by Yahoo. Introducing Yahoo! Search Developer Network - Create apps using Yahoo! Search APIs Find out how you can build Yahoo! directly into your own Applications - visit http://developer.yahoo.net/?fr___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- This SF.Net email is sponsored by Yahoo. Introducing Yahoo! Search Developer Network - Create apps using Yahoo! Search APIs Find out how you can build Yahoo! directly into your own Applications - visit http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005 ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
[Wicket-user] Mapping empty strings in TextFields to nulls in model
Hi, I have a form with a couple of text fields backed by a model. When form is submitted the fields which have empty value are stored into model as empty strings (which might be ok for someone). However, I'm using existing model classes, which rely on idea that empty strings is mapped to null String in models. What might be the most elegant way to achieve this using wicket ? Ari S. --- SF email is sponsored by - The IT Product Guide Read honest candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595alloc_id=14396op=click ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
[Wicket-user] how to close a popup ?
Hi, I have a link in my application which is created like this: EditLink link = new EditLink(editLink, listItem.getModelObject()); link.setPopupSettings(new PopupSettings()); ie. it opens a new page in separate popup. It would be nice to create buttons in this popup so that they close the popup after it has been submitted. Is there a wicket-style way doing this or do I need to do it with javascript as usual ? Ari S. --- SF email is sponsored by - The IT Product Guide Read honest candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595alloc_id=14396op=click ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
[Wicket-user] Some beginner's questions
Hi, I'm currently doing some research in order to find a better tool than plain JSP to do user interfaces in our projects. I first thought that tapestry would be something we would use, but after that I (almost accidentally) bumped into Wicket, which seems more cleaner and simpler solution to same problem (which makes it easier to learn, at least to me). Our typical application contains usually many forms. Each form can contain many (say 10...30) fields. Data comes from database with our own OR-mapper, which provides POJO-like models. After prototyping with wicket I have some questions: - On a large form, which has many fields it would be nice to be able to auto-wire fields to model properties automatically. (ie. I have a text field called userName in html form and I have property called userName in my model). This would speed up development a lot. I don't know if this would work for everyone, but we have most of business-level validation logic in models so simple validation in wicket layer (like just checking that field is a number) is enough. I'm going to implement something like this if it doesn't exist already. - Empty TextFields seem to be stored into model as Strings with zero lengths. Our previous UI system maps empty strings to nulls. Is there a way to tweak this anywhere in wicket ? - Is it OK to create instances of page objects myself, ie. doing something like this: getPage().setResponsePage(new PersonListPage(coll)); or should pages be instantiated by some factory class ? Ari S. --- SF email is sponsored by - The IT Product Guide Read honest candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595alloc_id=14396op=click ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] Some beginner's questions
- On a large form, which has many fields it would be nice to be able to auto-wire fields to model properties automatically. (ie. I have a text field called userName in html form and I have property called userName in my model). This would speed up development a lot. You can use (Bound)CompoundPropertyModel for this. See Jonathan's article on Wicket Models , which you can find here: http://wicket.sourceforge.net/wiki/doku.php?id=models The actual code needed to wire your form to your java is really small in this case. Just declare the fields using the field wicket-ID's, and make sure they match the property in your POJO. I already use CompoundPropertyModel, so I have code like: add(new TextField(code)); add(new TextField(descr)); add(new TextField(shortName)); I was hoping to avoid this code also for trivial cases. I don't know if this would work for everyone, but we have most of business-level validation logic in models so simple validation in wicket layer (like just checking that field is a number) is enough. You can use your business validation logic in your own implementations of IValidator and use those in your presentation layer, giving your user more direct feedback. I'll have to check this. Sounds useful. - Empty TextFields seem to be stored into model as Strings with zero lengths. Our previous UI system maps empty strings to nulls. Is there a way to tweak this anywhere in wicket ? I don't know. Perhaps someone else on the list can answer this. Maybe it would be possible to derive my own class from TextField and override updateModel ? - Is it OK to create instances of page objects myself, ie. doing something like this: getPage().setResponsePage(new PersonListPage(coll)); or should pages be instantiated by some factory class ? If you wish to do so. Factories are useful if you need more configuration or want to change the behaviour in a subclass, but it is not a requirement of Wicket. Your example works and is by no means an anti-pattern. Ok, and thanks for your response. Ari S. --- SF email is sponsored by - The IT Product Guide Read honest candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595alloc_id=14396op=click ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] Some beginner's questions
Hi, i disagree. if you want to customize/localize the label, you'll change it. it's wicket's philosophy not to invent new solutions to problems that are already solved well enough. resource bundles can be suffixed with locale/style and already work wonderfully in wicket. i see no reason to re-invent this particular wheel. Me too. Resource bundles have been very handly for us in situations like this, because it is easy to handle such file (a finnish versio for example) to professional translation who can translate it to another language. It separates localization from application logic and user interface design. So user interface designers work on html files, translators work (mostly) on resource bundles and programmers work on java files. Isn't this what wicket is all about ? Ari S. Gili wrote: Eek! My 2 cents: resource bundles are utterly useless here. We want to avoid ending up in a configuration nightmare like Hibernate has. You should create a new interface called WicketBean that guarantees that the bean has setStyle(), setLocale() and that's it and beyond that you construct the bean, set its locale, style and then query it for its property values. If the bean chooses to use resource bundles for its strings, fine, but that's its own business. Who the heck is going to need to change the form-name.property-name in a resource bundle? That's never going to happen. You'll set it once and never change it. Gili Ari Suutari wrote: then the labels for the form components are the name of the property by default or you can override by specifying an entry for something like form-name.property-name in a resource bundle. This would work very well. Our old system has this done just like this. Ari S. Jonathan Locke wrote: Eelco Hillenius wrote: We could also consider making this a contrib component, or maybe even just a Wiki section. It's pretty specific, unless it is really good (full fledged java bean descriptor stuff). i was thinking an extension. the power of having this done right might be really something... i'd hate to see that get lost in the shuffle... A simple version is quite easy to implement. Might do it this weekend, or - if Ari wants to give it a shot, we can help him a bit by giving idea's. Or... now that I think of it, it might also be an example of how to construct custom components. Eelco Jonathan Locke wrote: i wonder if we should have something like BeanEditForm that does just this... property-name form-component property-name form-component ... let's make this an RFE for 1.1 --- SF email is sponsored by - The IT Product Guide Read honest candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595alloc_id=14396op=click ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- SF email is sponsored by - The IT Product Guide Read honest candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595alloc_id=14396op=click ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- SF email is sponsored by - The IT Product Guide Read honest candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595alloc_id=14396op=click ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- SF email is sponsored by - The IT Product Guide Read honest candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595alloc_id=14396op=click ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- SF email is sponsored by - The IT Product Guide Read honest candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595alloc_id=14396op=click ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user