annotate jface/FileTreeViewer.d @ 120:1f0a7a472680

fix rm snippets from module statements.
author Frank Benoit <benoit@tionex.de>
date Sun, 20 Jul 2008 19:17:23 +0200
parents 5fe95b1ccf68
children ae94c6a65f9e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
62
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1 module jface.FileTreeViewer;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
2
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
3 import dwt.DWT;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
4 import dwt.widgets.Label;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
5 import dwt.widgets.Control;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
6 import dwt.widgets.Composite;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
7 import dwt.widgets.Display;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
8 import dwt.widgets.Shell;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
9 import dwt.widgets.Button;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
10
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
11 import dwt.events.SelectionAdapter;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
12 import dwt.events.SelectionEvent;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
13
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
14 import dwt.graphics.Image;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
15 import dwt.graphics.ImageData;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
16
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
17 import dwt.layout.GridLayout;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
18 import dwt.layout.GridData;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
19
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
20 import dwtx.jface.window.ApplicationWindow;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
21
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
22 import dwtx.jface.viewers.Viewer;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
23 import dwtx.jface.viewers.TreeViewer;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
24 import dwtx.jface.viewers.ITreeContentProvider;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
25 import dwtx.jface.viewers.ILabelProvider;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
26 import dwtx.jface.viewers.ILabelProviderListener;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
27 import dwtx.jface.viewers.LabelProviderChangedEvent;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
28
67
224fe05ea3af jive imports
Frank Benoit <benoit@tionex.de>
parents: 65
diff changeset
29 version(JIVE) import jive.stacktrace;
62
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
30
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
31 import dwt.dwthelper.utils;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
32 import dwt.dwthelper.ByteArrayInputStream;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
33
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
34 //------------------------------------
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
35 //import dwt.dwthelper.utils;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
36 //------------------------------------
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
37
111
5fe95b1ccf68 Fix: compile error for tango svn
Frank Benoit <benoit@tionex.de>
parents: 73
diff changeset
38 version(TANGOSVN){
5fe95b1ccf68 Fix: compile error for tango svn
Frank Benoit <benoit@tionex.de>
parents: 73
diff changeset
39 import tango.io.FileSystem;
5fe95b1ccf68 Fix: compile error for tango svn
Frank Benoit <benoit@tionex.de>
parents: 73
diff changeset
40 }
5fe95b1ccf68 Fix: compile error for tango svn
Frank Benoit <benoit@tionex.de>
parents: 73
diff changeset
41 else{
62
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
42 import tango.io.FileRoots;
111
5fe95b1ccf68 Fix: compile error for tango svn
Frank Benoit <benoit@tionex.de>
parents: 73
diff changeset
43 }
62
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
44 import tango.io.FilePath;
68
06688322681f missing import
Frank Benoit <benoit@tionex.de>
parents: 67
diff changeset
45 import tango.util.log.Trace;
62
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
46
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
47 import tango.util.collection.model.Seq;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
48 import tango.util.collection.ArraySeq;
73
9ff9b8f7284b FileTreeViewer now work on windows without error dialog.
Frank Benoit <benoit@tionex.de>
parents: 70
diff changeset
49 import tango.text.convert.Utf;
62
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
50
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
51 void main(){
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
52 auto hw = new FileTree;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
53 hw.run();
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
54 }
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
55
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
56 class FileTree : ApplicationWindow {
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
57
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
58 TreeViewer tv;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
59
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
60 this(){
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
61 super(null);
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
62 }
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
63
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
64 public void run(){
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
65 setBlockOnOpen(true);
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
66 open();
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
67 Display.getCurrent().dispose();
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
68 }
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
69
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
70 protected void configureShell( Shell shell ){
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
71 super.configureShell(shell);
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
72 shell.setText( "File Tree" );
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
73 shell.setSize( 400, 400 );
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
74 }
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
75
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
76 protected Control createContents(Composite parent){
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
77
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
78 auto composite = new Composite( parent, DWT.NONE );
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
79 composite.setLayout( new GridLayout(1,false));
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
80
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
81 // Add a checkbox to toggle whether the labels preserve case
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
82 auto preserveCase = new Button( composite, DWT.CHECK );
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
83 preserveCase.setText( "&Preserve case" );
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
84
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
85 // Create the tree viewer to display the file tree
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
86 tv = new TreeViewer( composite );
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
87 tv.getTree().setLayoutData( new GridData( GridData.FILL_BOTH ));
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
88 tv.setContentProvider( new FileTreeContentProvider());
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
89 tv.setLabelProvider( new FileTreeLabelProvider() );
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
90 tv.setInput( stringcast("root") );
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
91
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
92 // When user checks the checkbox, toggle the preserve case attribute
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
93 // of the label provider
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
94 preserveCase.addSelectionListener( new class SelectionAdapter{
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
95 public void widgetSelected( SelectionEvent event ){
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
96 auto preserveCase = (cast(Button)event.widget).getSelection();
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
97 auto ftlp = cast(FileTreeLabelProvider) tv.getLabelProvider();
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
98 ftlp.setPreserveCase(preserveCase);
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
99 }
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
100 });
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
101 return composite;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
102 }
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
103 }
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
104
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
105 class FileTreeContentProvider : ITreeContentProvider {
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
106 public override Object[] getChildren( Object arg0 ){
69
279d4c41c6ff prevent exception for files
Frank Benoit <benoit@tionex.de>
parents: 68
diff changeset
107 auto fp = cast(FilePath)arg0;
62
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
108 try{
69
279d4c41c6ff prevent exception for files
Frank Benoit <benoit@tionex.de>
parents: 68
diff changeset
109 if( !fp.isFolder() ){
279d4c41c6ff prevent exception for files
Frank Benoit <benoit@tionex.de>
parents: 68
diff changeset
110 return null;
279d4c41c6ff prevent exception for files
Frank Benoit <benoit@tionex.de>
parents: 68
diff changeset
111 }
65
a84ba4d1820f restructure the dsss.conf and resources
Frank Benoit <benoit@tionex.de>
parents: 63
diff changeset
112 Object[] res;
69
279d4c41c6ff prevent exception for files
Frank Benoit <benoit@tionex.de>
parents: 68
diff changeset
113 foreach( item; fp ){
65
a84ba4d1820f restructure the dsss.conf and resources
Frank Benoit <benoit@tionex.de>
parents: 63
diff changeset
114 res ~= FilePath.from( item );
a84ba4d1820f restructure the dsss.conf and resources
Frank Benoit <benoit@tionex.de>
parents: 63
diff changeset
115 }
a84ba4d1820f restructure the dsss.conf and resources
Frank Benoit <benoit@tionex.de>
parents: 63
diff changeset
116 return res;
62
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
117 }
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
118 catch( Exception e ){
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
119 return null;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
120 }
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
121 }
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
122
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
123 public override Object getParent(Object arg0 ){
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
124 auto fp = cast(FilePath)arg0;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
125 return fp.pop;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
126 }
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
127
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
128 public override bool hasChildren(Object arg0 ){
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
129 auto obj = getChildren(arg0);
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
130 return obj is null ? false : obj.length > 0;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
131 }
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
132
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
133 public override Object[] getElements( Object arg0 ){
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
134 Object[] res;
63
59ae5360d98f use FileRoots
Frank Benoit <benoit@tionex.de>
parents: 62
diff changeset
135
111
5fe95b1ccf68 Fix: compile error for tango svn
Frank Benoit <benoit@tionex.de>
parents: 73
diff changeset
136 version(TANGOSVN){
5fe95b1ccf68 Fix: compile error for tango svn
Frank Benoit <benoit@tionex.de>
parents: 73
diff changeset
137 foreach( root; FileSystem.roots()){
5fe95b1ccf68 Fix: compile error for tango svn
Frank Benoit <benoit@tionex.de>
parents: 73
diff changeset
138 // ignore floppy drives, they bring up strange error messages
5fe95b1ccf68 Fix: compile error for tango svn
Frank Benoit <benoit@tionex.de>
parents: 73
diff changeset
139 if( root == `A:\`|| root == `B:\` ){
5fe95b1ccf68 Fix: compile error for tango svn
Frank Benoit <benoit@tionex.de>
parents: 73
diff changeset
140 continue;
5fe95b1ccf68 Fix: compile error for tango svn
Frank Benoit <benoit@tionex.de>
parents: 73
diff changeset
141 }
5fe95b1ccf68 Fix: compile error for tango svn
Frank Benoit <benoit@tionex.de>
parents: 73
diff changeset
142 res ~= new FilePath( root );
5fe95b1ccf68 Fix: compile error for tango svn
Frank Benoit <benoit@tionex.de>
parents: 73
diff changeset
143 }
5fe95b1ccf68 Fix: compile error for tango svn
Frank Benoit <benoit@tionex.de>
parents: 73
diff changeset
144 }
5fe95b1ccf68 Fix: compile error for tango svn
Frank Benoit <benoit@tionex.de>
parents: 73
diff changeset
145 else{
63
59ae5360d98f use FileRoots
Frank Benoit <benoit@tionex.de>
parents: 62
diff changeset
146 foreach( root; FileRoots.list()){
73
9ff9b8f7284b FileTreeViewer now work on windows without error dialog.
Frank Benoit <benoit@tionex.de>
parents: 70
diff changeset
147 // ignore floppy drives, they bring up strange error messages
9ff9b8f7284b FileTreeViewer now work on windows without error dialog.
Frank Benoit <benoit@tionex.de>
parents: 70
diff changeset
148 if( root == `A:\`|| root == `B:\` ){
9ff9b8f7284b FileTreeViewer now work on windows without error dialog.
Frank Benoit <benoit@tionex.de>
parents: 70
diff changeset
149 continue;
9ff9b8f7284b FileTreeViewer now work on windows without error dialog.
Frank Benoit <benoit@tionex.de>
parents: 70
diff changeset
150 }
63
59ae5360d98f use FileRoots
Frank Benoit <benoit@tionex.de>
parents: 62
diff changeset
151 res ~= new FilePath( root );
59ae5360d98f use FileRoots
Frank Benoit <benoit@tionex.de>
parents: 62
diff changeset
152 }
111
5fe95b1ccf68 Fix: compile error for tango svn
Frank Benoit <benoit@tionex.de>
parents: 73
diff changeset
153 }
62
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
154 return res;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
155 }
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
156
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
157 public override void dispose(){
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
158 }
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
159
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
160 public override void inputChanged(Viewer arg0, Object arg1, Object arg2 ){
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
161 }
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
162
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
163 }
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
164
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
165 class FileTreeLabelProvider : ILabelProvider {
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
166
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
167 private Seq!(ILabelProviderListener) listeners;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
168
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
169 private Image file;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
170 private Image dir;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
171
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
172 private bool preserveCase;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
173
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
174 public this(){
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
175 listeners = new ArraySeq!(ILabelProviderListener);
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
176
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
177 file = new Image( null, new ImageData( new ByteArrayInputStream( cast(byte[])import( "file.png" ))));
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
178 dir = new Image( null, new ImageData( new ByteArrayInputStream( cast(byte[])import( "folder.png" ))));
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
179 }
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
180
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
181 public void setPreserveCase(bool preserveCase){
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
182 this.preserveCase = preserveCase;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
183 auto event = new LabelProviderChangedEvent(this);
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
184 for( int i = 0, n = listeners.size(); i < n; i++ ){
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
185 auto ilpl = listeners.get(i);
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
186 ilpl.labelProviderChanged(event);
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
187 }
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
188 }
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
189
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
190 public override Image getImage(Object arg0){
73
9ff9b8f7284b FileTreeViewer now work on windows without error dialog.
Frank Benoit <benoit@tionex.de>
parents: 70
diff changeset
191 auto fp = cast(FilePath)arg0;
9ff9b8f7284b FileTreeViewer now work on windows without error dialog.
Frank Benoit <benoit@tionex.de>
parents: 70
diff changeset
192 // is a root
9ff9b8f7284b FileTreeViewer now work on windows without error dialog.
Frank Benoit <benoit@tionex.de>
parents: 70
diff changeset
193 if( fp.name.length is 0 ){
9ff9b8f7284b FileTreeViewer now work on windows without error dialog.
Frank Benoit <benoit@tionex.de>
parents: 70
diff changeset
194 return dir;
9ff9b8f7284b FileTreeViewer now work on windows without error dialog.
Frank Benoit <benoit@tionex.de>
parents: 70
diff changeset
195 }
9ff9b8f7284b FileTreeViewer now work on windows without error dialog.
Frank Benoit <benoit@tionex.de>
parents: 70
diff changeset
196 return fp.isFolder() ? dir : file;
62
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
197 }
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
198
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
199 public override char[] getText(Object arg0){
73
9ff9b8f7284b FileTreeViewer now work on windows without error dialog.
Frank Benoit <benoit@tionex.de>
parents: 70
diff changeset
200 auto fp = cast(FilePath)arg0;
9ff9b8f7284b FileTreeViewer now work on windows without error dialog.
Frank Benoit <benoit@tionex.de>
parents: 70
diff changeset
201 auto text = fp.name();
70
e7e5002eabcf remove debugging prints
Frank Benoit <benoit@tionex.de>
parents: 69
diff changeset
202 if( text.length is 0 ){
e7e5002eabcf remove debugging prints
Frank Benoit <benoit@tionex.de>
parents: 69
diff changeset
203 // now take all info, it will be drive or the root folder
73
9ff9b8f7284b FileTreeViewer now work on windows without error dialog.
Frank Benoit <benoit@tionex.de>
parents: 70
diff changeset
204 text = fp.toString();
70
e7e5002eabcf remove debugging prints
Frank Benoit <benoit@tionex.de>
parents: 69
diff changeset
205 }
e7e5002eabcf remove debugging prints
Frank Benoit <benoit@tionex.de>
parents: 69
diff changeset
206 return preserveCase ? text : text.toUpperCase();
62
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
207 }
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
208
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
209 public void addListener( ILabelProviderListener arg0 ){
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
210 listeners.append(arg0);
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
211 }
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
212
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
213 public void dispose(){
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
214 if( dir !is null ) dir.dispose();
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
215 if( file !is null ) file.dispose();
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
216 }
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
217
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
218 public bool isLabelProperty(Object arg0, char[] arg1){
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
219 return false;
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
220 }
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
221
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
222 public void removeListener(ILabelProviderListener arg0){
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
223 listeners.remove(arg0);
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
224 }
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
225 }
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
226
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
227
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
228
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
229
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
230
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
231
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
232
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
233
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
234
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
235
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
236
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
237
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
238
caaf053c44d6 more examples
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
239