1 package org.lsst.ccs.plugin.jas3;
2
3 import java.util.Collection;
4 import java.util.Iterator;
5 import java.util.logging.Logger;
6 import org.freehep.application.studio.Plugin;
7 import javax.swing.SwingUtilities;
8 import org.openide.util.Lookup;
9 import org.openide.util.Lookup.Result;
10
11
12
13
14
15
16
17 public class LsstPlugin extends Plugin {
18
19 private static final Logger logger = Logger.getLogger(LsstPlugin.class.getName());
20
21 @Override
22 protected void init() {
23
24 logger.finest("LSST plugin created");
25
26 }
27
28 @Override
29 protected void postInit() {
30 initializeBuses();
31 }
32
33 private void initializeBuses() {
34 SwingUtilities.invokeLater(new InitializeCommunicationBuses());
35 }
36
37 private void continueAfterBusesInitialized() {
38
39 Result result = getApplication().getLookup().lookup(new Lookup.Template(LsstSubsystemPlugin.class));
40 Collection plugins = result.allInstances();
41 Iterator pluginsIter = plugins.iterator();
42 while (pluginsIter.hasNext()) {
43 LsstSubsystemPlugin p = (LsstSubsystemPlugin) pluginsIter.next();
44 p.connectToMessagingFactory();
45 }
46 }
47
48 private class InitializeCommunicationBuses implements Runnable {
49
50 @Override
51 public void run() {
52 continueAfterBusesInitialized();
53 }
54 }
55 }