you should do something like this [form1][select/][submit button/][/form1] [form2][form components panel/][/form2]
user presses the submit button in form 1, in form 1's onsubmit you swap the form components panel based on the selection. simple. -igor On Wed, Nov 11, 2009 at 12:50 PM, srm <s...@schokokeks.org> wrote: > Ah! Stupid me! > I've read that it is working with JS and I didn't make sure to disable JS for > my local host. > Aaaaargh. > > So it's not solved. Need to find a way around then. > > Thanks for the pointer. > > Regards, > Stephan > > Am 11.11.2009 um 21:44 schrieb Martijn Dashorst: > >> How do you think wantOnSelectionChangedNotification() works? With or without >> JS? >> >> Martijn >> >> On Wed, Nov 11, 2009 at 9:39 PM, srm <s...@schokokeks.org> wrote: >>> SOLVED! >>> w/o JS/AJAX >>> >>> I created a factory to produce the corresponding Panel(including the form) >>> and I use a call to replaceWith() in onSelectionChanged(): >>> >>> [code] >>> �...@override >>> protected void onSelectionChanged(final Object newSelection) { >>> Panel newPanel = AddItemPanel.getAddItemPanel(selected, >>> "addArticlePanel"); //the factory call >>> addArticlePanel.replaceWith(newPanel); >>> addArticlePanel = newPanel; >>> } >>> >>> Thanks to martin-g @ #wicket. >>> >>> Regards, >>> Stephan >>> >>> Am 11.11.2009 um 16:18 schrieb srm: >>> >>>> Am 11.11.2009 um 15:59 schrieb Ernesto Reinaldo Barreiro: >>>> >>>>> If you reload the page when selecting the element, instead of using AJAX, >>>>> I >>>>> guess the same will work because you have a selected article... I think >>>>> AJAX >>>>> is just a detail here, maybe you can use >>>>> >>>>> protected boolean wantOnSelectionChangedNotifications() >>>>> { >>>>> return false; >>>>> } >>>>> >>>>> on DropDownChoice? >>>>> >>>> >>>> >>>> From my understanding, I need wantOnSelectionChangedNotifications() >>>> returning TRUE, otherwise onSelectionChanged() is never triggered. >>>> My current approach as follows. That's working but it doesn't feel right. >>>> To clumsy. Any ideas? (and I beg your pardon for mixing german >>>> with english in the code ;) ) >>>> >>>> package view; >>>> >>>> ..some imports... >>>> public class AddArticlePage extends StorePage { >>>> >>>> private AddArticlePanel addArticlePanel; >>>> >>>> �...@suppresswarnings("unchecked") >>>> public AddArticlePage() { >>>> addArticlePanel = new AddArticlePanel("addArticlePanel"); >>>> addArticlePanel.setVisible(false); >>>> DropDownChoice dropDownType = new DropDownChoice("dropDownType", >>>> new PropertyModel(this, "selected"), Artikel.TYPELIST) { >>>> protected boolean wantOnSelectionChangedNotifications() { >>>> return true; >>>> } >>>> �...@override >>>> protected void onSelectionChanged(final Object newSelection) { >>>> System.out.println("SELECTION CHANGED!"); >>>> System.out.println("new Selection = " + (String) newSelection); >>>> addArticlePanel.setVisibleFields((String) newSelection); >>>> addArticlePanel.setVisible(true); >>>> } >>>> }; >>>> >>>> Form formAdd = new Form("addArticleForm") { >>>> �...@override >>>> protected void onSubmit() { >>>> System.out.println("Added Article..."); >>>> } >>>> }; >>>> >>>> add(dropDownType); >>>> add(addArticlePanel); >>>> add(formAdd); >>>> >>>> } >>>> } >>>> >>>> >>>> /***** THE PANEL CLASS ******/ >>>> public class AddArticlePanel extends Panel { >>>> >>>> private TextField artikelNummer; >>>> private TextField preis; >>>> private TextField erscheinungsJahr; >>>> private TextField beschreibung; >>>> private TextField titel; >>>> >>>> //fields for BOOK >>>> private TextField isbn; >>>> private TextField autor; >>>> private TextField verlag; >>>> >>>> //fields for CD >>>> private TextField label; >>>> private TextField artist; >>>> >>>> public AddArticlePanel(String id) { >>>> super(id); >>>> >>>> artikelNummer = new TextField("artikelNummer", new Model()); >>>> preis = new TextField("preis", new Model()); >>>> erscheinungsJahr = new TextField("erscheinungsJahr", new Model()); >>>> beschreibung = new TextField("beschreibung", new Model()); >>>> titel = new TextField("titel", new Model()); >>>> isbn = new TextField("isbn", new Model()); >>>> autor = new TextField("autor", new Model()); >>>> verlag = new TextField("verlag", new Model()); >>>> label = new TextField("label", new Model()); >>>> artist = new TextField("artist", new Model()); >>>> add(artikelNummer); >>>> add(preis); >>>> add(erscheinungsJahr); >>>> add(beschreibung); >>>> add(titel); >>>> add(isbn); >>>> add(autor); >>>> add(verlag); >>>> add(label); >>>> add(artist); >>>> >>>> // THIS WHOLE THING WOULD HAVE TO BE DONE FOR EACH ITEM AGAIN TO >>>> // DISPLAY A LABEL IN FRONT OF EACH TEXTFIELD, HOLDING A DESCRIPTION >>>> // SOUNDS AWFULL! >>>> >>>> } >>>> >>>> //could probably be optimised >>>> public void setVisibleFields(String type) { >>>> if (type.equals("BOOK")) { >>>> isbn.setVisible(true); >>>> autor.setVisible(true); >>>> verlag.setVisible(true); >>>> >>>> label.setVisible(false); >>>> artist.setVisible(false); >>>> } >>>> else { >>>> isbn.setVisible(false); >>>> autor.setVisible(false); >>>> verlag.setVisible(false); >>>> >>>> label.setVisible(true); >>>> artist.setVisible(true); >>>> } >>>> } >>>> >>>> >>>> } >>>> >>>> Comments please :) >>>> >>>> >>>>> Best, >>>>> >>>>> Ernesto >>>>> >>>>> On Wed, Nov 11, 2009 at 3:45 PM, srm <s...@schokokeks.org> wrote: >>>>> >>>>>> >>>>>> Am 11.11.2009 um 15:25 schrieb Ernesto Reinaldo Barreiro: >>>>>> >>>>>>> I have used something similar to >>>>>> [snip] >>>>>> [snap] >>>>>>> >>>>>>> for such situations... I delegate creation to a factory class (so that >>>>>> new >>>>>>> products can be plugged in). >>>>>>> >>>>>>> Best, >>>>>>> >>>>>>> Ernesto >>>>>>> >>>>>> >>>>>> >>>>>> Thank you for this example. >>>>>> But I'm bound to not use Ajax/JavaScript...and now I'm stuck. >>>>>> >>>>>> Regards, >>>>>> Stephan >>>>>> >>>>>> >>>>>> >>>>>>> On Wed, Nov 11, 2009 at 2:53 PM, srm <s...@schokokeks.org> wrote: >>>>>>> >>>>>>>> How would you approach the following: >>>>>>>> PageA is used to insert an article. At first, the user chooses what >>>>>>>> kind >>>>>> of >>>>>>>> article to insert (DropDownChoice). >>>>>>>> When the User made his choice, a coresponding form should be >>>>>> loaded/visible >>>>>>>> underneath the >>>>>>>> DropDownChoice. That's all to be solved without JavaScript. >>>>>>>> My current idea is currently to add an Panel (AddArticlePanel) which >>>>>> holds >>>>>>>> all fields for any kind of article >>>>>>>> and make them visible depending on what the user has chosen (using >>>>>>>> onSelectionChanged). >>>>>>>> But that seems like a brute approach so I wanted to get your opinions >>>>>>>> on >>>>>>>> this. >>>>>>>> >>>>>>>> Further information will be happily provided. >>>>>>>> >>>>>>>> Regards, >>>>>>>> Stephan >>>>>>>> --------------------------------------------------------------------- >>>>>>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >>>>>>>> For additional commands, e-mail: users-h...@wicket.apache.org >>>>>>>> >>>>>>>> >>>>>> >>>>>> >>>>>> --------------------------------------------------------------------- >>>>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >>>>>> For additional commands, e-mail: users-h...@wicket.apache.org >>>>>> >>>>>> >>>> >>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >>>> For additional commands, e-mail: users-h...@wicket.apache.org >>>> >>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >>> For additional commands, e-mail: users-h...@wicket.apache.org >>> >>> >> >> >> >> -- >> Become a Wicket expert, learn from the best: http://wicketinaction.com >> Apache Wicket 1.4 increases type safety for web applications >> Get it now: http://www.apache.org/dyn/closer.cgi/wicket/1.4.0 >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >> For additional commands, e-mail: users-h...@wicket.apache.org >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > For additional commands, e-mail: users-h...@wicket.apache.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org