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.

Reply via email to