Author: scooter
Date: 2012-04-12 16:08:22 -0700 (Thu, 12 Apr 2012)
New Revision: 28816

Added:
   
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/group/UnGroupNodesTask.java
   
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/group/UnGroupNodesTaskFactoryImpl.java
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/GroupNodesTask.java
   core3/impl/trunk/group-data-impl/pom.xml
   
core3/impl/trunk/group-data-impl/src/main/java/org/cytoscape/group/data/internal/CyActivator.java
   
core3/impl/trunk/group-data-impl/src/main/java/org/cytoscape/group/data/internal/CyGroupAggregationSettings.java
   
core3/impl/trunk/group-data-impl/src/main/java/org/cytoscape/group/data/internal/CyGroupNodeSettingsTaskFactory.java
   
core3/impl/trunk/group-data-impl/src/main/java/org/cytoscape/group/data/internal/CyGroupSettingsImpl.java
   
core3/impl/trunk/group-data-impl/src/main/java/org/cytoscape/group/data/internal/CyGroupSettingsTask.java
   
core3/impl/trunk/group-data-impl/src/main/java/org/cytoscape/group/data/internal/CyGroupSettingsTaskFactory.java
   
core3/impl/trunk/group-data-impl/src/main/java/org/cytoscape/group/data/internal/CyGroupViewSettings.java
   
core3/impl/trunk/group-data-impl/src/main/java/org/cytoscape/group/data/internal/GroupDataCollapseHandler.java
   
core3/impl/trunk/group-impl/src/main/java/org/cytoscape/group/internal/CyGroupManagerImpl.java
   core3/impl/trunk/group-view-impl/pom.xml
   
core3/impl/trunk/group-view-impl/src/main/java/org/cytoscape/group/view/internal/CyActivator.java
   
core3/impl/trunk/group-view-impl/src/main/java/org/cytoscape/group/view/internal/GroupViewCollapseHandler.java
   
core3/impl/trunk/group-view-impl/src/main/java/org/cytoscape/group/view/internal/GroupViewDoubleClickListener.java
Log:
Add "Ungroup" and remove CyGroupSettings API.  This creates a dependency
between group.view.internal and group.data.internal for now, but that will
go away when I figure out the right way to do the settings stuff.


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-04-12 23:04:10 UTC (rev 28815)
+++ 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/CyActivator.java
  2012-04-12 23:08:22 UTC (rev 28816)
@@ -76,6 +76,7 @@
 import org.cytoscape.task.internal.export.vizmap.ExportVizmapTaskFactoryImpl;
 import org.cytoscape.task.internal.group.GroupNodeContextTaskFactoryImpl;
 import org.cytoscape.task.internal.group.GroupNodesTaskFactoryImpl;
+import org.cytoscape.task.internal.group.UnGroupNodesTaskFactoryImpl;
 import org.cytoscape.task.internal.hide.HideSelectedEdgesTaskFactoryImpl;
 import org.cytoscape.task.internal.hide.HideSelectedNodesTaskFactoryImpl;
 import org.cytoscape.task.internal.hide.HideSelectedTaskFactoryImpl;
@@ -275,10 +276,6 @@
 
                BioGridPreprocessor bioGridPreprocessor = new 
BioGridPreprocessor(cyPropertyServiceRef,cyApplicationConfigurationServiceRef);
                ConnectSelectedNodesTaskFactoryImpl 
connectSelectedNodesTaskFactory = new 
ConnectSelectedNodesTaskFactoryImpl(undoSupportServiceRef,cyApplicationManagerServiceRef,cyEventHelperRef);
-
-               GroupNodesTaskFactoryImpl groupNodesTaskFactory = new 
GroupNodesTaskFactoryImpl(cyGroupManager, cyGroupFactory);
-               GroupNodeContextTaskFactoryImpl collapseGroupTaskFactory = new 
GroupNodeContextTaskFactoryImpl(cyGroupManager, true);
-               GroupNodeContextTaskFactoryImpl expandGroupTaskFactory = new 
GroupNodeContextTaskFactoryImpl(cyGroupManager, false);
                
                MapGlobalToLocalTableTaskFactoryImpl mapGlobal = new 
MapGlobalToLocalTableTaskFactoryImpl(cyTableManagerServiceRef, 
cyNetworkManagerServiceRef, tunableSetterServiceRef);
                
@@ -918,7 +915,8 @@
                
registerServiceListener(bc,subnetworkBuilderUtil,"addProcessor","removeProcessor",InteractionFilePreprocessor.class);
                
registerServiceListener(bc,subnetworkBuilderUtil,"addFactory","removeFactory",VisualMappingFunctionFactory.class);
 
-
+               GroupNodesTaskFactoryImpl groupNodesTaskFactory = 
+                       new GroupNodesTaskFactoryImpl(cyGroupManager, 
cyGroupFactory);
                Properties groupNodesTaskFactoryProps = new Properties();
                
groupNodesTaskFactoryProps.setProperty("preferredMenu","Groups");
                groupNodesTaskFactoryProps.setProperty("title","Group Nodes");
@@ -929,7 +927,19 @@
                
registerService(bc,groupNodesTaskFactory,NetworkViewTaskFactory.class, 
groupNodesTaskFactoryProps);
                
registerService(bc,groupNodesTaskFactory,GroupNodesTaskFactory.class, 
groupNodesTaskFactoryProps);
 
