/** * Update the Decision Table model with the columns contained in the grid. The Decision Table * controls indexing of new columns to preserve grouping of column types. If the order of columns * is important to client-code this can be called to ensure columns within the model are * synchronised with the Decision Table. */ public void scrapeColumns() { // Clear existing definition model.getMetadataCols().clear(); model.getAttributeCols().clear(); model.getConditionCols().clear(); model.getActionCols().clear(); RowNumberCol rnCol = null; DescriptionCol descCol = null; // Extract column information for (DynamicColumn<DTColumnConfig> column : widget.getGridWidget().getColumns()) { DTColumnConfig modelCol = column.getModelColumn(); if (modelCol instanceof RowNumberCol) { rnCol = (RowNumberCol) modelCol; model.setRowNumberCol(rnCol); } else if (modelCol instanceof DescriptionCol) { descCol = (DescriptionCol) modelCol; model.setDescriptionCol(descCol); } else if (modelCol instanceof MetadataCol) { MetadataCol tc = (MetadataCol) modelCol; model.getMetadataCols().add(tc); } else if (modelCol instanceof AttributeCol) { AttributeCol tc = (AttributeCol) modelCol; model.getAttributeCols().add(tc); } else if (modelCol instanceof ConditionCol) { ConditionCol tc = (ConditionCol) modelCol; model.getConditionCols().add(tc); } else if (modelCol instanceof ActionCol) { ActionCol tc = (ActionCol) modelCol; model.getActionCols().add(tc); } modelCol.setWidth(column.getWidth()); modelCol.setHideColumn(!column.isVisible()); } }