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