+               UnGroupNodesTaskFactoryImpl unGroupTaskFactory = 
+                       new UnGroupNodesTaskFactoryImpl(cyGroupManager);
+               Properties unGroupNodesTaskFactoryProps = new Properties();
+               
unGroupNodesTaskFactoryProps.setProperty("preferredMenu","Groups");
+               unGroupNodesTaskFactoryProps.setProperty("title","Ungroup 
Nodes");
+               unGroupNodesTaskFactoryProps.setProperty("tooltip","Un group 
Selected Nodes");
+               unGroupNodesTaskFactoryProps.setProperty("preferredAction", 
"NEW");
+               unGroupNodesTaskFactoryProps.setProperty("command", 
"ungroup-selected-nodes");
+               groupNodesTaskFactoryProps.setProperty("commandNamespace", 
"network-view");
+               
registerService(bc,unGroupTaskFactory,NetworkViewTaskFactory.class, 
unGroupNodesTaskFactoryProps);
 
+               GroupNodeContextTaskFactoryImpl collapseGroupTaskFactory = 
+                       new GroupNodeContextTaskFactoryImpl(cyGroupManager, 
true);
                Properties collapseGroupTaskFactoryProps = new Properties();
                
collapseGroupTaskFactoryProps.setProperty("preferredMenu","Groups");
                collapseGroupTaskFactoryProps.setProperty("title","Collapse 
Group");
@@ -939,6 +949,8 @@
                collapseGroupTaskFactoryProps.setProperty("commandNamespace", 
"network-view"); // TODO right namespace?
                
registerService(bc,collapseGroupTaskFactory,NodeViewTaskFactory.class, 
collapseGroupTaskFactoryProps);
 
+               GroupNodeContextTaskFactoryImpl expandGroupTaskFactory = 
+                       new GroupNodeContextTaskFactoryImpl(cyGroupManager, 
false);
                Properties expandGroupTaskFactoryProps = new Properties();
                
expandGroupTaskFactoryProps.setProperty("preferredMenu","Groups");
                expandGroupTaskFactoryProps.setProperty("title","Expand Group");
@@ -948,6 +960,17 @@
                expandGroupTaskFactoryProps.setProperty("commandNamespace", 
"network-view"); // TODO right namespace
                
registerService(bc,expandGroupTaskFactory,NodeViewTaskFactory.class, 
expandGroupTaskFactoryProps);
 
+               UnGroupNodesTaskFactoryImpl unGroupNodesTaskFactory = 
+                       new UnGroupNodesTaskFactoryImpl(cyGroupManager);
+               Properties unGroupTaskFactoryProps = new Properties();
+               unGroupTaskFactoryProps.setProperty("preferredMenu","Groups");
+               unGroupTaskFactoryProps.setProperty("title","Ungroup Nodes");
+               unGroupTaskFactoryProps.setProperty("tooltip","Ungroup Nodes");
+               unGroupTaskFactoryProps.setProperty("preferredAction", "NEW");
+               unGroupTaskFactoryProps.setProperty("command", "ungroup");
+               unGroupTaskFactoryProps.setProperty("commandNamespace", 
"network-view"); // TODO right namespace
+               
registerService(bc,unGroupNodesTaskFactory,NodeViewTaskFactory.class, 
unGroupTaskFactoryProps);
+
        }
 }
 

Modified: 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/group/GroupNodesTask.java
===================================================================
--- 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/group/GroupNodesTask.java
 2012-04-12 23:04:10 UTC (rev 28815)
+++ 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/group/GroupNodesTask.java
 2012-04-12 23:08:22 UTC (rev 28816)
@@ -63,8 +63,8 @@
                // Get all of the selected nodes
                final List<CyNode> selNodes = CyTableUtil.getNodesInState(net, 
CyNetwork.SELECTED, true);
 
-               // At some point, we'll want to seriously think about only 
adding those edges that are also
-               // selected, but for now....
+               // At some point, we'll want to seriously think about only 
adding 
+               // those edges that are also selected, but for now....
                CyGroup group = factory.createGroup(net, selNodes, null, true);
                // mgr.addGroup(group);
                tm.setProgress(1.0d);

Added: 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/group/UnGroupNodesTask.java
===================================================================
--- 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/group/UnGroupNodesTask.java
                               (rev 0)
+++ 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/group/UnGroupNodesTask.java
       2012-04-12 23:08:22 UTC (rev 28816)
@@ -0,0 +1,66 @@
+/*
+ File: SelectFirstNeighborsNodeViewTask.java
+
+ Copyright (c) 2006, 2010, The Cytoscape Consortium (www.cytoscape.org)
+
+ This library is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published
+ by the Free Software Foundation; either version 2.1 of the License, or
+ any later version.
+
+ This library is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF
+ MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.  The software and
+ documentation provided hereunder is on an "as is" basis, and the
+ Institute for Systems Biology and the Whitehead Institute
+ have no obligations to provide maintenance, support,
+ updates, enhancements or modifications.  In no event shall the
+ Institute for Systems Biology and the Whitehead Institute
+ be liable to any party for direct, indirect, special,
+ incidental or consequential damages, including lost profits, arising
+ out of the use of this software and its documentation, even if the
+ Institute for Systems Biology and the Whitehead Institute
+ have been advised of the possibility of such damage.  See
+ the GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with this library; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+ */
+package org.cytoscape.task.internal.group;
+
+import java.util.List;
+import java.util.Set;
+
+import org.cytoscape.group.CyGroup;
+import org.cytoscape.group.CyGroupManager;
+
+import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyNode;
+
+import org.cytoscape.work.AbstractTask;
+import org.cytoscape.work.TaskMonitor;
+
+public class UnGroupNodesTask extends AbstractTask {
+       private CyNetwork net;
+       private CyGroupManager mgr;
+       private Set<CyGroup>groupSet = null;
+
+       public UnGroupNodesTask(CyNetwork net, Set<CyGroup>groups, 
CyGroupManager mgr) {
+               if (net == null)
+                       throw new NullPointerException("network is null");
+               this.net = net;
+               this.mgr = mgr;
+               this.groupSet = groups;
+       }
+
+       public void run(TaskMonitor tm) throws Exception {
+               tm.setProgress(0.0);
+
+               for (CyGroup group: groupSet) {
+                       mgr.destroyGroup(group);
+                       tm.setProgress(1.0d/(double)groupSet.size());
+               }
+               tm.setProgress(1.0d);
+       }
+}

Added: 
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
                            (rev 0)
+++ 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/group/UnGroupNodesTaskFactoryImpl.java
    2012-04-12 23:08:22 UTC (rev 28816)
@@ -0,0 +1,106 @@
+/*
+ File: SelectFirstNeighborsNodeViewTaskFactory.java
+
+ Copyright (c) 2006, 2010, The Cytoscape Consortium (www.cytoscape.org)
+
+ This library is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published
+ by the Free Software Foundation; either version 2.1 of the License, or
+ any later version.
+
+ This library is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF
+ MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.  The software and
+ documentation provided hereunder is on an "as is" basis, and the
+ Institute for Systems Biology and the Whitehead Institute
+ have no obligations to provide maintenance, support,
+ updates, enhancements or modifications.  In no event shall the
+ Institute for Systems Biology and the Whitehead Institute
+ be liable to any party for direct, indirect, special,
+ incidental or consequential damages, including lost profits, arising
+ out of the use of this software and its documentation, even if the
+ Institute for Systems Biology and the Whitehead Institute
+ have been advised of the possibility of such damage.  See
+ the GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with this library; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+ */
+package org.cytoscape.task.internal.group;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+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.NetworkViewTaskFactory;
+import org.cytoscape.task.NodeViewTaskFactory;
+import org.cytoscape.view.model.CyNetworkView;
+import org.cytoscape.view.model.View;
+import org.cytoscape.work.TaskIterator;
+
+public class UnGroupNodesTaskFactoryImpl implements NodeViewTaskFactory,
+                                                    NetworkViewTaskFactory {
+       private CyGroupManager mgr;
+
+       public UnGroupNodesTaskFactoryImpl(CyGroupManager mgr) {
+               this.mgr = mgr;
+       }
+
+       public boolean isReady(View<CyNode> nodeView, CyNetworkView netView) {
+               List<CyNode> nodeList = new ArrayList<CyNode>();
+               nodeList.add(nodeView.getModel());
+
+               CyNetwork net = netView.getModel();
+               if (getGroups(net, nodeList).size() > 0)
+                       return true;
+               return false; 
+       }
+
+       public boolean isReady(CyNetworkView netView) {
+               // Get all of the selected nodes
+               CyNetwork net = netView.getModel();
+               final List<CyNode> selNodes = CyTableUtil.getNodesInState(net, 
CyNetwork.SELECTED, true);
+               if (getGroups(net, selNodes).size() > 0)
+                       return true;
+               return false; 
+       }
+               
+
+       public TaskIterator createTaskIterator(View<CyNode> nodeView, 
+                                              CyNetworkView netView) {
+               List<CyNode> nodeList = new ArrayList<CyNode>();
+               nodeList.add(nodeView.getModel());
+               CyNetwork net = netView.getModel();
+               Set<CyGroup> groups = getGroups(net, nodeList);
+
+               return new TaskIterator(new UnGroupNodesTask(net, groups, mgr));
+       }
+
+       public TaskIterator createTaskIterator(CyNetworkView netView) {
+               CyNetwork net = netView.getModel();
+               final List<CyNode> selNodes = CyTableUtil.getNodesInState(net, 
CyNetwork.SELECTED, true);
+               Set<CyGroup> groups = getGroups(net, selNodes);
+               return new TaskIterator(new 
UnGroupNodesTask(netView.getModel(), groups, mgr));
+       }
+
+       private Set<CyGroup>getGroups(CyNetwork net, List<CyNode>nodeList) {
+
+               Set<CyGroup> groupList = new HashSet<CyGroup>();
+
+               // For each node that is in a group, or is a group, add it to 
our list
+               for (CyNode node: nodeList) {
+                       if (mgr.isGroup(node, net))
+                               groupList.add(mgr.getGroup(node, net));
+                       else if (mgr.getGroupsForNode(node, net) != null)
+                               groupList.addAll(mgr.getGroupsForNode(node, 
net));
+               }
+               return groupList;
+       }
+}

Modified: core3/impl/trunk/group-data-impl/pom.xml
===================================================================
--- core3/impl/trunk/group-data-impl/pom.xml    2012-04-12 23:04:10 UTC (rev 
28815)
+++ core3/impl/trunk/group-data-impl/pom.xml    2012-04-12 23:08:22 UTC (rev 
28816)
@@ -14,7 +14,7 @@
   <groupId>org.cytoscape</groupId>
   <artifactId>group-data-impl</artifactId>
 
-       <name>${bundle.symbolicName} [${bundle.namespace}]</name>
+       <name>${bundle.symbolicName}</name>
 
   <packaging>bundle</packaging>
 
@@ -29,7 +29,7 @@
           <instructions>
             <Bundle-SymbolicName>${bundle.symbolicName}</Bundle-SymbolicName>
             <Bundle-Version>${project.version}</Bundle-Version>
-                        <Export-Package>!${bundle.namespace}.*</Export-Package>
+                        <Export-Package>${bundle.namespace}.*</Export-Package>
                         
<Private-Package>${bundle.namespace}.*</Private-Package>
                         
<Bundle-Activator>${bundle.namespace}.CyActivator</Bundle-Activator>
           </instructions>

Modified: 
core3/impl/trunk/group-data-impl/src/main/java/org/cytoscape/group/data/internal/CyActivator.java
===================================================================
--- 
core3/impl/trunk/group-data-impl/src/main/java/org/cytoscape/group/data/internal/CyActivator.java
   2012-04-12 23:04:10 UTC (rev 28815)
+++ 
core3/impl/trunk/group-data-impl/src/main/java/org/cytoscape/group/data/internal/CyActivator.java
   2012-04-12 23:08:22 UTC (rev 28816)
@@ -5,7 +5,6 @@
 import org.cytoscape.event.CyEventHelper;
 import org.cytoscape.group.CyGroupManager;
 import org.cytoscape.group.data.CyGroupAggregationManager;
-import org.cytoscape.group.data.CyGroupSettings;
 import org.cytoscape.group.events.GroupAboutToCollapseListener;
 import org.cytoscape.group.events.GroupAddedListener;
 import org.cytoscape.model.CyNetworkManager;
@@ -70,10 +69,10 @@
                                NodeViewTaskFactory.class, settingsProps);
 
                // Make the settings available to consumers
