Author: pwang
Date: 2011-12-07 16:01:57 -0800 (Wed, 07 Dec 2011)
New Revision: 27739
Modified:
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/CyActivator.java
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/filters/FilterPlugin.java
Log:
Fixed bug#522
Modified:
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/CyActivator.java
===================================================================
---
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/CyActivator.java
2011-12-08 00:00:44 UTC (rev 27738)
+++
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/CyActivator.java
2011-12-08 00:01:57 UTC (rev 27739)
@@ -3,6 +3,8 @@
import org.cytoscape.work.TaskManager;
import org.cytoscape.model.CyNetworkManager;
+import org.cytoscape.application.CytoscapeVersion;
+import org.cytoscape.application.CyApplicationConfiguration;
import org.cytoscape.view.model.CyNetworkViewManager;
import org.cytoscape.application.CyApplicationManager;
import org.cytoscape.service.util.CyServiceRegistrar;
@@ -44,8 +46,11 @@
CyServiceRegistrar cyServiceRegistrarServiceRef =
getService(bc,CyServiceRegistrar.class);
CyEventHelper cyEventHelperServiceRef =
getService(bc,CyEventHelper.class);
TaskManager taskManagerServiceRef =
getService(bc,TaskManager.class);
+ CyApplicationConfiguration cyApplicationConfigurationServiceRef
= getService(bc,CyApplicationConfiguration.class);
+ CytoscapeVersion cytoscapeVersionService =
getService(bc,CytoscapeVersion.class);
- FilterPlugin filterPlugin = new
FilterPlugin(cyApplicationManagerServiceRef,cySwingApplicationServiceRef);
+ FilterPlugin filterPlugin = new
FilterPlugin(cyApplicationManagerServiceRef,cySwingApplicationServiceRef,
+ cyApplicationConfigurationServiceRef,
cytoscapeVersionService);
QuickFindApp quickFindApp = new
QuickFindApp(cyApplicationManagerServiceRef,cyNetworkViewManagerServiceRef,cySwingApplicationServiceRef,cyNetworkManagerServiceRef);
FilterMainPanel filterMainPanel = new
FilterMainPanel(cyApplicationManagerServiceRef,filterPlugin,cyNetworkManagerServiceRef,cyServiceRegistrarServiceRef,cyEventHelperServiceRef,taskManagerServiceRef);
FilterCytoPanelComponent filterCytoPanelComponent = new
FilterCytoPanelComponent(filterMainPanel);
@@ -57,9 +62,8 @@
registerService(bc,filterPanelSelectedListener,CytoPanelComponentSelectedListener.class,
new Properties());
registerService(bc,filterAction,CyAction.class, new
Properties());
registerAllServices(bc,quickFindApp, new Properties());
-
+ registerAllServices(bc,filterPlugin, new Properties());
-
}
}
Modified:
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/filters/FilterPlugin.java
===================================================================
---
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/filters/FilterPlugin.java
2011-12-08 00:00:44 UTC (rev 27738)
+++
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/filters/FilterPlugin.java
2011-12-08 00:01:57 UTC (rev 27739)
@@ -39,7 +39,11 @@
import java.util.Vector;
import org.cytoscape.application.CyApplicationManager;
+import org.cytoscape.application.events.CytoscapeShutdownEvent;
+import org.cytoscape.application.events.CytoscapeShutdownListener;
import org.cytoscape.application.swing.CySwingApplication;
+import org.cytoscape.application.CyApplicationConfiguration;
+import org.cytoscape.application.CytoscapeVersion;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.InputStream;
@@ -49,7 +53,7 @@
/**
*
*/
-public class FilterPlugin {
+public class FilterPlugin implements CytoscapeShutdownListener{
private Vector<CompositeFilter> allFilterVect = null;
private final FilterIO filterIO;
@@ -60,7 +64,8 @@
// Other plugin can turn on/off the FilterEvent
public static boolean shouldFireFilterEvent = false;
-
+ public static String cyConfigVerDir;
+
// Other plugin can get a handler to all the filters defined
public Vector<CompositeFilter> getAllFilterVect() {
if (allFilterVect == null) {
@@ -77,7 +82,7 @@
* @param csfilter
* DOCUMENT ME!
*/
- public FilterPlugin(CyApplicationManager applicationManager,
CySwingApplication application) {
+ public FilterPlugin(CyApplicationManager applicationManager,
CySwingApplication application, final CyApplicationConfiguration config,
CytoscapeVersion version) {
filterIO = new FilterIO(applicationManager, this);
if (allFilterVect == null) {
@@ -86,26 +91,33 @@
logger = LoggerFactory.getLogger(FilterPlugin.class);
+ cyConfigVerDir = new File(config.getSettingLocation(),
File.separator + version.getMajorVersion()+ "." +
version.getMinorVersion()).getAbsolutePath();
+
restoreInitState();
}
- /**
- * DOCUMENT ME!
- */
- public void onCytoscapeExit() {
-// // TODO: Port this
-// // Save global filter to "filters.prop"
-//
filterIO.saveGlobalPropFile(CytoscapeInit.getConfigFile("filters.props"));
+ @Override
+ public void handleEvent(CytoscapeShutdownEvent e) {
+ //onCytoscapeExit
+
+ final File globalFilterFile = new File(cyConfigVerDir +
File.separator + "filters.props");
+ filterIO.saveGlobalPropFile(globalFilterFile);
}
+
+ public void restoreInitState() {
+ final File globalFilterFile = new File(cyConfigVerDir +
File.separator + "filters.props");
+
+ if (!globalFilterFile.isFile()){
+ // filers.props does not exist, so load the default one
+ loadDefaultFilter();
+ return;
+ }
- public void restoreInitState() {
-// // TODO: Port this
-// final File globalFilterFile =
CytoscapeInit.getConfigFile("filters.props");
- int[] loadCount = {0,0};
//filterIO.getFilterVectFromPropFile(globalFilterFile);
-// logger.debug("FilterPlugin: load " + loadCount[1] + " of " +
loadCount[0] + " filters from filters.prop");
-//
-// if (loadCount[1] == 0) {
+ int[] loadCount =
filterIO.getFilterVectFromPropFile(globalFilterFile);
+ logger.debug("FilterPlugin: load " + loadCount[1] + " of " +
loadCount[0] + " filters from filters.prop");
+
+ if (loadCount[1] == 0) {
final String DEFAULT_FILTERS_FILENAME =
"/default_filters.props";
final InputStream inputStream =
FilterPlugin.class.getResourceAsStream(DEFAULT_FILTERS_FILENAME);
@@ -120,9 +132,24 @@
logger.debug("FilterPlugin: load " + loadCount[1] + "
of " + loadCount[0]
+ " filters from " +
DEFAULT_FILTERS_FILENAME);
-// }
+ }
}
+
+ private void loadDefaultFilter(){
+ final String DEFAULT_FILTERS_FILENAME =
"/default_filters.props";
+ final InputStream inputStream =
FilterPlugin.class.getResourceAsStream(DEFAULT_FILTERS_FILENAME);
+
+ if (inputStream == null) {
+ System.err.println("FilterPlugin: Failed to read
default filters from \""
+ + DEFAULT_FILTERS_FILENAME + "\" in
the plugin's jar file!");
+ return;
+ }
+
+ final InputStreamReader inputStreamReader = new
InputStreamReader(inputStream);
+ filterIO.getFilterVectFromPropFile(inputStreamReader);
+ }
+
// override the following two methods to save state.
/**
* DOCUMENT ME!
--
You received this message because you are subscribed to the Google Groups
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/cytoscape-cvs?hl=en.