You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "smallufo (JIRA)" <ji...@apache.org> on 2010/01/21 18:13:54 UTC

[jira] Created: (WICKET-2694) Dynamic Form inconsistent behavior inside/outside a ListView

Dynamic Form inconsistent behavior inside/outside a ListView
------------------------------------------------------------

                 Key: WICKET-2694
                 URL: https://issues.apache.org/jira/browse/WICKET-2694
             Project: Wicket
          Issue Type: Bug
          Components: wicket
    Affects Versions: 1.4.5
         Environment: Wicket 1.4.5 , resin-3.1.9 , CentOS 5.4
            Reporter: smallufo


The original discuss thread is here :
http://old.nabble.com/Cannot-get-default-invisible-TextField's-ModelObject---td27251305.html


I have a form , which is embedded in a ListView , 
The form contains a radio button.
When user clicks the radio button , a default-invisible textfield is set visible.
But I cannot get the textfield's Model Object , it is null ...

To make it more clear :
When the radio button is clicked , by implement AjaxEventBehavior("onClick")  
, a default-invisible WebMarkupContainer is set visible ,
The WebMarkupContainer  contains other TextFields , which I cannot get their values at all ....

If the form is not embedded in a ListView , everything works fine .
I think it is an inconsistent behavior and should be fixed.

MyPage.html 

<table border="1"> 
  <tr> 
    <th>name</th> 
    <th>more ?</th> 
  </tr> 
  <span wicket:id="listView"> 
    <form wicket:id="form"> 
      <tr> 
        <td wicket:id="name">[name]</td> 
        <td> 
          <span wicket:id="radioGroup"> 
            <input type="radio" wicket:id="yes"/>yes 
            <input type="radio" wicket:id="no"/>no 
          </span> 
        </td> 
      </tr> 
      <tr wicket:id="more"> 
        <td colspan="2"> 
          <input type="text" size="40" value="Please leave comments" 
wicket:id="textfield"/> 
          <input type="submit" value="Submit" wicket:id="submit"/> 
        </td> 
      </tr> 
    </form> 
  </span> 
</table> 


public class MyPage extends WebPage 
{ 
  private final static List<String> names = new ArrayList<String>(); 
  static 
  { 
    names.add("Andy"); 
    names.add("Brian"); 
    names.add("Carol"); 
  } 

  public MyPage() 
  { 
    ListView<String> listView = new ListView<String>("listView" , names) 
    { 
      @Override 
      protected void populateItem(ListItem<String> item) 
      { 

        Form<Void> form = new Form<Void>("form"); 
        item.add(form); 

        String name = item.getModelObject(); 

        form.add(new Label("name" , name)); 

        final WebMarkupContainer more = new WebMarkupContainer("more"); 
        more.setVisible(false); 
        more.setOutputMarkupPlaceholderTag(true); 
        form.add(more); 


        final RadioGroup<Boolean> radioGroup = new 
RadioGroup<Boolean>("radioGroup" , Model.of(Boolean.FALSE)); 
        form.add(radioGroup); 

        Radio<Boolean> yes = new Radio<Boolean>("yes" , 
Model.of(Boolean.TRUE)); 
        Radio<Boolean> no = new Radio<Boolean>("no" , 
Model.of(Boolean.FALSE)); 
        radioGroup.add(yes); 
        radioGroup.add(no); 

        yes.add(new AjaxEventBehavior("onClick") 
        { 
          @Override 
          protected void onEvent(AjaxRequestTarget target) 
          { 
            more.setVisible(true); 
            target.addComponent(more); 
          } 
        }); 

        no.add(new AjaxEventBehavior("onClick") 
        { 
          @Override 
          protected void onEvent(AjaxRequestTarget target) 
          { 
            more.setVisible(false); 
            target.addComponent(more); 
          } 
        }); 

        final TextField<String> textfield = new 
TextField<String>("textfield" , new Model<String>()); 
        more.add(textfield); 
        AjaxButton button = new AjaxButton("submit") 
        { 
          @Override 
          protected void onSubmit(AjaxRequestTarget arg0, Form<?> form) 
          { 
            System.out.println("radioGroup = " + radioGroup.getModelObject() 
+ " , textfield.getModelObject() = " + textfield.getModelObject()); 
          } 
        }; 
        more.add(button); 
      } 
    }; 
    add(listView); 
  } 
} 

