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
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
}\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