Experiencing a wicket problem to do with UI state corruption when using ajax tabbed panel. When the ajax links are rapidly clicked in succession various validation errors appear relating to panels that are hidden, form component drop downs lose their display UI values and UI state basically becomes "v.confused". Have not observed this behavior elsewhere but somehow it seems like the ajax requests are not stacking correctly or at least are losing synch with the UI rerendering somehow.
Below are all the steps (in brevity) so far attempted and some unanswered questions I still have:- (1) Tried IAjaxIndicatorAware on individual form components and overridden tabbed panel links. Used this in conjunction with a server side request throttler. Basically wrote a timer class that intercepts onsubmit requests and rejects (returns without processing further) on any entered with given 2 second interval using standard Java api class implementations. This approach does actually work but doesn't explain why we're having this problem in first place? (2) Tried a DIV interceptor approach hooking into Wicket.Ajax.registerPreCallHandler, postcall, and failure. The idea was to cover the entire screen with a transparent div whilst asynch call being made - however, problematic using IE 6 but works with firefox. Essentially, seems IE deals with windowed and windowless components and certain html form components are windowed such as select. z-indexes are not respected between the two types and therefore setting div z-index higher than select z-index doesn't work. tried workaround using an iframe (which covers both z-indexes in IE6) but iframe transparency issues meant access to underlying form component. (3) Looked at wicket-ajax.js - was interested with configuration of the channels settings - but unsure how to get an appropriate configuration fix. There is an indicator between setting which gets read by reading out of a regex a character value of either 'd' or 's' where from what i can see 's' ensures requests are stacked. Found some help in an older newsgroup which mentions that "{wicket has "ajax channels" with different channel modes such as queue/disregard. that way you can disable certain groups of components only by assigning them to the same ajax channel.}" Looking at the wicket java api i couldn't manage to find any handle to setting this flag up. Is this a direct wicket-ajax.js edit and if so then my question would be "What is an "elegant" way to override the default to use 'd'?" (4) Finally, switched the asynch flag to "false" by editing wicket-ajax.js directly (this.type in request prototype class). This resolved the original problem but uncertain what the consequences of doing this are. Is this safe and is there any Java api accessible means to do this? In firefox by inspecting ajax responses via an ajax plugin, it seemed to indicate ajax requests yet the page is flickering on rerender much like a full page resubmission would. Does ajax submission still work or is it the main UI thread that now handles form submissions? This e-mail (and any attachments) may contain privileged and/or confidential information. If you are not the intended recipient please do not disclose, copy, distribute, disseminate or take any action in reliance on it. If you have received this message in error please reply and tell us and then delete it. Should you wish to communicate with us by e-mail we cannot guarantee the security of any data outside our own computer systems. For the protection of Legal & General's systems and staff, incoming emails will be automatically scanned. Any information contained in this message may be subject to applicable terms and conditions and must not be construed as giving investment advice within or outside the United Kingdom. The following companies are subsidiary companies of the Legal & General Group Plc which are authorised and regulated by the Financial Services Authority for advising and arranging the products shown: Legal & General Partnership Services Limited (insurance and mortgages), Legal & General Insurance Limited (insurance), Legal & General Assurance Society Limited (life assurance, pensions and investments), Legal & General Unit Trust Managers Limited and Legal & General Portfolio Management Services Limited (investments). They are registered in England under numbers shown. The registered office is Temple Court, 11 Queen Victoria Street, London EC4N 4TP. Legal & General Partnership Services Limited: 5045000 Legal & General Assurance Society Limited: 166055 Legal & General (Unit Trust Managers) Limited: 1009418 Legal & General (Portfolio Management Services) Limited: 2457525 Legal & General Insurance Limited: 423930 They are registered with the Financial Services Authority under numbers shown. You can check this at www.fsa.gov.uk/register Legal & General Partnership Services Limited: 300792 Legal & General Assurance Society Limited: 117659 Legal & General (Unit Trust Managers) Limited: 119273 Legal & General (Portfolio Management Services) Limited: 146786 Legal & General Insurance Limited: 202050 ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user