Lines 91-96
Link Here
|
91 |
import org.netbeans.api.project.ProjectInformation; |
91 |
import org.netbeans.api.project.ProjectInformation; |
92 |
import org.netbeans.api.project.ProjectManager; |
92 |
import org.netbeans.api.project.ProjectManager; |
93 |
import org.netbeans.api.project.ProjectUtils; |
93 |
import org.netbeans.api.project.ProjectUtils; |
|
|
94 |
import org.netbeans.api.project.ui.ProjectGroup; |
95 |
import org.netbeans.api.project.ui.ProjectGroupChangeEvent; |
96 |
import org.netbeans.api.project.ui.ProjectGroupChangeListener; |
94 |
import static org.netbeans.modules.project.ui.Bundle.*; |
97 |
import static org.netbeans.modules.project.ui.Bundle.*; |
95 |
import org.netbeans.modules.project.ui.api.UnloadedProjectInformation; |
98 |
import org.netbeans.modules.project.ui.api.UnloadedProjectInformation; |
96 |
import org.netbeans.modules.project.ui.groups.Group; |
99 |
import org.netbeans.modules.project.ui.groups.Group; |
Lines 184-189
Link Here
|
184 |
|
187 |
|
185 |
private PropertyChangeListener infoListener; |
188 |
private PropertyChangeListener infoListener; |
186 |
private final LoadOpenProjects LOAD; |
189 |
private final LoadOpenProjects LOAD; |
|
|
190 |
private final ArrayList<ProjectGroupChangeListener> projectGroupSupport; |
187 |
|
191 |
|
188 |
OpenProjectList() { |
192 |
OpenProjectList() { |
189 |
LOAD = new LoadOpenProjects(0); |
193 |
LOAD = new LoadOpenProjects(0); |
Lines 200-205
Link Here
|
200 |
pchSupport = new PropertyChangeSupport( this ); |
204 |
pchSupport = new PropertyChangeSupport( this ); |
201 |
recentProjects = new RecentProjectList(10); // #47134 |
205 |
recentProjects = new RecentProjectList(10); // #47134 |
202 |
recentTemplates = new ArrayList<String>(); |
206 |
recentTemplates = new ArrayList<String>(); |
|
|
207 |
projectGroupSupport = new ArrayList<ProjectGroupChangeListener>(); |
203 |
} |
208 |
} |
204 |
|
209 |
|
205 |
|
210 |
|
Lines 263-268
Link Here
|
263 |
return recentTemplates; |
268 |
return recentTemplates; |
264 |
} |
269 |
} |
265 |
|
270 |
|
|
|
271 |
|
272 |
void addProjectGroupChangeListener(ProjectGroupChangeListener listener) { |
273 |
synchronized (projectGroupSupport) { |
274 |
projectGroupSupport.add(listener); |
275 |
} |
276 |
} |
277 |
|
278 |
void removeProjectGroupChangeListener(ProjectGroupChangeListener listener) { |
279 |
synchronized (projectGroupSupport) { |
280 |
projectGroupSupport.remove(listener); |
281 |
} |
282 |
} |
283 |
|
284 |
public void fireProjectGroupChanging(Group oldGroup, Group newGroup) { |
285 |
List<ProjectGroupChangeListener> list = new ArrayList<ProjectGroupChangeListener>(); |
286 |
synchronized (projectGroupSupport) { |
287 |
list.addAll(projectGroupSupport); |
288 |
} |
289 |
ProjectGroup o = oldGroup != null ? org.netbeans.modules.project.uiapi.Utilities.ACCESSOR.createGroup(oldGroup.getName(), oldGroup.prefs()) : null; |
290 |
ProjectGroup n = newGroup != null ? org.netbeans.modules.project.uiapi.Utilities.ACCESSOR.createGroup(newGroup.getName(), newGroup.prefs()) : null; |
291 |
ProjectGroupChangeEvent event = new ProjectGroupChangeEvent(o, n); |
292 |
for (ProjectGroupChangeListener l : list) { |
293 |
l.projectGroupChanging(event); |
294 |
} |
295 |
} |
296 |
|
297 |
public void fireProjectGroupChanged(Group oldGroup, Group newGroup) { |
298 |
List<ProjectGroupChangeListener> list = new ArrayList<ProjectGroupChangeListener>(); |
299 |
synchronized (projectGroupSupport) { |
300 |
list.addAll(projectGroupSupport); |
301 |
} |
302 |
ProjectGroup o = oldGroup != null ? org.netbeans.modules.project.uiapi.Utilities.ACCESSOR.createGroup(oldGroup.getName(), oldGroup.prefs()) : null; |
303 |
ProjectGroup n = newGroup != null ? org.netbeans.modules.project.uiapi.Utilities.ACCESSOR.createGroup(newGroup.getName(), newGroup.prefs()) : null; |
304 |
ProjectGroupChangeEvent event = new ProjectGroupChangeEvent(o, n); |
305 |
for (ProjectGroupChangeListener l : list) { |
306 |
l.projectGroupChanged(event); |
307 |
} |
308 |
} |
309 |
|
266 |
private final class LoadOpenProjects implements Runnable, LookupListener, Future<Project[]> { |
310 |
private final class LoadOpenProjects implements Runnable, LookupListener, Future<Project[]> { |
267 |
final RequestProcessor RP = new RequestProcessor("Load Open Projects"); // NOI18N |
311 |
final RequestProcessor RP = new RequestProcessor("Load Open Projects"); // NOI18N |
268 |
final RequestProcessor.Task TASK = RP.create(this); |
312 |
final RequestProcessor.Task TASK = RP.create(this); |