package eu.bibl.cfide.engine.plugin.ui; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; import eu.bibl.cfide.context.CFIDEContext; import eu.bibl.cfide.engine.plugin.PluginManager; import eu.bibl.cfide.eventbus.BusRegistry; import eu.bibl.cfide.eventbus.EventPriority; import eu.bibl.cfide.eventbus.EventTarget; import eu.bibl.cfide.eventbus.events.ContextSwitchEvent; public class PluginViewerTable extends JTable { private static final long serialVersionUID = 3540772471127689178L; public CFIDEContext currentContext; protected Runnable reloader; public PluginViewerTable() { super(new DefaultTableModel(new String[] { "File", "Manfiest", "State" }, 0)); reloader = new PopulateTableRunnable(); BusRegistry.getInstance().getGlobalBus().register(this, ContextSwitchEvent.class); } @EventTarget(priority = EventPriority.HIGHEST) public synchronized void onContextSwitch(ContextSwitchEvent e) { currentContext = e.getNewContext(); } public void switchContext(CFIDEContext currentContext) { this.currentContext = currentContext; } class PopulateTableRunnable implements Runnable { @Override public void run() { if (currentContext != null) { PluginManager pluginManager = currentContext.pluginManager; } } } public void reload() { if (currentContext != null)// to avoid extra threads new Thread(reloader).start(); } }