Author: scooter
Date: 2012-07-05 17:10:56 -0700 (Thu, 05 Jul 2012)
New Revision: 29778
Modified:
csplugins/trunk/ucsf/scooter/metaNodePlugin2/src/metaNodePlugin2/model/MetaNode.java
csplugins/trunk/ucsf/scooter/metaNodePlugin2/src/metaNodePlugin2/model/MetaNodeManager.java
csplugins/trunk/ucsf/scooter/metaNodePlugin2/src/metaNodePlugin2/ui/MetanodeSettingsDialog.java
Log:
Some updates to support the bindingDB plugin
Modified:
csplugins/trunk/ucsf/scooter/metaNodePlugin2/src/metaNodePlugin2/model/MetaNode.java
===================================================================
---
csplugins/trunk/ucsf/scooter/metaNodePlugin2/src/metaNodePlugin2/model/MetaNode.java
2012-07-06 00:09:44 UTC (rev 29777)
+++
csplugins/trunk/ucsf/scooter/metaNodePlugin2/src/metaNodePlugin2/model/MetaNode.java
2012-07-06 00:10:56 UTC (rev 29778)
@@ -79,12 +79,14 @@
public static final String CHILDREN_ATTR = "NumChildren";
public static final String DESCENDENTS_ATTR = "NumDescendents";
public static final String ISMETA_EDGE_ATTR = "__isMetaEdge";
+ public static final String SETTINGS_ATTR = "__metanodeSettings";
private CyLogger logger = null;
private CyGroup metaGroup = null;
private AttributeManager attributeManager = null;
private boolean hideMetanode = true;
+ private boolean createMembershipEdges = true;
private boolean dontExpandEmpty = true;
private double metanodeOpacity = 0.;
private boolean useNestedNetworks = false;
@@ -113,8 +115,16 @@
// This method does most of the work.
updateMetaEdges(ignoreMetaEdges);
+ // Load any parameters we might have set
+ loadSettings();
+
}
+ protected boolean hasSavedSettings() {
+ CyAttributes nodeAttributes = Cytoscape.getNodeAttributes();
+ return
nodeAttributes.hasAttribute(getGroupNode().getIdentifier(), SETTINGS_ATTR);
+ }
+
public CyGroup getCyGroup() { return metaGroup; }
public CyNode getGroupNode() { return metaGroup.getGroupNode(); }
@@ -374,6 +384,7 @@
*/
public void setUseNestedNetworks(boolean nestedNetwork) {
this.useNestedNetworks = nestedNetwork;
+ updateSettings();
}
/**
@@ -393,6 +404,7 @@
*/
public void setDontExpandEmpty(boolean dontExpandEmpty) {
this.dontExpandEmpty = dontExpandEmpty;
+ updateSettings();
}
/**
@@ -411,6 +423,7 @@
*/
public void setMetaNodeOpacity(double opacity) {
this.metanodeOpacity = opacity;
+ updateSettings();
}
/**
@@ -429,6 +442,7 @@
*/
public void setNodeChartAttribute(String nodeChartAttribute) {
this.nodeChartAttribute = nodeChartAttribute;
+ updateSettings();
}
/**
@@ -447,6 +461,7 @@
*/
public void setChartType(String chartType) {
this.chartType = chartType;
+ updateSettings();
}
/**
@@ -465,6 +480,7 @@
*/
public void setChartColorType(String chartColorType) {
this.chartColorType = chartColorType;
+ updateSettings();
}
/**
@@ -477,17 +493,18 @@
}
/**
- * Sets whether or not we hide the metnode when we expand the
+ * Sets whether or not we hide the metanode when we expand the
* network.
*
* @param hide if 'true' we hide the metanode upon expansion
*/
public void setHideMetaNode(boolean hide) {
this.hideMetanode = hide;
+ updateSettings();
}
/**
- * Returns 'true' if we hide the metnode when we expand the
+ * Returns 'true' if we hide the metanode when we expand the
* network.
*
* @return 'true' if we hide the metanode upon expansion
@@ -497,6 +514,29 @@
}
/**
+ * Sets whether or not we create membership edges if we're
+ * not hiding the metanode.
+ *
+ * @param create if 'true' we create the edges
+ */
+ public void setCreateMembershipEdges(boolean create) {
+ this.createMembershipEdges = create;
+ if (!create) {
+ membershipEdges = new HashMap<CyNode, CyEdge>();
+ }
+ updateSettings();
+ }
+
+ /**
+ * Returns 'true' if we create the membership edges
+ *
+ * @return 'true' if we create membership edges
+ */
+ public boolean getCreateMembershipEdges() {
+ return createMembershipEdges;
+ }
+
+ /**
* Set the attribute manager (for attribute aggregation) that
* we're supposed to use.
*
@@ -753,9 +793,11 @@
private void createMembershipEdges() {
membershipEdges = new HashMap<CyNode, CyEdge>();
- for (CyNode node: metaGroup.getNodes()) {
- CyEdge memberEdge = createEdge("member",
metaGroup.getGroupName(), metaGroup.getGroupNode(), node);
- membershipEdges.put(node, memberEdge);
+ if (createMembershipEdges) {
+ for (CyNode node: metaGroup.getNodes()) {
+ CyEdge memberEdge = createEdge("member",
metaGroup.getGroupName(), metaGroup.getGroupNode(), node);
+ membershipEdges.put(node, memberEdge);
+ }
}
}
@@ -833,4 +875,55 @@
return false;
}
+ /**
+ * Update settings attributes for this metanode
+ */
+ private void updateSettings() {
+ String settings = "";
+ settings += "hideMetanode="+hideMetanode;
+ settings += ";createMembershipEdges="+createMembershipEdges;
+ settings += ";dontExpandEmpty="+dontExpandEmpty;
+ settings += ";metanodeOpacity="+metanodeOpacity;
+ settings += ";useNestedNetworks="+useNestedNetworks;
+ if (nodeChartAttribute != null) {
+ settings += ";nodeChartAttribute="+nodeChartAttribute;
+ settings += ";chartType="+chartType;
+ settings += ";chartColorType="+chartColorType;
+ }
+ CyAttributes nodeAttributes = Cytoscape.getNodeAttributes();
+ nodeAttributes.setAttribute(getGroupNode().getIdentifier(),
SETTINGS_ATTR, settings);
+ nodeAttributes.setUserVisible(SETTINGS_ATTR, false);
+ }
+
+ /**
+ * Load settings attributes for this metanode
+ */
+ private void loadSettings() {
+ CyAttributes nodeAttributes = Cytoscape.getNodeAttributes();
+ if
(!nodeAttributes.hasAttribute(getGroupNode().getIdentifier(), SETTINGS_ATTR))
+ return;
+
+ String settings =
nodeAttributes.getStringAttribute(getGroupNode().getIdentifier(),
SETTINGS_ATTR);
+ String[] pairs = settings.split(";");
+ for (String pair: pairs) {
+ String[] nv = pair.split("=");
+ if (nv[0].equals("hideMetanode")) {
+ hideMetanode = Boolean.parseBoolean(nv[1]);
+ } else if (nv[0].equals("createMembershipEdges")) {
+ createMembershipEdges =
Boolean.parseBoolean(nv[1]);
+ } else if (nv[0].equals("dontExpandEmpty")) {
+ dontExpandEmpty = Boolean.parseBoolean(nv[1]);
+ } else if (nv[0].equals("metanodeOpacity")) {
+ metanodeOpacity = Double.parseDouble(nv[1]);
+ } else if (nv[0].equals("useNestedNetworks")) {
+ useNestedNetworks = Boolean.parseBoolean(nv[1]);
+ } else if (nv[0].equals("nodeChartAttribute")) {
+ nodeChartAttribute = nv[1];
+ } else if (nv[0].equals("chartType")) {
+ chartType = nv[1];
+ } else if (nv[0].equals("chartColorType")) {
+ chartColorType = nv[1];
+ }
+ }
+ }
}
Modified:
csplugins/trunk/ucsf/scooter/metaNodePlugin2/src/metaNodePlugin2/model/MetaNodeManager.java
===================================================================
---
csplugins/trunk/ucsf/scooter/metaNodePlugin2/src/metaNodePlugin2/model/MetaNodeManager.java
2012-07-06 00:09:44 UTC (rev 29777)
+++
csplugins/trunk/ucsf/scooter/metaNodePlugin2/src/metaNodePlugin2/model/MetaNodeManager.java
2012-07-06 00:10:56 UTC (rev 29778)
@@ -42,6 +42,7 @@
import cytoscape.Cytoscape;
import cytoscape.groups.CyGroup;
+import cytoscape.logger.CyLogger;
import cytoscape.view.CyNetworkView;
import metaNodePlugin2.MetaNodePlugin2;
@@ -58,6 +59,7 @@
// Static variables
private static Map<CyNode,MetaNode> metaMap = new HashMap<CyNode,
MetaNode>();
protected static boolean hideMetanodeDefault = true;
+ protected static boolean createMembershipEdgesDefault = true;
protected static double metanodeOpacityDefault = 100.0;
protected static boolean useNestedNetworksDefault = false;
protected static boolean dontExpandEmptyDefault = true;
@@ -129,16 +131,27 @@
if (metaGroup.getNetwork() == null) {
metaGroup.setNetwork(Cytoscape.getCurrentNetwork(),
false);
}
+
+
+ CyLogger logger = CyLogger.getLogger(MetaNodeManager.class);
+ logger.debug("Creating metanode for group "+metaGroup);
MetaNode mn = new MetaNode(metaGroup, ignoreMetaEdges);
+ logger.debug("...done");
metaMap.put(metaGroup.getGroupNode(), mn);
- mn.setUseNestedNetworks(useNestedNetworksDefault);
- mn.setDontExpandEmpty(dontExpandEmptyDefault);
- mn.setHideMetaNode(hideMetanodeDefault);
- mn.setMetaNodeOpacity(metanodeOpacityDefault);
- mn.setChartType(chartTypeDefault);
- mn.setChartColorType(chartColorTypeDefault);
- mn.setNodeChartAttribute(nodeChartAttributeDefault);
+
+ // Do we have saved values?
+ if (!mn.hasSavedSettings()) {
+ // No, set the defaults
+ mn.setUseNestedNetworks(useNestedNetworksDefault);
+ mn.setDontExpandEmpty(dontExpandEmptyDefault);
+ mn.setHideMetaNode(hideMetanodeDefault);
+
mn.setCreateMembershipEdges(createMembershipEdgesDefault);
+ mn.setMetaNodeOpacity(metanodeOpacityDefault);
+ mn.setChartType(chartTypeDefault);
+ mn.setChartColorType(chartColorTypeDefault);
+ mn.setNodeChartAttribute(nodeChartAttributeDefault);
+ }
mn.setAttributeManager(new
AttributeManager(defaultAttributeManager));
mn.getAttributeManager().loadHandlerMappings(metaGroup.getNetwork(), mn);
return mn;
@@ -249,6 +262,16 @@
}
/**
+ * Sets whether or not we create membership edges when we're
+ * leaving the metanode.
+ *
+ * @param create if 'true' we create membership edges
+ */
+ static public void setCreateMembershipEdgesDefault(boolean create) {
+ MetaNodeManager.createMembershipEdgesDefault = create;
+ }
+
+ /**
* Sets the opacity of a metanode if we don't hide on expansion.
*
* @param opacity the opacity (between 0 and 100)
@@ -277,6 +300,15 @@
}
/**
+ * Returns 'true' if we create membership edges.
+ *
+ * @param create if 'true' we create membership edges
+ */
+ static public boolean getCreateMembershipEdgesDefault() {
+ return MetaNodeManager.createMembershipEdgesDefault;
+ }
+
+ /**
* Sets whether or not we use the nested network viewer
*
* @param useNestedNetworks if 'true' we use nested networks when we
collapse
Modified:
csplugins/trunk/ucsf/scooter/metaNodePlugin2/src/metaNodePlugin2/ui/MetanodeSettingsDialog.java
===================================================================
---
csplugins/trunk/ucsf/scooter/metaNodePlugin2/src/metaNodePlugin2/ui/MetanodeSettingsDialog.java
2012-07-06 00:09:44 UTC (rev 29777)
+++
csplugins/trunk/ucsf/scooter/metaNodePlugin2/src/metaNodePlugin2/ui/MetanodeSettingsDialog.java
2012-07-06 00:10:56 UTC (rev 29778)
@@ -104,6 +104,7 @@
private List<Tunable>tunableEnablers = null;
private List<Tunable>nodeChartEnablers = null;
private boolean hideMetaNode = true;
+ private boolean createMembershipEdges = true;
private boolean dontExpandEmpty = true;
private boolean enableHandling = false;
private boolean useNestedNetworks = false;
@@ -267,6 +268,14 @@
}
{
+ Tunable t = new Tunable("createMembershipEdges",
+ "Create membership
edges when the metanode isn't being hidden",
+ Tunable.BOOLEAN,
createMembershipEdges, 0);
+ t.addTunableValueListener(this);
+ metanodeProperties.add(t);
+ }
+
+ {
Tunable t = new Tunable("dontExpandEmpty",
"Don't expand empty
metanodes",
Tunable.BOOLEAN,
dontExpandEmpty, 0);
@@ -726,6 +735,7 @@
private void updateDefaultSettings() {
MetaNodeManager.setHideMetaNodeDefault(hideMetaNode);
+
MetaNodeManager.setCreateMembershipEdgesDefault(createMembershipEdges);
MetaNodeManager.setDefaultAttributeManager(myAttributeManager);
MetaNodeManager.setDontExpandEmptyDefault(dontExpandEmpty);
MetaNodeManager.setUseNestedNetworksDefault(useNestedNetworks);
@@ -741,6 +751,8 @@
t.setValue(enableHandling);
t = metanodeProperties.get("hideMetanodes");
t.setValue(hideMetaNode);
+ t = metanodeProperties.get("createMembershipEdges");
+ t.setValue(createMembershipEdges);
t = metanodeProperties.get("dontExpandEmpty");
t.setValue(dontExpandEmpty);
t = metanodeProperties.get("useNestedNetworks");
@@ -760,6 +772,8 @@
public void tunableChanged(Tunable t) {
if (t.getName().equals("hideMetanodes")) {
hideMetaNode = ((Boolean) t.getValue()).booleanValue();
+ } else if (t.getName().equals("createMembershipEdges")) {
+ createMembershipEdges = ((Boolean)
t.getValue()).booleanValue();
} else if (t.getName().equals("dontExpandEmpty")) {
dontExpandEmpty = ((Boolean) t.getValue()).booleanValue();
} else if (t.getName().equals("useNestedNetworks")) {
--
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.