screen capture : 
http://xs.to/image-B859_4B57CDD0.gif

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (WICKET-2694) Dynamic Form inconsistent behavior inside/outside a ListView

Posted by "smallufo (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/WICKET-2694?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

smallufo updated WICKET-2694:
-----------------------------

    Attachment: wicket2694.tar.gz

quickstart file

> Dynamic Form inconsistent behavior inside/outside a ListView
> ------------------------------------------------------------
>
>                 Key: WICKET-2694
>                 URL: https://issues.apache.org/jira/browse/WICKET-2694
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 1.4.5
>         Environment: Wicket 1.4.5 , resin-3.1.9 , CentOS 5.4
>            Reporter: smallufo
>         Attachments: pic.GIF, wicket2694.tar.gz
>
>
> The original discuss thread is here :
> http://old.nabble.com/Cannot-get-default-invisible-TextField's-ModelObject---td27251305.html
> I have a form , which is embedded in a ListView , 
> The form contains a radio button.
> When user clicks the radio button , a default-invisible textfield is set visible.
> But I cannot get the textfield's Model Object , it is null ...
> To make it more clear :
> When the radio button is clicked , by implement AjaxEventBehavior("onClick")  
> , a default-invisible WebMarkupContainer is set visible ,
> The WebMarkupContainer  contains other TextFields , which I cannot get their values at all ....
> If the form is not embedded in a ListView , everything works fine .
> I think it is an inconsistent behavior and should be fixed.
> MyPage.html 
> <table border="1"> 
>   <tr> 
>     <th>name</th> 
>     <th>more ?</th> 
>   </tr> 
>   <span wicket:id="listView"> 
>     <form wicket:id="form"> 
>       <tr> 
>         <td wicket:id="name">[name]</td> 
>         <td> 
>           <span wicket:id="radioGroup"> 
>             <input type="radio" wicket:id="yes"/>yes 
>             <input type="radio" wicket:id="no"/>no 
>           </span> 
>         </td> 
>       </tr> 
>       <tr wicket:id="more"> 
>         <td colspan="2"> 
>           <input type="text" size="40" value="Please leave comments" 
> wicket:id="textfield"/> 
>           <input type="submit" value="Submit" wicket:id="submit"/> 
>         </td> 
>       </tr> 
>     </form> 
>   </span> 
> </table> 
> public class MyPage extends WebPage 
> { 
>   private final static List<String> names = new ArrayList<String>(); 
>   static 
>   { 
>     names.add("Andy"); 
>     names.add("Brian"); 
>     names.add("Carol"); 
>   } 
>   public MyPage() 
>   { 
>     ListView<String> listView = new ListView<String>("listView" , names) 
>     { 
>       @Override 
>       protected void populateItem(ListItem<String> item) 
>       { 
>         Form<Void> form = new Form<Void>("form"); 
>         item.add(form); 
>         String name = item.getModelObject(); 
>         form.add(new Label("name" , name)); 
>         final WebMarkupContainer more = new WebMarkupContainer("more"); 
>         more.setVisible(false); 
>         more.setOutputMarkupPlaceholderTag(true); 
>         form.add(more); 
>         final RadioGroup<Boolean> radioGroup = new 
> RadioGroup<Boolean>("radioGroup" , Model.of(Boolean.FALSE)); 
>         form.add(radioGroup); 
>         Radio<Boolean> yes = new Radio<Boolean>("yes" , 
> Model.of(Boolean.TRUE)); 
>         Radio<Boolean> no = new Radio<Boolean>("no" , 
> Model.of(Boolean.FALSE)); 
>         radioGroup.add(yes); 
>         radioGroup.add(no); 
>         yes.add(new AjaxEventBehavior("onClick") 
>         { 
>           @Override 
>           protected void onEvent(AjaxRequestTarget target) 
>           { 
>             more.setVisible(true); 
>             target.addComponent(more); 
>           } 
>         }); 
>         no.add(new AjaxEventBehavior("onClick") 
>         { 
>           @Override 
>           protected void onEvent(AjaxRequestTarget target) 
>           { 
>             more.setVisible(false); 
>             target.addComponent(more); 
>           } 
>         }); 
>         final TextField<String> textfield = new 
> TextField<String>("textfield" , new Model<String>()); 
>         more.add(textfield); 
>         AjaxButton button = new AjaxButton("submit") 
>         { 
>           @Override 
>           protected void onSubmit(AjaxRequestTarget arg0, Form<?> form) 
>           { 
>             System.out.println("radioGroup = " + radioGroup.getModelObject() 
> + " , textfield.getModelObject() = " + textfield.getModelObject()); 
>           } 
>         }; 
>         more.add(button); 
>       } 
>     }; 
>     add(listView); 
>   } 
> } 
> screen capture : 
> http://xs.to/image-B859_4B57CDD0.gif

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (WICKET-2694) Dynamic Form inconsistent behavior inside/outside a ListView

