Author: paperwing
Date: 2012-03-08 14:58:38 -0800 (Thu, 08 Mar 2012)
New Revision: 28459

Added:
   
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/input/ContextMenuInputHandler.java
Modified:
   
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/Graphics.java
   
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/WindRenderingEngine.java
   
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/data/GraphicsData.java
   
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/data/LightingData.java
   
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/input/LightMovementInputHandler.java
   
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/input/MainInputProcessor.java
   
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/rendering/RenderArcEdgesProcedure.java
   
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/rendering/RenderLightsProcedure.java
   
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/rendering/RenderNodesProcedure.java
Log:
Representation of light position is not drawn unless the light is being drag 
moved; added InputHandler to create context menus, now capable of creating a 
context menu at the place where a right-click takes place

Modified: 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/Graphics.java
===================================================================
--- 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/Graphics.java
 2012-03-08 22:35:37 UTC (rev 28458)
+++ 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/Graphics.java
 2012-03-08 22:58:38 UTC (rev 28459)
@@ -123,6 +123,8 @@
                
                component.addKeyListener(keys);
                component.addFocusListener(keys);
+               
+               graphicsData.setContainer(component);
        }
 
        /** Main drawing method; can be called by an {@link Animator} such as

Modified: 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/WindRenderingEngine.java
===================================================================
--- 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/WindRenderingEngine.java
      2012-03-08 22:35:37 UTC (rev 28458)
+++ 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/WindRenderingEngine.java
      2012-03-08 22:58:38 UTC (rev 28459)
@@ -108,7 +108,7 @@
                                
                                // TODO: check whether to use GLCanvas or 
GLJPanel
                                panel = new GLJPanel(capabilities);
-                               
+
                                // TODO: check if negative effects produced by 
this
                                panel.setIgnoreRepaint(true);
                                // panel.setDoubleBuffered(true);

Modified: 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/data/GraphicsData.java
===================================================================
--- 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/data/GraphicsData.java
        2012-03-08 22:35:37 UTC (rev 28458)
+++ 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/data/GraphicsData.java
        2012-03-08 22:58:38 UTC (rev 28459)
@@ -1,5 +1,6 @@
 package org.cytoscape.paperwing.internal.data;
 
+import java.awt.Component;
 import java.util.Map;
 import java.util.Set;
 
@@ -67,6 +68,8 @@
        /** A boolean to disable real-time shape picking to improve framerate */
        private boolean disableHovering;
        
+       private Component container;
+       
        /** 
         * A {@link GraphicsSelectionData} object which is responsible for 
         * storing all data related to selection of objects in the network, such
@@ -262,4 +265,12 @@
        public void setLightingData(LightingData lightingData) {
                this.lightingData = lightingData;
        }
+
+       public void setContainer(Component container) {
+               this.container = container;
+       }
+
+       public Component getContainer() {
+               return container;
+       }
 }

Modified: 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/data/LightingData.java
===================================================================
--- 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/data/LightingData.java
        2012-03-08 22:35:37 UTC (rev 28458)
+++ 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/data/LightingData.java
        2012-03-08 22:58:38 UTC (rev 28459)
@@ -61,4 +61,13 @@
                return displayLight[index];
        }
        
+       /**
+        * Set whether a light at a given index should be drawn to indicate its 
position.
+        * 
+        * @param index The index of the light, ranging from 0 to 
LightingData.NUM_LIGHTS (default 8)
+        * @param display Whether or not a representation of the light should 
be drawn to indicate its position.
+        */
+       public void setDisplayLight(int index, boolean display) {
+               displayLight[index] = display;
+       }
 }

Added: 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/input/ContextMenuInputHandler.java
===================================================================
--- 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/input/ContextMenuInputHandler.java
                            (rev 0)
+++ 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/input/ContextMenuInputHandler.java
    2012-03-08 22:58:38 UTC (rev 28459)
@@ -0,0 +1,34 @@
+package org.cytoscape.paperwing.internal.input;
+
+import java.awt.event.MouseEvent;
+import java.util.Set;
+
+import javax.swing.JMenuItem;
+import javax.swing.JPopupMenu;
+
+import org.cytoscape.paperwing.internal.data.GraphicsData;
+
+/**
+ * Input handler responsible for creating the right-click context menu.
+ */
+public class ContextMenuInputHandler implements InputHandler {
+
+       @Override
+       public void processInput(KeyboardMonitor keys, MouseMonitor mouse,
+                       GraphicsData graphicsData) {
+
+               processNetworkRightClickMenu(mouse, graphicsData);
+       }
+
+       private void processNetworkRightClickMenu(MouseMonitor mouse, 
GraphicsData graphicsData){
+               Set<Integer> pressed = mouse.getPressed();
+               
+               if (pressed.contains(MouseEvent.BUTTON3)) {
+                       JPopupMenu menu = new JPopupMenu("Empty Menu");
+                       menu.add(new JMenuItem("Sample Action"));
+                       
+                       System.out.println("Creating context menu at : " + 
mouse.x() + ", " + mouse.y());
+                       menu.show(graphicsData.getContainer(), mouse.x(), 
mouse.y());
+               }
+       }
+}


Property changes on: 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/input/ContextMenuInputHandler.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Modified: 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/input/LightMovementInputHandler.java
===================================================================
--- 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/input/LightMovementInputHandler.java
  2012-03-08 22:35:37 UTC (rev 28458)
+++ 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/input/LightMovementInputHandler.java
  2012-03-08 22:58:38 UTC (rev 28459)
@@ -1,5 +1,7 @@
 package org.cytoscape.paperwing.internal.input;
 