-               registerService(bc,cyGroupSettings, 
-                               CyGroupSettings.class, new Properties());
     registerService(bc,cyGroupSettings, 
                                GroupAddedListener.class, new Properties());
+    registerService(bc,cyGroupSettings, 
+                               CyGroupSettingsImpl.class, new Properties());
 
                GroupDataCollapseHandler gdcHandler =
       new GroupDataCollapseHandler(cyGroupManager, cyGroupSettings);

Modified: 
core3/impl/trunk/group-data-impl/src/main/java/org/cytoscape/group/data/internal/CyGroupAggregationSettings.java
===================================================================
--- 
core3/impl/trunk/group-data-impl/src/main/java/org/cytoscape/group/data/internal/CyGroupAggregationSettings.java
    2012-04-12 23:04:10 UTC (rev 28815)
+++ 
core3/impl/trunk/group-data-impl/src/main/java/org/cytoscape/group/data/internal/CyGroupAggregationSettings.java
    2012-04-12 23:08:22 UTC (rev 28816)
@@ -17,7 +17,6 @@
 import org.cytoscape.group.data.Aggregator;
 import org.cytoscape.group.data.AttributeHandlingType;
 import org.cytoscape.group.data.CyGroupAggregationManager;
-import org.cytoscape.group.data.CyGroupSettings;
 import org.cytoscape.group.data.internal.aggregators.*;
 
 import java.util.ArrayList;