Posted by "smallufo (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/WICKET-2694?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

smallufo updated WICKET-2694:
-----------------------------

    Attachment: pic.GIF

screen capture

> Dynamic Form inconsistent behavior inside/outside a ListView
> ------------------------------------------------------------
>
>                 Key: WICKET-2694
>                 URL: https://issues.apache.org/jira/browse/WICKET-2694
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 1.4.5
>         Environment: Wicket 1.4.5 , resin-3.1.9 , CentOS 5.4
>            Reporter: smallufo
>         Attachments: pic.GIF, wicket2694.tar.gz
>
>
> The original discuss thread is here :
> http://old.nabble.com/Cannot-get-default-invisible-TextField's-ModelObject---td27251305.html
> I have a form , which is embedded in a ListView , 
> The form contains a radio button.
> When user clicks the radio button , a default-invisible textfield is set visible.
> But I cannot get the textfield's Model Object , it is null ...
> To make it more clear :
> When the radio button is clicked , by implement AjaxEventBehavior("onClick")  
> , a default-invisible WebMarkupContainer is set visible ,
> The WebMarkupContainer  contains other TextFields , which I cannot get their values at all ....
> If the form is not embedded in a ListView , everything works fine .
> I think it is an inconsistent behavior and should be fixed.
> MyPage.html 
> <table border="1"> 
>   <tr> 
>     <th>name</th> 
>     <th>more ?</th> 
>   </tr> 
>   <span wicket:id="listView"> 
>     <form wicket:id="form"> 
>       <tr> 
>         <td wicket:id="name">[name]</td> 
>         <td> 
>           <span wicket:id="radioGroup"> 
>             <input type="radio" wicket:id="yes"/>yes 
>             <input type="radio" wicket:id="no"/>no 
>           </span> 
>         </td> 
>       </tr> 
>       <tr wicket:id="more"> 
>         <td colspan="2"> 
>           <input type="text" size="40" value="Please leave comments" 
> wicket:id="textfield"/> 
>           <input type="submit" value="Submit" wicket:id="submit"/> 
>         </td> 
>       </tr> 
>     </form> 
>   </span> 
> </table> 
> public class MyPage extends WebPage 
> { 
>   private final static List<String> names = new ArrayList<String>(); 
>   static 
>   { 
>     names.add("Andy"); 
>     names.add("Brian"); 
>     names.add("Carol"); 
>   } 
>   public MyPage() 
>   { 
>     ListView<String> listView = new ListView<String>("listView" , names) 
>     { 
>       @Override 
>       protected void populateItem(ListItem<String> item) 
>       { 
>         Form<Void> form = new Form<Void>("form"); 
>         item.add(form); 
>         String name = item.getModelObject(); 
>         form.add(new Label("name" , name)); 
>         final WebMarkupContainer more = new WebMarkupContainer("more"); 
>         more.setVisible(false); 
>         more.setOutputMarkupPlaceholderTag(true); 
>         form.add(more); 
>         final RadioGroup<Boolean> radioGroup = new 
> RadioGroup<Boolean>("radioGroup" , Model.of(Boolean.FALSE)); 
>         form.add(radioGroup); 
>         Radio<Boolean> yes = new Radio<Boolean>("yes" , 
> Model.of(Boolean.TRUE)); 
>         Radio<Boolean> no = new Radio<Boolean>("no" , 
> Model.of(Boolean.FALSE)); 
>         radioGroup.add(yes); 
>         radioGroup.add(no); 
>         yes.add(new AjaxEventBehavior("onClick") 
>         { 
>           @Override 
>           protected void onEvent(AjaxRequestTarget target) 
>           { 
>             more.setVisible(true); 
>             target.addComponent(more); 
>           } 
>         }); 
>         no.add(new AjaxEventBehavior("onClick") 
>         { 
>           @Override 
>           protected void onEvent(AjaxRequestTarget target) 
>           { 
>             more.setVisible(false); 
>             target.addComponent(more); 
>           } 
>         }); 
>         final TextField<String> textfield = new 
> TextField<String>("textfield" , new Model<String>()); 
>         more.add(textfield); 
>         AjaxButton button = new AjaxButton("submit") 
>         { 
>           @Override 
>           protected void onSubmit(AjaxRequestTarget arg0, Form<?> form) 
>           { 
>             System.out.println("radioGroup = " + radioGroup.getModelObject() 
> + " , textfield.getModelObject() = " + textfield.getModelObject()); 
>           } 
>         }; 
>         more.add(button); 
>       } 
>     }; 
>     add(listView); 
>   } 
> } 
> screen capture : 
> http://xs.to/image-B859_4B57CDD0.gif

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (WICKET-2694) Dynamic Form inconsistent behavior inside/outside a ListView

