]> source.dussan.org Git - vaadin-framework.git/commitdiff
Table example improved
authorMarc Englund <marc.englund@itmill.com>
Tue, 4 Dec 2007 09:28:08 +0000 (09:28 +0000)
committerMarc Englund <marc.englund@itmill.com>
Tue, 4 Dec 2007 09:28:08 +0000 (09:28 +0000)
svn changeset:3134/svn branch:trunk

src/com/itmill/toolkit/demo/featurebrowser/TableExample.java

index 17beed87f2dbee93a990e2b89a416ff27de2bcd9..cd31e9c44a6ca8280e2c6b79834d29b848aefabc 100644 (file)
@@ -1,21 +1,24 @@
 package com.itmill.toolkit.demo.featurebrowser;\r
 \r
+import java.util.Iterator;\r
+import java.util.Set;\r
+\r
 import com.itmill.toolkit.data.Item;\r
 import com.itmill.toolkit.data.Property;\r
-import com.itmill.toolkit.data.Property.ValueChangeEvent;\r
 import com.itmill.toolkit.event.Action;\r
+import com.itmill.toolkit.ui.Button;\r
 import com.itmill.toolkit.ui.CustomComponent;\r
-import com.itmill.toolkit.ui.Field;\r
 import com.itmill.toolkit.ui.OrderedLayout;\r
 import com.itmill.toolkit.ui.Table;\r
+import com.itmill.toolkit.ui.Button.ClickEvent;\r
 \r
 /**\r
  * Table example.\r
  * \r
  * @author IT Mill Ltd.\r
  */\r
-public class TableExample extends CustomComponent implements\r
-        Field.ValueChangeListener, Action.Handler {\r
+public class TableExample extends CustomComponent implements Action.Handler,\r
+        Button.ClickListener {\r
 \r
     // Actions\r
     private static final Action ACTION_SAVE = new Action("Save");\r
@@ -35,30 +38,48 @@ public class TableExample extends CustomComponent implements
     Table source;\r
     Table saved;\r
 \r
+    Button saveSelected;\r
+    Button hireSelected;\r
+    Button deleteSelected;\r
+\r
     public TableExample() {\r
 \r
         OrderedLayout main = new OrderedLayout();\r
         main.setMargin(true);\r
         setCompositionRoot(main);\r
 \r
-        source = new Table("The source");\r
+        source = new Table("Also try the row context-menu");\r
         source.setPageLength(7);\r
-        source.setWidth(100);\r
-        source.setWidthUnits(Table.UNITS_PERCENTAGE);\r
+        source.setWidth(550);\r
         source.setColumnCollapsingAllowed(true);\r
         source.setColumnReorderingAllowed(true);\r
         source.setSelectable(true);\r
         source.setMultiSelect(true);\r
-        source.setImmediate(true);\r
         source.setRowHeaderMode(Table.ROW_HEADER_MODE_ID);\r
         fillTable(source);\r
         source.addActionHandler(this);\r
         main.addComponent(source);\r
 \r
-        saved = new Table("Saved");\r
-        saved.setPageLength(4);\r
-        saved.setWidth(100);\r
-        saved.setWidthUnits(Table.UNITS_PERCENTAGE);\r
+        OrderedLayout horiz = new OrderedLayout(\r
+                OrderedLayout.ORIENTATION_HORIZONTAL);\r
+        horiz.setMargin(false, false, true, false);\r
+        main.addComponent(horiz);\r
+        saveSelected = new Button("Save selected");\r
+        saveSelected.setStyleName(Button.STYLE_LINK);\r
+        saveSelected.addListener(this);\r
+        horiz.addComponent(saveSelected);\r
+        hireSelected = new Button("Hire selected");\r
+        hireSelected.setStyleName(Button.STYLE_LINK);\r
+        hireSelected.addListener(this);\r
+        horiz.addComponent(hireSelected);\r
+        deleteSelected = new Button("Delete selected");\r
+        deleteSelected.setStyleName(Button.STYLE_LINK);\r
+        deleteSelected.addListener(this);\r
+        horiz.addComponent(deleteSelected);\r
+\r
+        saved = new Table();\r
+        saved.setPageLength(5);\r
+        saved.setWidth(550);\r
         saved.setSelectable(false);\r
         saved.setColumnHeaderMode(Table.COLUMN_HEADER_MODE_HIDDEN);\r
         saved.setRowHeaderMode(Table.ROW_HEADER_MODE_ID);\r
@@ -153,8 +174,69 @@ public class TableExample extends CustomComponent implements
         }\r
     }\r
 \r
-    public void valueChange(ValueChangeEvent event) {\r
-        // TODO Auto-generated method stub\r
+    public void buttonClick(ClickEvent event) {\r
+        Button b = event.getButton();\r
+        if (b == saveSelected) {\r
+            Set selected = (Set) source.getValue();\r
+            if (selected != null) {\r
+                int s = 0;\r
+                for (Iterator it = selected.iterator(); it.hasNext();) {\r
+                    Object id = it.next();\r
+                    if (!saved.containsId(id)) {\r
+                        Item item = source.getItem(id);\r
+                        Item added = saved.addItem(id);\r
+                        Property p = added.getItemProperty(PROPERTY_SPECIES);\r
+                        p.setValue(item.getItemProperty(PROPERTY_SPECIES)\r
+                                .getValue());\r
+                        p = added.getItemProperty(PROPERTY_TYPE);\r
+                        p.setValue(item.getItemProperty(PROPERTY_TYPE)\r
+                                .getValue());\r
+                        p = added.getItemProperty(PROPERTY_KIND);\r
+                        p.setValue(item.getItemProperty(PROPERTY_KIND)\r
+                                .getValue());\r
+                        p = added.getItemProperty(PROPERTY_HIRED);\r
+                        p.setValue(item.getItemProperty(PROPERTY_HIRED)\r
+                                .getValue());\r
+                        s++;\r
+                    }\r
+                }\r
+                getWindow().showNotification("Saved " + s);\r
+                saved.requestRepaint();\r
+            }\r
+        } else if (b == hireSelected) {\r
+            int s = 0;\r
+            Set selected = (Set) source.getValue();\r
+            for (Iterator it = selected.iterator(); it.hasNext();) {\r
+                Object id = it.next();\r
+                Item item = source.getItem(id);\r
+                Property p = item.getItemProperty(PROPERTY_HIRED);\r
+                if (p.getValue() == Boolean.FALSE) {\r
+                    p.setValue(Boolean.TRUE);\r
+                    source.requestRepaint();\r
+                    s++;\r
+                }\r
+                if (saved.containsId(id)) {\r
+                    item = saved.getItem(id);\r
+                    item.getItemProperty(PROPERTY_HIRED).setValue(Boolean.TRUE);\r
+                    saved.requestRepaint();\r
+                }\r
+            }\r
+            getWindow().showNotification("Hired " + s);\r
+\r
+        } else {\r
+            // delete selected\r
+            int s = 0;\r
+            Set selected = (Set) source.getValue();\r
+            for (Iterator it = selected.iterator(); it.hasNext();) {\r
+                Object id = it.next();\r
+                if (source.containsId(id)) {\r
+                    s++;\r
+                    source.removeItem(id);\r
+                    source.requestRepaint();\r
+                }\r
+            }\r
+            getWindow().showNotification("Deleted " + s);\r
+        }\r
 \r
     }\r
 \r