@@ -29,7 +28,7 @@
 public class CyGroupAggregationSettings {
        CyApplicationManager cyApplicationManager;
        CyGroupAggregationManager cyAggManager;
-       CyGroupSettings settings;
+       CyGroupSettingsImpl settings;
        CyNetwork currentNetwork = null;
        Map<CyColumn, Aggregator> overrides;
 
@@ -167,7 +166,7 @@
 
        public CyGroupAggregationSettings(CyApplicationManager appManager,
                                                CyGroupAggregationManager 
cyAggManager,
-                                         CyGroupSettings settings) {
+                                         CyGroupSettingsImpl settings) {
                this.cyApplicationManager = appManager;
                this.cyAggManager = cyAggManager;
                this.settings = settings;

Modified: 
core3/impl/trunk/group-data-impl/src/main/java/org/cytoscape/group/data/internal/CyGroupNodeSettingsTaskFactory.java
===================================================================
--- 
core3/impl/trunk/group-data-impl/src/main/java/org/cytoscape/group/data/internal/CyGroupNodeSettingsTaskFactory.java
        2012-04-12 23:04:10 UTC (rev 28815)
+++ 
core3/impl/trunk/group-data-impl/src/main/java/org/cytoscape/group/data/internal/CyGroupNodeSettingsTaskFactory.java
        2012-04-12 23:08:22 UTC (rev 28816)
@@ -1,11 +1,11 @@
 package org.cytoscape.group.data.internal;
 
 import org.cytoscape.application.CyApplicationManager;
+import org.cytoscape.model.CyNetwork;
 import org.cytoscape.model.CyNode;
 import org.cytoscape.group.CyGroup;
 import org.cytoscape.group.CyGroupManager;
 import org.cytoscape.group.data.CyGroupAggregationManager;
-import org.cytoscape.group.data.CyGroupSettings;
 import org.cytoscape.task.AbstractNodeViewTaskFactory;
 import org.cytoscape.view.model.CyNetworkView;
 import org.cytoscape.view.model.View;
@@ -15,12 +15,12 @@
        CyGroupAggregationManager cyAggManager;
        CyGroupManager cyGroupManager;
        CyApplicationManager cyApplicationManager;
-       CyGroupSettings settings;
+       CyGroupSettingsImpl settings;
 
        public CyGroupNodeSettingsTaskFactory(CyGroupManager groupManager,
                                              CyGroupAggregationManager aggMgr, 
                                              CyApplicationManager appManager,
-                                             CyGroupSettings settings) {
+                                             CyGroupSettingsImpl settings) {
                this.settings = settings;
                this.cyAggManager = aggMgr;
                this.cyGroupManager = groupManager;
@@ -29,12 +29,16 @@
 
        @Override
        public boolean isReady(View<CyNode> nodeView, CyNetworkView netView) {
-               if (cyGroupManager.isGroup(nodeView.getModel(), 
netView.getModel()))
+               CyNode node = nodeView.getModel();
+               CyNetwork network = netView.getModel();
+               if (cyGroupManager.isGroup(node, network))
                        return true;
+               else if (cyGroupManager.getGroupsForNode(node, network) != null)
+                       return true;
                return false;
        }
 
-       public CyGroupSettings getSettings() { return settings; }
+       public CyGroupSettingsImpl getSettings() { return settings; }
 
        @Override
        public TaskIterator createTaskIterator(View<CyNode> nodeView, 

Modified: 
core3/impl/trunk/group-data-impl/src/main/java/org/cytoscape/group/data/internal/CyGroupSettingsImpl.java
===================================================================
--- 
core3/impl/trunk/group-data-impl/src/main/java/org/cytoscape/group/data/internal/CyGroupSettingsImpl.java
   2012-04-12 23:04:10 UTC (rev 28815)
+++ 
core3/impl/trunk/group-data-impl/src/main/java/org/cytoscape/group/data/internal/CyGroupSettingsImpl.java
   2012-04-12 23:08:22 UTC (rev 28816)
@@ -14,7 +14,6 @@
 import org.cytoscape.group.data.Aggregator;
 import org.cytoscape.group.data.AttributeHandlingType;
 import org.cytoscape.group.data.CyGroupAggregationManager;
-import org.cytoscape.group.data.CyGroupSettings;
 import org.cytoscape.group.events.GroupAddedEvent;
 import org.cytoscape.group.events.GroupAddedListener;
 
@@ -25,7 +24,17 @@
  * This class provides the context for both the global group settings and the
  * group-specific group settings.
  */
-public class CyGroupSettingsImpl implements CyGroupSettings, 
GroupAddedListener {
+public class CyGroupSettingsImpl implements GroupAddedListener {
+  public enum DoubleClickAction {
+    None("None"),
+    ExpandContract("Expand/Contract"),
+    Select("Select");
+
+    private final String name;
+    DoubleClickAction(String n) {this.name = n;}
+    public String toString() {return name;}
+ }
+
        CyGroupManager cyGroupManager;
        CyGroupAggregationManager cyAggManager;
        CyApplicationManager cyApplicationManager;
@@ -65,24 +74,20 @@
         *                             View settings                            
   *
         
**************************************************************************/
 
-       @Override
        public DoubleClickAction getDoubleClickAction() {
                return action;
        }
 
-       @Override
        public DoubleClickAction getDoubleClickAction(CyGroup group) {
                if (groupActionMap.containsKey(group))
                        return groupActionMap.get(group);
                return action;
        }
 
-       @Override
        public void setDoubleClickAction(DoubleClickAction action) {
                this.action = action;
        }
 
-       @Override
        public void setDoubleClickAction(CyGroup group, DoubleClickAction 
action) {
                if (group != null)
                        groupActionMap.put(group, action);
@@ -90,22 +95,18 @@
                        this.action = action;
        }
 
-       @Override
        public boolean getUseNestedNetworks() { return useNestedNetworks; }
 
-       @Override
   public boolean getUseNestedNetworks(CyGroup group) {
                if (nestedNetworkMap.containsKey(group))
                        return nestedNetworkMap.get(group);
                return useNestedNetworks;
        }
 
-       @Override
   public void setUseNestedNetworks(boolean useNN) {
                useNestedNetworks = useNN;
        }
 
-       @Override
   public void setUseNestedNetworks(CyGroup group, boolean useNN) {
                if (group != null)
                        nestedNetworkMap.put(group, useNN);
@@ -113,22 +114,18 @@
                        this.useNestedNetworks = useNN;
        }
 
-       @Override
   public boolean getHideGroupNode() { return hideGroupNode; }
 
-       @Override
   public boolean getHideGroupNode(CyGroup group) {
                if (hideGroupMap.containsKey(group))
                        return hideGroupMap.get(group);
                return hideGroupNode;
        }
 
-       @Override
   public void setHideGroupNode(boolean hideGroup) {
                hideGroupNode = hideGroup;
        }
 
-       @Override
   public void setHideGroupNode(CyGroup group, boolean hideGroup) {
                if (group != null)
                        hideGroupMap.put(group, hideGroup);
@@ -136,22 +133,18 @@
                        this.hideGroupNode = hideGroup;
        }
 
-       @Override
   public double getGroupNodeOpacity() { return groupNodeOpacity; }
 
-       @Override
   public double getGroupNodeOpacity(CyGroup group) {
                if (opacityMap.containsKey(group))
                        return opacityMap.get(group);
                return groupNodeOpacity;
        }
 
-       @Override
   public void setGroupNodeOpacity(double opacity) {
                groupNodeOpacity = opacity;
        }
 
-       @Override
   public void setGroupNodeOpacity(CyGroup group, double opacity) {
                if (group != null)
                        opacityMap.put(group, opacity);
@@ -165,24 +158,20 @@
         *                         Aggregation settings                         
   *
         
**************************************************************************/
 
-       @Override
        public boolean getEnableAttributeAggregation() {
                return enableAttributeAggregation;
        }
 
-       @Override
        public boolean getEnableAttributeAggregation(CyGroup group) {
                if (enableMap.containsKey(group))
                        return enableMap.get(group);
                return enableAttributeAggregation;
        }
 
-       @Override
        public void setEnableAttributeAggregation(boolean aggregate) {
                this.enableAttributeAggregation = aggregate;
        }
 
-       @Override
        public void setEnableAttributeAggregation(CyGroup group, 
                                                  boolean aggregate) {
                if (group != null)
@@ -191,7 +180,6 @@
                        this.enableAttributeAggregation = aggregate;
        }
 
-       @Override
        public Aggregator getAggregator(CyGroup group, CyColumn column) {
                Class type = column.getType();
                Map<Class, Aggregator> defaultMap = allGroupDefaultMap;
@@ -205,7 +193,6 @@
                return defaultMap.get(column.getType());
        }
 
-       @Override
        public void setDefaultAggregation(CyGroup group, 
                                          Class ovClass, Aggregator agg) {
                if (!groupMap.containsKey(group)) {
@@ -213,26 +200,22 @@
                }
                groupMap.get(group).setDefault(ovClass, agg);
        }
-       @Override
        public Aggregator getDefaultAggregation(CyGroup group, Class ovClass) {
                if (groupMap.containsKey(group))
                        return groupMap.get(group).getDefault(ovClass);
                return null;
        }
 
-       @Override
        public void setDefaultAggregation(Class ovClass, Aggregator agg) {
                allGroupDefaultMap.put(ovClass, agg);
        }
 
-       @Override
        public Aggregator getDefaultAggregation(Class ovClass) {
                if (allGroupDefaultMap.containsKey(ovClass))
                        return allGroupDefaultMap.get(ovClass);
                return null;
        }
 
-       @Override
        public void setOverrideAggregation(CyGroup group, 
                                           CyColumn column, Aggregator agg) {
                if (!groupMap.containsKey(group)) {
@@ -240,18 +223,15 @@
                }
                groupMap.get(group).setOverride(column, agg);
        }
-       @Override
        public Aggregator getOverrideAggregation(CyGroup group, CyColumn 
column) {
                if (groupMap.containsKey(group))
                        return groupMap.get(group).getOverride(column);
                return null;
        }
 
-       @Override
        public void setOverrideAggregation(CyColumn column, Aggregator agg) {
                allGroupOverrideMap.put(column, agg);
        }
-       @Override
        public Aggregator getOverrideAggregation(CyColumn column) {
                if (allGroupOverrideMap.containsKey(column))
                        return allGroupOverrideMap.get(column);

Modified: 
core3/impl/trunk/group-data-impl/src/main/java/org/cytoscape/group/data/internal/CyGroupSettingsTask.java
===================================================================
--- 
core3/impl/trunk/group-data-impl/src/main/java/org/cytoscape/group/data/internal/CyGroupSettingsTask.java
   2012-04-12 23:04:10 UTC (rev 28815)
+++ 
core3/impl/trunk/group-data-impl/src/main/java/org/cytoscape/group/data/internal/CyGroupSettingsTask.java
   2012-04-12 23:08:22 UTC (rev 28816)
@@ -11,7 +11,6 @@
 import org.cytoscape.group.CyGroupManager;
 import org.cytoscape.group.data.Aggregator;
 import org.cytoscape.group.data.CyGroupAggregationManager;
-import org.cytoscape.group.data.CyGroupSettings;
 
 import org.cytoscape.model.CyColumn;
 
@@ -20,7 +19,7 @@
 public class CyGroupSettingsTask extends AbstractTask {
        CyGroupAggregationManager cyAggManager;
        CyApplicationManager cyApplicationManager;
-       CyGroupSettings settings;
+       CyGroupSettingsImpl settings;
        CyGroup group = null;
 
        @ContainsTunables
@@ -31,7 +30,7 @@
 
        public CyGroupSettingsTask(CyGroupAggregationManager aggMgr,
                                   CyApplicationManager appManager,
-                                  CyGroupSettings settings,
+                                  CyGroupSettingsImpl settings,
                                   CyGroup group) {
                this.cyAggManager = aggMgr;
                this.cyApplicationManager = appManager;

Modified: 
core3/impl/trunk/group-data-impl/src/main/java/org/cytoscape/group/data/internal/CyGroupSettingsTaskFactory.java
===================================================================
--- 
core3/impl/trunk/group-data-impl/src/main/java/org/cytoscape/group/data/internal/CyGroupSettingsTaskFactory.java
    2012-04-12 23:04:10 UTC (rev 28815)
+++ 
core3/impl/trunk/group-data-impl/src/main/java/org/cytoscape/group/data/internal/CyGroupSettingsTaskFactory.java
    2012-04-12 23:08:22 UTC (rev 28816)
@@ -4,22 +4,21 @@
 import org.cytoscape.work.AbstractTaskFactory;
 import org.cytoscape.work.TaskIterator;
 import org.cytoscape.group.data.CyGroupAggregationManager;
-import org.cytoscape.group.data.CyGroupSettings;
 
 class CyGroupSettingsTaskFactory extends AbstractTaskFactory {
        CyGroupAggregationManager cyAggManager;
        CyApplicationManager cyApplicationManager;
-       CyGroupSettings settings;
+       CyGroupSettingsImpl settings;
 
        public CyGroupSettingsTaskFactory(CyGroupAggregationManager aggMgr, 
                                          CyApplicationManager appManager,
-                                         CyGroupSettings settings) {
+                                         CyGroupSettingsImpl settings) {
                this.settings = settings;
                this.cyAggManager = aggMgr;
                this.cyApplicationManager = appManager;
        }
 
-       public CyGroupSettings getSettings() { return settings; }
+       public CyGroupSettingsImpl getSettings() { return settings; }
 
        public TaskIterator createTaskIterator() {
                CyGroupSettingsTask task = new 
CyGroupSettingsTask(cyAggManager, 

Modified: 
core3/impl/trunk/group-data-impl/src/main/java/org/cytoscape/group/data/internal/CyGroupViewSettings.java
===================================================================
--- 
core3/impl/trunk/group-data-impl/src/main/java/org/cytoscape/group/data/internal/CyGroupViewSettings.java
   2012-04-12 23:04:10 UTC (rev 28815)
+++ 
core3/impl/trunk/group-data-impl/src/main/java/org/cytoscape/group/data/internal/CyGroupViewSettings.java
   2012-04-12 23:08:22 UTC (rev 28816)
@@ -13,8 +13,7 @@
 import org.cytoscape.group.CyGroupManager;
 import org.cytoscape.group.data.Aggregator;
 import org.cytoscape.group.data.AttributeHandlingType;
-import org.cytoscape.group.data.CyGroupSettings;
-import org.cytoscape.group.data.CyGroupSettings.DoubleClickAction;
+import org.cytoscape.group.data.internal.CyGroupSettingsImpl.DoubleClickAction;
 import org.cytoscape.group.data.internal.aggregators.*;
 import org.cytoscape.group.events.GroupAddedEvent;
 import org.cytoscape.group.events.GroupAddedListener;
@@ -26,7 +25,7 @@
 import java.util.Map;
 
 public class CyGroupViewSettings {
-       CyGroupSettings settings = null;
+       CyGroupSettingsImpl settings = null;
 
   public ListSingleSelection<DoubleClickAction> doubleClickAction = 
                new 
ListSingleSelection<DoubleClickAction>(DoubleClickAction.None,
@@ -55,7 +54,7 @@
                 groups={"Group View Settings"})
        public BoundedDouble groupNodeOpacity = new BoundedDouble(0.0, 100.0, 
100.0, false, false);
 
-       public CyGroupViewSettings(CyGroupSettings settings) {
+       public CyGroupViewSettings(CyGroupSettingsImpl settings) {
                this.settings = settings;
 
                if (settings.getDoubleClickAction() == null) {

Modified: 
core3/impl/trunk/group-data-impl/src/main/java/org/cytoscape/group/data/internal/GroupDataCollapseHandler.java
===================================================================
--- 
core3/impl/trunk/group-data-impl/src/main/java/org/cytoscape/group/data/internal/GroupDataCollapseHandler.java
      2012-04-12 23:04:10 UTC (rev 28815)
+++ 
core3/impl/trunk/group-data-impl/src/main/java/org/cytoscape/group/data/internal/GroupDataCollapseHandler.java
      2012-04-12 23:08:22 UTC (rev 28816)
@@ -31,7 +31,6 @@
 
 import org.cytoscape.group.CyGroup;
 import org.cytoscape.group.CyGroupManager;
-import org.cytoscape.group.data.CyGroupSettings;
 import org.cytoscape.group.data.Aggregator;
 import org.cytoscape.group.events.GroupAboutToCollapseEvent;
 import org.cytoscape.group.events.GroupAboutToCollapseListener;
@@ -52,7 +51,7 @@
 {
 
        private final CyGroupManager cyGroupManager;
-       private final CyGroupSettings cyGroupSettings;
+       private final CyGroupSettingsImpl cyGroupSettings;
        private static final Logger logger = 
                LoggerFactory.getLogger(GroupDataCollapseHandler.class);
 

Modified: 
core3/impl/trunk/group-impl/src/main/java/org/cytoscape/group/internal/CyGroupManagerImpl.java
===================================================================
--- 
core3/impl/trunk/group-impl/src/main/java/org/cytoscape/group/internal/CyGroupManagerImpl.java
      2012-04-12 23:04:10 UTC (rev 28815)
+++ 
core3/impl/trunk/group-impl/src/main/java/org/cytoscape/group/internal/CyGroupManagerImpl.java
      2012-04-12 23:08:22 UTC (rev 28816)
@@ -104,6 +104,17 @@
        }
 
        @Override
+       public synchronized List<CyGroup> getGroupsForNode(CyNode node, 
CyNetwork network) {
+               List<CyGroup> returnList = new ArrayList<CyGroup>();
+               for (CyGroup group: groupSet) {
+                       if (group.isInNetwork(network) &&
+                           group.getGroupNetwork().containsNode(node))
+                               returnList.add(group);
+               }
+               return returnList;
+       }
+
+       @Override
        public synchronized CyGroup getGroup(CyNode node, CyNetwork network) {
                for (CyGroup group: groupSet) {
                        if (group.isInNetwork(network) && 
group.getGroupNode().equals(node))

Modified: core3/impl/trunk/group-view-impl/pom.xml
===================================================================
--- core3/impl/trunk/group-view-impl/pom.xml    2012-04-12 23:04:10 UTC (rev 
28815)
+++ core3/impl/trunk/group-view-impl/pom.xml    2012-04-12 23:08:22 UTC (rev 
28816)
@@ -70,7 +70,8 @@
                </dependency>
                <dependency>
                        <groupId>org.cytoscape</groupId>
-                       <artifactId>group-data-api</artifactId>
+                       <artifactId>group-data-impl</artifactId>
+                       <version>${project.version}</version>
                </dependency>
                <dependency>
                        <groupId>org.cytoscape</groupId>

Modified: 
core3/impl/trunk/group-view-impl/src/main/java/org/cytoscape/group/view/internal/CyActivator.java
===================================================================
--- 
core3/impl/trunk/group-view-impl/src/main/java/org/cytoscape/group/view/internal/CyActivator.java
   2012-04-12 23:04:10 UTC (rev 28815)
+++ 
core3/impl/trunk/group-view-impl/src/main/java/org/cytoscape/group/view/internal/CyActivator.java
   2012-04-12 23:08:22 UTC (rev 28816)
@@ -6,7 +6,7 @@
 import org.osgi.framework.BundleContext;
 
 import org.cytoscape.group.CyGroupManager;
-import org.cytoscape.group.data.CyGroupSettings;
+import org.cytoscape.group.data.internal.CyGroupSettingsImpl;
 import org.cytoscape.group.events.GroupAboutToCollapseListener;
 import org.cytoscape.group.events.GroupCollapsedListener;
 import org.cytoscape.model.CyNetworkManager;
@@ -32,7 +32,7 @@
                CyNetworkViewManager cyNetworkViewManager = 
getService(bc,CyNetworkViewManager.class);
                CyNetworkViewFactory cyNetworkViewFactory = 
getService(bc,CyNetworkViewFactory.class);
                CyNetworkManager cyNetworkManager = 
getService(bc,CyNetworkManager.class);
-               CyGroupSettings groupSettings = 
getService(bc,CyGroupSettings.class);
+               CyGroupSettingsImpl groupSettings = 
getService(bc,CyGroupSettingsImpl.class);
                VisualMappingManager styleManager = getService(bc, 
VisualMappingManager.class);
 
                GroupViewCollapseHandler gvcHandler = 

Modified: 
core3/impl/trunk/group-view-impl/src/main/java/org/cytoscape/group/view/internal/GroupViewCollapseHandler.java
===================================================================
--- 
core3/impl/trunk/group-view-impl/src/main/java/org/cytoscape/group/view/internal/GroupViewCollapseHandler.java
      2012-04-12 23:04:10 UTC (rev 28815)
+++ 
core3/impl/trunk/group-view-impl/src/main/java/org/cytoscape/group/view/internal/GroupViewCollapseHandler.java
      2012-04-12 23:08:22 UTC (rev 28816)
@@ -35,7 +35,7 @@
 
 import org.cytoscape.group.CyGroup;
 import org.cytoscape.group.CyGroupManager;
-import org.cytoscape.group.data.CyGroupSettings;
+import org.cytoscape.group.data.internal.CyGroupSettingsImpl;
 import org.cytoscape.group.events.GroupAboutToCollapseEvent;
 import org.cytoscape.group.events.GroupAboutToCollapseListener;
 import org.cytoscape.group.events.GroupCollapsedEvent;
@@ -72,7 +72,7 @@
        private final CyNetworkViewManager cyNetworkViewManager;
        private final CyNetworkViewFactory cyNetworkViewFactory;
        private final VisualMappingManager cyStyleManager;
-       private final CyGroupSettings cyGroupSettings;
+       private final CyGroupSettingsImpl cyGroupSettings;
        private static final Logger logger = 
LoggerFactory.getLogger(GroupViewCollapseHandler.class);
        private static final VisualProperty<Double> xLoc = 
BasicVisualLexicon.NODE_X_LOCATION;
        private static final VisualProperty<Double> yLoc = 
BasicVisualLexicon.NODE_Y_LOCATION;
@@ -87,7 +87,7 @@
         * @param cyEventHelper
         */
        public GroupViewCollapseHandler(final CyGroupManager groupManager,
-                                       final CyGroupSettings groupSettings,
+                                       final CyGroupSettingsImpl groupSettings,
                                        final CyNetworkManager netManager,
                                        final CyNetworkViewManager viewManager,
                                        final CyNetworkViewFactory viewFactory,

Modified: 
core3/impl/trunk/group-view-impl/src/main/java/org/cytoscape/group/view/internal/GroupViewDoubleClickListener.java
===================================================================
--- 
core3/impl/trunk/group-view-impl/src/main/java/org/cytoscape/group/view/internal/GroupViewDoubleClickListener.java
  2012-04-12 23:04:10 UTC (rev 28815)
+++ 
core3/impl/trunk/group-view-impl/src/main/java/org/cytoscape/group/view/internal/GroupViewDoubleClickListener.java
  2012-04-12 23:08:22 UTC (rev 28816)
@@ -33,8 +33,8 @@
 
 import org.cytoscape.group.CyGroup;
 import org.cytoscape.group.CyGroupManager;
-import org.cytoscape.group.data.CyGroupSettings;
-import org.cytoscape.group.data.CyGroupSettings.DoubleClickAction;
+import org.cytoscape.group.data.internal.CyGroupSettingsImpl;
+import org.cytoscape.group.data.internal.CyGroupSettingsImpl.DoubleClickAction;
 import org.cytoscape.model.CyNetwork;
 import org.cytoscape.model.CyNode;
 import org.cytoscape.model.CyTable;
@@ -52,13 +52,14 @@
 public class GroupViewDoubleClickListener extends AbstractNodeViewTaskFactory
 {
        CyGroupManager cyGroupManager;
-       CyGroupSettings cyGroupSettings;
+       CyGroupSettingsImpl cyGroupSettings;
 
        /**
         * 
         * 
         */
-       public GroupViewDoubleClickListener(final CyGroupManager groupManager, 
final CyGroupSettings groupSettings) {
+       public GroupViewDoubleClickListener(final CyGroupManager groupManager, 
+                                           final CyGroupSettingsImpl 
groupSettings) {
                this.cyGroupManager = groupManager;
                this.cyGroupSettings = groupSettings;
        }

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