Posted by "Igor Vaynberg (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/WICKET-2694?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Igor Vaynberg resolved WICKET-2694.
-----------------------------------

    Resolution: Won't Fix
      Assignee: Igor Vaynberg

you are creating invalid markup. you cannot have a <form> tag as a child of <table>. the problem is that the browser is not sending the value of the textfield in the post, nothing we can do about that. interesting that while that is the behavior in firefox, IE does send the value, so your example works untouched there.

my recommendation is to wrap the entire listview in a dummy wicket form, that will make it work since you wont need form tags in the table itself.

> Dynamic Form inconsistent behavior inside/outside a ListView
> ------------------------------------------------------------
>
>                 Key: WICKET-2694
>                 URL: https://issues.apache.org/jira/browse/WICKET-2694
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 1.4.5
>         Environment: Wicket 1.4.5 , resin-3.1.9 , CentOS 5.4
>            Reporter: smallufo
>            Assignee: Igor Vaynberg
>         Attachments: pic.GIF, wicket-2694.tar.gz, wicket2694.tar.gz
>
>
> The original discuss thread is here :
> http://old.nabble.com/Cannot-get-default-invisible-TextField's-ModelObject---td27251305.html
> I have a form , which is embedded in a ListView , 
> The form contains a radio button.
> When user clicks the radio button , a default-invisible textfield is set visible.
> But I cannot get the textfield's Model Object , it is null ...
> To make it more clear :
> When the radio button is clicked , by implement AjaxEventBehavior("onClick")  
> , a default-invisible WebMarkupContainer is set visible ,
> The WebMarkupContainer  contains other TextFields , which I cannot get their values at all ....
> If the form is not embedded in a ListView , everything works fine .
> I think it is an inconsistent behavior and should be fixed.
> MyPage.html 
> <table border="1"> 
>   <tr> 
>     <th>name</th> 
>     <th>more ?</th> 
>   </tr> 
>   <span wicket:id="listView"> 
>     <form wicket:id="form"> 
>       <tr> 
>         <td wicket:id="name">[name]</td> 
>         <td> 
>           <span wicket:id="radioGroup"> 
>             <input type="radio" wicket:id="yes"/>yes 
>             <input type="radio" wicket:id="no"/>no 
>           </span> 
>         </td> 
>       </tr> 
>       <tr wicket:id="more"> 
>         <td colspan="2"> 
>           <input type="text" size="40" value="Please leave comments" 
> wicket:id="textfield"/> 
>           <input type="submit" value="Submit" wicket:id="submit"/> 
>         </td> 
>       </tr> 
>     </form> 
>   </span> 
> </table> 
> public class MyPage extends WebPage 
> { 
>   private final static List<String> names = new ArrayList<String>(); 
>   static 
>   { 
>     names.add("Andy"); 
>     names.add("Brian"); 
>     names.add("Carol"); 
>   } 
>   public MyPage() 
>   { 
>     ListView<String> listView = new ListView<String>("listView" , names) 
>     { 
>       @Override 
>       protected void populateItem(ListItem<String> item) 
>       { 
>         Form<Void> form = new Form<Void>("form"); 
>         item.add(form); 
>         String name = item.getModelObject(); 
>         form.add(new Label("name" , name)); 
>         final WebMarkupContainer more = new WebMarkupContainer("more"); 
>         more.setVisible(false); 
>         more.setOutputMarkupPlaceholderTag(true); 
>         form.add(more); 
>         final RadioGroup<Boolean> radioGroup = new 
> RadioGroup<Boolean>("radioGroup" , Model.of(Boolean.FALSE)); 
>         form.add(radioGroup); 
>         Radio<Boolean> yes = new Radio<Boolean>("yes" , 
> Model.of(Boolean.TRUE)); 
>         Radio<Boolean> no = new Radio<Boolean>("no" , 
> Model.of(Boolean.FALSE)); 
>         radioGroup.add(yes); 
>         radioGroup.add(no); 
>         yes.add(new AjaxEventBehavior("onClick") 
>         { 
>           @Override 
>           protected void onEvent(AjaxRequestTarget target) 
>           { 
>             more.setVisible(true); 
>             target.addComponent(more); 
>           } 
>         }); 
>         no.add(new AjaxEventBehavior("onClick") 
>         { 
>           @Override 
>           protected void onEvent(AjaxRequestTarget target) 
>           { 
>             more.setVisible(false); 
>             target.addComponent(more); 
>           } 
>         }); 
>         final TextField<String> textfield = new 
> TextField<String>("textfield" , new Model<String>()); 
>         more.add(textfield); 
>         AjaxButton button = new AjaxButton("submit") 
>         { 
>           @Override 
>           protected void onSubmit(AjaxRequestTarget arg0, Form<?> form) 
>           { 
>             System.out.println("radioGroup = " + radioGroup.getModelObject() 
> + " , textfield.getModelObject() = " + textfield.getModelObject()); 
>           } 
>         }; 
>         more.add(button); 
>       } 
>     }; 
>     add(listView); 
>   } 
> } 
> screen capture : 
> http://xs.to/image-B859_4B57CDD0.gif

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (WICKET-2694) Dynamic Form inconsistent behavior inside/outside a ListView

