--- /dev/null
+package com.itmill.toolkit.tests.tickets;
+
+import com.itmill.toolkit.ui.CustomComponent;
+import com.itmill.toolkit.ui.Panel;
+
+public class Ticket1506 extends CustomComponent {
+
+ Panel p;
+
+ public Ticket1506() {
+ p = new Ticket1506_Panel();
+ setCompositionRoot(p);
+ }
+
+}
--- /dev/null
+package com.itmill.toolkit.tests.tickets;\r
+\r
+import com.itmill.toolkit.data.util.ObjectProperty;\r
+import com.itmill.toolkit.data.Container;\r
+import com.itmill.toolkit.ui.Component;\r
+import com.itmill.toolkit.ui.Panel;\r
+import com.itmill.toolkit.ui.Select;\r
+import com.itmill.toolkit.ui.Button;\r
+\r
+/**\r
+ * @author Efecte R&D\r
+ * @version $Revision$, $Date$\r
+ */\r
+public class Ticket1506_Panel extends Panel {\r
+\r
+ public Ticket1506_Panel() {\r
+ ObjectProperty property1 = new ObjectProperty(null, String.class);\r
+ addComponent(initSelect(new Ticket1506_TestContainer(), "Test select", property1));\r
+ addComponent(initButton(property1));\r
+ addComponent(initSelect(new Ticket1506_TestContainer2(), "Test select 2", new ObjectProperty(null, String.class)));\r
+ }\r
+\r
+ private Component initButton(final ObjectProperty property) {\r
+ Button button = new Button("Clear select");\r
+ button.addListener(new Button.ClickListener() {\r
+ public void buttonClick(Button.ClickEvent event) {\r
+ property.setValue(null);\r
+ }\r
+ });\r
+ return button;\r
+ }\r
+\r
+ private Component initSelect(Container containerDataSource, String caption, ObjectProperty property) {\r
+ Select select = new Select(caption);\r
+ select.setFilteringMode(Select.FILTERINGMODE_CONTAINS);\r
+ select.setImmediate(true);\r
+ select.setNullSelectionAllowed(false);\r
+ select.setItemCaptionPropertyId(Ticket1506_TestContainer.PROPERTY_2_ID);\r
+\r
+ select.setContainerDataSource(containerDataSource);\r
+ select.setPropertyDataSource(property);\r
+ return select;\r
+ }\r
+}\r
--- /dev/null
+package com.itmill.toolkit.tests.tickets;\r
+\r
+import com.itmill.toolkit.data.Container;\r
+import com.itmill.toolkit.data.Item;\r
+import com.itmill.toolkit.data.Property;\r
+import com.itmill.toolkit.data.util.PropertysetItem;\r
+import com.itmill.toolkit.data.util.ObjectProperty;\r
+\r
+import java.util.*;\r
+\r
+/**\r
+ * @author Efecte R&D\r
+ * @version $Revision$, $Date$\r
+ */\r
+public class Ticket1506_TestContainer implements Container {\r
+ private Map items = new HashMap();\r
+ public static final String ITEM_1_ID = "1";\r
+ public static final String ITEM_2_ID = "2";\r
+ public static final String PROPERTY_1_ID = "property 1";\r
+ public static final String PROPERTY_2_ID = "property 2";\r
+\r
+ private void loadItems() {\r
+ final PropertysetItem item1 = new PropertysetItem();\r
+ item1.addItemProperty(PROPERTY_1_ID, new ObjectProperty("value 1", String.class));\r
+ item1.addItemProperty(PROPERTY_2_ID, new ObjectProperty("name 1", String.class));\r
+ this.items.put(ITEM_1_ID, item1);\r
+\r
+ final PropertysetItem item2 = new PropertysetItem();\r
+ item2.addItemProperty(PROPERTY_1_ID, new ObjectProperty("value 2", String.class));\r
+ item2.addItemProperty(PROPERTY_2_ID, new ObjectProperty("name 2", String.class));\r
+ this.items.put(ITEM_2_ID, item2);\r
+ }\r
+\r
+ public Item getItem(Object itemId) {\r
+ if (items.isEmpty()) {\r
+ loadItems();\r
+ }\r
+ return (Item) items.get(itemId);\r
+ }\r
+\r
+ public Collection getContainerPropertyIds() {\r
+ if (items.isEmpty()) {\r
+ loadItems();\r
+ }\r
+ ArrayList a = new ArrayList();\r
+ a.add(PROPERTY_1_ID);\r
+ a.add(PROPERTY_2_ID);\r
+ return a;\r
+ }\r
+\r
+ public Collection getItemIds() {\r
+ if (items.isEmpty()) {\r
+ loadItems();\r
+ }\r
+ ArrayList a = new ArrayList();\r
+ a.add(ITEM_1_ID);\r
+ a.add(ITEM_2_ID);\r
+ return a;\r
+ }\r
+\r
+ public Property getContainerProperty(Object itemId, Object propertyId) {\r
+ if (items.isEmpty()) {\r
+ loadItems();\r
+ }\r
+ Item item = (Item) items.get(itemId);\r
+ if (item != null) {\r
+ return item.getItemProperty(propertyId);\r
+ }\r
+ return null;\r
+ }\r
+\r
+ public Class getType(Object propertyId) {\r
+ if (items.isEmpty()) {\r
+ loadItems();\r
+ }\r
+ return String.class;\r
+ }\r
+\r
+ public int size() {\r
+ if (items.isEmpty()) {\r
+ loadItems();\r
+ }\r
+ return items.size();\r
+ }\r
+\r
+ public boolean containsId(Object itemId) {\r
+ if (items.isEmpty()) {\r
+ loadItems();\r
+ }\r
+ return items.containsKey(itemId);\r
+ }\r
+\r
+ public Item addItem(Object itemId) throws UnsupportedOperationException {\r
+ throw new UnsupportedOperationException("Not implemented");\r
+ }\r
+\r
+ public Object addItem() throws UnsupportedOperationException {\r
+ throw new UnsupportedOperationException("Not implemented");\r
+ }\r
+\r
+ public boolean removeItem(Object itemId) throws UnsupportedOperationException {\r
+ throw new UnsupportedOperationException("Not implemented");\r
+ }\r
+\r
+ public boolean addContainerProperty(Object propertyId, Class type, Object defaultValue) throws UnsupportedOperationException {\r
+ throw new UnsupportedOperationException("Not implemented");\r
+ }\r
+\r
+ public boolean removeContainerProperty(Object propertyId) throws UnsupportedOperationException {\r
+ throw new UnsupportedOperationException("Not implemented");\r
+ }\r
+\r
+ public boolean removeAllItems() throws UnsupportedOperationException {\r
+ throw new UnsupportedOperationException("Not implemented");\r
+ }\r
+}\r
--- /dev/null
+package com.itmill.toolkit.tests.tickets;\r
+\r
+import com.itmill.toolkit.data.Container;\r
+import com.itmill.toolkit.data.Item;\r
+import com.itmill.toolkit.data.Property;\r
+import com.itmill.toolkit.data.util.PropertysetItem;\r
+import com.itmill.toolkit.data.util.ObjectProperty;\r
+\r
+import java.util.*;\r
+\r
+/**\r
+ * @author Efecte R&D\r
+ * @version $Revision$, $Date$\r
+ */\r
+public class Ticket1506_TestContainer2 implements Container {\r
+ private Map items = new HashMap();\r
+ public static final String ITEM_1_ID = "1";\r
+ public static final String ITEM_2_ID = "2";\r
+ public static final String PROPERTY_1_ID = "property 1";\r
+ public static final String PROPERTY_2_ID = "property 2";\r
+\r
+ private void loadItems() {\r
+ for (int i = 1; i < 15; i++) {\r
+ final PropertysetItem item = new PropertysetItem();\r
+ item.addItemProperty(PROPERTY_1_ID, new ObjectProperty("value " + i, String.class));\r
+ item.addItemProperty(PROPERTY_2_ID, new ObjectProperty("name " + i, String.class));\r
+ this.items.put(String.valueOf(i), item);\r
+ }\r
+ }\r
+\r
+ public Item getItem(Object itemId) {\r
+ if (items.isEmpty()) {\r
+ loadItems();\r
+ }\r
+ return (Item) items.get(itemId);\r
+ }\r
+\r
+ public Collection getContainerPropertyIds() {\r
+ if (items.isEmpty()) {\r
+ loadItems();\r
+ }\r
+ ArrayList a = new ArrayList();\r
+ a.add(PROPERTY_1_ID);\r
+ a.add(PROPERTY_2_ID);\r
+ return a;\r
+ }\r
+\r
+ public Collection getItemIds() {\r
+ if (items.isEmpty()) {\r
+ loadItems();\r
+ }\r
+ return items.keySet();\r
+ }\r
+\r
+ public Property getContainerProperty(Object itemId, Object propertyId) {\r
+ if (items.isEmpty()) {\r
+ loadItems();\r
+ }\r
+ Item item = (Item) items.get(itemId);\r
+ if (item != null) {\r
+ return item.getItemProperty(propertyId);\r
+ }\r
+ return null;\r
+ }\r
+\r
+ public Class getType(Object propertyId) {\r
+ if (items.isEmpty()) {\r
+ loadItems();\r
+ }\r
+ return String.class;\r
+ }\r
+\r
+ public int size() {\r
+ if (items.isEmpty()) {\r
+ loadItems();\r
+ }\r
+ return items.size();\r
+ }\r
+\r
+ public boolean containsId(Object itemId) {\r
+ if (items.isEmpty()) {\r
+ loadItems();\r
+ }\r
+ return items.containsKey(itemId);\r
+ }\r
+\r
+ public Item addItem(Object itemId) throws UnsupportedOperationException {\r
+ throw new UnsupportedOperationException("Not implemented");\r
+ }\r
+\r
+ public Object addItem() throws UnsupportedOperationException {\r
+ throw new UnsupportedOperationException("Not implemented");\r
+ }\r
+\r
+ public boolean removeItem(Object itemId) throws UnsupportedOperationException {\r
+ throw new UnsupportedOperationException("Not implemented");\r
+ }\r
+\r
+ public boolean addContainerProperty(Object propertyId, Class type, Object defaultValue) throws UnsupportedOperationException {\r
+ throw new UnsupportedOperationException("Not implemented");\r
+ }\r
+\r
+ public boolean removeContainerProperty(Object propertyId) throws UnsupportedOperationException {\r
+ throw new UnsupportedOperationException("Not implemented");\r
+ }\r
+\r
+ public boolean removeAllItems() throws UnsupportedOperationException {\r
+ throw new UnsupportedOperationException("Not implemented");\r
+ }\r
+}
\ No newline at end of file