Re: Using Wicket 6.20 give following error
Hello, just a quick observation: In 6.x version IHeaderResponse is in a different package it's under org.apache.wicket.markup.*head* so it's explained why you'd get the exception. I think this JQWicket you are using is the problem. Looks unmaintained and designed for 1.5 version(previous version than 6.x). I guess it's this one https://code.google.com/p/jqwicket/ -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/Using-Wicket-6-20-give-following-error-tp4671619p4671648.html Sent from the Users forum mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: Removing jessionid
Hi, 1. you can remove the sessionid from the url and have it stored in a cookie without any change to your app code. This is more of web container setup, it's not really Wicket who should be handling that. With Servlet 3.0 you can tell your web container how it should handle it in the web.xml file of your app like http://www.e-zest.net/blog/new-session-management-features-in-servlet-3-0/ notice the tracking-modeCOOKIE/tracking-mode option Look into having it as HttpOnly also, it means the cookie value cannot be read from JS so you'd want that turned also on to minimize the damage in case of a XSS vulnerability in your site. 2. Actually Wicket already comes with session fixation protection if you look in the Session class the method Session.replaceSession() has it explained in the Javadoc So say you have a LoginForm with a public void submit() { User user = userDao.getUser(username, password); if(user != null) { //pardon the stupidest authorization Session.get().replaceSession(); //we're destroying the old session and recreating a new one - a new sessionid is returned to the user AppSession newSession = (AppSession) Session.get(); newSession.setUser(user); } else { error(Wrong username/pass); } } -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/Removing-jessionid-tp4671649p4671650.html Sent from the Users forum mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: Wicket FormPost via ProxyFilter
Well how are you passing the user's session between the requests? I mean your user's httpsession is stored in a cookie(not in the url), the cookie containing your user's domain usersession will not be submitted to this 3rd party in the post, and they cannot hand it over back to you. How will your application correlate the requests? And this is not a wicket problem, you'd need to think about this any way you go. -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/Wicket-FormPost-via-ProxyFilter-tp4665803p4665804.html Sent from the Users forum mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: Wicket Can't Find Component Error
Hi, just my 2 cents. When I usually encounter this, is because of user clicking on an old link. For example say we have a change-profile AjaxLink taking the user to profile panel. But until the server responds with the new Profile panel, it's possible for the user to click another link products in the old panel. Since the page state is different on the server and there is no change-profile link in the new ProfilePanel it's rightly stating it's not finding the component. We usually show progress and and disable the other controls with a layer on top of the controls that prevents the user from clicking other buttons until response from the previous request arrived. Just check doubleclicking on different links or buttons, or simulate an impatient user clicking away madly after he clicked on the submit button and the response is yet to have arrived. -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/Wicket-Can-t-Find-Component-Error-tp4665810p4665817.html Sent from the Users forum mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: Wicket FormPost via ProxyFilter
Hi, does this work for you? protected CharSequence getActionUrl() { RequestCycle.get().getUrlRenderer().renderFullUrl(Url.parse(urlFor(IFormSubmitListener.INTERFACE, getPage().getPageParameters()).toString())); -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/Wicket-FormPost-via-ProxyFilter-tp4665803p4665815.html Sent from the Users forum mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: Wicket FormPost via ProxyFilter
I meant IF your user's session is stored in a cookie(you can store it also in the url - this is considered as a security bad practice without additional countermeasures). -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/Wicket-FormPost-via-ProxyFilter-tp4665803p4665805.html Sent from the Users forum mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
RE: Ajax timer not counting when tab doesn't have focus?
Hi, Why so low of a timeout 50ms? https://github.com/reiern70/antilia-bits/blob/master/client-sign-out-parent/client-sign-out/src/main/java/com/antilia/signout/InactivitySignOutPanel.js#L34 should it not be something like 5000? I don't see the point of counting down so often. Maybe count down every 5 secs. Don't forget also to decrease the counter accordingly. I imagine also using console.log('time is now ...') when the timer decreases might provide some insights on what's exactly going on. I'd be mad as an user that something it's eating up my cpu if you'd do that and be thankful for things like: https://stackoverflow.com/questions/6032429/chrome-timeouts-interval-suspended-in-background-tabs -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/Ajax-timer-not-counting-when-tab-doesn-t-have-focus-tp4665789p4665802.html Sent from the Users forum mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: Lots of Images slowing rendering in DataView?
Hi, I think it would be much better to use a css class for the email icon and for any other icons that are just repeated. Maybe another improvement would be to just use a single ajaxbehaviour for the whole table that corresponds to a certain action like, for example in case of a Delete, keep an itemid for the whole line and have js logic that intercepts the clicks on the icons and call the behaviour with the line id, something like. AbstractDefaultAjaxBehavior itemDeleteBehavior = new AbstractDefaultAjaxBehavior() { @Override protected void respond(AjaxRequestTarget target) { String id = RequestCycle.get().getRequest().getRequestParameters(). getParameterValue(id).toString(); //do delete logic with item ID. Just be careful that malicious users exploit it by passing items of other users. } @Override protected void updateAjaxAttributes(AjaxRequestAttributes attributes) { super.updateAjaxAttributes(attributes); attributes.getDynamicExtraParameters().add(return { 'id': itemid }); } @Override public void renderHead(Component component, IHeaderResponse response) { AppendingStringBuffer js = new AppendingStringBuffer(); js.append(function deleteItem(itemid) {).append(getCallbackScript()).append(}); response.render(JavaScriptHeaderItem.forScript(js, deleteItem)); } }; add(itemDeleteBehavior); then on the clientside js have something like: $(.actions_delete).click(function(event){ deleteItem($(this).prop(id_to_remove)); }); This way you'd keep the page size sent to the client small(there would not be a big url for each icon link). Smaller pagesize, means faster transfer and less data for the browser to parse and render. You get a bonus also in simple component hierarchy because you don't even need to have a java component for the links. The same for other common behaviours like edit, etc. Hope it helps. -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/Lots-of-Images-slowing-rendering-in-DataView-tp4665733p4665735.html Sent from the Users forum mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: a little question about add(new XComponent(id).setVisible(false))
I've found it nicely explained here: http://wicketguide.comsysto.com/guide/chapter6.html#chapter6_4 seems it's a great guide. -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/a-little-question-about-add-new-XComponent-id-setVisible-false-tp4663041p4663072.html Sent from the Users forum mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: redirectToInterceptPage,continueToOriginalDestination and cookies
Hi, Don't know about a best practice but what comes to me is to implement continue... yourself: static void continueToOriginalDestination() { InterceptData data = InterceptData.get(); if (data != null) { data.continueOk = true; String url = RequestCycle.get().getUrlRenderer().renderUrl(data.originalUrl); // RequestCycle.get().replaceAllRequestHandlers(new RedirectRequestHandler(url)); --commented this and use different request handler RequestCycle.get().replaceAllRequestHandlers(new RedirectWithCookieRequestHandler(url)); } } public class RedirectWithCookieRequestHandler extends RedirectRequestHandler { private Cookie rememberMeCookie; @Override public void respond(IRequestCycle requestCycle) { HttpServletRequest request = ((ServletWebRequest) requestCycle.getRequest()). getContainerRequest(); StringBuilder builder = new StringBuilder(); //generic set cookie code: builder.append(cookie.getName()).append(=).append(cookie.getValue()); builder.append(;Path=).append(cookie.getPath()); builder.append(; HttpOnly); if (cookie.getSecure()) { builder.append(; Secure); } response.setHeader(SET-COOKIE, builder.toString()); super.respond(requestCycle); } } -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/redirectToInterceptPage-continueToOriginalDestination-and-cookies-tp4662074p4662085.html Sent from the Users forum mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: Tracking performance issues on requests best practices
Well I've switched on to AspectJ load time weaving and was able to intercept calls on also the wicket Components methods. I've tested locally to see where are the missing numbers. Seemed not much time was spent in onInitialize() afterall, the cause by the fact that even if the Services layer was intercepted, I did not think of the OpenEntityManagerInViewFilter which caused DB hits that were not going through the Service layer and thus not counted. 2. I was counting also the first hit of the first page which meant getMarkup calls for the components. That markup is then cached on subsequent calls but when called it does take it's toll. -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/Tracking-performance-issues-on-requests-best-practices-tp4657676p4657706.html Sent from the Users forum mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Tracking performance issues on requests best practices
Hello guys, I'm trying to have a finer look at what is taking time on the serverside in our application. What I have so far is that I'm using Spring AOP to track down calls to all the methods and time to the Services layer. PS: I'm using JETM http://jetm.void.fm/ (it may be old, but is simple and give pretty much what you need). 2. I've collected the time for the whole request to process in a AbstractRequestCycleListener onBeginRequest, onEndRequest so as to see a sum of the total time spent on a particular usecase. What I've expected to find is that most of the resulting time would be spent in the services layer and pretty much summed up to be near the request time on the requestcyclelistener. Practical data shows however otherwise, with the sum of the service time not even close to the total of the request time. 3. So I've fine tuned the result to also show the rendering time for the components taking as example RenderPerformanceListener which measure the time between component onBeforeRender and onAfterRender. It's pretty nice to see in jetm hierarchycal component-services call, however it still not nearly close to the whole request time. I'm still looking and seeing that there is some logic also on some component's constructors and also onInitialize() methods that I see no easy way to measure them. IComponentInitializationListener seems to only trigger after initialization, I see no easy way to mark the start time of the onInitialize() and collect the time in the listener. So I'm asking if anyone got an idea, or I'm interested what you guys usually do to track down any performance issues in the app. -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/Tracking-performance-issues-on-requests-best-practices-tp4657676.html Sent from the Users forum mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: Deploy on production: optimization tip tricks
Hi Oscar, Probably nobody responded because this is not a simple topic but with many implications and turns. There are many optimizations that can be done not necessarily related to wicket. I'd recomend http://stevesouders.com/ blog, http://www.bookofspeed.com/ , http://www.guypo.com/ But ok I'll play along and add my 2 cents: 1. Setting Caching headers on the web response is for certain something that you'd want to do. Set a long expire date for JS and CSS file like months even 1year. But you'd also want the users to receive the latest css and JS files you make with a new release. So it's good to mix up the resource name with some kind of version token(I use the app version nr in the css/js files name something like link rel=stylesheet type=text/css href=/2.14/css/site.css /). Also most important optimizations that give the user the impression of speed are related to loading the JS files. While JS files are being downloaded the PAGE RENDERING is STOPPED. So it's a good idea to put them at the page's bottom and using the css and html to render the page in an usable(nice looking) state and then, while the user is reading and figuring out the content, the JS enhancements like sliding menus etc are loading in the background. Otherwise keeping the JS at the top results in the so called WhitePageOfDeath in which the user sees a blank page while the header JS files are being downloaded. You can achieve the same thing as putting the JS at the page bottom but while keeping the JS files at the head with the defer attribute easily like . That means the rendering will not be blocked but the JS will execute on DomReady event. 2. Minification and merging JS files into one: A. Most today's browsers are limited to making at most 6 parallel requests to a certain domain. So you don't want to have more js files merged into a single one so you don't wait for another wave of free connections. There is also the RoundTripTime overhead associated with making a new call to the server. B. The the bigger a text file is, the better it's compression ratio will be. So you'd get some benefit from merging all the js files into one and the gzip compression will be greater and also the minification gain. I recommend the *wro4j* project as it has lots of minification plugins. Unfortunately Wicket's component nature where every component can contribute it's own separate JS file makes it harder to have a single big minified JS file for all the page. 3. Using CDNs have the benefit of lower latency and also introducing another domain and thus increasing those 6 max nr of connections. Using some famous CDN like you did for JQuery also increases the probability of user already having Jquery in the cache from another site that he visited before(that's why I'm a fan of not also including the JQuery library in a minified package of all your site's JS files). Using asynchronous loading for 3rd party scripts like g+, facebook, ga are mandatory also these days. 4. Caching before the web server layer - using a caching proxy like Varnish or Apache/Nginx with a caching module to save maybe DB generated image resources maybe can be a good idea also. The topic is far far from being exhausted so I think that's the reason why nobody is playing along with responding. Personally I'm curios if an enhancement of providing Transfer-Encoding: chunked and keeping the JS resources in the head with the defer attribute(so the browser quickly receives the header and can begin the download of JS files) while a slow DB prevents us from returning the full html. But I'm afraid it might be a mess with not really huge gains in performance and wicket by it's component nature means we don't know the required js resources in the page's head until all the components have been added to the page and got a chance to contribute there needed resources. I'm also curious what the future holds in terms of the SPDY protocol since optimizing for it and might go against today's best practicies of splitting resources across many domains. -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/Deploy-on-production-optimization-tip-tricks-tp4653774p4653928.html Sent from the Users forum mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
ComponentNotFound exception question
Hi guys, I'm asking for an opinion on how to approach the following: Wicket 1.5.7, browser Chrome, Firefox. I have a FormTestPanel with TextField and AjaxFormComponentUpdatingBehavior attached: AjaxFormComponentUpdatingBehavior formUpdate = new AjaxFormComponentUpdatingBehavior(onblur) { @Override protected void onUpdate(AjaxRequestTarget target) { //do nothing just want to update the textfield model on leaving it } The Form also has an AjaxButton: AjaxButton btnSend = new AjaxButton(sendMessage) { @Override protected void onSubmit(AjaxRequestTarget target, Form? form) { //replace through ajax FormTestPanel with Empty panel let's say } } My view on this was that the flow would be to queue events in this order: Blur Submit somehow it gets to Submit Blur This causes a ComponentNotFoundException: Could not find component 'content-panel:form:textMessage'. Shouldn't page versioning help with ComponentNotFound in this case? Sure the component hierarchy changed after the form submit but that blur event should have the older version of the page which had a different component hierarchy? I tried putting a Channel 0 type Drop on both behavior and AjaxButton: @Override protected AjaxChannel getChannel() { return new AjaxChannel(0, AjaxChannel.Type.DROP); } but it doesn't seem to cancel any of them, anyway I wouldn't have expected this to work as it would have probably canceled the submit button event but it was reminiscent of the times when I thought the blur event gets triggered twice. My current solution was so far to setResponsePage which I think might work as it will clearly target another version but I didn't want to have to give up on the SinglePage setup. Any other idea how I can handle this? -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/ComponentNotFound-exception-question-tp4651013.html Sent from the Users forum mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: ComponentNotFound exception question
Thanks Martin, I think it will work as the delay need be small enough for the click event to enter the ajax queue after the blur so not much delay would be introduced. -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/ComponentNotFound-exception-question-tp4651013p4651015.html Sent from the Users forum mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: Making Autocomplete Form Stateless
I think Martin was pretty explicit with the fact that you could use as endpoint an AbstractResource or even a plain servlet as your data source url, you don't need explicitly an ajax behaviour(although just setting the stateless hint to true on the ajaxbehaviour might work without any problems). You can add http://thewicketevangelist.blogspot.de/2011/12/marrying-wicket-and-jquery-ui.html but any implementation would work, and use the url of your mountResource(IResource) on where you return a JSON based on the query parameters. You don't even need to add the ajax behaviour to contribute the autocomplete JS(which is a static string if the data url is not dynamic) to your panel so your page is stateless. -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/Making-Autocomplete-Form-Stateless-tp4455817p4649853.html Sent from the Users forum mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: Login page stateless??
Dan, how about an attacker who uses a script to just call the login page lots of time. Could it not cause an OutOfMemory error or at least a degradation of your application performance by your web server having to manage millions of sessions apart for the legit ones? -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/Login-page-stateless-tp4584483p4585721.html Sent from the Users forum mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: Best practices for using CSS resource references
Hi Alec, With wro4j you can do the minification at runtime also by using the processors like: http://code.google.com/p/wro4j/wiki/ReusingProcessors you get to work with Reader and Writer. You could apply the processor after the resource has been uploaded or even when requested(though probably it's more efficient to do the first). -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/Best-practices-for-using-CSS-resource-references-tp4362796p4365408.html Sent from the Users forum mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: Best practices for using CSS resource references
Hi Alec, Not really a direct reply to your question rather another. Wro4j project is more powerful(configurable) when it comes to grouping and minification css/jss, and I think maybe the WroFilter can easily be turned into a Wicket Resource, for a tighter wicket integration, I'm wondering if this has not already been done by someone. Also for JS references a parser for wro.xml that returns the contained js entries in a group to distinguish between wicket development and deployment versions could be done. -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/Best-practices-for-using-CSS-resource-references-tp4362796p4363970.html Sent from the Users forum mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: Set Wicket User Session to Servlet's HttpSession
Hello, It's not really clear what you mean and maybe you need to tell us what you want to do. A Wicket session stores it's attributes into an implementation of the ISessionStore interface, but the default the store is HttpSessionStore, so the HttpSession. On the other hand, the wicket session can exist in a temporary state for the duration of the request and not have a HttpSession created. See bind(...) method in HttpSessionStore and you can see the Wicket session object being stored in a httpsession attribute when the Wicket session needs to be persistent. setAttribute(request, Session.SESSION_ATTRIBUTE_NAME, newSession); -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/Set-Wicket-User-Session-to-Servlet-s-HttpSession-tp4355593p4355644.html Sent from the Users forum mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: Unnecessary 302 redirects in Wicket 1.5
Hi Lim, What about using an AbstractResource instead for serving the xml. You can do something like: @Override protected ResourceResponse newResourceResponse(Attributes attributes) { final ResourceResponse response = new ResourceResponse(); PageParameters requestParams = attributes.getParameters(); response.setLastModified(Time.now()); response.disableCaching(); response.setContentType(text/xml); response.setTextEncoding(UTF-8); response.setWriteCallback(new WriteCallback() { @Override public void writeData(final Attributes attributes) { attributes.getResponse().write(xml..); } }); response.setContentDisposition(ContentDisposition.INLINE); return response. } And you have all the benefits wicket like @SpringBean available, access to wicket session, etc. -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/Unnecessary-302-redirects-in-Wicket-1-5-tp3921623p4355660.html Sent from the Users forum mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: Communication (in-vm) between webapps
Some REST interface to be called through Httpclient from the admin application I'd say it's the simplest approach. -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/Communication-in-vm-between-webapps-tp4355616p4355667.html Sent from the Users forum mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: Using IResourceCachingStrategy with context relative resources(non PackageResource)
Merci Alex, I indeed use the maven plugin and didn't consider a NamingStrategy, but at first look we would not be able to reference back the generated file in Wicket, right? But I think that context resources not only PackageResources should be candidates for a ResourceCachingStrategy and not need a special filter to handle this. -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/Using-IResourceCachingStrategy-with-context-relative-resources-non-PackageResource-tp3712574p3713469.html Sent from the Users forum mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: Locating StackOverflowErrors
Hello, Are you perhaps using your WebSession in a PropertyModel? like new PropertyModel(getSession(), username) for example? This way the web session might get serialized. -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/Locating-StackOverflowErrors-tp3610868p3610903.html Sent from the Users forum mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: 1.5-SNAPSHOT build repository
Ah it's ok to use https://repository.apache.org/content/repositories/snapshots didn't have an update policy specified(although default is daily) and the snapshot version was red, but changing it must have forced an IDE reimport. repository idApache Nexus - snapshots/id urlhttps://repository.apache.org/content/repositories/snapshots/url releases enabledfalse/enabled /releases snapshots enabledtrue/enabled updatePolicydaily/updatePolicy /snapshots /repository -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/1-5-SNAPSHOT-build-repository-tp3565884p3567743.html Sent from the Users forum mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: 1.5-SNAPSHOT build repository
Hello, I was referring to a maven snapshot repository from where to have maven check daily for new builds of the snapshot version. What I currently do is to manually svn checkout and do mvn install. Not really a problem but the phrase If you want to stay recent but don't want to build yourself, you can use the snapshots generated by our bamboo server, which are available at http://wicketstuff.org/maven/repository/; means that at some time this was possible? Thanks. -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/1-5-SNAPSHOT-build-repository-tp3565884p3567695.html Sent from the Users forum mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: Wicket in Action - 1.4 pending release
By the way Wicket is growing and changing i thought that the book would never been finished as one chapter was probably done, another would have to be refactored to keep it up to date with the API. Actually the only time when i had to rewrite code for switching to another version was from 1.2 to 1.3 and the migration guide made that quite painless. Congratulations on finishing, although the MEAP is no good for me, as Romania seems not to be a valid country(too many of us getting rich from buying pdf books with fake cards i guess or something) so will need to wait for Amazon paper version :(. Eelco Hillenius wrote: I'm just curious if the move to 1.4 will have an impact on Wicket in Action. Hi Ned, I'm afraid not, because we are right now finalizing the book and we still have to start working on 1.4. I would also mean weeks of extra work for us, and after more than 2 years of writing, we've had it :-) The good thing is that it shouldn't make a big difference to start with; you should be able to use 1.4 without the generics just fine if you just ignore the compiler warnings. Maybe we'll bring out an extension to the book sometime around when 1.4 becomes final. But no promises. :-) Eelco - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- View this message in context: http://www.nabble.com/Wicket-in-Action---1.4-pending-release-tp16228144p16361218.html Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Disabling serialization/storage of pages in session?
Why is everybody pointing out not to have database data inside the page? Many times retrieving the data from the database could be the slowest thing and having that sort of cache is one nice thing in my opinion. Is it not much better to have data in the session? I understand that it will be a negative point in clustering for session replication, but that might not be such a drawback. The state could be replicated to the other server asyncroniously after the request was presented back to the user so he sees no degradation in performance, or better use sticky load balance and not have session replication. Also you might need to sacrifice the availability of the back button, although by keeping multiple versions of the page that can be avoided? Are there other negatives?. Johan Compagner wrote: Use detachable models.. Never keep database data live inside your models just store the minimal state so that you can construct it again. The DiskStore is for the backbutton and the PageMap (thats in the session) is for the current page. And as long as that page is statefull you have to store it in the session There is no other way because that wouldn't make any sense. johan On Nov 8, 2007 8:22 PM, mfs [EMAIL PROTECTED] wrote: Well that was just hypothetically speaking..what i meant was it would have loads of data loaded in it..so it was that scenario where i was wondering that we shouldnt store the state of each page. Yes as you pointed out using detachable models can certainly be one to way to go..but at the same time since i am sort of presenting my company with all the features, i want to be prepared with answers and would want to know as much as i can.. So with what i understand the page serialization can be disabled by providing a dummy page-store but the storage of pages in the pageMap and hence in the current active session is something which is implicit and not something we can avoid.. Eelco Hillenius wrote: Now there would be certain use-cases/pages in our application which would have alot of data in it (lets say in mbs), and in that scenario storing the entire model-data/components would probably bring in too much of a load on the system (in my opinion...given high volume of users..) so with that may be we would not want to store the pages in pageMap at all (which in turn is stored in the session). But I hope you're not storing MBs of data in your pages?! Users will also get pages served that are MBs large? Note that you don't have to keep anything in memory if you work with detachable models. Eelco - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- View this message in context: http://www.nabble.com/Disabling-serialization-storage-of-pages-in-session--tf4768006.html#a13653854 Sent from the Wicket - User mailing list archive at Nabble.comhttp://nabble.com/ . - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- View this message in context: http://www.nabble.com/Disabling-serialization-storage-of-pages-in-session--tf4768006.html#a13662918 Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Disabling serialization/storage of pages in session?
Most database expensive operations come from the result of stored procedures(my current experience at least). A cache solution can be implemented by caching the method results with spring(in case of using spring) but is a heavy(difficult) thing to maintain that cache per user - http session is a nice and easy storage for that-. Eelco Hillenius wrote: You should use a second level cache to cache objects and queries from your database; and that's not Wicket's job, Wicket is a Web framework. For example, use Hibernate + ehcache. Yep. That way you'll avoid redundancy in caching, and have caching regardless of whatever UI framework you're using. and using e.g. ehcache can do things for you like limit the RAM cache and overflow to disk. Etc. Eelco - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- View this message in context: http://www.nabble.com/Disabling-serialization-storage-of-pages-in-session--tf4768006.html#a13663495 Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Disabling serialization/storage of pages in session?
I'm not for not considerate caching outside the web layer or a naive aproach to cache everything even if that object changes 10 times a sec. I am just saying that it may be ok in some cases to keep state on some objects and not have detachable models. I'm not saying keep all in session and pay no considerations to separation of concerns. A nice design surelly is where the cache stands beetween the web and the database layer, but we may have the case where we use stored procedures intensively and the result may take a long time to return but that result may well be not be heavy(i guess that can be the case with stored procedures). We always have to think of the impact of presenting stale data. Johan Compagner wrote: Also caching data inside a session and having those object over multiply request gives in hibernate always errors like LazyInitalizationException or Transient/StaleObjectException Holding on to data in sessions is really a bad idea because you dont know when they come back if you have a session time out of a few hours, and people open pages and then do nothing for 15-30minutes then a huge page is kept in memory all the time. So if you keep growing users then you will hit memory problems very soon. Also if you constantly cache objects are those objects not changing between request by others? How do avoid state objects? User A changed an object and tells that to User B that wants to work with it. Then User B hits refresh 10 times but still sees the old value.. johan On Nov 9, 2007 9:13 AM, serban.balamaci [EMAIL PROTECTED] wrote: Why is everybody pointing out not to have database data inside the page? Many times retrieving the data from the database could be the slowest thing and having that sort of cache is one nice thing in my opinion. Is it not much better to have data in the session? I understand that it will be a negative point in clustering for session replication, but that might not be such a drawback. The state could be replicated to the other server asyncroniously after the request was presented back to the user so he sees no degradation in performance, or better use sticky load balance and not have session replication. Also you might need to sacrifice the availability of the back button, although by keeping multiple versions of the page that can be avoided? Are there other negatives?. Johan Compagner wrote: Use detachable models.. Never keep database data live inside your models just store the minimal state so that you can construct it again. The DiskStore is for the backbutton and the PageMap (thats in the session) is for the current page. And as long as that page is statefull you have to store it in the session There is no other way because that wouldn't make any sense. johan On Nov 8, 2007 8:22 PM, mfs [EMAIL PROTECTED] wrote: Well that was just hypothetically speaking..what i meant was it would have loads of data loaded in it..so it was that scenario where i was wondering that we shouldnt store the state of each page. Yes as you pointed out using detachable models can certainly be one to way to go..but at the same time since i am sort of presenting my company with all the features, i want to be prepared with answers and would want to know as much as i can.. So with what i understand the page serialization can be disabled by providing a dummy page-store but the storage of pages in the pageMap and hence in the current active session is something which is implicit and not something we can avoid.. Eelco Hillenius wrote: Now there would be certain use-cases/pages in our application which would have alot of data in it (lets say in mbs), and in that scenario storing the entire model-data/components would probably bring in too much of a load on the system (in my opinion...given high volume of users..) so with that may be we would not want to store the pages in pageMap at all (which in turn is stored in the session). But I hope you're not storing MBs of data in your pages?! Users will also get pages served that are MBs large? Note that you don't have to keep anything in memory if you work with detachable models. Eelco - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- View this message in context: http://www.nabble.com/Disabling-serialization-storage-of-pages-in-session--tf4768006.html#a13653854 Sent from the Wicket - User mailing list archive at Nabble.com http://nabble.com/http://nabble.com/ . - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- View this message in context: http://www.nabble.com/Disabling
Re: Popup parent comunication
Wel i use wicket 1.2.6 Sadly it seems to be a browser compatibility issue. Default I use firefox but tried it now in IE 6 and IE7 and in firefox there is the problem and in IE it works as expected. Hmm... Johan Compagner wrote: yeah there is already a call happening to the server. But maybe this is a bug in the wicket javascript code, that it still thinks that the channel is busy what version do you use of wicket? johan On Nov 8, 2007 9:24 AM, serban.balamaci [EMAIL PROTECTED] wrote: I forgot to look in the ajax console. Here is what it says: INFO: Initiating Ajax GET request on /crm/app/?wicket:interface=:1:myForm:tabs:0:customTablePanel:rows:2:cells:3:cell:-1:IUnversionedBehaviorListenerwicket:behaviorId=0wicket:ignoreIfNotActive=truerandom= 0.5604639175790322 INFO: Invoking pre-call handler(s)... INFO: Chanel busy - postponing... INFO: Chanel busy - postponing... I guess that Channel busy must be the culprit. Mr Mean wrote: Not entirely sure about this, but i think this is because wicket is smart enough to figure out it has already sent the header, so it won't send it again. If you want to invoke that script again you should trigger it from your ajax call with target.appendJavaScript(). Maurice On Nov 7, 2007 6:11 PM, serban.balamaci [EMAIL PROTECTED] wrote: Yes, you must be right, another issue against the modal window is that the datepicker does not work inside it, and I pretty much decided to stick to normal popups. Well it seems that i may have something here: In the parent page: add(new AbstractDefaultAjaxBehavior() { protected void respond(AjaxRequestTarget ajaxRequestTarget) { System.out.println(Ajax Method invoked); } protected void onRenderHeadContribution(final Response response) { super.onRenderHeadContribution(response); StringHeaderContributor header = new StringHeaderContributor(script language=\javascript\ + function call() { + getCallbackScript(false, true) + }; + /script); ((WebPage)getComponent().getPage()).add(header); } }); In the popup window we have the link: Link link = new Link(addLink) { public void onClick() { System.out.println(Ajax Method invoked); } protected CharSequence getOnClickScript(CharSequence charSequence) { CharSequence click = super.getOnClickScript(charSequence); if(click == null) { return self.opener.call();; } return click + self.opener.call();; } }; Current problem is that the method sometimes gets invoked sometimes it does not(the text Ajax Method invoked apears on the screen). Actually only the first time in most cases. The problem must be with the ajax call cause i added in the call function a debug message in javascript that gets always called(the call function). Anybody has any ideas why this is? Mr Mean wrote: if your modal dialog contains ajax tabs it should work, but all your user interaction from withing the dialog must be ajax. Maurice On Nov 7, 2007 1:50 PM, serban.balamaci [EMAIL PROTECTED] wrote: I cannot use the modal windows. They are plain popups. I do not know if there is a difference beetween modal windows that have a content a panel or a page, but i need to have tabbed pannels(which are links) inside the popup and by using a modal page with a panel content when i press on another tab(a link), i get the message that This action requires to navigate away from this page and the modal window will close and after pressing it does close the modal window. I am currently trying the 3rd option, i think i can write the javascript for the ajax request. I will post the solution if i get it working. Mr Mean wrote: Are you using the ModalWindow? in that case you need to set the PageCreator to return your page, don't use panels. Second you need to set a callbackhandler for the windowclose event. There you must update your combo. Maurice On Nov 7, 2007 12:09 PM, serban.balamaci [EMAIL PROTECTED] wrote: Hello! I have the following problem. I have a parent page, that opens a popup through a PageLink. The popup window is a window in which new records can be added, but i need a combo in the parent page to reflect and contain also the new choice added in the popup. 1. Reloading the whole parent page at popup close link pressed i would take as the last resolve
Re: Popup parent comunication
I forgot to look in the ajax console. Here is what it says: INFO: Initiating Ajax GET request on /crm/app/?wicket:interface=:1:myForm:tabs:0:customTablePanel:rows:2:cells:3:cell:-1:IUnversionedBehaviorListenerwicket:behaviorId=0wicket:ignoreIfNotActive=truerandom=0.5604639175790322 INFO: Invoking pre-call handler(s)... INFO: Chanel busy - postponing... INFO: Chanel busy - postponing... I guess that Channel busy must be the culprit. Mr Mean wrote: Not entirely sure about this, but i think this is because wicket is smart enough to figure out it has already sent the header, so it won't send it again. If you want to invoke that script again you should trigger it from your ajax call with target.appendJavaScript(). Maurice On Nov 7, 2007 6:11 PM, serban.balamaci [EMAIL PROTECTED] wrote: Yes, you must be right, another issue against the modal window is that the datepicker does not work inside it, and I pretty much decided to stick to normal popups. Well it seems that i may have something here: In the parent page: add(new AbstractDefaultAjaxBehavior() { protected void respond(AjaxRequestTarget ajaxRequestTarget) { System.out.println(Ajax Method invoked); } protected void onRenderHeadContribution(final Response response) { super.onRenderHeadContribution(response); StringHeaderContributor header = new StringHeaderContributor(script language=\javascript\ + function call() { + getCallbackScript(false, true) + }; + /script); ((WebPage)getComponent().getPage()).add(header); } }); In the popup window we have the link: Link link = new Link(addLink) { public void onClick() { System.out.println(Ajax Method invoked); } protected CharSequence getOnClickScript(CharSequence charSequence) { CharSequence click = super.getOnClickScript(charSequence); if(click == null) { return self.opener.call();; } return click + self.opener.call();; } }; Current problem is that the method sometimes gets invoked sometimes it does not(the text Ajax Method invoked apears on the screen). Actually only the first time in most cases. The problem must be with the ajax call cause i added in the call function a debug message in javascript that gets always called(the call function). Anybody has any ideas why this is? Mr Mean wrote: if your modal dialog contains ajax tabs it should work, but all your user interaction from withing the dialog must be ajax. Maurice On Nov 7, 2007 1:50 PM, serban.balamaci [EMAIL PROTECTED] wrote: I cannot use the modal windows. They are plain popups. I do not know if there is a difference beetween modal windows that have a content a panel or a page, but i need to have tabbed pannels(which are links) inside the popup and by using a modal page with a panel content when i press on another tab(a link), i get the message that This action requires to navigate away from this page and the modal window will close and after pressing it does close the modal window. I am currently trying the 3rd option, i think i can write the javascript for the ajax request. I will post the solution if i get it working. Mr Mean wrote: Are you using the ModalWindow? in that case you need to set the PageCreator to return your page, don't use panels. Second you need to set a callbackhandler for the windowclose event. There you must update your combo. Maurice On Nov 7, 2007 12:09 PM, serban.balamaci [EMAIL PROTECTED] wrote: Hello! I have the following problem. I have a parent page, that opens a popup through a PageLink. The popup window is a window in which new records can be added, but i need a combo in the parent page to reflect and contain also the new choice added in the popup. 1. Reloading the whole parent page at popup close link pressed i would take as the last resolve because the user may have introduced data in the controls that would get lost in the reloading process. I could get around this by adding a submit behaviour to the link and save in session the values inserted till that moment and rehidrate the model with values from the session instead of the database, and so obtain the state that the page was in before the popup was opened, but i'm wondering if there is not a cleaner solution for this. 2. I also tried(didn't think this would work:) but had to try) to pass the combo to the popup page and tried to update through the pressing of an ajaxlink the combo. It said
Popup parent comunication
Hello! I have the following problem. I have a parent page, that opens a popup through a PageLink. The popup window is a window in which new records can be added, but i need a combo in the parent page to reflect and contain also the new choice added in the popup. 1. Reloading the whole parent page at popup close link pressed i would take as the last resolve because the user may have introduced data in the controls that would get lost in the reloading process. I could get around this by adding a submit behaviour to the link and save in session the values inserted till that moment and rehidrate the model with values from the session instead of the database, and so obtain the state that the page was in before the popup was opened, but i'm wondering if there is not a cleaner solution for this. 2. I also tried(didn't think this would work:) but had to try) to pass the combo to the popup page and tried to update through the pressing of an ajaxlink the combo. It said it could not find the markup id for the combo(expected since it tried in the popup and not in the parent) so i guess that this approach could be made valid if the ajax callback would be directed at the parent page instead of the popup - i do not know how to do this. 3. Another option I am considering is calling a self.opener.function in which i would have javascript code for the ajax update of the combo in the parent. What code that is doing the ajax update i still do not know where to find- maybe on the onselectionchange behaviour would be the way to find out, or if it breaks something in the way wicket is working. Anybody has any pointers of what would be the nice way to implement, comments, or other ways to tackle the problem? Thanks. -- View this message in context: http://www.nabble.com/Popup-parent-comunication-tf4763947.html#a13625027 Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Popup parent comunication
Yes, you must be right, another issue against the modal window is that the datepicker does not work inside it, and I pretty much decided to stick to normal popups. Well it seems that i may have something here: In the parent page: add(new AbstractDefaultAjaxBehavior() { protected void respond(AjaxRequestTarget ajaxRequestTarget) { System.out.println(Ajax Method invoked); } protected void onRenderHeadContribution(final Response response) { super.onRenderHeadContribution(response); StringHeaderContributor header = new StringHeaderContributor(script language=\javascript\ + function call() { + getCallbackScript(false, true) + }; + /script); ((WebPage)getComponent().getPage()).add(header); } }); In the popup window we have the link: Link link = new Link(addLink) { public void onClick() { System.out.println(Ajax Method invoked); } protected CharSequence getOnClickScript(CharSequence charSequence) { CharSequence click = super.getOnClickScript(charSequence); if(click == null) { return self.opener.call();; } return click + self.opener.call();; } }; Current problem is that the method sometimes gets invoked sometimes it does not(the text Ajax Method invoked apears on the screen). Actually only the first time in most cases. The problem must be with the ajax call cause i added in the call function a debug message in javascript that gets always called(the call function). Anybody has any ideas why this is? Mr Mean wrote: if your modal dialog contains ajax tabs it should work, but all your user interaction from withing the dialog must be ajax. Maurice On Nov 7, 2007 1:50 PM, serban.balamaci [EMAIL PROTECTED] wrote: I cannot use the modal windows. They are plain popups. I do not know if there is a difference beetween modal windows that have a content a panel or a page, but i need to have tabbed pannels(which are links) inside the popup and by using a modal page with a panel content when i press on another tab(a link), i get the message that This action requires to navigate away from this page and the modal window will close and after pressing it does close the modal window. I am currently trying the 3rd option, i think i can write the javascript for the ajax request. I will post the solution if i get it working. Mr Mean wrote: Are you using the ModalWindow? in that case you need to set the PageCreator to return your page, don't use panels. Second you need to set a callbackhandler for the windowclose event. There you must update your combo. Maurice On Nov 7, 2007 12:09 PM, serban.balamaci [EMAIL PROTECTED] wrote: Hello! I have the following problem. I have a parent page, that opens a popup through a PageLink. The popup window is a window in which new records can be added, but i need a combo in the parent page to reflect and contain also the new choice added in the popup. 1. Reloading the whole parent page at popup close link pressed i would take as the last resolve because the user may have introduced data in the controls that would get lost in the reloading process. I could get around this by adding a submit behaviour to the link and save in session the values inserted till that moment and rehidrate the model with values from the session instead of the database, and so obtain the state that the page was in before the popup was opened, but i'm wondering if there is not a cleaner solution for this. 2. I also tried(didn't think this would work:) but had to try) to pass the combo to the popup page and tried to update through the pressing of an ajaxlink the combo. It said it could not find the markup id for the combo(expected since it tried in the popup and not in the parent) so i guess that this approach could be made valid if the ajax callback would be directed at the parent page instead of the popup - i do not know how to do this. 3. Another option I am considering is calling a self.opener.function in which i would have javascript code for the ajax update of the combo in the parent. What code that is doing the ajax update i still do not know where to find- maybe on the onselectionchange behaviour would be the way to find out, or if it breaks something in the way wicket is working. Anybody has any pointers of what would be the nice way to implement, comments, or other ways to tackle the problem? Thanks. -- View this message in context: http://www.nabble.com/Popup-parent-comunication-tf4763947.html
Re: Why dioes this error occur?
Hi. Well in my case this error apeared when the user clicked on a link that was directing the user to the next page, and while the user did not wait for the other page to load, or he thought that he did not press the mouse button and he clicked again. The server saw that the component(link) was no longer in the the new page and therefore the nullpointer. I got around this by disabling the link after the clicking. salmas wrote: Every once in awhile if I am clicking around for awhile in the UI of my application I get the following error. What causes this? java.lang.NullPointerException at wicket.request.compound.DefaultRequestTargetResolverStrategy.resolveListenerInterfaceTarget(DefaultRequestTargetResolverStrategy.java:295) at wicket.request.compound.DefaultRequestTargetResolverStrategy.resolveRenderedPage(DefaultRequestTargetResolverStrategy.java:228) at wicket.request.compound.DefaultRequestTargetResolverStrategy.resolve(DefaultRequestTargetResolverStrategy.java:153) at wicket.request.compound.AbstractCompoundRequestCycleProcessor.resolve(AbstractCompoundRequestCycleProcessor.java:48) at wicket.RequestCycle.step(RequestCycle.java:992) at wicket.RequestCycle.steps(RequestCycle.java:1084) at wicket.RequestCycle.request(RequestCycle.java:454) at wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:219) at wicket.protocol.http.WicketServlet.doPost(WicketServlet.java:262) at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1072) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:465) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:348) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6981) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121) at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3892) at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2766) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183) -- View this message in context: http://www.nabble.com/Why-dioes-this-error-occur--tf4766684.html#a13634076 Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Popup parent comunication
I cannot use the modal windows. They are plain popups. I do not know if there is a difference beetween modal windows that have a content a panel or a page, but i need to have tabbed pannels(which are links) inside the popup and by using a modal page with a panel content when i press on another tab(a link), i get the message that This action requires to navigate away from this page and the modal window will close and after pressing it does close the modal window. I am currently trying the 3rd option, i think i can write the javascript for the ajax request. I will post the solution if i get it working. Mr Mean wrote: Are you using the ModalWindow? in that case you need to set the PageCreator to return your page, don't use panels. Second you need to set a callbackhandler for the windowclose event. There you must update your combo. Maurice On Nov 7, 2007 12:09 PM, serban.balamaci [EMAIL PROTECTED] wrote: Hello! I have the following problem. I have a parent page, that opens a popup through a PageLink. The popup window is a window in which new records can be added, but i need a combo in the parent page to reflect and contain also the new choice added in the popup. 1. Reloading the whole parent page at popup close link pressed i would take as the last resolve because the user may have introduced data in the controls that would get lost in the reloading process. I could get around this by adding a submit behaviour to the link and save in session the values inserted till that moment and rehidrate the model with values from the session instead of the database, and so obtain the state that the page was in before the popup was opened, but i'm wondering if there is not a cleaner solution for this. 2. I also tried(didn't think this would work:) but had to try) to pass the combo to the popup page and tried to update through the pressing of an ajaxlink the combo. It said it could not find the markup id for the combo(expected since it tried in the popup and not in the parent) so i guess that this approach could be made valid if the ajax callback would be directed at the parent page instead of the popup - i do not know how to do this. 3. Another option I am considering is calling a self.opener.function in which i would have javascript code for the ajax update of the combo in the parent. What code that is doing the ajax update i still do not know where to find- maybe on the onselectionchange behaviour would be the way to find out, or if it breaks something in the way wicket is working. Anybody has any pointers of what would be the nice way to implement, comments, or other ways to tackle the problem? Thanks. -- View this message in context: http://www.nabble.com/Popup-parent-comunication-tf4763947.html#a13625027 Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- View this message in context: http://www.nabble.com/Popup-parent-comunication-tf4763947.html#a13626466 Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]