Posted by "Martin Grigorov (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/WICKET-2694?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Martin Grigorov updated WICKET-2694:
------------------------------------

    Attachment: wicket-2694.tar.gz

The provided quickstart application and the pasted code doesn't match.
In quickstart app the radioGroup is not a child of the form and thus its getModelObject() always returns false (its initial value).
textfield.getModelObject() always returns the entered value, i.e. it works as expected.

I upload a proper quickstart app because the original one was just few files compressed in an archive. 
@smallufo: please revise the new quickstart and update it so it reproduce the problem.

> Dynamic Form inconsistent behavior inside/outside a ListView
> ------------------------------------------------------------
>
>                 Key: WICKET-2694
>                 URL: https://issues.apache.org/jira/browse/WICKET-2694
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 1.4.5
>         Environment: Wicket 1.4.5 , resin-3.1.9 , CentOS 5.4
>            Reporter: smallufo
>         Attachments: pic.GIF, wicket-2694.tar.gz, wicket2694.tar.gz
>
>
> The original discuss thread is here :
> http://old.nabble.com/Cannot-get-default-invisible-TextField's-ModelObject---td27251305.html
> I have a form , which is embedded in a ListView , 
> The form contains a radio button.
> When user clicks the radio button , a default-invisible textfield is set visible.
> But I cannot get the textfield's Model Object , it is null ...
> To make it more clear :
> When the radio button is clicked , by implement AjaxEventBehavior("onClick")  
> , a default-invisible WebMarkupContainer is set visible ,
> The WebMarkupContainer  contains other TextFields , which I cannot get their values at all ....
> If the form is not embedded in a ListView , everything works fine .
> I think it is an inconsistent behavior and should be fixed.
> MyPage.html 
> <table border="1"> 
>   <tr> 
>     <th>name</th> 
>     <th>more ?</th> 
>   </tr> 
>   <span wicket:id="listView"> 
>     <form wicket:id="form"> 
>       <tr> 
>         <td wicket:id="name">[name]</td> 
>         <td> 
>           <span wicket:id="radioGroup"> 
>             <input type="radio" wicket:id="yes"/>yes 
>             <input type="radio" wicket:id="no"/>no 
>           </span> 
>         </td> 
>       </tr> 
>       <tr wicket:id="more"> 
>         <td colspan="2"> 
>           <input type="text" size="40" value="Please leave comments" 
> wicket:id="textfield"/> 
>           <input type="submit" value="Submit" wicket:id="submit"/> 
>         </td> 
>       </tr> 
>     </form> 
>   </span> 
> </table> 
> public class MyPage extends WebPage 
> { 
>   private final static List<String> names = new ArrayList<String>(); 
>   static 
>   { 
>     names.add("Andy"); 
>     names.add("Brian"); 
>     names.add("Carol"); 
>   } 
>   public MyPage() 
>   { 
>     ListView<String> listView = new ListView<String>("listView" , names) 
>     { 
>       @Override 
>       protected void populateItem(ListItem<String> item) 
>       { 
>         Form<Void> form = new Form<Void>("form"); 
>         item.add(form); 
>         String name = item.getModelObject(); 
>         form.add(new Label("name" , name)); 
>         final WebMarkupContainer more = new WebMarkupContainer("more"); 
>         more.setVisible(false); 
>         more.setOutputMarkupPlaceholderTag(true); 
>         form.add(more); 
>         final RadioGroup<Boolean> radioGroup = new 
> RadioGroup<Boolean>("radioGroup" , Model.of(Boolean.FALSE)); 
>         form.add(radioGroup); 
>         Radio<Boolean> yes = new Radio<Boolean>("yes" , 
> Model.of(Boolean.TRUE)); 
>         Radio<Boolean> no = new Radio<Boolean>("no" , 
> Model.of(Boolean.FALSE)); 
>         radioGroup.add(yes); 
>         radioGroup.add(no); 
>         yes.add(new AjaxEventBehavior("onClick") 
>         { 
>           @Override 
>           protected void onEvent(AjaxRequestTarget target) 
>           { 
>             more.setVisible(true); 
>             target.addComponent(more); 
>           } 
>         }); 
>         no.add(new AjaxEventBehavior("onClick") 
>         { 
>           @Override 
>           protected void onEvent(AjaxRequestTarget target) 
>           { 
>             more.setVisible(false); 
>             target.addComponent(more); 
>           } 
>         }); 
>         final TextField<String> textfield = new 
> TextField<String>("textfield" , new Model<String>()); 
>         more.add(textfield); 
>         AjaxButton button = new AjaxButton("submit") 
>         { 
>           @Override 
>           protected void onSubmit(AjaxRequestTarget arg0, Form<?> form) 
>           { 
>             System.out.println("radioGroup = " + radioGroup.getModelObject() 
> + " , textfield.getModelObject() = " + textfield.getModelObject()); 
>           } 
>         }; 
>         more.add(button); 
>       } 
>     }; 
>     add(listView); 
>   } 
> } 
> screen capture : 
> http://xs.to/image-B859_4B57CDD0.gif

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (WICKET-2694) Dynamic Form inconsistent behavior inside/outside a ListView

