Lines 130-141
Link Here
|
130 |
assertFalse(Arrays.asList((Project[])e.getNewValue()).contains(testProject)); |
130 |
assertFalse(Arrays.asList((Project[])e.getNewValue()).contains(testProject)); |
131 |
} |
131 |
} |
132 |
|
132 |
|
|
|
133 |
public void testPreListenerOpenClose () throws Exception { |
134 |
assertEquals("No project is open.", 0, OpenProjects.getDefault ().getOpenProjects ().length); |
135 |
class MyListener implements PropertyChangeListener { |
136 |
PropertyChangeEvent preEvent; |
137 |
|
138 |
@Override |
139 |
public void propertyChange(PropertyChangeEvent evt) { |
140 |
if ("willOpenProjects".equals(evt.getPropertyName())) { |
141 |
assertNull("Only one event expected", preEvent); |
142 |
preEvent = evt; |
143 |
assertEquals("No open projects yet", 0, OpenProjects.getDefault().getOpenProjects().length); |
144 |
} |
145 |
} |
146 |
} |
147 |
MyListener list = new MyListener(); |
148 |
try { |
149 |
OpenProjects.getDefault().addPropertyChangeListener(list); |
150 |
OpenProjects.getDefault ().open (new Project[] { testProject }, true); |
151 |
assertNotNull("Pre event delivered", list.preEvent); |
152 |
assertNull("No old value", list.preEvent.getOldValue()); |
153 |
assertTrue("Array is new value", list.preEvent.getNewValue() instanceof Project[]); |
154 |
Project[] arr = (Project[]) list.preEvent.getNewValue(); |
155 |
assertEquals("Length is one", 1, arr.length); |
156 |
assertEquals("Same as our project", testProject, arr[0]); |
157 |
|
158 |
list.preEvent = null; |
159 |
OpenProjectList.getDefault().close(new Project[] {testProject}, false); |
160 |
assertNull("No pre-event delivered on close", list.preEvent); |
161 |
} finally { |
162 |
OpenProjects.getDefault().removePropertyChangeListener(list); |
163 |
} |
164 |
} |
165 |
|
133 |
|
166 |
|
134 |
private static final class PropertyChangeListenerImpl implements PropertyChangeListener { |
167 |
private static final class PropertyChangeListenerImpl implements PropertyChangeListener { |
135 |
|
168 |
|
136 |
private List<PropertyChangeEvent> events = new ArrayList<PropertyChangeEvent>(); |
169 |
private List<PropertyChangeEvent> events = new ArrayList<PropertyChangeEvent>(); |
137 |
|
170 |
|
|
|
171 |
@Override |
138 |
public void propertyChange(PropertyChangeEvent evt) { |
172 |
public void propertyChange(PropertyChangeEvent evt) { |
|
|
173 |
if ("willOpenProjects".equals(evt.getPropertyName())) { |
174 |
return; |
175 |
} |
139 |
events.add(evt); |
176 |
events.add(evt); |
140 |
} |
177 |
} |
141 |
|
178 |
|