private ContentPanel CreateGcode() { ContentPanel panel = new ContentPanel(); // panel.setSize(400, 400); panel.setAutoHeight(true); panel.setAutoWidth(true); CheckBoxSelectionModel cbs = new CheckBoxSelectionModel(); List<ColumnConfig> columns = new ArrayList<ColumnConfig>(); columns.add(cbs.getColumn()); ColumnConfig gcode = new ColumnConfig("gcode", "商品大类编码", 100); TextField<String> gcodetext = new TextField<String>(); gcode.setEditor(new CellEditor(gcodetext)); columns.add(gcode); ColumnConfig gname = new ColumnConfig("gname", "商品大类名称", 100); TextField<String> gnametext = new TextField<String>(); gname.setEditor(new CellEditor(gnametext)); columns.add(gname); ColumnConfig attrcode = new ColumnConfig("attrcode", "商品大类属性", 100); TextField<String> attrcodetext = new TextField<String>(); attrcode.setEditor(new CellEditor(attrcodetext)); columns.add(attrcode); ModelType type = new ModelType(); type.setRoot("records"); type.setRecordName("record"); type.addField("gcode"); type.addField("gname"); type.addField("attrcode"); StoreInfo info = new StoreInfo(); info.setTablename("gcode"); info.setKeyname(new String[] {"gcode"}); info.setSql("select * from gcode"); // info.setParent(store);// 关联主表 // info.setAutoinccolumn("idx"); // 自增字段,如果子表一定需要 // info.setLinkparentcolumns(new String[] { "ccode" }); // 关联主表字段 gcodestore = new BaseStore<JDBCModelData>(type, info); // gudong.setName("gudong"); // gudong.setKeyname(new String[] { "ccode", "idx" }); // 主键 ColumnModel cm = new ColumnModel(columns); gcodeegrid = new BaseGrid(gcodestore, cm); cbs.setSelectionMode(SelectionMode.SINGLE); gcodeegrid.setSelectionModel(cbs); gcodeegrid.setAutoHeight(true); gcodeegrid.setAutoWidth(true); gcodeegrid .getSelectionModel() .addSelectionChangedListener( new SelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent se) { if (se.getSelection().size() > 0) { // attrgroupgrid.getModel() attrgroupgrid.getSelectionModel().deselectAll(); // int attr = // ((BaseModelData)gcodeegrid.getSelectionModel().getSelectedItems().get(0)).get("attrcode"); // System.out.println("size="+attrgroupgrid.getStore().getModels().size()); // for(int i=0;i<((BaseModelData)attrgroupgrid.getModel()).getProperties().size()) int size = attrgroupgrid.getStore().getModels().size(); int attr = Integer.parseInt( ((BaseModelData) gcodeegrid.getSelectionModel().getSelectedItems().get(0)) .get("attrcode") .toString()); for (int i = 0; i < size; i++) { int attrcode = Integer.parseInt(attrgroupgrid.getValue(i, "attrcode").toString()); if ((attrcode & attr) == attrcode) { attrgroupgrid.getSelectionModel().select(i, true); } } } else { attrgroupgrid.getSelectionModel().deselectAll(); } } }); registerStore(gcodestore); panel.add(gcodeegrid); panel.setScrollMode(Scroll.AUTO); return panel; }
private ContentPanel CreateGcodeAttrgroup() { ContentPanel panel = new ContentPanel(); CheckBoxSelectionModel cbs = new CheckBoxSelectionModel() { public void deselectAll() { doDeselect(new ArrayList(selected), true); } }; List<ColumnConfig> columns = new ArrayList<ColumnConfig>(); columns.add(cbs.getColumn()); ColumnConfig attr = new ColumnConfig("attrcode", "商品属性", 100); TextField<String> attrtext = new TextField<String>(); attr.setEditor(new CellEditor(attrtext)); columns.add(attr); ColumnConfig attrname = new ColumnConfig("attrname", "商品属性", 100); // TextField<String> attrnametext = new TextField<String>(); // attrname.setEditor(new CellEditor(attrnametext)); columns.add(attrname); ModelType type = new ModelType(); type.setRoot("records"); type.setRecordName("record"); type.addField("attrcode"); type.addField("attrname"); StoreInfo info = new StoreInfo(); info.setTablename("b2cgcodeattrgroup"); info.setSql("select * from b2cgcodeattrgroup"); // info.setParent(store);// 关联主表 // info.setAutoinccolumn("idx"); // 自增字段,如果子表一定需要 // info.setLinkparentcolumns(new String[] { "ccode" }); // 关联主表字段 BaseStore<JDBCModelData> gcodeattrgroup = new BaseStore<JDBCModelData>(type, info); // gudong.setName("gudong"); // gudong.setKeyname(new String[] { "ccode", "idx" }); // 主键 ColumnModel cm = new ColumnModel(columns); attrgroupgrid = new BaseGrid(gcodeattrgroup, cm); cbs.setSelectionMode(SelectionMode.MULTI); attrgroupgrid.setSelectionModel(cbs); attrgroupgrid.setAutoHeight(true); attrgroupgrid.setAutoWidth(true); attrgroupgrid .getSelectionModel() .addSelectionChangedListener( new SelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent se) { // // System.out.println("----"+gcodeegrid.getSelectionModel().getSelectedItems().size()); if (gcodeegrid.getSelectionModel().getSelectedItems().size() < 1 && attrgroupgrid.getSelectionModel().getSelectedItems().size() > 0) { MessageBox.alert("警告", "请先选择商品大类!否则属性将不能正确设置。", null); return; } if (gcodeegrid.getSelectionModel().getSelectedItems().size() < 1) { return; } int size = se.getSelection().size(); int z = 0; for (int i = 0; i < size; i++) { // // System.out.println("--"+((BaseModelData)se.getSelection().get(i)).get("attrcode")); z = z | Integer.parseInt( ((BaseModelData) se.getSelection().get(i)) .get("attrcode") .toString()); } System.out.println("z=" + z); // ((BaseModelData)gcodeegrid.getSelectionModel().getSelectedItems().get(0)).set("attrcode", z); int index = 0; if (gcodeegrid.getSelectionModel().getSelectedItems().size() > 0) index = gcodestore.indexOf( (BaseModelData) gcodeegrid.getSelectionModel().getSelectedItems().get(0)); if (index >= 0) gcodestore.setValue(index, "attrcode", z); else { MessageBox.alert("警告", "未找到指定的行!", null); } } }); // registerStore(gcodeattrgroup); 不参与保存,所以不注册 panel.add(attrgroupgrid); return panel; }