[jira] Created: (WICKET-2584) Working with markup inheritance in panels
Working with markup inheritance in panels - Key: WICKET-2584 URL: https://issues.apache.org/jira/browse/WICKET-2584 Project: Wicket Issue Type: Improvement Reporter: Madhuri Fix For: 1.4.1 Hi I'm creating an application which is having a panel with a button. I want to add a text field when the user clicks on the button (on fly). Please help meproviding a quick start. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Created: (WICKET-2583) Warnings flood if incorrect credentials endered on SignInPage
Warnings flood if incorrect credentials endered on SignInPage - Key: WICKET-2583 URL: https://issues.apache.org/jira/browse/WICKET-2583 Project: Wicket Issue Type: Bug Components: wicket-auth-roles Affects Versions: 1.4.3 Reporter: Marat Radchenko WARNING: Couldn't resolve model type of Model:classname=[org.apache.wicket.model.PropertyModel]:nestedModel=[username = "admin"]:expression=[username] for [MarkupContainer [Component id = username]], please set the type yourself. 20.11.2009 0:04:11 org.apache.wicket.markup.html.form.AbstractTextComponent getModelType WARNING: Couldn't resolve model type of Model:classname=[org.apache.wicket.model.PropertyModel]:nestedModel=[username = "admin"]:expression=[password] for [MarkupContainer [Component id = password]], please set the type yourself. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[CONF] Apache Wicket > Page maps
Page maps Page edited by Eugene Malan "Page" in this text means stateful page. Page maps do not store Stateless pages. "Page map" means IPageMap interface and its implementations. Page maps Page map is a part of Session. Basically it is used as an interface for storing pages and their versions. Page map stores instances of pages (including component tree) which were visited by user during the current session. So every time user goes to another page or changes page state, the page instance is stored in a page map. There can be one or more page maps in one http session where each page map corresponds to a browser tab (or a modal window if it contains a page and has had a separate page map set). Page maps are identified by their names. In a sense, page maps can be viewed as an implementation detail of Session, since they are used only through IPageMap interface and some of their the functionality should be accessed only through Session. Simple example Here is a simple example of how page map is used from framework user's point of view. Suppose there is a home page which has two links: "gotoNewPage" link creates new home page instance and displays it to user; "changeState" link changes page state creating new version of page. The page code goes like this: class MyHomePage extends WebPage { public MyHomePage() { add(new Link("changeState", new Model()) { public void onClick() { // this changes link state and therefore page state this.setModelObject(new Random().nextInt()); } }); add(new Link("gotoNewPage") { public void onClick() { setResponsePage(new MyHomePage()); } }); } } Now if you go to home page, click once on "gotoNewPage" link, twice on "changeState" link and twice on "gotoNewPage" link again, the page map for the current session will look like this (it doesn't mean page map stores pages in a table or map): version \ id 0 1 2 3 0 page page page page 1 page 2 page In the table "page" denotes page instance. Page id is a number unique within a page map or session (see ISessionSettings#setPageIdUniquePerSession()). All pages have id since they subclass Component class. Id is assigned to page automatically on creation. The first instance of home page with id 0 and version 0 was created when you went to application home page (i.e. typed in browser a URL like http://localhost:8080/app). Then after clicking on "gotoNewPage" link, page with id 1 and version 0 was created and added to the page map. Next two clicks on "changeState" link added to the page map versions 1 and 2 of the home page. And finally two clicks on "gotoNewPage" link created and added another two home page instances to the page map. There is another thing which is related to storing pages. It's that they can be accessed by page id and version using specific URL. In a simplified way this URL has the following form (see WebRequestCodingStrategy#addInterfaceParameters() javadoc for full description): http:///?wicket:interface=::: where: application URL is something like "localhost:8080/app"; page map name is the name of the page map to be requested. Page map which is created by default has name "null" and can be omitted in the URL; page id is id of the page to retrieve (must be a number); page version is version of the page to retrieve (can be empty string which means version 0). So for example to access second version of page instance with id 1 the following URL will be used: http://localhost:8080/app/?wicket:interface=:1:2:::. If there is no page with specified id and version, then "Page Expired" page will be shown. Similarly components like Links and Buttons, which provide callback to user code, use URLs which point to the page instance in a page map. For example "changeState " link on the second version of page with id 1 will have URL like this http://localhost:8080/app/?wicket:interface=:1:changeState:2:ILinkListener:: When this link is clicked Wicket will call onClick() handler for this link on the page instance with id 1 and version 2. In this way pages generated by Wicket point to specific page instance on server. Page map life cycle Every session in Wicket has at least one page map. This page map is called default and has null name (see PageMap#isDefault()). Normally default page map is lazily created while constructing the first accessed page in session. Additional page maps may be created ("may be" means here that it is not necessarily the case): on opening tab in web-browser (see IPageSettings#getAutomaticMultiWindowSupport()) on creating modal/popup window when using inline frames anywhere in code using PageMap#forName() method it's not normal usecase, but page map is also created whenever a URL is requested which contains name of not-ex
[jira] Commented: (WICKET-2579) tabbedpanel (and ajaxtabbedpanel) only submit the selected tab. A mode which instead submits all loaded tabs would be helpful.
[ https://issues.apache.org/jira/browse/WICKET-2579?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12779970#action_12779970 ] Roger Armstrong commented on WICKET-2579: - Actually, overriding newLink and providing an AjaxSubmitLink allows me to achieve pretty much what I wanted - I can display the validation errors and refuse to let the users switch to another tab until the form validates. As usual, Wicket provides a solution. Thanks! > tabbedpanel (and ajaxtabbedpanel) only submit the selected tab. A mode which > instead submits all loaded tabs would be helpful. > -- > > Key: WICKET-2579 > URL: https://issues.apache.org/jira/browse/WICKET-2579 > Project: Wicket > Issue Type: Wish > Components: wicket-extensions >Affects Versions: 1.4.3 >Reporter: Roger Armstrong >Assignee: Igor Vaynberg > > If I want to split the contents of a form across multiple tabs (for example a > user profile form split into basic and advanced settings), there seems to be > no way to validate the form properly. > The user should be able to fill out, say, first name and last name in the > basic tab, then switch to the advanced tab and fill out some settings there, > then click the Save button. If the user forgot to fill out a required field > on the basic, (say, email address), there's no way to handle this (because > the first tab is already gone when you switch to the second tab). > I've tried to use an AjaxFormValidatingBehavior on blur of all form > components, but this is not a good solution since validation occurs on lost > focus instead of when the user clicks the Save button. > What I would like would be that the TabbedPanel keeps all visited panels > around (but all hidden except the selected tab) so that they are all > submitted together. That way, you have lazy loading, but standard submit and > validate behavior (at the expense of keeping the loaded panels around). > This seems like a fairly standard pattern for using a tabbed panel, so it > would seem useful to have it in the "standard" tab panel instead of everyone > having to reinvent it (like at > http://www.xaloon.org/blog/advanced-wicket-tabs-with-jquery). -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Commented: (WICKET-1432) Detection of ajax transport type
[ https://issues.apache.org/jira/browse/WICKET-1432?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12779916#action_12779916 ] Rasmus Sööt commented on WICKET-1432: - Currently ajax doesn't work with IE if browser has High security settings and Javascript is enabled. The problem is, that on High security settings ActiveX is only enabled for trusted sites. To reproduce: In IE7 or IE8 select Tools->Internet Options -> Security tab-> Set security level for Internet to High-> Click Custom level-> Scroll down to Scripting and set Active scripting to Enable-> Click OK, Yes, OK-> Open URL http://www.wicket-library.com/wicket-examples/ajax/editable-label -> Click on multiple lines of textual content - Text box does not open and IE gives the following error: Message: Automation server can't create object Line: 669 Char: 10 Code: 0 URI: http://www.wicket-library.com/wicket-examples/ajax/resources/org.apache.wicket.ajax.WicketAjaxReference/wicket-ajax.js Could somebody look into this? I'm not familiar with the codebase, maybe something depends on having ActiveXObject for IE. Microsoft suggests using XMLHttpRequest in IE7+ too, from http://msdn.microsoft.com/en-us/library/ms535874%28VS.85%29.aspx - To support versions of Internet Explorer prior to Internet Explorer 7, use the following function to get the XMLHttpRequest object: function getXMLHttpRequest() { if (window.XMLHttpRequest) { return new window.XMLHttpRequest; } else { try { return new ActiveXObject("MSXML2.XMLHTTP.3.0"); } catch(ex) { return null; } } } > Detection of ajax transport type > > > Key: WICKET-1432 > URL: https://issues.apache.org/jira/browse/WICKET-1432 > Project: Wicket > Issue Type: Improvement > Components: wicket > Environment: Windows Mobile + Opera Mobile 9.5 Beta >Reporter: Sven Rienstra >Assignee: Matej Knopp >Priority: Minor > > Wicket currently detects wich type of ajax transport has to be used by > detecting if the browser supports activeX. Wouldn't it be better to use > activeX only if the browser is IE and lower than version 7, because as far as > I know that's the only browser you would want to use activeX on. > The reason i'm asking is because i'm testing with the new Opera Mobile > browser (9.5 beta), ajax isn't working because wicket tries to use an activeX > object. I fixed this for now in my own enviremont but maybe it's good to > change this in a future release ? > Patch file: > Index: wicket-ajax.js > === > --- wicket-ajax.js(revision 638254) > +++ wicket-ajax.js(working copy) > @@ -652,7 +652,7 @@ > // Creates a new instance of a XmlHttpRequest > createTransport: function() { > var transport = null; > - if (window.ActiveXObject) { > + if (Wicket.Browser.isIELessThan7()) { > transport = new ActiveXObject("Microsoft.XMLHTTP"); > } else if (window.XMLHttpRequest) { > transport = new XMLHttpRequest(); -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Commented: (WICKET-2579) tabbedpanel (and ajaxtabbedpanel) only submit the selected tab. A mode which instead submits all loaded tabs would be helpful.
[ https://issues.apache.org/jira/browse/WICKET-2579?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12779891#action_12779891 ] Roger Armstrong commented on WICKET-2579: - Thanks Erik - I hope its not weird - we've being doing it that way for years. Regarding Igor's comment - lazy loading is important (since relatively slow-loading options like lists will also be moved to their own tabs), so loading all the tabs initially and then just switching on the client side is not what I'm arguing for. OTOH, validating across tabs is problematic for the user (how to show him where his errors are if they're in more than one tab?), so maybe the correct way is to force him to confirm changes before switching tabs (when a change is made, disable all other tabs and show a save button). > tabbedpanel (and ajaxtabbedpanel) only submit the selected tab. A mode which > instead submits all loaded tabs would be helpful. > -- > > Key: WICKET-2579 > URL: https://issues.apache.org/jira/browse/WICKET-2579 > Project: Wicket > Issue Type: Wish > Components: wicket-extensions >Affects Versions: 1.4.3 >Reporter: Roger Armstrong >Assignee: Igor Vaynberg > > If I want to split the contents of a form across multiple tabs (for example a > user profile form split into basic and advanced settings), there seems to be > no way to validate the form properly. > The user should be able to fill out, say, first name and last name in the > basic tab, then switch to the advanced tab and fill out some settings there, > then click the Save button. If the user forgot to fill out a required field > on the basic, (say, email address), there's no way to handle this (because > the first tab is already gone when you switch to the second tab). > I've tried to use an AjaxFormValidatingBehavior on blur of all form > components, but this is not a good solution since validation occurs on lost > focus instead of when the user clicks the Save button. > What I would like would be that the TabbedPanel keeps all visited panels > around (but all hidden except the selected tab) so that they are all > submitted together. That way, you have lazy loading, but standard submit and > validate behavior (at the expense of keeping the loaded panels around). > This seems like a fairly standard pattern for using a tabbed panel, so it > would seem useful to have it in the "standard" tab panel instead of everyone > having to reinvent it (like at > http://www.xaloon.org/blog/advanced-wicket-tabs-with-jquery). -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Created: (WICKET-2582) org.apache.wicket.markup.html.form.Check should call Component.isEnabledInHierarchy()
org.apache.wicket.markup.html.form.Check should call Component.isEnabledInHierarchy() - Key: WICKET-2582 URL: https://issues.apache.org/jira/browse/WICKET-2582 Project: Wicket Issue Type: Bug Components: wicket Affects Versions: 1.4.3 Environment: wicket 1.4.3 Reporter: Michael Frankerl The Implementation of onComponentTag() in org.apache.wicket.markup.html.form.Check should call Component.isEnabledInHierarchy() instead of "if (!isActionAuthorized(ENABLE) || !isEnabled() || !group.isEnabled())". This would pass-through the ancestors "enabled"-flag to the Check Component. For example component path: " WebMarkupContainer : CheckGroup : Check " Whereas the WebMarkupContainer is disabled. In the current implementation the Check ignores WebMarkupContainer "enabled"-flag. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Commented: (WICKET-2579) tabbedpanel (and ajaxtabbedpanel) only submit the selected tab. A mode which instead submits all loaded tabs would be helpful.
[ https://issues.apache.org/jira/browse/WICKET-2579?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12779860#action_12779860 ] Erik van Oosten commented on WICKET-2579: - Roger, please note that what you ask is not weird, its just that it can not be accomplish with the current TabbedPanel. Another component that does what you ask would be welcome of course. > tabbedpanel (and ajaxtabbedpanel) only submit the selected tab. A mode which > instead submits all loaded tabs would be helpful. > -- > > Key: WICKET-2579 > URL: https://issues.apache.org/jira/browse/WICKET-2579 > Project: Wicket > Issue Type: Wish > Components: wicket-extensions >Affects Versions: 1.4.3 >Reporter: Roger Armstrong >Assignee: Igor Vaynberg > > If I want to split the contents of a form across multiple tabs (for example a > user profile form split into basic and advanced settings), there seems to be > no way to validate the form properly. > The user should be able to fill out, say, first name and last name in the > basic tab, then switch to the advanced tab and fill out some settings there, > then click the Save button. If the user forgot to fill out a required field > on the basic, (say, email address), there's no way to handle this (because > the first tab is already gone when you switch to the second tab). > I've tried to use an AjaxFormValidatingBehavior on blur of all form > components, but this is not a good solution since validation occurs on lost > focus instead of when the user clicks the Save button. > What I would like would be that the TabbedPanel keeps all visited panels > around (but all hidden except the selected tab) so that they are all > submitted together. That way, you have lazy loading, but standard submit and > validate behavior (at the expense of keeping the loaded panels around). > This seems like a fairly standard pattern for using a tabbed panel, so it > would seem useful to have it in the "standard" tab panel instead of everyone > having to reinvent it (like at > http://www.xaloon.org/blog/advanced-wicket-tabs-with-jquery). -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.