Posted by "smallufo (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/WICKET-2694?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

smallufo updated WICKET-2694:
-----------------------------

    Attachment:     (was: wicket2694.tar.gz)

> Dynamic Form inconsistent behavior inside/outside a ListView
> ------------------------------------------------------------
>
>                 Key: WICKET-2694
>                 URL: https://issues.apache.org/jira/browse/WICKET-2694
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 1.4.5
>         Environment: Wicket 1.4.5 , resin-3.1.9 , CentOS 5.4
>            Reporter: smallufo
>         Attachments: pic.GIF, wicket-2694.tar.gz, wicket2694.tar.gz
>
>
> The original discuss thread is here :
> http://old.nabble.com/Cannot-get-default-invisible-TextField's-ModelObject---td27251305.html
> I have a form , which is embedded in a ListView , 
> The form contains a radio button.
> When user clicks the radio button , a default-invisible textfield is set visible.
> But I cannot get the textfield's Model Object , it is null ...
> To make it more clear :
> When the radio button is clicked , by implement AjaxEventBehavior("onClick")  
> , a default-invisible WebMarkupContainer is set visible ,
> The WebMarkupContainer  contains other TextFields , which I cannot get their values at all ....
> If the form is not embedded in a ListView , everything works fine .
> I think it is an inconsistent behavior and should be fixed.
> MyPage.html 
> <table border="1"> 
>   <tr> 
>     <th>name</th> 
>     <th>more ?</th> 
>   </tr> 
>   <span wicket:id="listView"> 
>     <form wicket:id="form"> 
>       <tr> 
>         <td wicket:id="name">[name]</td> 
>         <td> 
>           <span wicket:id="radioGroup"> 
>             <input type="radio" wicket:id="yes"/>yes 
>             <input type="radio" wicket:id="no"/>no 
>           </span> 
>         </td> 
>       </tr> 
>       <tr wicket:id="more"> 
>         <td colspan="2"> 
>           <input type="text" size="40" value="Please leave comments" 
> wicket:id="textfield"/> 
>           <input type="submit" value="Submit" wicket:id="submit"/> 
>         </td> 
>       </tr> 
>     </form> 
>   </span> 
> </table> 
> public class MyPage extends WebPage 
> { 
>   private final static List<String> names = new ArrayList<String>(); 
>   static 
>   { 
>     names.add("Andy"); 
>     names.add("Brian"); 
>     names.add("Carol"); 
>   } 
>   public MyPage() 
>   { 
>     ListView<String> listView = new ListView<String>("listView" , names) 
>     { 
>       @Override 
>       protected void populateItem(ListItem<String> item) 
>       { 
>         Form<Void> form = new Form<Void>("form"); 
>         item.add(form); 
>         String name = item.getModelObject(); 
>         form.add(new Label("name" , name)); 
>         final WebMarkupContainer more = new WebMarkupContainer("more"); 
>         more.setVisible(false); 
>         more.setOutputMarkupPlaceholderTag(true); 
>         form.add(more); 
>         final RadioGroup<Boolean> radioGroup = new 
> RadioGroup<Boolean>("radioGroup" , Model.of(Boolean.FALSE)); 
>         form.add(radioGroup); 
>         Radio<Boolean> yes = new Radio<Boolean>("yes" , 
> Model.of(Boolean.TRUE)); 
>         Radio<Boolean> no = new Radio<Boolean>("no" , 
> Model.of(Boolean.FALSE)); 
>         radioGroup.add(yes); 
>         radioGroup.add(no); 
>         yes.add(new AjaxEventBehavior("onClick") 
>         { 
>           @Override 
>           protected void onEvent(AjaxRequestTarget target) 
>           { 
>             more.setVisible(true); 
>             target.addComponent(more); 
>           } 
>         }); 
>         no.add(new AjaxEventBehavior("onClick") 
>         { 
>           @Override 
>           protected void onEvent(AjaxRequestTarget target) 
>           { 
>             more.setVisible(false); 
>             target.addComponent(more); 
>           } 
>         }); 
>         final TextField<String> textfield = new 
> TextField<String>("textfield" , new Model<String>()); 
>         more.add(textfield); 
>         AjaxButton button = new AjaxButton("submit") 
>         { 
>           @Override 
>           protected void onSubmit(AjaxRequestTarget arg0, Form<?> form) 
>           { 
>             System.out.println("radioGroup = " + radioGroup.getModelObject() 
> + " , textfield.getModelObject() = " + textfield.getModelObject()); 
>           } 
>         }; 
>         more.add(button); 
>       } 
>     }; 
>     add(listView); 
>   } 
> } 
> screen capture : 
> http://xs.to/image-B859_4B57CDD0.gif

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (WICKET-2694) Dynamic Form inconsistent behavior inside/outside a ListView

