Hello,
        
      I am rendering a list view having multiple rows using wicket. In form
submit(), I could retrive the data in below mentioned code but i am not sure
whether it is right way of getting the changed data from the list view .
Below is my code snippet attached. Please review the code and let me know
the best practice.

// LiConfig is application pojo
private Form form;
private ListView li_config_settings_row;
private List<LiConfig> li_config_settings;// applicaton pojo list 
li_config_settings_row = new ListView("settingRow", li_config_settings) {
                        protected void populateItem(ListItem item) {
                                final LiConfig p = (LiConfig) 
item.getModelObject(); 
                                item.setModel(new CompoundPropertyModel(p));
                                                   //Some code to add
components like Hidden fields, Text fields, Labels etc.
                        }
                };
                form.add(li_config_settings_row);

form = new Form("sectionPanelForm"){
                        protected void onSubmit() {
                                           ArrayList<LiConfig> liConfigs = new 
ArrayList<LiConfig>();
                                        Iterator<ListItem> iterator = 
li_config_settings_row.iterator();
                                        while (iterator.hasNext()) {
                                                ListItem listItem = 
iterator.next();
                                                LiConfig l = new LiConfig();
                                                Iterator<Component> 
childIterator = listItem..iterator();
                                                boolean changed = false;
                                                while (childIterator.hasNext()) 
{
                                                        Component c = 
childIterator.next();
                                                        if 
(c.getId().equalsIgnoreCase("isChanged")) {
                                                                if 
((((HiddenField) c).getConvertedInput()
                                                                                
.toString()).equalsIgnoreCase("1")) {
                                                                        changed 
= true;
                                                                }

                                                        }
                                                        if 
(c.getId().equalsIgnoreCase("id")) {
                                                                l.setId(new 
Integer(((HiddenField) c)
                                                                                
.getConvertedInput().toString()));
                                                        }
                                                        if 
(c.getId().equalsIgnoreCase("fieldValue")) {
                                                                l
                                                                                
.setFieldValue(((TextField) c)
                                                                                
                .getConvertedInput() != null ? ((TextField) c)
                                                                                
                .getConvertedInput().toString()
                                                                                
                : "");
                                                        }

                                                }
                                                if (changed) {
                                                        liConfigs.add(l);
                                                }
                                        }

                                        if (liConfigs.size() != 0) {
                                                ArrayList<LiConfig> updatedList 
= new ArrayList();
                                                String changedValue;
                                                for (LiConfig li : liConfigs) {
                                                        changedValue = 
li.getFieldValue();
                                                        li = 
ConfigWizardhelper.getLiConfig(li.getId());
                                                        
li.setFieldValue(changedValue);
                                                        updatedList.add(li);

                                                }
                                                
ConfigWizardhelper.insertORUpdateLiConfigs(updatedList);
                                        }
                                        HashMap<String, String> param = new 
HashMap<String, String>();
                                        param.put("id", id);

                                        ConfigWizardPage.index = getIndex();
                                        setResponsePage(ConfigWizardPage.class);
                                }
                };
-- 
View this message in context: 
http://www.nabble.com/How-to-get-the-data-altered-by-the-user-in-html-page--in-a-list-view-tp18313650p18313650.html
Sent from the Wicket - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to