Changeset 140:2b4e94cafb85
- Timestamp:
- 08/07/08 11:16:24 (4 months ago)
- Files:
-
- jface/snippets/Snippet014TreeViewerNoMandatoryLabelProvider.d (modified) (2 diffs)
- jface/snippets/Snippet026TreeViewerTabEditing.d (modified) (2 diffs)
- jface/snippets/Snippet043NoColumnTreeViewerKeyboardEditing.d (modified) (3 diffs)
- jface/snippets/Snippet047VirtualLazyTreeViewer.d (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
jface/snippets/Snippet014TreeViewerNoMandatoryLabelProvider.d
r137 r140 63 63 alias LinkedList!(MyModel) ArrayList; 64 64 65 private class MyContentProvider : ITreeContentProvider {66 67 /*68 * (non-Javadoc)69 *70 * @see dwtx.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)71 */72 public Object[] getElements(Object inputElement) {73 return (cast(MyModel) inputElement).child.toArray();74 }75 76 /*77 * (non-Javadoc)78 *79 * @see dwtx.jface.viewers.IContentProvider#dispose()80 */81 public void dispose() {82 83 }84 85 /*86 * (non-Javadoc)87 *88 * @see dwtx.jface.viewers.IContentProvider#inputChanged(dwtx.jface.viewers.Viewer,89 * java.lang.Object, java.lang.Object)90 */91 public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {92 93 }94 95 /*96 * (non-Javadoc)97 *98 * @see dwtx.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)99 */100 public Object[] getChildren(Object parentElement) {101 return getElements(parentElement);102 }103 104 /*105 * (non-Javadoc)106 *107 * @see dwtx.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)108 */109 public Object getParent(Object element) {110 if (element is null) {111 return null;112 }113 114 return (cast(MyModel) element).parent;115 }116 117 /*118 * (non-Javadoc)119 *120 * @see dwtx.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)121 */122 public bool hasChildren(Object element) {123 return (cast(MyModel) element).child.size() > 0;124 }125 126 }127 128 public class MyModel {129 public MyModel parent;130 131 public ArrayList child;132 133 public int counter;134 135 public this(int counter, MyModel parent) {136 this.parent = parent;137 this.counter = counter;65 private class MyContentProvider : ITreeContentProvider { 66 67 /* 68 * (non-Javadoc) 69 * 70 * @see dwtx.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object) 71 */ 72 public Object[] getElements(Object inputElement) { 73 return (cast(MyModel) inputElement).child.toArray(); 74 } 75 76 /* 77 * (non-Javadoc) 78 * 79 * @see dwtx.jface.viewers.IContentProvider#dispose() 80 */ 81 public void dispose() { 82 83 } 84 85 /* 86 * (non-Javadoc) 87 * 88 * @see dwtx.jface.viewers.IContentProvider#inputChanged(dwtx.jface.viewers.Viewer, 89 * java.lang.Object, java.lang.Object) 90 */ 91 public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { 92 93 } 94 95 /* 96 * (non-Javadoc) 97 * 98 * @see dwtx.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object) 99 */ 100 public Object[] getChildren(Object parentElement) { 101 return getElements(parentElement); 102 } 103 104 /* 105 * (non-Javadoc) 106 * 107 * @see dwtx.jface.viewers.ITreeContentProvider#getParent(java.lang.Object) 108 */ 109 public Object getParent(Object element) { 110 if (element is null) { 111 return null; 112 } 113 114 return (cast(MyModel) element).parent; 115 } 116 117 /* 118 * (non-Javadoc) 119 * 120 * @see dwtx.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object) 121 */ 122 public bool hasChildren(Object element) { 123 return (cast(MyModel) element).child.size() > 0; 124 } 125 126 } 127 128 public class MyModel { 129 public MyModel parent; 130 131 public ArrayList child; 132 133 public int counter; 134 135 public this(int counter, MyModel parent) { 136 this.parent = parent; 137 this.counter = counter; 138 138 child = new ArrayList(); 139 }140 141 public String toString() {142 String rv = "Item ";143 if (parent !is null) {144 rv = parent.toString() ~ ".";145 }146 147 rv ~= to!(String)(counter);148 149 return rv;150 }151 }152 153 public class MyLabelProvider : LabelProvider,154 ITableLabelProvider, ITableFontProvider, ITableColorProvider {155 FontRegistry registry;139 } 140 141 public String toString() { 142 String rv = "Item "; 143 if (parent !is null) { 144 rv = parent.toString() ~ "."; 145 } 146 147 rv ~= to!(String)(counter); 148 149 return rv; 150 } 151 } 152 153 public class MyLabelProvider : LabelProvider, 154 ITableLabelProvider, ITableFontProvider, ITableColorProvider { 155 FontRegistry registry; 156 156 this() 157 157 { … … 159 159 } 160 160 161 public Image getColumnImage(Object element, int columnIndex) {162 return null;163 }164 165 public String getColumnText(Object element, int columnIndex) {166 return "Column " ~ to!(String)(columnIndex) ~ " => " ~ element.toString();167 }168 169 public Font getFont(Object element, int columnIndex) {170 if ((cast(MyModel) element).counter % 2 == 0) {171 return registry.getBold(Display.getCurrent().getSystemFont()172 .getFontData()[0].getName());173 }174 return null;175 }176 177 public Color getBackground(Object element, int columnIndex) {178 if ((cast(MyModel) element).counter % 2 == 0) {179 return Display.getCurrent().getSystemColor(DWT.COLOR_RED);180 }181 return null;182 }183 184 public Color getForeground(Object element, int columnIndex) {185 if ((cast(MyModel) element).counter % 2 == 1) {186 return Display.getCurrent().getSystemColor(DWT.COLOR_RED);187 }188 return null;189 }190 191 }192 193 public this(Shell shell) {194 final TreeViewer v = new TreeViewer(shell);195 196 TreeColumn column = new TreeColumn(v.getTree(),DWT.NONE);197 column.setWidth(200);198 column.setText("Column 1");199 200 column = new TreeColumn(v.getTree(),DWT.NONE);201 column.setWidth(200);202 column.setText("Column 2");203 204 v.setLabelProvider(new MyLabelProvider());205 v.setContentProvider(new MyContentProvider());206 v.setInput(createModel());207 }208 209 private MyModel createModel() {210 211 MyModel root = new MyModel(0, null);212 root.counter = 0;213 214 MyModel tmp;215 for (int i = 1; i < 10; i++) {216 tmp = new MyModel(i, root);217 root.child.add(tmp);218 for (int j = 1; j < i; j++) {219 tmp.child.add(new MyModel(j, tmp));220 }221 }222 223 return root;224 }161 public Image getColumnImage(Object element, int columnIndex) { 162 return null; 163 } 164 165 public String getColumnText(Object element, int columnIndex) { 166 return "Column " ~ to!(String)(columnIndex) ~ " => " ~ element.toString(); 167 } 168 169 public Font getFont(Object element, int columnIndex) { 170 if ((cast(MyModel) element).counter % 2 == 0) { 171 return registry.getBold(Display.getCurrent().getSystemFont() 172 .getFontData()[0].getName()); 173 } 174 return null; 175 } 176 177 public Color getBackground(Object element, int columnIndex) { 178 if ((cast(MyModel) element).counter % 2 == 0) { 179 return Display.getCurrent().getSystemColor(DWT.COLOR_RED); 180 } 181 return null; 182 } 183 184 public Color getForeground(Object element, int columnIndex) { 185 if ((cast(MyModel) element).counter % 2 == 1) { 186 return Display.getCurrent().getSystemColor(DWT.COLOR_RED); 187 } 188 return null; 189 } 190 191 } 192 193 public this(Shell shell) { 194 final TreeViewer v = new TreeViewer(shell); 195 196 TreeColumn column = new TreeColumn(v.getTree(),DWT.NONE); 197 column.setWidth(200); 198 column.setText("Column 1"); 199 200 column = new TreeColumn(v.getTree(),DWT.NONE); 201 column.setWidth(200); 202 column.setText("Column 2"); 203 204 v.setLabelProvider(new MyLabelProvider()); 205 v.setContentProvider(new MyContentProvider()); 206 v.setInput(createModel()); 207 } 208 209 private MyModel createModel() { 210 211 MyModel root = new MyModel(0, null); 212 root.counter = 0; 213 214 MyModel tmp; 215 for (int i = 1; i < 10; i++) { 216 tmp = new MyModel(i, root); 217 root.child.add(tmp); 218 for (int j = 1; j < i; j++) { 219 tmp.child.add(new MyModel(j, tmp)); 220 } 221 } 222 223 return root; 224 } 225 225 226 226 jface/snippets/Snippet026TreeViewerTabEditing.d
r137 r140 68 68 public class Snippet026TreeViewerTabEditing { 69 69 alias LinkedList!(MyModel) ArrayList; 70 public this(Shell shell) {71 Button b = new Button(shell,DWT.PUSH);72 b.setText("Remove column");73 final TreeViewer v = new TreeViewer(shell, DWT.BORDER74 | DWT.FULL_SELECTION);75 v.getTree().setLinesVisible(true);76 v.getTree().setHeaderVisible(true);77 b.addSelectionListener(new class(v) SelectionListener {70 public this(Shell shell) { 71 Button b = new Button(shell,DWT.PUSH); 72 b.setText("Remove column"); 73 final TreeViewer v = new TreeViewer(shell, DWT.BORDER 74 | DWT.FULL_SELECTION); 75 v.getTree().setLinesVisible(true); 76 v.getTree().setHeaderVisible(true); 77 b.addSelectionListener(new class(v) SelectionListener { 78 78 TreeViewer v; 79 79 this(TreeViewer v_) … … 81 81 this.v = v_; 82 82 } 83 public void widgetDefaultSelected(SelectionEvent e) {84 85 }86 87 public void widgetSelected(SelectionEvent e) {88 v.getTree().getColumn(1).dispose();89 }90 91 });92 93 TreeViewerFocusCellManager focusCellManager = new TreeViewerFocusCellManager(v,new FocusCellOwnerDrawHighlighter(v));94 ColumnViewerEditorActivationStrategy actSupport = new class(v) ColumnViewerEditorActivationStrategy {95 this(ColumnViewer v_) 96 { 97 super(v_); 98 } 99 protected bool isEditorActivationEvent(100 ColumnViewerEditorActivationEvent event) {101 return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL102 || event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION103 || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && event.keyCode == DWT.CR)104 || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;105 }106 };107 108 TreeViewerEditor.create(v, focusCellManager, actSupport, ColumnViewerEditor.TABBING_HORIZONTAL109 | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR110 | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION);111 112 final TextCellEditor textCellEditor = new TextCellEditor(v.getTree());113 114 TreeViewerColumn column = new TreeViewerColumn(v, DWT.NONE);115 column.getColumn().setWidth(200);116 column.getColumn().setMoveable(true);117 column.getColumn().setText("Column 1");118 column.setLabelProvider(new class() ColumnLabelProvider {119 120 public String getText(Object element) {121 return "Column 1 => " ~ element.toString();122 }123 124 });125 column.setEditingSupport(new class(v) EditingSupport {126 this(ColumnViewer v_) 127 { 128 super(v_); 129 } 130 protected bool canEdit(Object element) {131 return false;132 }133 134 protected CellEditor getCellEditor(Object element) {135 return textCellEditor;136 }137 138 protected Object getValue(Object element) {139 return stringcast( (to!(String)((cast(MyModel) element).counter)) );140 }141 142 protected void setValue(Object element, Object value) {143 (cast(MyModel) element).counter = Integer.parseInt(value.toString());144 v.update(element, null);145 }146 });147 148 column = new TreeViewerColumn(v, DWT.NONE);149 column.getColumn().setWidth(200);150 column.getColumn().setMoveable(true);151 column.getColumn().setText("Column 2");152 column.setLabelProvider(new class() ColumnLabelProvider {153 154 public String getText(Object element) {155 return "Column 2 => " ~ element.toString();156 }157 158 });159 column.setEditingSupport(new class(v) EditingSupport {160 this(ColumnViewer v_) 161 { 162 super(v_); 163 } 164 protected bool canEdit(Object element) {165 return true;166 }167 168 protected CellEditor getCellEditor(Object element) {169 return textCellEditor;170 }171 172 protected Object getValue(Object element) {173 return stringcast( to!(String)((cast(MyModel) element).counter) );174 }175 176 protected void setValue(Object element, Object value) {177 (cast(MyModel) element).counter = Integer.parseInt(value.toString());178 v.update(element, null);179 }180 });181 182 column = new TreeViewerColumn(v, DWT.NONE);183 column.getColumn().setWidth(200);184 column.getColumn().setMoveable(true);185 column.getColumn().setText("Column 3");186 column.setLabelProvider(new class() ColumnLabelProvider {187 public String getText(Object element) {188 return "Column 3 => " ~ element.toString();189 }190 191 });192 column.setEditingSupport(new class(v) EditingSupport {193 this(ColumnViewer v_) 194 { 195 super(v_); 196 } 197 protected bool canEdit(Object element) {198 return true;199 }200 201 protected CellEditor getCellEditor(Object element) {202 return textCellEditor;203 }204 205 protected Object getValue(Object element) {206 return stringcast( to!(String)((cast(MyModel) element).counter) );207 }208 209 protected void setValue(Object element, Object value) {210 (cast(MyModel) element).counter = Integer.parseInt(value.toString());211 v.update(element, null);212 }213 });214 215 v.setContentProvider(new MyContentProvider());216 217 v.setInput(createModel());218 }219 220 private MyModel createModel() {221 222 MyModel root = new MyModel(0, null);223 root.counter = 0;224 225 MyModel tmp;226 MyModel subItem;227 for (int i = 1; i < 10; i++) {228 tmp = new MyModel(i, root);229 root.child.add(tmp);230 for (int j = 1; j < i; j++) {231 subItem = new MyModel(j, tmp);232 subItem.child.add(new MyModel(j * 100, subItem));233 tmp.child.add(subItem);234 }235 }236 237 return root;238 }239 240 private class MyContentProvider : ITreeContentProvider {241 242 public Object[] getElements(Object inputElement) {243 return (cast(MyModel) inputElement).child.toArray();244 }245 246 public void dispose() {247 }248 249 public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {250 }251 252 public Object[] getChildren(Object parentElement) {253 return getElements(parentElement);254 }255 256 public Object getParent(Object element) {257 if (element is null) {258 return null;259 }260 return (cast(MyModel) element).parent;261 }262 263 public bool hasChildren(Object element) {264 return (cast(MyModel) element).child.size() > 0;265 }266 267 }268 269 public class MyModel {270 public MyModel parent;271 272 public ArrayList child;273 274 public int counter;275 276 public this(int counter, MyModel parent) {277 this.parent = parent;278 this.counter = counter;83 public void widgetDefaultSelected(SelectionEvent e) { 84 85 } 86 87 public void widgetSelected(SelectionEvent e) { 88 v.getTree().getColumn(1).dispose(); 89 } 90 91 }); 92 93 TreeViewerFocusCellManager focusCellManager = new TreeViewerFocusCellManager(v,new FocusCellOwnerDrawHighlighter(v)); 94 ColumnViewerEditorActivationStrategy actSupport = new class(v) ColumnViewerEditorActivationStrategy { 95 this(ColumnViewer v_) 96 { 97 super(v_); 98 } 99 protected bool isEditorActivationEvent( 100 ColumnViewerEditorActivationEvent event) { 101 return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL 102 || event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION 103 || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && event.keyCode == DWT.CR) 104 || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC; 105 } 106 }; 107 108 TreeViewerEditor.create(v, focusCellManager, actSupport, ColumnViewerEditor.TABBING_HORIZONTAL 109 | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR 110 | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION); 111 112 final TextCellEditor textCellEditor = new TextCellEditor(v.getTree()); 113 114 TreeViewerColumn column = new TreeViewerColumn(v, DWT.NONE); 115 column.getColumn().setWidth(200); 116 column.getColumn().setMoveable(true); 117 column.getColumn().setText("Column 1"); 118 column.setLabelProvider(new class() ColumnLabelProvider { 119 120 public String getText(Object element) { 121 return "Column 1 => " ~ element.toString(); 122 } 123 124 }); 125 column.setEditingSupport(new class(v) EditingSupport { 126 this(ColumnViewer v_) 127 { 128 super(v_); 129 } 130 protected bool canEdit(Object element) { 131 return false; 132 } 133 134 protected CellEditor getCellEditor(Object element) { 135 return textCellEditor; 136 } 137 138 protected Object getValue(Object element) { 139 return stringcast( (to!(String)((cast(MyModel) element).counter)) ); 140 } 141 142 protected void setValue(Object element, Object value) { 143 (cast(MyModel) element).counter = Integer.parseInt(value.toString()); 144 v.update(element, null); 145 } 146 }); 147 148 column = new TreeViewerColumn(v, DWT.NONE); 149 column.getColumn().setWidth(200); 150 column.getColumn().setMoveable(true); 151 column.getColumn().setText("Column 2"); 152 column.setLabelProvider(new class() ColumnLabelProvider { 153 154 public String getText(Object element) { 155 return "Column 2 => " ~ element.toString(); 156 } 157 158 }); 159 column.setEditingSupport(new class(v) EditingSupport { 160 this(ColumnViewer v_) 161 { 162 super(v_); 163 } 164 protected bool canEdit(Object element) { 165 return true; 166 } 167 168 protected CellEditor getCellEditor(Object element) { 169 return textCellEditor; 170 } 171 172 protected Object getValue(Object element) { 173 return stringcast( to!(String)((cast(MyModel) element).counter) ); 174 } 175 176 protected void setValue(Object element, Object value) { 177 (cast(MyModel) element).counter = Integer.parseInt(value.toString()); 178 v.update(element, null); 179 } 180 }); 181 182 column = new TreeViewerColumn(v, DWT.NONE); 183 column.getColumn().setWidth(200); 184 column.getColumn().setMoveable(true); 185 column.getColumn().setText("Column 3"); 186 column.setLabelProvider(new class() ColumnLabelProvider { 187 public String getText(Object element) { 188 return "Column 3 => " ~ element.toString(); 189 } 190 191 }); 192 column.setEditingSupport(new class(v) EditingSupport { 193 this(ColumnViewer v_) 194 { 195 super(v_); 196 } 197 protected bool canEdit(Object element) { 198 return true; 199 } 200 201 protected CellEditor getCellEditor(Object element) { 202 return textCellEditor; 203 } 204 205 protected Object getValue(Object element) { 206 return stringcast( to!(String)((cast(MyModel) element).counter) ); 207 } 208 209 protected void setValue(Object element, Object value) { 210 (cast(MyModel) element).counter = Integer.parseInt(value.toString()); 211 v.update(element, null); 212 } 213 }); 214 215 v.setContentProvider(new MyContentProvider()); 216 217 v.setInput(createModel()); 218 } 219 220 private MyModel createModel() { 221 222 MyModel root = new MyModel(0, null); 223 root.counter = 0; 224 225 MyModel tmp; 226 MyModel subItem; 227 for (int i = 1; i < 10; i++) { 228 tmp = new MyModel(i, root); 229 root.child.add(tmp); 230 for (int j = 1; j < i; j++) { 231 subItem = new MyModel(j, tmp); 232 subItem.child.add(new MyModel(j * 100, subItem)); 233 tmp.child.add(subItem); 234 } 235 } 236 237 return root; 238 } 239 240 private class MyContentProvider : ITreeContentProvider { 241 242 public Object[] getElements(Object inputElement) { 243 return (cast(MyModel) inputElement).child.toArray(); 244 } 245 246 public void dispose() { 247 } 248 249 public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { 250 } 251 252 public Object[] getChildren(Object parentElement) { 253 return getElements(parentElement); 254 } 255 256 public Object getParent(Object element) { 257 if (element is null) { 258 return null; 259 } 260 return (cast(MyModel) element).parent; 261 } 262 263 public bool hasChildren(Object element) { 264 return (cast(MyModel) element).child.size() > 0; 265 } 266 267 } 268 269 public class MyModel { 270 public MyModel parent; 271 272 public ArrayList child; 273 274 public int counter; 275 276 public this(int counter, MyModel parent) { 277 this.parent = parent; 278 this.counter = counter; 279 279 child = new ArrayList(); 280 }281 282 public String toString() {283 String rv = "Item ";284 if (parent !is null) {285 rv = parent.toString() ~ ".";286 }287 288 rv ~= to!(String)(counter);289 290 return rv;291 }292 }280 } 281 282 public String toString() { 283 String rv = "Item "; 284 if (parent !is null) { 285 rv = parent.toString() ~ "."; 286 } 287 288 rv ~= to!(String)(counter); 289 290 return rv; 291 } 292 } 293 293 294 294 } jface/snippets/Snippet043NoColumnTreeViewerKeyboardEditing.d
r137 r140 66 66 public class Snippet043NoColumnTreeViewerKeyboardEditing { 67 67 alias LinkedList!(MyModel) ArrayList; 68 public this(Shell shell) {69 Button b = new Button(shell, DWT.PUSH);70 b.setText("BBB");71 final TreeViewer v = new TreeViewer(shell, DWT.BORDER72 | DWT.FULL_SELECTION);73 b.addSelectionListener(new class(v) SelectionListener {68 public this(Shell shell) { 69 Button b = new Button(shell, DWT.PUSH); 70 b.setText("BBB"); 71 final TreeViewer v = new TreeViewer(shell, DWT.BORDER 72 | DWT.FULL_SELECTION); 73 b.addSelectionListener(new class(v) SelectionListener { 74 74 TreeViewer v; 75 75 this(TreeViewer v_) … … 78 78 } 79 79 80 public void widgetDefaultSelected(SelectionEvent e) {81 82 }83 84 public void widgetSelected(SelectionEvent e) {85 MyModel root = cast(MyModel) v.getInput();86 TreePath path = new TreePath([ root, root.child.get(1),87 (cast(MyModel) root.child.get(1)).child.get(0)] );88 v.editElement(path, 0);89 }90 91 });92 93 v.setCellEditors([ new TextCellEditor(v.getTree()) ]);94 v.setColumnProperties(["col1"]);95 v.setCellModifier(new class(v) ICellModifier {80 public void widgetDefaultSelected(SelectionEvent e) { 81 82 } 83 84 public void widgetSelected(SelectionEvent e) { 85 MyModel root = cast(MyModel) v.getInput(); 86 TreePath path = new TreePath([ root, root.child.get(1), 87 (cast(MyModel) root.child.get(1)).child.get(0)] ); 88 v.editElement(path, 0); 89 } 90 91 }); 92 93 v.setCellEditors([ new TextCellEditor(v.getTree()) ]); 94 v.setColumnProperties(["col1"]); 95 v.setCellModifier(new class(v) ICellModifier { 96 96 TreeViewer v; 97 97 this(TreeViewer v_) … … 99 99 this.v = v_; 100 100 } 101 public bool canModify(Object element, String property) {102 return true;103 }104 105 public Object getValue(Object element, String property) {106 return stringcast( to!(String)((cast(MyModel) element).counter) ~ "" );107 }108 109 public void modify(Object element, String property, Object value) {110 element = (cast(Item) element).getData();111 (cast(MyModel) element).counter = Integer.parseInt(value.toString());112 v.update(element, null);113 }114 115 });116 117 TreeViewerFocusCellManager focusCellManager = new TreeViewerFocusCellManager(118 v, new FocusCellOwnerDrawHighlighter(v));119 ColumnViewerEditorActivationStrategy actSupport = new class(v) ColumnViewerEditorActivationStrategy {101 public bool canModify(Object element, String property) { 102 return true; 103 } 104 105 public Object getValue(Object element, String property) { 106 return stringcast( to!(String)((cast(MyModel) element).counter) ~ "" ); 107 } 108 109 public void modify(Object element, String property, Object value) { 110 element = (cast(Item) element).getData(); 111 (cast(MyModel) element).counter = Integer.parseInt(value.toString()); 112 v.update(element, null); 113 } 114 115 }); 116 117 TreeViewerFocusCellManager focusCellManager = new TreeViewerFocusCellManager( 118 v, new FocusCellOwnerDrawHighlighter(v)); 119 ColumnViewerEditorActivationStrategy actSupport = new class(v) ColumnViewerEditorActivationStrategy { 120 120 this(ColumnViewer v) 121 121 { 122 122 super(v); 123 123 } 124 protected bool isEditorActivationEvent(125 ColumnViewerEditorActivationEvent event) {126 return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL127 || event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION128 || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && event.keyCode == DWT.CR)129 || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;130 }131 };132 133 TreeViewerEditor.create(v, focusCellManager, actSupport,134 ColumnViewerEditor.TABBING_HORIZONTAL135 | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR136 | ColumnViewerEditor.TABBING_VERTICAL137 | ColumnViewerEditor.KEYBOARD_ACTIVATION);138 139 v.setContentProvider(new MyContentProvider());140 141 v.setInput(createModel());142 }143 144 private MyModel createModel() {145 146 MyModel root = new MyModel(0, null);147 root.counter = 0;148 149 MyModel tmp;150 MyModel subItem;151 for (int i = 1; i < 10; i++) {152 tmp = new MyModel(i, root);153 root.child.add(tmp);154 for (int j = 1; j < i; j++) {155 subItem = new MyModel(j, tmp);156 subItem.child.add(new MyModel(j * 100, subItem));157 tmp.child.add(subItem);158 }159 }160 161 return root;162 }163 164 165 166 private class MyContentProvider : ITreeContentProvider {167 168 public Object[] getElements(Object inputElement) {169 return (cast(MyModel) inputElement).child.toArray();170 }171 172 public void dispose() {173 }174 175 public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {176 }177 178 public Object[] getChildren(Object parentElement) {179 return getElements(parentElement);180 }181 182 public Object getParent(Object element) {183 if (element is null) {184 return null;185 }186 return (cast(MyModel) element).parent;187 }188 189 public bool hasChildren(Object element) {190 return (cast(MyModel) element).child.size() > 0;191 }192 193 }194 195 public class MyModel {196 public MyModel parent;197 198 public ArrayList child;199 200 public int counter;201 202 public this(int counter_, MyModel parent_) {203 this.parent = parent_;204 this.counter = counter_;124 protected bool isEditorActivationEvent( 125 ColumnViewerEditorActivationEvent event) { 126 return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL 127 || event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION 128 || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && event.keyCode == DWT.CR) 129 || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC; 130 } 131 }; 132 133 TreeViewerEditor.create(v, focusCellManager, actSupport, 134 ColumnViewerEditor.TABBING_HORIZONTAL 135 | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR 136 | ColumnViewerEditor.TABBING_VERTICAL 137 | ColumnViewerEditor.KEYBOARD_ACTIVATION); 138 139 v.setContentProvider(new MyContentProvider()); 140 141 v.setInput(createModel()); 142 } 143 144 private MyModel createModel() { 145 146 MyModel root = new MyModel(0, null); 147 root.counter = 0; 148 149 MyModel tmp; 150 MyModel subItem; 151 for (int i = 1; i < 10; i++) { 152 tmp = new MyModel(i, root); 15