Posted by "smallufo (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/WICKET-2694?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

smallufo updated WICKET-2694:
-----------------------------

    Attachment: wicket2694.tar.gz

correct attachment.
This attachment corresponds to the node hierarchy mentioned in my problem.

> Dynamic Form inconsistent behavior inside/outside a ListView
> ------------------------------------------------------------
>
>                 Key: WICKET-2694
>                 URL: https://issues.apache.org/jira/browse/WICKET-2694
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 1.4.5
>         Environment: Wicket 1.4.5 , resin-3.1.9 , CentOS 5.4
>            Reporter: smallufo
>         Attachments: pic.GIF, wicket-2694.tar.gz, wicket2694.tar.gz
>
>
> The original discuss thread is here :
> http://old.nabble.com/Cannot-get-default-invisible-TextField's-ModelObject---td27251305.html
> I have a form , which is embedded in a ListView , 
> The form contains a radio button.
> When user clicks the radio button , a default-invisible textfield is set visible.
> But I cannot get the textfield's Model Object , it is null ...
> To make it more clear :
> When the radio button is clicked , by implement AjaxEventBehavior("onClick")  
> , a default-invisible WebMarkupContainer is set visible ,
> The WebMarkupContainer  contains other TextFields , which I cannot get their values at all ....
> If the form is not embedded in a ListView , everything works fine .
> I think it is an inconsistent behavior and should be fixed.
> MyPage.html 
> <table border="1"> 
>   <tr> 
>     <th>name</th> 
>     <th>more ?</th> 
>   </tr> 
>   <span wicket:id="listView"> 
>     <form wicket:id="form"> 
>       <tr> 
>         <td wicket:id="name">[name]</td> 
>         <td> 
>           <span wicket:id="radioGroup"> 
>             <input type="radio" wicket:id="yes"/>yes 
>             <input type="radio" wicket:id="no"/>no 
>           </span> 
>         </td> 
>       </tr> 
>       <tr wicket:id="more"> 
>         <td colspan="2"> 
>           <input type="text" size="40" value="Please leave comments" 
> wicket:id="textfield"/> 
>           <input type="submit" value="Submit" wicket:id="submit"/> 
>         </td> 
>       </tr> 
>     </form> 
>   </span> 
> </table> 
> public class MyPage extends WebPage 
> { 
>   private final static List<String> names = new ArrayList<String>(); 
>   static 
>   { 
>     names.add("Andy"); 
>     names.add("Brian"); 
>     names.add("Carol"); 
>   } 
>   public MyPage() 
>   { 
>     ListView<String> listView = new ListView<String>("listView" , names) 
>     { 
>       @Override 
>       protected void populateItem(ListItem<String> item) 
>       { 
>         Form<Void> form = new Form<Void>("form"); 
>         item.add(form); 
>         String name = item.getModelObject(); 
>         form.add(new Label("name" , name)); 
>         final WebMarkupContainer more = new WebMarkupContainer("more"); 
>         more.setVisible(false); 
>         more.setOutputMarkupPlaceholderTag(true); 
>         form.add(more); 
>         final RadioGroup<Boolean> radioGroup = new 
> RadioGroup<Boolean>("radioGroup" , Model.of(Boolean.FALSE)); 
>         form.add(radioGroup); 
>         Radio<Boolean> yes = new Radio<Boolean>("yes" , 
> Model.of(Boolean.TRUE)); 
>         Radio<Boolean> no = new Radio<Boolean>("no" , 
> Model.of(Boolean.FALSE)); 
>         radioGroup.add(yes); 
>         radioGroup.add(no); 
>         yes.add(new AjaxEventBehavior("onClick") 
>         { 
>           @Override 
>           protected void onEvent(AjaxRequestTarget target) 
>           { 
>             more.setVisible(true); 
>             target.addComponent(more); 
>           } 
>         }); 
>         no.add(new AjaxEventBehavior("onClick") 
>         { 
>           @Override 
>           protected void onEvent(AjaxRequestTarget target) 
>           { 
>             more.setVisible(false); 
>             target.addComponent(more); 
>           } 
>         }); 
>         final TextField<String> textfield = new 
> TextField<String>("textfield" , new Model<String>()); 
>         more.add(textfield); 
>         AjaxButton button = new AjaxButton("submit") 
>         { 
>           @Override 
>           protected void onSubmit(AjaxRequestTarget arg0, Form<?> form) 
>           { 
>             System.out.println("radioGroup = " + radioGroup.getModelObject() 
> + " , textfield.getModelObject() = " + textfield.getModelObject()); 
>           } 
>         }; 
>         more.add(button); 
>       } 
>     }; 
>     add(listView); 
>   } 
> } 
> screen capture : 
> http://xs.to/image-B859_4B57CDD0.gif

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.