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.