+import javax.swing.JPopupMenu;
+
 import org.cytoscape.paperwing.internal.WindVisualLexicon;
 import org.cytoscape.paperwing.internal.data.GraphicsData;
 import org.cytoscape.paperwing.internal.data.GraphicsSelectionData;
@@ -54,16 +56,16 @@
                                camera.getPosition(), currentLightPosition, 
camera.getDirection());
                
                // Capture mouse position
-               if (mouse.getPressed().contains(MouseEvent.BUTTON3)) {
+               if (mouse.getPressed().contains(MouseEvent.BUTTON1)) {
                        
                        currentMouseProjection.set(
-                                       GeometryToolkit.convertMouseTo3d(mouse, 
graphicsData, mouseProjectionDistance));
+                                       GeometryToolkit.convertMouseTo3d(mouse, 
graphicsData, mouseProjectionDistance));                        
                }
                
                // Capture new mouse position and use displacement to move 
lights
                if (mouse.hasMoved() 
-                               && mouse.getHeld().contains(MouseEvent.BUTTON3)
-                               && 
keys.getHeld().contains(KeyEvent.VK_CONTROL)) {
+                               && mouse.getHeld().contains(MouseEvent.BUTTON1)
+                               && keys.getHeld().contains(KeyEvent.VK_ALT)) {
                        
                        previousMouseProjection.set(currentMouseProjection);
                        currentMouseProjection.set(
@@ -79,7 +81,14 @@
                                        1.0f);
                        
                        updateLightVisualProperties(light, 
graphicsData.getNetworkView());
+                       
+                       lightingData.setDisplayLight(0, true);
                }
+               
+               if (mouse.getReleased().contains(MouseEvent.BUTTON1)) {
+                       lightingData.setDisplayLight(0, false);
+               }
+               
        }
        
        private void updateLightVisualProperties(Light light, CyNetworkView 
networkView) {

Modified: 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/input/MainInputProcessor.java
===================================================================
--- 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/input/MainInputProcessor.java
 2012-03-08 22:35:37 UTC (rev 28458)
+++ 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/input/MainInputProcessor.java
 2012-03-08 22:58:38 UTC (rev 28459)
@@ -21,6 +21,7 @@
                inputHandlers.add(new NetworkChangeInputHandler());
        
                inputHandlers.add(new LightMovementInputHandler());
+               inputHandlers.add(new ContextMenuInputHandler());
        }
        
        public void processInput(KeyboardMonitor keys, MouseMonitor mouse,

Modified: 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/rendering/RenderArcEdgesProcedure.java
===================================================================
--- 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/rendering/RenderArcEdgesProcedure.java
        2012-03-08 22:35:37 UTC (rev 28458)
+++ 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/rendering/RenderArcEdgesProcedure.java
        2012-03-08 22:58:38 UTC (rev 28459)
@@ -177,8 +177,6 @@
                CyNetworkView networkView = graphicsData.getNetworkView();
                GL2 gl = graphicsData.getGlContext();
                
-               gl.glDisable(GL2.GL_LIGHTING);
-               
                float[] specularReflection = { 0.1f, 0.1f, 0.1f, 1.0f };
                gl.glMaterialfv(GL2.GL_FRONT, GL2.GL_SPECULAR,
                                FloatBuffer.wrap(specularReflection));
@@ -266,8 +264,6 @@
                                }
                        }
                }
-               
-               gl.glEnable(GL2.GL_LIGHTING);
        }
        
        // Picks a color according to the edgeView and passes it to OpenGL

Modified: 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/rendering/RenderLightsProcedure.java
===================================================================
--- 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/rendering/RenderLightsProcedure.java
  2012-03-08 22:35:37 UTC (rev 28458)
+++ 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/rendering/RenderLightsProcedure.java
  2012-03-08 22:58:38 UTC (rev 28459)
@@ -36,15 +36,18 @@
                
                // Draw the light at index 0
                Light light = lightingData.getLight(0);
-               float[] lightPosition = light.getPosition();
                
-               gl.glPushMatrix();
-               gl.glTranslatef(lightPosition[0], lightPosition[1], 
lightPosition[2]);
-               
-               gl.glColor3f(1.0f, 1.0f, 0.6f);
-               shapeDrawer.drawShape(gl, ShapeType.SHAPE_SPHERE);
-                               
-               gl.glPopMatrix();
+               if (lightingData.displayLight(0)) {
+                       float[] lightPosition = light.getPosition();
+                       
+                       gl.glPushMatrix();
+                       gl.glTranslatef(lightPosition[0], lightPosition[1], 
lightPosition[2]);
+                       
+                       gl.glColor3f(1.0f, 1.0f, 0.6f);
+                       shapeDrawer.drawShape(gl, ShapeType.SHAPE_SPHERE);
+                                       
+                       gl.glPopMatrix();
+               }
        }
 
 }

Modified: 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/rendering/RenderNodesProcedure.java
===================================================================
--- 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/rendering/RenderNodesProcedure.java
   2012-03-08 22:35:37 UTC (rev 28458)
+++ 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/rendering/RenderNodesProcedure.java
   2012-03-08 22:58:38 UTC (rev 28459)
@@ -64,7 +64,7 @@
                float[] specularReflection = { 0.46f, 0.46f, 0.46f, 1.0f };
                gl.glMaterialfv(GL2.GL_FRONT, GL2.GL_SPECULAR,
                                FloatBuffer.wrap(specularReflection));
-               gl.glMateriali(GL2.GL_FRONT, GL2.GL_SHININESS, 21);
+               gl.glMateriali(GL2.GL_FRONT, GL2.GL_SHININESS, 13);
                
                CyNetworkView networkView = graphicsData.getNetworkView();
                float distanceScale = graphicsData.getDistanceScale();

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