Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private String element;
- private String type;
- public TableModelElement(String element, String type) {
- this.element = element;
- this.type = type;
- }
- public TableModelElement(String element) {
- this(element, SetTypeEnum.SET_TYPE_STRING.toString());
- }
- public TableModelElement() {
- this("", SetTypeEnum.SET_TYPE_STRING.toString());
- }
- //And Getter/Setter
- public enum SetTypeEnum {
- SET_TYPE_EXPR("expr"), SET_TYPE_STRING("string");
- private final String setType;
- private SetTypeEnum(String setType) {
- this.setType = setType;
- }
- @Override
- public String toString() {
- return setType;
- }
- public static String[] toArray() {
- String[] values = new String[SetTypeEnum.values().length];
- int i = 0;
- for (SetTypeEnum value : SetTypeEnum.values()) {
- if (i < values.length) {
- values[i] = value.toString();
- i++;
- }
- }
- return values;
- }
- }
- public class SetTable {
- private TableViewer viewer;
- private TableLayout layout;
- private TableViewerColumn colElementText;
- private TableViewerColumn colElementType;
- public SetTable(Composite parent) {
- layout = new TableLayout();
- layout.addColumnData(new ColumnWeightData(3));
- layout.addColumnData(new ColumnWeightData(1));
- Table table = new Table(parent, SWT.BORDER | SWT.FULL_SELECTION
- | SWT.V_SCROLL);
- table.setLinesVisible(true);
- table.setHeaderVisible(true);
- table.setLayout(layout);
- viewer = new TableViewer(table);
- viewer.getControl().setLayoutData(
- new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
- colElementText = new TableViewerColumn(viewer, SWT.NONE);
- colElementText.getColumn().setResizable(true);
- colElementText.getColumn().setText("Wert");
- colElementType = new TableViewerColumn(viewer, SWT.NONE);
- colElementType.getColumn().setResizable(false);
- colElementType.getColumn().setText("Typ");
- EditingSupport exampleEditingSupport = new SetTableEditingSupport(
- colElementType.getViewer());
- colElementType.setEditingSupport(exampleEditingSupport);
- viewer.setContentProvider(new ArrayContentProvider());
- viewer.setLabelProvider(new SetTableLabelProvider());
- TableModelElement[] model = new TableModelElement[] {
- new TableModelElement("Test1",
- SetTypeEnum.SET_TYPE_EXPR.toString()),
- new TableModelElement("Test2",
- SetTypeEnum.SET_TYPE_EXPR.toString()) };
- viewer.setInput(model);
- }
- public class SetTableEditingSupport extends EditingSupport {
- private ComboBoxViewerCellEditor cellEditor = null;
- public SetTableEditingSupport(ColumnViewer colViewer) {
- super(colViewer);
- cellEditor = new ComboBoxViewerCellEditor((Composite) getViewer()
- .getControl(), SWT.READ_ONLY);
- cellEditor.setLabelProvider(new LabelProvider());
- cellEditor.setContentProvider(new ArrayContentProvider());
- cellEditor.setInput(SetTypeEnum.toArray());
- }
- @Override
- protected CellEditor getCellEditor(final Object element) {
- return cellEditor;
- }
- @Override
- protected boolean canEdit(Object element) {
- return true;
- }
- @Override
- protected Object getValue(Object element) {
- if (element instanceof TableModelElement) {
- TableModelElement data = (TableModelElement) element;
- return data.getType();
- }
- return null;
- }
- @Override
- protected void setValue(Object element, Object type) {
- if (element instanceof TableModelElement && type instanceof String) {
- TableModelElement data = (TableModelElement) element;
- String newType = (String) type;
- /* only set new value if it differs from old one */
- if (!data.getType().equals(newType)) {
- data.setType(newType);
- // String[] items =((CCombo)cellEditor.getControl()).getItems();
- // for(int i=0;i<items.length;i++) {
- // if(items[i].equalsIgnoreCase(newType)) {
- // System.out.println("Will select Combo index i=" + i);
- // ((CCombo)cellEditor.getControl()).select(i);
- // }
- // }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement