Author: ruschein
Date: 2010-02-11 13:08:59 -0800 (Thu, 11 Feb 2010)
New Revision: 19297

Added:
   coreplugins/trunk/filters/resources/default_filters.props
Modified:
   coreplugins/trunk/filters/build.xml
   coreplugins/trunk/filters/src/cytoscape/filters/FilterIO.java
   coreplugins/trunk/filters/src/cytoscape/filters/FilterPlugin.java
Log:
Now we load a "Default" filter if we cannot find any others.

Modified: coreplugins/trunk/filters/build.xml
===================================================================
--- coreplugins/trunk/filters/build.xml 2010-02-11 18:24:36 UTC (rev 19296)
+++ coreplugins/trunk/filters/build.xml 2010-02-11 21:08:59 UTC (rev 19297)
@@ -1,11 +1,10 @@
-
        <project name="filters" default="jar" basedir=".">
-
-               <!-- Cytoscape directory -->
-           <property name="cytoscape.dir" value="../../cytoscape"/>
-               <property name="cytoscape.lib.dir" 
value="${cytoscape.dir}/lib"/>
-           <property name="cytoscape.plugin.dir" 
value="${cytoscape.dir}/plugins/core"/>
 
+               <!-- Cytoscape directory -->
+           <property name="cytoscape.dir" value="../../cytoscape"/>
+               <property name="cytoscape.lib.dir" 
value="${cytoscape.dir}/lib"/>
+           <property name="cytoscape.plugin.dir" 
value="${cytoscape.dir}/plugins/core"/>
+
            <!-- The build directory -->
            <!-- All files generated by ant go here -->
            <property name="build.dir"    value="${basedir}/build"/>
@@ -23,7 +22,7 @@
 
            <!-- The resources directory -->
            <property name="resources.dir"    value="${basedir}/resources"/>
-               <property name="images.dir" value="${basedir}/images"/>
+               <property name="images.dir" value="${basedir}/images"/>
 
                <!-- The unit test reports directory -->
            <property name="junit.report.dir"    
value="${build.dir}/junit-reports"/>
@@ -61,7 +60,7 @@
            <!-- ==================== Prepare Target 
============================== -->
            <target name="prepare" description="Create needed directories">
                <!-- Create build directories as needed -->
-               <mkdir  dir="${build.dir}"/>
+               <mkdir  dir="${build.dir}"/>
                <mkdir  dir="${build.dir}/classes"/>
                <mkdir  dir="${dist.dir}"/>
 
@@ -91,9 +90,10 @@
            <!-- ==================== Jar Target ============================== 
-->
            <target name="jar" depends="compile"
                    description="Creates Plugin Jar:  filters.jar">
-               <copy todir="${build.dir}/classes/cytoscape/filters" 
file="${resources.dir}/plugin.props"/>
-               <copy todir="${build.dir}">
-                   <fileset dir="${images.dir}"/> 
+               <copy todir="${build.dir}/classes/cytoscape/filters" 
file="${resources.dir}/plugin.props"/>
+               <copy todir="${build.dir}/classes/cytoscape/filters" 
file="${resources.dir}/default_filters.props"/>
+               <copy todir="${build.dir}">
+                   <fileset dir="${images.dir}"/>
                </copy>
                <jar destfile="${dist.dir}/filters.jar">
                <manifest>

Added: coreplugins/trunk/filters/resources/default_filters.props
===================================================================
--- coreplugins/trunk/filters/resources/default_filters.props                   
        (rev 0)
+++ coreplugins/trunk/filters/resources/default_filters.props   2010-02-11 
21:08:59 UTC (rev 19297)
@@ -0,0 +1,14 @@
+FilterVersion=0.2
+<Composite>
+name=Default
+<AdvancedSetting>
+scope.global=false
+scope.session=true
+selection.node=false
+selection.edge=false
+edge.source=true
+edge.target=true
+Relation=AND
+</AdvancedSetting>
+Negation=false
+</Composite>

Modified: coreplugins/trunk/filters/src/cytoscape/filters/FilterIO.java
===================================================================
--- coreplugins/trunk/filters/src/cytoscape/filters/FilterIO.java       
2010-02-11 18:24:36 UTC (rev 19296)
+++ coreplugins/trunk/filters/src/cytoscape/filters/FilterIO.java       
2010-02-11 21:08:59 UTC (rev 19297)
@@ -38,8 +38,10 @@
 import java.io.BufferedReader;
 import java.io.BufferedWriter;
 import java.io.File;
+import java.io.FileNotFoundException;
 import java.io.FileReader;
 import java.io.FileWriter;
+import java.io.InputStreamReader;
 import java.util.List;
 import java.util.Vector;
 import java.util.ArrayList;
@@ -59,11 +61,10 @@
                logger = CyLogger.getLogger(FilterIO.class);
        }
 
-       // Read the filter property file and construct the filter objects
-       // based on the string representation of each filter
-       public int[] getFilterVectFromPropFile(File pPropFile) {
-               //Vector<CompositeFilter> retVect = new 
Vector<CompositeFilter>();
-
+       /**
+        *  Construct the filter objects based on the string representation of 
each filter.
+        */
+       public int[] getFilterVectFromPropFile(final InputStreamReader reader) {
                int addCount = 0;
                int totalCount = 0;
                int retValue[] = new int[2];
@@ -71,64 +72,63 @@
                retValue[1] = addCount;
 
                try {
-                       BufferedReader in = new BufferedReader(new 
FileReader(pPropFile));
+                       BufferedReader in = new BufferedReader(reader);
 
-            try {
-                String oneLine = in.readLine();
+                       try {
+                               String oneLine = in.readLine();
 
-                if (oneLine == null) {
-                    return retValue;
-                }
-                double filterVersion = 0.0;
-                if (oneLine.trim().startsWith("FilterVersion")) {
-                    String versionStr = oneLine.trim().substring(14);
-                    filterVersion = Double.valueOf(versionStr);
-                }
+                               if (oneLine == null) {
+                                       return retValue;
+                               }
+                               double filterVersion = 0.0;
+                               if (oneLine.trim().startsWith("FilterVersion")) 
{
+                                       String versionStr = 
oneLine.trim().substring(14);
+                                       filterVersion = 
Double.valueOf(versionStr);
+                               }
 
-                // Ignore filters from the old version
-                if (filterVersion <0.2) {
-                    return retValue;
-                }
+                               // Ignore filters from the old version
+                               if (filterVersion <0.2) {
+                                       return retValue;
+                               }
 
-                while (oneLine != null) {
-                    // ignore comment, empty line or the version line
-                    if (oneLine.startsWith("#") || 
oneLine.trim().equals("")||oneLine.startsWith("FilterVersion")) {
-                        oneLine = in.readLine();
-                        continue;
-                    }
+                               while (oneLine != null) {
+                                       // ignore comment, empty line or the 
version line
+                                       if (oneLine.startsWith("#") || 
oneLine.trim().equals("")||oneLine.startsWith("FilterVersion")) {
+                                               oneLine = in.readLine();
+                                               continue;
+                                       }
 
-                    if 
(oneLine.trim().startsWith("<Composite>")||oneLine.trim().startsWith("<TopologyFilter>")
-                            
||oneLine.trim().startsWith("<InteractionFilter>")) {
-                        Vector<String> filterStrVect = new Vector<String>();
-                        filterStrVect.add(oneLine);
-                        while ((oneLine = in.readLine()) != null) {
-                            if 
(oneLine.trim().startsWith("</Composite>")||oneLine.trim().startsWith("</TopologyFilter>")
-                                    
||oneLine.trim().startsWith("</InteractionFilter>")) {
-                                filterStrVect.add(oneLine);
-                                break;
-                            }
-                            filterStrVect.add(oneLine);
-                        } // inner while loop
+                                       if 
(oneLine.trim().startsWith("<Composite>")||oneLine.trim().startsWith("<TopologyFilter>")
+                                           
||oneLine.trim().startsWith("<InteractionFilter>")) {
+                                               Vector<String> filterStrVect = 
new Vector<String>();
+                                               filterStrVect.add(oneLine);
+                                               while ((oneLine = 
in.readLine()) != null) {
+                                                       if 
(oneLine.trim().startsWith("</Composite>")||oneLine.trim().startsWith("</TopologyFilter>")
+                                                           
||oneLine.trim().startsWith("</InteractionFilter>")) {
+                                                               
filterStrVect.add(oneLine);
+                                                               break;
+                                                       }
+                                                       
filterStrVect.add(oneLine);
+                                               } // inner while loop
 
-                        totalCount++;
+                                               totalCount++;
 
-                        CompositeFilter aFilter = 
getFilterFromStrVect(filterStrVect);
-                        if (aFilter != null && 
!FilterUtil.isFilterNameDuplicated(aFilter.getName())) {
-                            FilterPlugin.getAllFilterVect().add(aFilter);
-                            addCount++;
-                        }
-                    }
+                                               CompositeFilter aFilter = 
getFilterFromStrVect(filterStrVect);
+                                               if (aFilter != null && 
!FilterUtil.isFilterNameDuplicated(aFilter.getName())) {
+                                                       
FilterPlugin.getAllFilterVect().add(aFilter);
+                                                       addCount++;
+                                               }
+                                       }
 
-                    oneLine = in.readLine();
-                } // while loop
-            }
-            finally {
-                if (in != null) {
-                    in.close();
-                }
-            }
+                                       oneLine = in.readLine();
+                               } // while loop
+                       }
+                       finally {
+                               if (in != null) {
+                                       in.close();
+                               }
+                       }
                } catch (Exception ex) {
-                       
                        logger.error("Filter Read error", ex);
                }
                
@@ -137,6 +137,20 @@
                return retValue;
        }
 
+       /**
+        *  Construct the filter objects based on the string representation of 
each filter.
+        */
+       public int[] getFilterVectFromPropFile(final File input) {
+               try {
+                       return getFilterVectFromPropFile(new FileReader(input));
+               }
+               catch (final FileNotFoundException e) {
+                       logger.error("Filter Read error", e);
+                       final int[] retval = { 0, 0 };
+                       return retval;
+               }
+       }
+
        private AdvancedSetting getAdvancedSettingFromStrVect(Vector<String> 
pAdvSettingStrVect) {
                AdvancedSetting advSetting = new AdvancedSetting();
                String line = null;

Modified: coreplugins/trunk/filters/src/cytoscape/filters/FilterPlugin.java
===================================================================
--- coreplugins/trunk/filters/src/cytoscape/filters/FilterPlugin.java   
2010-02-11 18:24:36 UTC (rev 19296)
+++ coreplugins/trunk/filters/src/cytoscape/filters/FilterPlugin.java   
2010-02-11 21:08:59 UTC (rev 19297)
@@ -42,6 +42,8 @@
 import cytoscape.util.*;
 import cytoscape.view.cytopanels.CytoPanelImp;
 import java.io.File;
+import java.io.InputStream;
+import java.io.InputStreamReader;
 import java.util.List;
 import java.util.Vector;
 import javax.swing.ImageIcon;
@@ -119,11 +121,24 @@
        }
 
        public void restoreInitState() {
-               File global_filter_file = 
CytoscapeInit.getConfigFile("filters.props");
+               final File globalFilterFile = 
CytoscapeInit.getConfigFile("filters.props");
+               int[] loadCount = 
filterIO.getFilterVectFromPropFile(globalFilterFile);
+               logger.debug("FilterPlugin: load " + loadCount[1] + " of " + 
loadCount[0] + " filters from filters.prop");
 
-               int[] loadCount = 
filterIO.getFilterVectFromPropFile(global_filter_file);
-               
-               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);
+                       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);
+                       loadCount = 
filterIO.getFilterVectFromPropFile(inputStreamReader);
+                       logger.debug("FilterPlugin: load " + loadCount[1] + " 
of " + loadCount[0]
+                                    + " filters from " + 
DEFAULT_FILTERS_FILENAME);
+               }
        }
 
        // override the following two methods to save state.

-- 
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