package org.hwo.ui.treetable; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import org.hwo.ui.CellRenderer; public class DefaultTreeTableColumnModel implements TreeTableColumnModel { public class Column { private String label; private int width; private int modelColumn; private CellRenderer cellRenderer; private TreeTablePopupListener popupListener; public String getLabel() { return label; } public void setLabel(String label) { this.label = label; fireColumnsChanged(); } public int getWidth() { return width; } public Column setWidth(int width) { this.width = width; fireColumnsChanged(); return this; } public int getModelColumn() { return modelColumn; } public Column setModelColumn(int modelColumn) { this.modelColumn = modelColumn; fireColumnsChanged(); return this; } public CellRenderer getCellRenderer() { return cellRenderer; } public Column setCellRenderer(CellRenderer cellRenderer) { this.cellRenderer = cellRenderer; return this; } public TreeTablePopupListener getPopupListener() { return popupListener; } public Column setPopupListener(TreeTablePopupListener popupListener) { this.popupListener = popupListener; return this; } } private List columns; private List treeTableModelListener; public DefaultTreeTableColumnModel() { treeTableModelListener = new LinkedList(); columns = new ArrayList(); Column column = new Column(); column.label = ""; column.width = 280; columns.add(column); } public Column addColumn(String label) { return addColumn(label,100); } public Column addColumn(String label,int width) { return addColumn(label, width, -1); } public Column addColumn(String label,int width,int modelColumn) { Column column = new Column(); column.label = label; column.width = width; columns.add(column); if (modelColumn == -1) column.modelColumn = columns.indexOf(column); else column.modelColumn = modelColumn; fireColumnsChanged(); return column; } public void removeColumn(int column) { columns.remove(column); fireColumnsChanged(); } public Column getColumn(int column) { return columns.get(column); } public int indexOfColumn(Column column) { return columns.indexOf(column); } @Override public int getColumnCount() { return columns.size(); } @Override public String getColumnLabel(int column) { return columns.get(column).getLabel(); } @Override public int getColumnWidth(int column) { return columns.get(column).getWidth(); } @Override public int getColumnPos(int column) { int x = 0; for (int i=0;i