Changeset 140:2b4e94cafb85

Show
Ignore:
Timestamp:
08/07/08 11:16:24 (4 months ago)
Author:
Frank Benoit <benoit@tionex.de>
branch:
default
Message:

tabs vs. spaces

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • jface/snippets/Snippet014TreeViewerNoMandatoryLabelProvider.d

    r137 r140  
    6363    alias  LinkedList!(MyModel) ArrayList; 
    6464     
    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; 
    138138            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; 
    156156        this() 
    157157        { 
     
    159159        } 
    160160 
    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   
    225225 
    226226 
  • jface/snippets/Snippet026TreeViewerTabEditing.d

    r137 r140  
    6868public class Snippet026TreeViewerTabEditing { 
    6969    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.BORDER 
    74                | 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 { 
    7878            TreeViewer v; 
    7979            this(TreeViewer v_) 
     
    8181                this.v = v_; 
    8282            } 
    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; 
     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; 
    279279            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   
    293293 
    294294} 
  • jface/snippets/Snippet043NoColumnTreeViewerKeyboardEditing.d

    r137 r140  
    6666public class Snippet043NoColumnTreeViewerKeyboardEditing { 
    6767    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.BORDER 
    72                | 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 { 
    7474            TreeViewer v; 
    7575            this(TreeViewer v_) 
     
    7878            } 
    7979             
    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 { 
    9696            TreeViewer v; 
    9797            this(TreeViewer v_) 
     
    9999                this.v = v_; 
    100100            } 
    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 { 
    120120            this(ColumnViewer v) 
    121121            { 
    122122                super(v); 
    123123            } 
    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); 
    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