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

Reply via email to