Author: scooter
Date: 2012-07-31 10:23:30 -0700 (Tue, 31 Jul 2012)
New Revision: 30049
Modified:
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/CyActivator.java
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/group/CollapseGroupTask.java
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/group/GroupNodeContextTaskFactoryImpl.java
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/group/UnGroupNodesTaskFactoryImpl.java
Log:
Change group/ungroup/collapse/expand so that actions apply to all selected
nodes or groups
Modified:
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/CyActivator.java
===================================================================
---
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/CyActivator.java
2012-07-31 16:55:24 UTC (rev 30048)
+++
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/CyActivator.java
2012-07-31 17:23:30 UTC (rev 30049)
@@ -1030,7 +1030,7 @@
new GroupNodeContextTaskFactoryImpl(cyGroupManager,
true);
Properties collapseGroupTaskFactoryProps = new Properties();
collapseGroupTaskFactoryProps.setProperty(PREFERRED_MENU,NODE_GROUP_MENU);
- collapseGroupTaskFactoryProps.setProperty(TITLE,"Collapse
Group");
+ collapseGroupTaskFactoryProps.setProperty(TITLE,"Collapse
Group(s)");
collapseGroupTaskFactoryProps.setProperty(TOOLTIP,"Collapse
Grouped Nodes");
collapseGroupTaskFactoryProps.setProperty(PREFERRED_ACTION,
"NEW");
collapseGroupTaskFactoryProps.setProperty(MENU_GRAVITY, "2.0");
@@ -1043,7 +1043,7 @@
new GroupNodeContextTaskFactoryImpl(cyGroupManager,
false);
Properties expandGroupTaskFactoryProps = new Properties();
expandGroupTaskFactoryProps.setProperty(PREFERRED_MENU,NODE_GROUP_MENU);
- expandGroupTaskFactoryProps.setProperty(TITLE,"Expand Group");
+ expandGroupTaskFactoryProps.setProperty(TITLE,"Expand
Group(s)");
expandGroupTaskFactoryProps.setProperty(TOOLTIP,"Expand Group");
expandGroupTaskFactoryProps.setProperty(PREFERRED_ACTION,
"NEW");
expandGroupTaskFactoryProps.setProperty(MENU_GRAVITY, "3.0");
Modified:
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/group/CollapseGroupTask.java
===================================================================
---
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/group/CollapseGroupTask.java
2012-07-31 16:55:24 UTC (rev 30048)
+++
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/group/CollapseGroupTask.java
2012-07-31 17:23:30 UTC (rev 30049)
@@ -47,26 +47,29 @@
public class CollapseGroupTask extends AbstractTask {
private CyNetwork net;
private CyGroupManager mgr;
- private CyGroup group;
+ private List<CyGroup> groups;
private boolean collapse;
- public CollapseGroupTask(CyNetwork net, CyGroup group, CyGroupManager
manager, boolean collapse) {
+ public CollapseGroupTask(CyNetwork net, List<CyGroup> groups,
CyGroupManager manager, boolean collapse) {
if (net == null)
throw new NullPointerException("network is null");
- if (group == null)
- throw new NullPointerException("group is null");
+ if (groups == null || groups.size() == 0)
+ throw new NullPointerException("group list is null");
this.net = net;
this.mgr = manager;
- this.group = group;
+ this.groups = groups;
this.collapse = collapse;
}
public void run(TaskMonitor tm) throws Exception {
tm.setProgress(0.0);
- if (collapse)
- group.collapse(net);
- else
- group.expand(net);
+ for (CyGroup group: groups) {
+ if (collapse)
+ group.collapse(net);
+ else
+ group.expand(net);
+ tm.setProgress(1.0d/groups.size());
+ }
tm.setProgress(1.0d);
}
}
Modified:
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/group/GroupNodeContextTaskFactoryImpl.java
===================================================================
---
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/group/GroupNodeContextTaskFactoryImpl.java
2012-07-31 16:55:24 UTC (rev 30048)
+++
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/group/GroupNodeContextTaskFactoryImpl.java
2012-07-31 17:23:30 UTC (rev 30049)
@@ -29,11 +29,14 @@
*/
package org.cytoscape.task.internal.group;
+import java.util.ArrayList;
import java.util.List;
import org.cytoscape.group.CyGroup;
import org.cytoscape.group.CyGroupManager;
+import org.cytoscape.model.CyNetwork;
import org.cytoscape.model.CyNode;
+import org.cytoscape.model.CyTableUtil;
import org.cytoscape.task.AbstractNodeViewTaskFactory;
import org.cytoscape.task.edit.CollapseGroupTaskFactory;
import org.cytoscape.task.edit.ExpandGroupTaskFactory;
@@ -57,7 +60,7 @@
public boolean isReady(View<CyNode> nodeView, CyNetworkView netView) {
if (collapse) {
// We're ready to collapse if the node view is in a
group
- if (getExpandedGroupForNode(nodeView, netView) != null)
+ if (getExpandedGroupForNode(nodeView.getModel(),
netView) != null)
return true;
} else {
// We're ready to expand if the node view is a group
@@ -70,17 +73,29 @@
@Override
public TaskIterator createTaskIterator(View<CyNode> nodeView,
CyNetworkView netView) {
- CyGroup group;
- if (collapse)
- group = getExpandedGroupForNode(nodeView, netView);
- else
- group = mgr.getGroup(nodeView.getModel(),
netView.getModel());
+ List<CyGroup> groups = new ArrayList<CyGroup>();
+ final List<CyNode> selNodes =
CyTableUtil.getNodesInState(netView.getModel(), CyNetwork.SELECTED, true);
- return new TaskIterator(new
CollapseGroupTask(netView.getModel(), group, mgr, collapse));
+ if (collapse) {
+ // Always add the context node, whether it's selected
or not
+ groups.add(getExpandedGroupForNode(nodeView.getModel(),
netView));
+ for (CyNode node: selNodes) {
+ CyGroup g = getExpandedGroupForNode(node,
netView);
+ if (g != null) groups.add(g);
+ }
+ } else {
+ groups.add(mgr.getGroup(nodeView.getModel(),
netView.getModel()));
+ for (CyNode node: selNodes) {
+ CyGroup g = mgr.getGroup(node,
netView.getModel());
+ if (g != null) groups.add(g);
+ }
+ }
+
+ return new TaskIterator(new
CollapseGroupTask(netView.getModel(), groups, mgr, collapse));
}
- private CyGroup getExpandedGroupForNode(View<CyNode> nodeView,
CyNetworkView netView) {
- List<CyGroup> groups =
mgr.getGroupsForNode(nodeView.getModel());
+ private CyGroup getExpandedGroupForNode(CyNode node, CyNetworkView
netView) {
+ List<CyGroup> groups = mgr.getGroupsForNode(node); // Always
add the context node
if (groups == null || groups.size() == 0)
return null;
Modified:
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/group/UnGroupNodesTaskFactoryImpl.java
===================================================================
---
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/group/UnGroupNodesTaskFactoryImpl.java
2012-07-31 16:55:24 UTC (rev 30048)
+++
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/group/UnGroupNodesTaskFactoryImpl.java
2012-07-31 17:23:30 UTC (rev 30049)
@@ -93,8 +93,10 @@
public TaskIterator createTaskIterator(View<CyNode> nodeView,
CyNetworkView netView) {
List<CyNode> nodeList = new ArrayList<CyNode>();
+ CyNetwork net = netView.getModel();
+
nodeList.add(nodeView.getModel());
- CyNetwork net = netView.getModel();
+ nodeList.addAll(CyTableUtil.getNodesInState(net,
CyNetwork.SELECTED, true));
Set<CyGroup> groups = getGroups(net, nodeList);
return new TaskIterator(new UnGroupNodesTask(undoSupport, net,
factory, groups, mgr));
--
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.