comparison jface/snippets/Snippet007FullSelection.d @ 143:42c3056512ba

redirect the jface examples to the new collection wrappers
author Frank Benoit <benoit@tionex.de>
date Thu, 07 Aug 2008 22:21:50 +0200
parents cbba80cceb7a
children
comparison
equal deleted inserted replaced
142:7dca96709d29 143:42c3056512ba
32 import dwt.widgets.TableItem; 32 import dwt.widgets.TableItem;
33 33
34 import dwt.dwthelper.utils; 34 import dwt.dwthelper.utils;
35 35
36 import tango.util.Convert; 36 import tango.util.Convert;
37 import tango.util.collection.ArraySeq; 37 import dwtx.dwtxhelper.Collection;
38 38
39 /** 39 /**
40 * TableViewer: Hide full selection 40 * TableViewer: Hide full selection
41 * 41 *
42 * @author Tom Schindl <tom.schindl@bestsolution.at> 42 * @author Tom Schindl <tom.schindl@bestsolution.at>
43 * 43 *
44 */ 44 */
45 public class Snippet007FullSelection { 45 public class Snippet007FullSelection {
46 alias ArraySeq!(MyModel) MyModelArray;
47 46
48 private class MyContentProvider : IStructuredContentProvider { 47 private class MyContentProvider : IStructuredContentProvider {
49 48
50 /* (non-Javadoc) 49 /* (non-Javadoc)
51 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object) 50 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
52 */ 51 */
53 public Object[] getElements(Object inputElement) { 52 public Object[] getElements(Object inputElement) {
54 return (cast(MyModelArray)inputElement).toArray; 53 return (cast(ArrayList)inputElement).toArray;
55 } 54 }
56 55
57 /* (non-Javadoc) 56 /* (non-Javadoc)
58 * @see org.eclipse.jface.viewers.IContentProvider#dispose() 57 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
59 */ 58 */
60 public void dispose() { 59 public void dispose() {
61 60
62 } 61 }
63 62
64 /* (non-Javadoc) 63 /* (non-Javadoc)
65 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object) 64 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
66 */ 65 */
67 public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { 66 public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
68 67
69 } 68 }
70 69
71 } 70 }
72 71
73 public class MyModel { 72 public class MyModel {
74 public int counter; 73 public int counter;
75 74
76 public this(int counter) { 75 public this(int counter) {
77 this.counter = counter; 76 this.counter = counter;
78 } 77 }
79 78
80 public String toString() { 79 public String toString() {
81 return "Item " ~ to!(char[])(this.counter); 80 return "Item " ~ to!(char[])(this.counter);
82 } 81 }
83 } 82 }
84 83
85 public this(Shell shell) { 84 public this(Shell shell) {
86 final TableViewer v = new TableViewer(shell,DWT.BORDER|DWT.FULL_SELECTION); 85 final TableViewer v = new TableViewer(shell,DWT.BORDER|DWT.FULL_SELECTION);
87 v.setLabelProvider(new LabelProvider()); 86 v.setLabelProvider(new LabelProvider());
88 v.setContentProvider(new MyContentProvider()); 87 v.setContentProvider(new MyContentProvider());
89 v.setCellModifier(new class(v) ICellModifier { 88 v.setCellModifier(new class(v) ICellModifier {
102 auto item = cast(TableItem)element; 101 auto item = cast(TableItem)element;
103 auto valuestr = cast(ArrayWrapperString)value; 102 auto valuestr = cast(ArrayWrapperString)value;
104 (cast(MyModel)item.getData()).counter = to!(int)(valuestr.array); 103 (cast(MyModel)item.getData()).counter = to!(int)(valuestr.array);
105 v.update(item.getData(), null); 104 v.update(item.getData(), null);
106 } 105 }
107 106
108 }); 107 });
109 v.setColumnProperties(["column1", "column2" ]); 108 v.setColumnProperties(["column1", "column2" ]);
110 v.setCellEditors([ new TextCellEditor(v.getTable()),new TextCellEditor(v.getTable()) ]); 109 v.setCellEditors([ new TextCellEditor(v.getTable()),new TextCellEditor(v.getTable()) ]);
111 110
112 TableColumn column = new TableColumn(v.getTable(),DWT.NONE); 111 TableColumn column = new TableColumn(v.getTable(),DWT.NONE);
113 column.setWidth(100); 112 column.setWidth(100);
114 column.setText("Column 1"); 113 column.setText("Column 1");
115 114
116 column = new TableColumn(v.getTable(),DWT.NONE); 115 column = new TableColumn(v.getTable(),DWT.NONE);
117 column.setWidth(100); 116 column.setWidth(100);
118 column.setText("Column 2"); 117 column.setText("Column 2");
119 118
120 MyModelArray model = createModel(); 119 ArrayList model = createModel();
121 v.setInput(model); 120 v.setInput(model);
122 v.getTable().setLinesVisible(true); 121 v.getTable().setLinesVisible(true);
123 v.getTable().setHeaderVisible(true); 122 v.getTable().setHeaderVisible(true);
124 123
125 v.getTable().addListener(DWT.EraseItem, new class Listener { 124 v.getTable().addListener(DWT.EraseItem, new class Listener {
126 125
127 /* (non-Javadoc) 126 /* (non-Javadoc)
128 * @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event) 127 * @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event)
129 */ 128 */
130 public void handleEvent(Event event) { 129 public void handleEvent(Event event) {
131 event.detail &= ~DWT.SELECTED; 130 event.detail &= ~DWT.SELECTED;
132 } 131 }
133 }); 132 });
134 133
135 } 134 }
136 135
137 private MyModelArray createModel() { 136 private ArrayList createModel() {
138 auto elements = new MyModelArray; 137 auto elements = new ArrayList(10);
139 elements.capacity = 10; 138
140
141 for( int i = 0; i < 10; i++ ) { 139 for( int i = 0; i < 10; i++ ) {
142 elements ~= new MyModel(i); 140 elements.add( new MyModel(i));
143 } 141 }
144 142
145 return elements; 143 return elements;
146 } 144 }
147 145
148 } 146 }
149 147
150 148
151 void main() { 149 void main() {
152 Display display = new Display (); 150 Display display = new Display ();
153 Shell shell = new Shell(display); 151 Shell shell = new Shell(display);
154 shell.setLayout(new FillLayout()); 152 shell.setLayout(new FillLayout());
155 new Snippet007FullSelection(shell); 153 new Snippet007FullSelection(shell);
156 shell.open (); 154 shell.open ();
157 155
158 while (!shell.isDisposed ()) { 156 while (!shell.isDisposed ()) {
159 if (!display.readAndDispatch ()) display.sleep (); 157 if (!display.readAndDispatch ()) display.sleep ();
160 } 158 }
161 159
162 display.dispose (); 160 display.dispose ();
163 161
164 } 162 }
165 163