use of org.baderlab.csplugins.enrichmentmap.model.io.SessionListener in project EnrichmentMapApp by BaderLab.
the class CyActivator method start.
@Override
public void start(BundleContext bc) {
injector = Guice.createInjector(new OSGiModule(bc), new AfterInjectionModule(), new CytoscapeServiceModule(), new ApplicationModule(), new CommandModule());
// register the injector as an OSGi service so the integration tests can access it
registerService(bc, injector, Injector.class, new Properties());
// manager
EnrichmentMapManager manager = injector.getInstance(EnrichmentMapManager.class);
registerAllServices(bc, manager, new Properties());
// session save and restore
SessionListener sessionListener = injector.getInstance(SessionListener.class);
registerAllServices(bc, sessionListener, new Properties());
// commands
registerCommand(bc, "build", injector.getInstance(Key.get(TaskFactory.class, BuildCommand.class)));
registerCommand(bc, "gsea", injector.getInstance(Key.get(TaskFactory.class, GSEACommand.class)));
registerCommand(bc, "mastermap", injector.getInstance(Key.get(TaskFactory.class, ResolveCommand.class)));
registerCommand(bc, "pa", injector.getInstance(Key.get(TaskFactory.class, PACommand.class)));
registerService(bc, new MannWhitRanksTunableHandlerFactory(), StringTunableHandlerFactory.class, new Properties());
// Don't load UI services if running headless
boolean headless = injector.getInstance(Key.get(Boolean.class, Headless.class));
if (!headless) {
// register actions
registerAllServices(bc, injector.getInstance(OpenEnrichmentMapAction.class), new Properties());
// chart listener
ChartFactoryManager chartFactoryManager = injector.getInstance(ChartFactoryManager.class);
registerServiceListener(bc, chartFactoryManager, "addFactory", "removeFactory", CyCustomGraphics2Factory.class);
// chart factories
final Properties chartProps = new Properties();
chartProps.setProperty(CyCustomGraphics2Factory.GROUP, "Charts");
RadialHeatMapChartFactory radialHeatMapChartFactory = injector.getInstance(RadialHeatMapChartFactory.class);
registerService(bc, radialHeatMapChartFactory, CyCustomGraphics2Factory.class, chartProps);
// UI Mediators
ControlPanelMediator controlPanelMediator = injector.getInstance(ControlPanelMediator.class);
registerAllServices(bc, controlPanelMediator, new Properties());
HeatMapMediator expressionViewerMediator = injector.getInstance(HeatMapMediator.class);
registerAllServices(bc, expressionViewerMediator, new Properties());
}
// If the App is updated or restarted then we want to reload the model and view from the tables
sessionListener.restore(null);
Em21Handler.removeVersion21(bc, injector.getInstance(CyApplicationConfiguration.class));
}
use of org.baderlab.csplugins.enrichmentmap.model.io.SessionListener in project EnrichmentMapApp by BaderLab.
the class CyActivator method shutDown.
@Override
public void shutDown() {
try {
if (injector != null) {
boolean headless = injector.getInstance(Key.get(Boolean.class, Headless.class));
// If the App gets updated or restarted we need to save all the data first
SessionListener sessionListener = injector.getInstance(SessionListener.class);
sessionListener.appShutdown();
if (!headless) {
// Close the legend panel
LegendPanelMediator legendPanelMediator = injector.getInstance(LegendPanelMediator.class);
legendPanelMediator.hideDialog();
// Dispose the creation dialog, or else lots of memory leaks.
ShowEnrichmentMapDialogAction dialogAction = injector.getInstance(ShowEnrichmentMapDialogAction.class);
dialogAction.dispose();
}
}
} finally {
super.shutDown();
}
}
Aggregations