Lines 16-21
Link Here
|
16 |
import java.io.IOException; |
16 |
import java.io.IOException; |
17 |
import java.util.*; |
17 |
import java.util.*; |
18 |
import javax.swing.SwingUtilities; |
18 |
import javax.swing.SwingUtilities; |
|
|
19 |
import javax.swing.event.ChangeEvent; |
20 |
import javax.swing.event.ChangeListener; |
19 |
|
21 |
|
20 |
import org.openide.filesystems.*; |
22 |
import org.openide.filesystems.*; |
21 |
import org.openide.loaders.*; |
23 |
import org.openide.loaders.*; |
Lines 25-30
Link Here
|
25 |
import org.netbeans.junit.*; |
27 |
import org.netbeans.junit.*; |
26 |
import java.util.Enumeration; |
28 |
import java.util.Enumeration; |
27 |
import org.openide.nodes.Node; |
29 |
import org.openide.nodes.Node; |
|
|
30 |
import org.openide.nodes.Children; |
31 |
|
28 |
|
32 |
|
29 |
public class FolderChildrenTest extends NbTestCase { |
33 |
public class FolderChildrenTest extends NbTestCase { |
30 |
public FolderChildrenTest() { |
34 |
public FolderChildrenTest() { |
Lines 80-86
Link Here
|
80 |
assertTrue ("Second one is the same", last[1] == arr[1]); |
84 |
assertTrue ("Second one is the same", last[1] == arr[1]); |
81 |
|
85 |
|
82 |
} |
86 |
} |
|
|
87 |
|
88 |
public void testChangeableDataFilter() throws Exception { |
89 |
setupSystemProperties(); |
90 |
|
91 |
FileSystem fs = Repository.getDefault ().getDefaultFileSystem(); |
92 |
FileUtil.createData (fs.getRoot (), "BB/A.txt"); |
93 |
FileUtil.createData (fs.getRoot (), "BB/B.txt"); |
94 |
FileUtil.createData (fs.getRoot (), "BB/AA.txt"); |
95 |
FileUtil.createData (fs.getRoot (), "BB/BA.txt"); |
96 |
|
97 |
|
98 |
FileObject bb = fs.findResource("/BB"); |
99 |
|
100 |
Filter filter = new Filter(); |
101 |
DataFolder folder = DataFolder.findFolder (bb); |
102 |
|
103 |
Children ch = folder.createNodeChildren( filter ); |
104 |
Node[] arr = ch.getNodes (true); |
105 |
|
106 |
assertNodes( arr, new String[] { "A.txt", "AA.txt" } ); |
107 |
filter.fire(); |
108 |
arr = ch.getNodes (true); |
109 |
assertNodes( arr, new String[] { "B.txt", "BA.txt" } ); |
110 |
|
111 |
} |
83 |
|
112 |
|
|
|
113 |
|
84 |
public static class N1 extends org.openide.nodes.AbstractNode |
114 |
public static class N1 extends org.openide.nodes.AbstractNode |
85 |
implements Node.Cookie { |
115 |
implements Node.Cookie { |
86 |
public N1 () { |
116 |
public N1 () { |
Lines 111-114
Link Here
|
111 |
|
141 |
|
112 |
public static final class N2 extends N1 { |
142 |
public static final class N2 extends N1 { |
113 |
} |
143 |
} |
|
|
144 |
|
145 |
|
146 |
private void assertNodes( Node[] nodes, String names[] ) { |
147 |
|
148 |
assertEquals( "Wrong number of nodes.", names.length, nodes.length ); |
149 |
|
150 |
for( int i = 0; i < nodes.length; i++ ) { |
151 |
System.out.println("Display Name :" + nodes[i].getName() + ":"); |
152 |
assertEquals( "Wrong name at index " + i + ".", names[i], nodes[i].getName() ); |
153 |
} |
154 |
|
155 |
} |
156 |
|
157 |
private static class Filter implements ChangeableDataFilter { |
158 |
|
159 |
private boolean selectA = true; |
160 |
|
161 |
ArrayList listeners = new ArrayList(); |
162 |
|
163 |
public boolean acceptDataObject (DataObject obj) { |
164 |
String fileName = obj.getPrimaryFile().getName(); |
165 |
boolean select = fileName.startsWith( "A" ); |
166 |
select = selectA ? select : !select; |
167 |
System.out.println("FILTERING " + fileName + " : " + select ); |
168 |
return select; |
169 |
} |
170 |
|
171 |
public void addChangeListener( ChangeListener listener ) { |
172 |
listeners.add( listener ); |
173 |
} |
174 |
|
175 |
public void removeChangeListener( ChangeListener listener ) { |
176 |
listeners.remove( listener ); |
177 |
} |
178 |
|
179 |
public void fire( ) { |
180 |
|
181 |
selectA = !selectA; |
182 |
|
183 |
ChangeEvent che = new ChangeEvent( this ); |
184 |
|
185 |
for( Iterator it = listeners.iterator(); it.hasNext(); ) { |
186 |
ChangeListener chl = (ChangeListener)it.next(); |
187 |
chl.stateChanged( che ); |
188 |
} |
189 |
} |
190 |
|
191 |
} |
192 |
|
114 |
} |
193 |
} |