Author: scooter
Date: 2012-07-31 20:36:16 -0700 (Tue, 31 Jul 2012)
New Revision: 30062
Removed:
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/layout/ui/LayoutMenu.java
Modified:
core3/impl/trunk/layout-cytoscape-impl/src/main/java/csapps/layout/CyActivator.java
core3/impl/trunk/layout-impl/src/main/java/org/cytoscape/view/layout/internal/CyActivator.java
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/layout/ui/LayoutMenuPopulator.java
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/CytoscapeMenuBar.java
Log:
Reorganize layout menus
Modified:
core3/impl/trunk/layout-cytoscape-impl/src/main/java/csapps/layout/CyActivator.java
===================================================================
---
core3/impl/trunk/layout-cytoscape-impl/src/main/java/csapps/layout/CyActivator.java
2012-08-01 01:50:59 UTC (rev 30061)
+++
core3/impl/trunk/layout-cytoscape-impl/src/main/java/csapps/layout/CyActivator.java
2012-08-01 03:36:16 UTC (rev 30062)
@@ -42,7 +42,7 @@
HierarchicalLayoutAlgorithm hierarchicalLayoutAlgorithm = new
HierarchicalLayoutAlgorithm(undo,hf,bf);
Properties hierarchicalLayoutAlgorithmProps = new Properties();
- hierarchicalLayoutAlgorithmProps.setProperty(PREFERRED_MENU,
"Layout.Cytoscape Layouts");
+ // hierarchicalLayoutAlgorithmProps.setProperty(PREFERRED_MENU,
"Layout");
hierarchicalLayoutAlgorithmProps.setProperty("preferredTaskManager","menu");
hierarchicalLayoutAlgorithmProps.setProperty(TITLE,hierarchicalLayoutAlgorithm.toString());
hierarchicalLayoutAlgorithmProps.setProperty(MENU_GRAVITY,"10.1");
@@ -50,7 +50,7 @@
CircularLayoutAlgorithm circularLayoutAlgorithm = new
CircularLayoutAlgorithm(undo);
Properties circularLayoutAlgorithmProps = new Properties();
- circularLayoutAlgorithmProps.setProperty(PREFERRED_MENU,
"Layout.Cytoscape Layouts");
+ // circularLayoutAlgorithmProps.setProperty(PREFERRED_MENU,
"Layout");
circularLayoutAlgorithmProps.setProperty("preferredTaskManager","menu");
circularLayoutAlgorithmProps.setProperty(TITLE,circularLayoutAlgorithm.toString());
circularLayoutAlgorithmProps.setProperty(MENU_GRAVITY,"10.2");
@@ -58,7 +58,7 @@
StackedNodeLayout stackedNodeLayout = new
StackedNodeLayout(undo);
Properties stackedNodeLayoutProps = new Properties();
- stackedNodeLayoutProps.setProperty(PREFERRED_MENU,
"Layout.Cytoscape Layouts");
+ // stackedNodeLayoutProps.setProperty(PREFERRED_MENU, "Layout");
stackedNodeLayoutProps.setProperty("preferredTaskManager","menu");
stackedNodeLayoutProps.setProperty(TITLE,stackedNodeLayout.toString());
stackedNodeLayoutProps.setProperty(MENU_GRAVITY,"10.3");
@@ -67,7 +67,7 @@
AttributeCircleLayout attributeCircleLayout = new
AttributeCircleLayout(undo);
Properties attributeCircleLayoutProps = new Properties();
- attributeCircleLayoutProps.setProperty(PREFERRED_MENU,
"Layout.Cytoscape Layouts");
+ // attributeCircleLayoutProps.setProperty(PREFERRED_MENU,
"Layout");
attributeCircleLayoutProps.setProperty("preferredTaskManager","menu");
attributeCircleLayoutProps.setProperty(TITLE,attributeCircleLayout.toString());
attributeCircleLayoutProps.setProperty(MENU_GRAVITY,"10.4");
@@ -75,7 +75,7 @@
DegreeSortedCircleLayout degreeSortedCircleLayout = new
DegreeSortedCircleLayout(undo);
Properties degreeSortedCircleLayoutProps = new Properties();
- degreeSortedCircleLayoutProps.setProperty(PREFERRED_MENU,
"Layout.Cytoscape Layouts");
+ // degreeSortedCircleLayoutProps.setProperty(PREFERRED_MENU,
"Layout");
degreeSortedCircleLayoutProps.setProperty("preferredTaskManager","menu");
degreeSortedCircleLayoutProps.setProperty(TITLE,degreeSortedCircleLayout.toString());
degreeSortedCircleLayoutProps.setProperty(MENU_GRAVITY,"10.5");
@@ -83,15 +83,16 @@
GroupAttributesLayout groupAttributesLayout = new
GroupAttributesLayout(undo);
Properties groupAttributesLayoutProps = new Properties();
- groupAttributesLayoutProps.setProperty(PREFERRED_MENU,
"Layout.Cytoscape Layouts");
+ // groupAttributesLayoutProps.setProperty(PREFERRED_MENU,
"Layout");
groupAttributesLayoutProps.setProperty("preferredTaskManager","menu");
groupAttributesLayoutProps.setProperty(TITLE,groupAttributesLayout.toString());
groupAttributesLayoutProps.setProperty(MENU_GRAVITY,"10.6");
+
groupAttributesLayoutProps.setProperty(INSERT_SEPARATOR_AFTER,"true");
registerService(bc,groupAttributesLayout,CyLayoutAlgorithm.class,
groupAttributesLayoutProps);
/*
Properties bioLayoutKKAlgorithmFALSEProps = new Properties();
- bioLayoutKKAlgorithmFALSEProps.setProperty(PREFERRED_MENU,
"Layout.Cytoscape Layouts");
+ bioLayoutKKAlgorithmFALSEProps.setProperty(PREFERRED_MENU,
"Layout");
bioLayoutKKAlgorithmFALSEProps.setProperty("preferredTaskManager","menu");
bioLayoutKKAlgorithmFALSEProps.setProperty(TITLE,bioLayoutKKAlgorithmFALSE.toString());
bioLayoutKKAlgorithmFALSEProps.setProperty(MENU_GRAVITY,"10.99");
@@ -100,7 +101,7 @@
BioLayoutFRAlgorithm bioLayoutFRAlgorithm = new
BioLayoutFRAlgorithm(true,undo);
Properties bioLayoutFRAlgorithmProps = new Properties();
- bioLayoutFRAlgorithmProps.setProperty(PREFERRED_MENU,
"Layout.Cytoscape Layouts");
+ // bioLayoutFRAlgorithmProps.setProperty(PREFERRED_MENU,
"Layout");
bioLayoutFRAlgorithmProps.setProperty("preferredTaskManager","menu");
bioLayoutFRAlgorithmProps.setProperty(TITLE,bioLayoutFRAlgorithm.toString());
bioLayoutFRAlgorithmProps.setProperty(MENU_GRAVITY,"10.8");
@@ -108,7 +109,7 @@
BioLayoutKKAlgorithm bioLayoutKKAlgorithmTRUE = new
BioLayoutKKAlgorithm(true,undo);
Properties bioLayoutKKAlgorithmTRUEProps = new Properties();
- bioLayoutKKAlgorithmTRUEProps.setProperty(PREFERRED_MENU,
"Layout.Cytoscape Layouts");
+ // bioLayoutKKAlgorithmTRUEProps.setProperty(PREFERRED_MENU,
"Layout");
bioLayoutKKAlgorithmTRUEProps.setProperty("preferredTaskManager","menu");
bioLayoutKKAlgorithmTRUEProps.setProperty(TITLE,bioLayoutKKAlgorithmTRUE.toString());
bioLayoutKKAlgorithmTRUEProps.setProperty(MENU_GRAVITY,"10.9");
@@ -117,10 +118,11 @@
ISOMLayout ISOMLayout = new ISOMLayout(undo);
Properties ISOMLayoutProps = new Properties();
- ISOMLayoutProps.setProperty(PREFERRED_MENU, "Layout.Cytoscape
Layouts");
+ // ISOMLayoutProps.setProperty(PREFERRED_MENU, "Layout");
ISOMLayoutProps.setProperty("preferredTaskManager","menu");
ISOMLayoutProps.setProperty(TITLE,ISOMLayout.toString());
ISOMLayoutProps.setProperty(MENU_GRAVITY,"10.99");
+ ISOMLayoutProps.setProperty(INSERT_SEPARATOR_AFTER,"true");
registerService(bc,ISOMLayout,CyLayoutAlgorithm.class,
ISOMLayoutProps);
}
}
Modified:
core3/impl/trunk/layout-impl/src/main/java/org/cytoscape/view/layout/internal/CyActivator.java
===================================================================
---
core3/impl/trunk/layout-impl/src/main/java/org/cytoscape/view/layout/internal/CyActivator.java
2012-08-01 01:50:59 UTC (rev 30061)
+++
core3/impl/trunk/layout-impl/src/main/java/org/cytoscape/view/layout/internal/CyActivator.java
2012-08-01 03:36:16 UTC (rev 30062)
@@ -32,9 +32,10 @@
registerService(bc,cyLayouts,CyLayoutAlgorithmManager.class,
new Properties());
Properties gridNodeLayoutProps = new Properties();
-
gridNodeLayoutProps.setProperty(PREFERRED_MENU,"Layout.Cytoscape Layouts");
+ //
gridNodeLayoutProps.setProperty(PREFERRED_MENU,"Layout.Cytoscape Layouts");
gridNodeLayoutProps.setProperty("preferredTaskManager","menu");
gridNodeLayoutProps.setProperty(TITLE,gridNodeLayout.toString());
+ gridNodeLayoutProps.setProperty(MENU_GRAVITY,"10.0");
registerService(bc,gridNodeLayout,CyLayoutAlgorithm.class,
gridNodeLayoutProps);
registerServiceListener(bc,cyLayouts,"addLayout","removeLayout",CyLayoutAlgorithm.class);
Deleted:
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/layout/ui/LayoutMenu.java
===================================================================
---
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/layout/ui/LayoutMenu.java
2012-08-01 01:50:59 UTC (rev 30061)
+++
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/layout/ui/LayoutMenu.java
2012-08-01 03:36:16 UTC (rev 30062)
@@ -1,198 +0,0 @@
-/*
- File: LayoutMenu.java
-
- Copyright (c) 2006, The Cytoscape Consortium (www.cytoscape.org)
-
- The Cytoscape Consortium is:
- - Institute for Systems Biology
- - University of California San Diego
- - Memorial Sloan-Kettering Cancer Center
- - Institut Pasteur
- - Agilent Technologies
-
- 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.internal.layout.ui;
-
-import org.cytoscape.work.TaskManager;
-import org.cytoscape.work.swing.DialogTaskManager;
-import org.cytoscape.application.CyApplicationManager;
-import org.cytoscape.model.CyColumn;
-import org.cytoscape.model.CyNode;
-import org.cytoscape.model.CyNetwork;
-import org.cytoscape.model.CyTable;
-import org.cytoscape.model.CyTableUtil;
-import org.cytoscape.view.layout.CyLayoutAlgorithm;
-import org.cytoscape.view.model.CyNetworkView;
-import org.cytoscape.view.model.View;
-
-import javax.swing.*;
-import javax.swing.event.MenuEvent;
-import javax.swing.event.MenuListener;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-import java.util.Collections;
-import java.util.Comparator;
-
-
-/**
- *
- * A DynamicLayoutMenu is a more complicated layout menu that constructs
layout menu
- * items on-the-fly based on the capabilities of the layout algorithm and
environment
- * factors such as whether or not nodes are selected, the presence of node or
edge
- * attributes, etc.
- */
-
-// This should extend CyMenuItem, I think....
-public class LayoutMenu extends JMenu implements MenuListener {
- private final static long serialVersionUID = 1202339874255880L;
- List<CyLayoutAlgorithm> subMenuList;
- private CyApplicationManager appMgr;
- private DialogTaskManager tm;
- private final LayoutComparator layoutComparator = new LayoutComparator();
-
- /**
- * Creates a new LayoutMenu object.
- *
- * @param menuName DOCUMENT ME!
- */
- public LayoutMenu(String menuName, CyApplicationManager appMgr,
DialogTaskManager tm) {
- super(menuName);
- addMenuListener(this);
- subMenuList = new ArrayList<CyLayoutAlgorithm>();
- this.appMgr = appMgr;
- this.tm = tm;
- }
-
- /**
- * DOCUMENT ME!
- *
- * @param layout DOCUMENT ME!
- */
- public void add(CyLayoutAlgorithm layout) {
- subMenuList.add(layout);
- }
-
- /**
- * DOCUMENT ME!
- *
- * @param layout DOCUMENT ME!
- */
- public void remove(CyLayoutAlgorithm layout) {
- subMenuList.remove(layout);
- }
-
- /**
- * DOCUMENT ME!
- *
- * @return DOCUMENT ME!
- */
- public int getItemCount() {
- return subMenuList.size();
- }
-
- /**
- * DOCUMENT ME!
- *
- * @param e DOCUMENT ME!
- */
- public void menuCanceled(MenuEvent e) { } ;
-
- /**
- * DOCUMENT ME!
- *
- * @param e DOCUMENT ME!
- */
- public void menuDeselected(MenuEvent e) { } ;
-
- /**
- * DOCUMENT ME!
- *
- * @param e DOCUMENT ME!
- */
- public void menuSelected(MenuEvent e) {
- // Clear any previous entries
- this.removeAll();
-
- CyNetworkView view = appMgr.getCurrentNetworkView();
- if ( view == null )
- return;
-
- CyNetwork network = view.getModel();
-
- // Figure out if we have anything selected
- boolean someSelected =
network.getDefaultNodeTable().countMatchingRows(CyNetwork.SELECTED, true) > 0;
- boolean enableMenuItem = checkEnabled();
-
- Collections.sort(subMenuList,layoutComparator);
-
- for ( CyLayoutAlgorithm layout : subMenuList ) {
-
- boolean usesNodeAttrs =
-
hasValidAttributes(layout.getSupportedNodeAttributeTypes(),network.getDefaultNodeTable());
- boolean usesEdgeAttrs =
-
hasValidAttributes(layout.getSupportedEdgeAttributeTypes(),network.getDefaultEdgeTable());
- boolean usesSelected = (layout.getSupportsSelectedOnly() &&
someSelected);
-
- if (usesNodeAttrs || usesEdgeAttrs || usesSelected) {
- super.add(new
DynamicLayoutMenu(layout,network,enableMenuItem,appMgr,
-
tm,usesNodeAttrs,usesEdgeAttrs,usesSelected));
- } else {
- super.add(new
StaticLayoutMenu(layout,enableMenuItem,appMgr,tm));
- }
- }
- }
-
- private boolean hasValidAttributes(Set<Class<?>> typeSet, CyTable
attributes) {
- for (final CyColumn column : attributes.getColumns())
- if (typeSet.contains(column.getType()))
- return true;
- return false;
- }
-
- private boolean checkEnabled() {
- CyNetwork network = appMgr.getCurrentNetwork();
- if ( network == null )
- return false;
-
- CyNetworkView view = appMgr.getCurrentNetworkView();
- if ( view == null )
- return false;
- else
- return true;
- }
-
- private static class LayoutComparator implements
Comparator<CyLayoutAlgorithm> {
- public int compare(CyLayoutAlgorithm o1, CyLayoutAlgorithm o2) {
- return o1.toString().compareTo(o2.toString());
- }
- public boolean equals(Object obj) {
- return ( obj == this );
- }
- }
-}
-
Modified:
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/layout/ui/LayoutMenuPopulator.java
===================================================================
---
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/layout/ui/LayoutMenuPopulator.java
2012-08-01 01:50:59 UTC (rev 30061)
+++
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/layout/ui/LayoutMenuPopulator.java
2012-08-01 03:36:16 UTC (rev 30062)
@@ -36,78 +36,151 @@
*/
package org.cytoscape.internal.layout.ui;
-import org.cytoscape.view.layout.CyLayoutAlgorithm;
-import static org.cytoscape.work.ServiceProperties.*;
-import org.cytoscape.work.TaskManager;
-import org.cytoscape.work.swing.DialogTaskManager;
import org.cytoscape.application.CyApplicationManager;
import org.cytoscape.application.swing.CySwingApplication;
import org.cytoscape.internal.view.CytoscapeMenuBar;
+import org.cytoscape.model.CyColumn;
+import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyTable;
+import org.cytoscape.work.TaskManager;
+import static org.cytoscape.work.ServiceProperties.*;
+import org.cytoscape.work.swing.DialogTaskManager;
+import org.cytoscape.util.swing.GravityTracker;
+import org.cytoscape.util.swing.JMenuTracker;
+import org.cytoscape.view.layout.CyLayoutAlgorithm;
+import org.cytoscape.view.model.CyNetworkView;
import java.util.*;
+import javax.swing.JMenu;
+import javax.swing.JMenuItem;
+import javax.swing.event.MenuEvent;
+import javax.swing.event.MenuListener;
-public class LayoutMenuPopulator {
+public class LayoutMenuPopulator implements MenuListener {
- private Map<String, List<CyLayoutAlgorithm>> menuAlgorithmMap;
- private Map<String, LayoutMenu> menuMap;
+ private Map<CyLayoutAlgorithm, Map> algorithmMap;
+ private Map<CyLayoutAlgorithm, JMenuItem> menuMap;
+ private Map<CyLayoutAlgorithm, Boolean> separatorMap;
private CyApplicationManager appMgr;
private DialogTaskManager tm;
- private CytoscapeMenuBar menuBar;
+ private GravityTracker gravityTracker;
+ private JMenu layoutMenu;
public LayoutMenuPopulator(CytoscapeMenuBar menuBar, CyApplicationManager
appMgr, DialogTaskManager tm) {
- menuAlgorithmMap = new HashMap<String,List<CyLayoutAlgorithm>>();
- menuMap = new HashMap<String,LayoutMenu>();
+ algorithmMap = new HashMap<CyLayoutAlgorithm,Map>();
+ menuMap = new HashMap<CyLayoutAlgorithm,JMenuItem>();
+ separatorMap = new HashMap<CyLayoutAlgorithm,Boolean>();
this.appMgr = appMgr;
this.tm = tm;
- this.menuBar = menuBar;
+ this.gravityTracker =
menuBar.getMenuTracker().getGravityTracker("Layout");
+ this.layoutMenu = (JMenu)gravityTracker.getMenu();
+ this.layoutMenu.addMenuListener(this);
}
public void addLayout(CyLayoutAlgorithm layout, Map props) {
- String fullMenuName = (String)props.get(PREFERRED_MENU);
- if (fullMenuName == null )
- fullMenuName = "Layout." + layout.toString();
-
- String actualMenuName = fullMenuName;
- if ( actualMenuName.startsWith("Layout."))
- actualMenuName = actualMenuName.substring(7);
+ algorithmMap.put(layout, props);
+ }
- // make sure the list is set up for this name
- if ( !menuAlgorithmMap.containsKey(fullMenuName) ) {
- List<CyLayoutAlgorithm> menuList = new
ArrayList<CyLayoutAlgorithm>();
- menuAlgorithmMap.put(fullMenuName, menuList);
- }
+ public void removeLayout(CyLayoutAlgorithm layout, Map props) {
+ algorithmMap.remove(layout);
+ }
- // add layout to the list of layouts for this name
- menuAlgorithmMap.get(fullMenuName).add(layout);
+ /**
+ * DOCUMENT ME!
+ *
+ * @param e DOCUMENT ME!
+ */
+ public void menuCanceled(MenuEvent e) { } ;
- // make sure the menu is set up
- if ( !menuMap.containsKey(fullMenuName) ) {
- LayoutMenu menu = new LayoutMenu(actualMenuName, appMgr, tm);
- menuMap.put(fullMenuName, menu);
- // This needs to be done so that gravity is supported
- menuBar.getMenu("Layout").add(menu);
- } else {
- // See if the menu type has changed from a Menu to a MenuItem or
visa-versa
- // Yes, replace it.
- LayoutMenu menu = menuMap.get(fullMenuName);
- // if (menu.updateSubMenus()) {
- // Update the menu
- // }
- }
+ /**
+ * DOCUMENT ME!
+ *
+ * @param e DOCUMENT ME!
+ */
+ public void menuDeselected(MenuEvent e) { } ;
- // add layout to the menu for this name
- menuMap.get(fullMenuName).add(layout);
- }
+ /**
+ * DOCUMENT ME!
+ *
+ * @param e DOCUMENT ME!
+ */
+ public void menuSelected(MenuEvent e) {
+ CyNetworkView view = appMgr.getCurrentNetworkView();
+ if ( view == null )
+ return;
- public void removeLayout(CyLayoutAlgorithm layout, Map props) {
- for (String menu : menuAlgorithmMap.keySet()) {
- List<CyLayoutAlgorithm> menuList = menuAlgorithmMap.get(menu);
- if (menuList.indexOf(layout) >= 0) {
- menuList.remove(layout);
- menuMap.get(menu).remove(layout);
- return;
+ CyNetwork network = view.getModel();
+
+ // Figure out if we have anything selected
+ boolean someSelected =
network.getDefaultNodeTable().countMatchingRows(CyNetwork.SELECTED, true) > 0;
+ boolean enableMenuItem = checkEnabled();
+
+ // Get all of the algorithms
+ for ( CyLayoutAlgorithm layout : algorithmMap.keySet() ) {
+ Map props = algorithmMap.get(layout);
+ double gravity = 1000.0;
+ if (props.get(MENU_GRAVITY) != null)
+ gravity = Double.parseDouble((String)props.get(MENU_GRAVITY));
+
+ boolean separatorAfter = false;
+ if (props.get(INSERT_SEPARATOR_AFTER) != null)
+ separatorAfter =
Boolean.parseBoolean((String)props.get(INSERT_SEPARATOR_AFTER));
+
+ boolean separatorBefore = false;
+ if (props.get(INSERT_SEPARATOR_BEFORE) != null)
+ separatorBefore =
Boolean.parseBoolean((String)props.get(INSERT_SEPARATOR_BEFORE));
+
+ // Remove the old menu
+ if (menuMap.containsKey(layout)) {
+ layoutMenu.remove(menuMap.get(layout));
+ menuMap.remove(layout);
}
+
+ boolean usesNodeAttrs =
+
hasValidAttributes(layout.getSupportedNodeAttributeTypes(),network.getDefaultNodeTable());
+ boolean usesEdgeAttrs =
+
hasValidAttributes(layout.getSupportedEdgeAttributeTypes(),network.getDefaultEdgeTable());
+ boolean usesSelected = (layout.getSupportsSelectedOnly() &&
someSelected);
+
+ if (usesNodeAttrs || usesEdgeAttrs || usesSelected) {
+ JMenu newMenu = new
DynamicLayoutMenu(layout,network,enableMenuItem,appMgr,
+
tm,usesNodeAttrs,usesEdgeAttrs,usesSelected);
+ menuMap.put(layout, newMenu);
+ gravityTracker.addMenu(newMenu, gravity);
+ } else {
+ JMenuItem newMenu = new
StaticLayoutMenu(layout,enableMenuItem,appMgr,tm);
+ menuMap.put(layout, newMenu);
+ gravityTracker.addMenuItem(newMenu, gravity);
+ }
+
+ if (separatorAfter &&
!separatorMap.containsKey(layout)) {
+ gravityTracker.addMenuSeparator(gravity+0.0001);
+ separatorMap.put(layout, Boolean.TRUE);
+ } else if (separatorBefore &&
!separatorMap.containsKey(layout)) {
+ gravityTracker.addMenuSeparator(gravity-0.0001);
+ separatorMap.put(layout, Boolean.TRUE);
+ }
}
}
+
+ private boolean hasValidAttributes(Set<Class<?>> typeSet, CyTable
attributes) {
+ for (final CyColumn column : attributes.getColumns())
+ if (typeSet.contains(column.getType()))
+ return true;
+ return false;
+ }
+
+ private boolean checkEnabled() {
+ CyNetwork network = appMgr.getCurrentNetwork();
+ if ( network == null )
+ return false;
+
+ CyNetworkView view = appMgr.getCurrentNetworkView();
+ if ( view == null )
+ return false;
+ else
+ return true;
+ }
+
}
Modified:
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/CytoscapeMenuBar.java
===================================================================
---
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/CytoscapeMenuBar.java
2012-08-01 01:50:59 UTC (rev 30061)
+++
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/CytoscapeMenuBar.java
2012-08-01 03:36:16 UTC (rev 30062)
@@ -160,6 +160,10 @@
return (JMenu)gravityTracker.getMenu();
}
+ public JMenuTracker getMenuTracker() {
+ return menuTracker;
+ }
+
private JMenuItem createMenuItem(final CyAction action) {
JMenuItem ret;
if (action.useCheckBoxMenuItem())
--
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.