Author: pwang
Date: 2011-10-04 14:47:12 -0700 (Tue, 04 Oct 2011)
New Revision: 27057

Added:
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/action/
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/action/GraphicsDetailAction.java
Log:
Original creation

Added: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/action/GraphicsDetailAction.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/action/GraphicsDetailAction.java
                         (rev 0)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/action/GraphicsDetailAction.java
 2011-10-04 21:47:12 UTC (rev 27057)
@@ -0,0 +1,84 @@
+package org.cytoscape.ding.action;
+
+
+import java.awt.event.ActionEvent;
+import java.util.Properties;
+import javax.swing.Action;
+import javax.swing.event.MenuEvent;
+import org.cytoscape.application.CyApplicationManager;
+import org.cytoscape.application.swing.AbstractCyAction;
+import org.cytoscape.ding.impl.DGraphView;
+import org.cytoscape.ding.impl.DingGraphLODAll;
+import org.cytoscape.graph.render.stateful.GraphLOD;
+import org.cytoscape.model.CyNetwork;
+import org.cytoscape.property.CyProperty;
+import org.cytoscape.view.presentation.RenderingEngine;
+import org.cytoscape.work.TaskManager;
+import org.cytoscape.ding.impl.SwitchGraphicsDetailTaskFactory;
+
+public class GraphicsDetailAction extends AbstractCyAction {
+
+       private final static long serialVersionUID = 1202323129387651L;
+       
+       private static String  GraphicsDetails = "Graphics Details"; 
+               
+       protected static String SHOW = "Show";
+       protected static String HIDE = "Hide";
+
+       private final CyProperty<Properties> defaultProps;
+    private final CyApplicationManager applicationManager;
+    private final TaskManager taskManagerServiceRef;
+
+
+       public GraphicsDetailAction(final CyApplicationManager 
applicationManager, final TaskManager taskManagerServiceRef, 
+                       final CyProperty<Properties> defaultProps)
+       {
+               super(SHOW + " " + GraphicsDetails, applicationManager);
+
+               setPreferredMenu("View");
+               setMenuGravity(5.0f);
+               this.enableForNetworkAndView();
+               
+               this.applicationManager = applicationManager;
+               this.defaultProps = defaultProps;
+               this.taskManagerServiceRef = taskManagerServiceRef;
+       }
+
+       /**
+        * Toggles the Show/Hide state.  
+        *
+        * @param ev Triggering event - not used. 
+        */
+       public void actionPerformed(ActionEvent ev) {
+               
+               SwitchGraphicsDetailTaskFactory tf = new 
SwitchGraphicsDetailTaskFactory(applicationManager, defaultProps);
+               taskManagerServiceRef.execute(tf);              
+       } 
+
+       /**
+        * This dynamically sets the title of the menu based on the state of 
the graphics detail.
+        */
+       public void menuSelected(MenuEvent me) {
+               
+               if (isDetailShown()) {
+                       putValue(Action.NAME, HIDE + " " + GraphicsDetails);
+               } else {
+                       putValue(Action.NAME, SHOW + " " + GraphicsDetails);
+               }
+       }
+
+       public boolean isDetailShown(){
+               
+               final RenderingEngine<CyNetwork> engine = 
applicationManager.getCurrentRenderingEngine();
+
+               if(engine instanceof DGraphView == false)
+                       return false;
+
+               final GraphLOD lod = ((DGraphView) engine).getGraphLOD();
+
+               if (lod instanceof DingGraphLODAll)
+                       return true; 
+               else
+                       return false;
+       }
+}

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