Advertisement
Guest User

Untitled

a guest
Oct 31st, 2014
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.31 KB | None | 0 0
  1. private String element;
  2. private String type;
  3.  
  4. public TableModelElement(String element, String type) {
  5. this.element = element;
  6. this.type = type;
  7. }
  8.  
  9. public TableModelElement(String element) {
  10. this(element, SetTypeEnum.SET_TYPE_STRING.toString());
  11. }
  12.  
  13. public TableModelElement() {
  14. this("", SetTypeEnum.SET_TYPE_STRING.toString());
  15. }
  16. //And Getter/Setter
  17.  
  18. public enum SetTypeEnum {
  19. SET_TYPE_EXPR("expr"), SET_TYPE_STRING("string");
  20.  
  21. private final String setType;
  22.  
  23. private SetTypeEnum(String setType) {
  24. this.setType = setType;
  25. }
  26.  
  27. @Override
  28. public String toString() {
  29. return setType;
  30. }
  31.  
  32. public static String[] toArray() {
  33. String[] values = new String[SetTypeEnum.values().length];
  34. int i = 0;
  35. for (SetTypeEnum value : SetTypeEnum.values()) {
  36. if (i < values.length) {
  37. values[i] = value.toString();
  38. i++;
  39. }
  40. }
  41. return values;
  42. }
  43. }
  44.  
  45. public class SetTable {
  46.  
  47. private TableViewer viewer;
  48. private TableLayout layout;
  49. private TableViewerColumn colElementText;
  50. private TableViewerColumn colElementType;
  51.  
  52. public SetTable(Composite parent) {
  53. layout = new TableLayout();
  54. layout.addColumnData(new ColumnWeightData(3));
  55. layout.addColumnData(new ColumnWeightData(1));
  56. Table table = new Table(parent, SWT.BORDER | SWT.FULL_SELECTION
  57. | SWT.V_SCROLL);
  58. table.setLinesVisible(true);
  59. table.setHeaderVisible(true);
  60. table.setLayout(layout);
  61. viewer = new TableViewer(table);
  62. viewer.getControl().setLayoutData(
  63. new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
  64. colElementText = new TableViewerColumn(viewer, SWT.NONE);
  65. colElementText.getColumn().setResizable(true);
  66. colElementText.getColumn().setText("Wert");
  67. colElementType = new TableViewerColumn(viewer, SWT.NONE);
  68. colElementType.getColumn().setResizable(false);
  69. colElementType.getColumn().setText("Typ");
  70. EditingSupport exampleEditingSupport = new SetTableEditingSupport(
  71. colElementType.getViewer());
  72. colElementType.setEditingSupport(exampleEditingSupport);
  73. viewer.setContentProvider(new ArrayContentProvider());
  74. viewer.setLabelProvider(new SetTableLabelProvider());
  75.  
  76. TableModelElement[] model = new TableModelElement[] {
  77. new TableModelElement("Test1",
  78. SetTypeEnum.SET_TYPE_EXPR.toString()),
  79. new TableModelElement("Test2",
  80. SetTypeEnum.SET_TYPE_EXPR.toString()) };
  81. viewer.setInput(model);
  82. }
  83.  
  84. public class SetTableEditingSupport extends EditingSupport {
  85.  
  86. private ComboBoxViewerCellEditor cellEditor = null;
  87.  
  88. public SetTableEditingSupport(ColumnViewer colViewer) {
  89. super(colViewer);
  90. cellEditor = new ComboBoxViewerCellEditor((Composite) getViewer()
  91. .getControl(), SWT.READ_ONLY);
  92. cellEditor.setLabelProvider(new LabelProvider());
  93. cellEditor.setContentProvider(new ArrayContentProvider());
  94. cellEditor.setInput(SetTypeEnum.toArray());
  95. }
  96.  
  97. @Override
  98. protected CellEditor getCellEditor(final Object element) {
  99. return cellEditor;
  100. }
  101.  
  102. @Override
  103. protected boolean canEdit(Object element) {
  104. return true;
  105. }
  106.  
  107. @Override
  108. protected Object getValue(Object element) {
  109. if (element instanceof TableModelElement) {
  110. TableModelElement data = (TableModelElement) element;
  111. return data.getType();
  112. }
  113. return null;
  114. }
  115.  
  116. @Override
  117. protected void setValue(Object element, Object type) {
  118. if (element instanceof TableModelElement && type instanceof String) {
  119. TableModelElement data = (TableModelElement) element;
  120. String newType = (String) type;
  121. /* only set new value if it differs from old one */
  122. if (!data.getType().equals(newType)) {
  123. data.setType(newType);
  124. // String[] items =((CCombo)cellEditor.getControl()).getItems();
  125. // for(int i=0;i<items.length;i++) {
  126. // if(items[i].equalsIgnoreCase(newType)) {
  127. // System.out.println("Will select Combo index i=" + i);
  128. // ((CCombo)cellEditor.getControl()).select(i);
  129. // }
  130. // }
  131. }
  132. }
  133. }
  134. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement