@Override public void setAttributeValue(Component com, Object value) { if (com instanceof gkGridIC) { gkGridIC grid = (gkGridIC) com; // 如果傳Collection表示要選擇指定的row (可以是數字或字串) if (value instanceof Collection) { grid.setSelectRowItem((Collection) value); } else if (value instanceof TreeMap) { TreeMap tm = (TreeMap) value; if (tm.size() == 1) { grid.setSelectRowItem((Map) tm.get(tm.firstKey())); } } else if (value instanceof String && grid.getGrid().getSelectionModel() instanceof gkCheckBoxSelectionModel) { // for select all if ("all".equalsIgnoreCase((String) value)) { grid.getGrid().getSelectionModel().selectAll(); } } } else if (com instanceof ComboBox) { ComboBox combo = (ComboBox) com; if (value instanceof String) { combo.setValue(combo.getPropertyEditor().convertStringValue(value + "")); } else { combo.setValue((gkMap) value); } combo.fireEvent(Events.Change); } else if (com instanceof TabPanel) { TabPanel tp = (TabPanel) com; tp.setSelection(tp.getItemByItemId(value + "")); } else if (com instanceof gkXMLTreePanelIC) { gkXMLTreePanelIC tree = (gkXMLTreePanelIC) com; String[] nodeIds; if (value instanceof Map) { nodeIds = ((String) ((Map) value).get(gkXMLTreePanelIC.ID)).split(","); } else { nodeIds = ((String) value).split(","); } tree.getTree().getSelectionModel().deselectAll(); for (String nodeId : nodeIds) { ModelData md = tree.getTree().getStore().findModel(nodeId); tree.getTree().getSelectionModel().select(md, true); tree.getTree().scrollIntoView(md); } } }
@Override public Object getAttributeValue(Component com) { Object value = null; if (com instanceof gkGridIC) { gkGridIC grid = (gkGridIC) com; // 取得所有勾選列資料,並重組成map value = grid.getSelectedRowItems(); } else if (com instanceof ComboBox) { ComboBox combo = (ComboBox) com; value = combo.getValue(); } else if (com instanceof TabPanel) { TabPanel tp = (TabPanel) com; value = tp.getSelectedItem().getId(); } else if (com instanceof gkXMLTreePanelIC) { gkXMLTreePanelIC xtp = (gkXMLTreePanelIC) com; value = xtp.getTree().getSelectionModel().getSelectedItem(); } else if (com instanceof gkTreeDirPanelIC) { gkTreeDirPanelIC xtp = (gkTreeDirPanelIC) com; value = xtp.getSelectionModel().getSelectedItem(); } return value; }