Modified:
/trunk/uk.ac.osswatch.simal.web/src/main/java/uk/ac/osswatch/simal/wicket/panel/project/EditProjectPanel.java
=======================================
---
/trunk/uk.ac.osswatch.simal.web/src/main/java/uk/ac/osswatch/simal/wicket/panel/project/EditProjectPanel.java
Thu Apr 14 14:39:52 2011
+++
/trunk/uk.ac.osswatch.simal.web/src/main/java/uk/ac/osswatch/simal/wicket/panel/project/EditProjectPanel.java
Fri Apr 15 10:07:34 2011
@@ -19,6 +19,7 @@
import java.util.ArrayList;
import java.util.Collections;
+import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -37,6 +38,7 @@
import org.apache.wicket.markup.html.form.TextArea;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.markup.html.list.ListItem;
+import org.apache.wicket.markup.html.list.ListItemModel;
import org.apache.wicket.markup.html.list.ListView;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.CompoundPropertyModel;
@@ -459,11 +461,12 @@
List<String> editableList = new ArrayList<String>(labels);
editableList.add(NEW_ITEM);
- GenericSetWrapper<String> editableListWrapper = new
GenericSetWrapper<String>(new ArrayList<String>(editableList));
-
+ //GenericSetWrapper<String> editableListWrapper = new
GenericSetWrapper<String>(new ArrayList<String>(editableList));
+
+ final PropertyModel<Set<String>> projectModel = new
PropertyModel<Set<String>>(project, labelWicketID);
ListView<String> listView = new ListView<String>(
- labelWicketID, new
PropertyModel<List<String>>(editableListWrapper, "editableList")) {
+ labelWicketID, editableList) {
private static final long serialVersionUID = 154815894763179933L;
protected void populateItem(ListItem<String> item) {
@@ -475,6 +478,28 @@
item.add(generateDeleteItemButton(!NEW_ITEM
.equals(wrapper), item));
}
+
+ @Override
+ protected IModel<String> getListItemModel(
+ IModel<? extends List<String>> listViewModel, int index) {
+ this.getModelObject();
+
+ return new ListItemModel<String>(this, index) {
+ private static final long serialVersionUID =
2563628936377112626L;
+
+ @Override
+ public void setObject(String object) {
+ super.setObject(object);
+
+ Set<String> updatedSet = new HashSet<String>();
+ updatedSet.add(object);
+ projectModel.setObject(updatedSet);
+ }
+
+ };
+ }
+
+
};
listView.setReuseItems(true);
add(listView);