Author: paperwing
Date: 2011-06-02 11:30:39 -0700 (Thu, 02 Jun 2011)
New Revision: 25620

Added:
   
csplugins/trunk/toronto/paperwing/TestLibrary/src/test/java/KeyboardMonitor.java
   csplugins/trunk/toronto/paperwing/TestLibrary/src/test/java/MouseMonitor.java
Modified:
   csplugins/trunk/toronto/paperwing/TestLibrary/src/test/java/TestGraphics.java
Log:
mouse, keyboard input implemented for jogl implementation

Added: 
csplugins/trunk/toronto/paperwing/TestLibrary/src/test/java/KeyboardMonitor.java
===================================================================
--- 
csplugins/trunk/toronto/paperwing/TestLibrary/src/test/java/KeyboardMonitor.java
                            (rev 0)
+++ 
csplugins/trunk/toronto/paperwing/TestLibrary/src/test/java/KeyboardMonitor.java
    2011-06-02 18:30:39 UTC (rev 25620)
@@ -0,0 +1,72 @@
+import java.awt.event.KeyEvent;
+import java.awt.event.KeyListener;
+import java.util.Set;
+import java.util.TreeSet;
+
+
+public class KeyboardMonitor implements KeyListener {
+
+       private TreeSet<Integer> justPressed;
+       private TreeSet<Integer> keysDown;
+       private TreeSet<Integer> justReleased;
+       
+       private boolean hasNew = false;
+       private boolean hasHeld = false;
+       
+       public KeyboardMonitor() {
+               justPressed = new TreeSet<Integer>();
+               keysDown = new TreeSet<Integer>();
+               justReleased = new TreeSet<Integer>();
+       }
+       
+       public boolean hasNew() {
+               return hasNew;
+       }
+       
+       public boolean hasHeld() {
+               return !keysDown.isEmpty();
+       }
+       
+       public Set<Integer> getPressed() {
+               return justPressed;
+       }
+       
+       public Set<Integer> getHeld() {
+               return keysDown;
+       }
+       
+       public Set<Integer> getReleased() {
+               return justReleased;
+       }
+       
+       @Override
+       public void keyPressed(KeyEvent event) {
+               Integer key = event.getKeyCode();
+               
+               if (!keysDown.contains(key)) {
+                       justPressed.add(key);
+                       keysDown.add(key);
+                       hasNew = true;
+               }
+       }
+
+       @Override
+       public void keyReleased(KeyEvent event) {
+               justReleased.add(event.getKeyCode());
+               keysDown.remove(event.getKeyCode());
+               hasNew = true;
+       }
+       
+       @Override
+       public void keyTyped(KeyEvent event) {
+       }
+       
+       // Method should be called when wanting to clear the list of newly 
pressed and released keys
+       public void update() {
+               justPressed.clear();
+               justReleased.clear();
+               hasNew = false;
+       }
+       
+
+}


Property changes on: 
csplugins/trunk/toronto/paperwing/TestLibrary/src/test/java/KeyboardMonitor.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: 
csplugins/trunk/toronto/paperwing/TestLibrary/src/test/java/MouseMonitor.java
===================================================================
--- 
csplugins/trunk/toronto/paperwing/TestLibrary/src/test/java/MouseMonitor.java   
                            (rev 0)
+++ 
csplugins/trunk/toronto/paperwing/TestLibrary/src/test/java/MouseMonitor.java   
    2011-06-02 18:30:39 UTC (rev 25620)
@@ -0,0 +1,134 @@
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
+import java.awt.event.MouseMotionListener;
+import java.awt.event.MouseWheelEvent;
+import java.awt.event.MouseWheelListener;
+import java.util.Set;
+import java.util.TreeSet;
+
+
+public class MouseMonitor implements MouseListener, MouseMotionListener, 
MouseWheelListener {
+       private int prevX;
+       private int prevY;
+       private int currentX;
+       private int currentY;
+       private int wheelChange;
+       
+       private boolean hasMoved;
+       private boolean hasNew;
+       
+       private boolean ignoreNext;
+       
+       private TreeSet<Integer> justPressed;
+       private TreeSet<Integer> buttonsDown;
+       private TreeSet<Integer> justReleased;
+       
+       public MouseMonitor() {
+               justPressed = new TreeSet<Integer>();
+               buttonsDown = new TreeSet<Integer>();
+               justReleased = new TreeSet<Integer>();
+               
+               ignoreNext = true;
+       }
+       
+       public Set<Integer> getPressed() {
+               return justPressed;
+       }
+       
+       public Set<Integer> getReleased() {
+               return justReleased;
+       }
+       
+       public Set<Integer> getHeld() {
+               return buttonsDown;
+       }
+       
+       public boolean hasNew() {
+               return hasNew;
+       }
+       
+       public boolean hasMoved() {
+               return hasMoved;
+       }
+       
+       public int dX() {
+               return currentX - prevX;
+       }
+       
+       public int dY() {
+               return currentY - prevY;
+       }
+       
+       public int dWheel() {
+               return wheelChange;
+       }
+       
+       @Override
+       public void mouseDragged(MouseEvent event) {
+       }
+
+       @Override
+       public void mouseMoved(MouseEvent event) {
+               hasMoved = true;
+               currentX = event.getX();
+               currentY = event.getY();
+               
+               if (ignoreNext) {
+                       prevX = currentX;
+                       prevY = currentY;
+                       ignoreNext = false;
+               }
+       }
+
+       @Override
+       public void mouseClicked(MouseEvent event) {
+       }
+
+       @Override
+       public void mouseEntered(MouseEvent event) {
+               ignoreNext = false;
+       }
+
+       @Override
+       public void mouseExited(MouseEvent event) {
+               ignoreNext = false;
+       }
+
+       @Override
+       public void mousePressed(MouseEvent event) {
+               Integer button = event.getButton();
+               
+               if (button != MouseEvent.NOBUTTON) {
+                       justPressed.add(button);
+                       buttonsDown.add(button);
+                       hasNew = true;
+               }
+       }
+
+       @Override
+       public void mouseReleased(MouseEvent event) {
+               justReleased.add(event.getButton());
+               buttonsDown.remove(event.getButton());
+               hasNew = true;
+       }
+
+       @Override
+       public void mouseWheelMoved(MouseWheelEvent event) {
+               wheelChange += event.getWheelRotation();
+               hasNew = true;
+       }
+       
+       // Clear just pressed and just released buttons
+       public void update() {
+               justPressed.clear();
+               justReleased.clear();
+               hasNew = false;
+               hasMoved = false;
+               
+               wheelChange = 0;
+               prevX = currentX;
+               prevY = currentY;
+       }
+       
+
+}


Property changes on: 
csplugins/trunk/toronto/paperwing/TestLibrary/src/test/java/MouseMonitor.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Modified: 
csplugins/trunk/toronto/paperwing/TestLibrary/src/test/java/TestGraphics.java
===================================================================
--- 
csplugins/trunk/toronto/paperwing/TestLibrary/src/test/java/TestGraphics.java   
    2011-06-02 02:55:48 UTC (rev 25619)
+++ 
csplugins/trunk/toronto/paperwing/TestLibrary/src/test/java/TestGraphics.java   
    2011-06-02 18:30:39 UTC (rev 25620)
@@ -1,4 +1,8 @@
+import java.awt.event.KeyListener;
 import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
+import java.awt.event.MouseMotionListener;
+import java.awt.event.MouseWheelListener;
 import java.awt.event.WindowAdapter;
 import java.awt.event.WindowEvent;
 import java.nio.FloatBuffer;
@@ -19,12 +23,12 @@
 import com.jogamp.opengl.util.FPSAnimator;
 import com.jogamp.opengl.util.gl2.GLUT;
 
-public class TestGraphics implements GLEventListener, MouseInputListener{
+public class TestGraphics implements GLEventListener {
 
-       private static final int NODE_COUNT = 30000;
+       private static final int NODE_COUNT = 10;
        private static final int EDGE_COUNT = 0;
        private static final float LARGE_SPHERE_RADIUS = 2.0f;
-       private static final float SMALL_SPHERE_RADIUS = 0.03f;
+       private static final float SMALL_SPHERE_RADIUS = 0.015f;
        private static final float EDGE_RADIUS = 0.008f;
 
        private static final int NODE_SLICES_DETAIL = 6;
@@ -72,7 +76,26 @@
        private float xFace = 1.0f;
        private float yFace = 0.0f;
        private float zFace = 0.0f;
+       
+       private KeyboardMonitor keys = new KeyboardMonitor();
+       private MouseMonitor mouse = new MouseMonitor();
 
+       public KeyListener getKeyListener() {
+               return keys;
+       }
+       
+       public MouseListener getMouseListener() {
+               return mouse;
+       }
+       
+       public MouseMotionListener getMouseMotionListener() {
+               return mouse;
+       }
+       
+       public MouseWheelListener getMouseWheelListener() {
+               return mouse;
+       }
+       
        /**
         * @param args
         */
@@ -93,8 +116,9 @@
                TestGraphics graphics = new TestGraphics();
 
                canvas.addGLEventListener(graphics);
-               canvas.addMouseListener(graphics);
-               canvas.addMouseMotionListener(graphics);
+               // canvas.addMouseListener(graphics);
+               // canvas.addMouseMotionListener(graphics);
+               graphics.getKeyListener();
                frame.add(canvas);
 
                frame.addWindowListener(new WindowAdapter() {
@@ -107,6 +131,11 @@
 
                frame.setVisible(true);
 
+               canvas.addKeyListener(graphics.getKeyListener());
+               canvas.addMouseListener(graphics.getMouseListener());
+               
canvas.addMouseMotionListener(graphics.getMouseMotionListener());
+               canvas.addMouseWheelListener(graphics.getMouseWheelListener());
+               
                FPSAnimator animator = new FPSAnimator(60);
                animator.add(canvas);
                animator.start();
@@ -138,6 +167,7 @@
                float overhang = 0.0f;
 
                
+               /*
                // Draw X axis gl.glTranslatef(-overhang, 0.0f, 0.0f);
                gl.glRotatef(90, 0, 1, 0); gl.glColor3f(1.0f, 0.0f, 0.0f);
                glut.glutSolidCylinder(0.005f, axisLength, 6, 3); 
gl.glRotatef(-90, 0, 1, 0); gl.glTranslatef(overhang, 0.0f, 0.0f);
@@ -149,14 +179,14 @@
                // Draw Z axis gl.glTranslatef(0.0f, 0.0f, -overhang);
                gl.glColor3f(0.0f, 0.0f, 1.0f); glut.glutSolidCylinder(0.005f,
                axisLength, 6, 3); gl.glTranslatef(0.0f, 0.0f, overhang);
-                
+               */
 
                // gl.glRotatef(90, 0.0f, -1.0f, 0.0f);
 
                float[] specularReflection = { 1.0f, 1.0f, 1.0f, 1.0f };
                gl.glMaterialfv(GL2.GL_FRONT, GL2.GL_SPECULAR,
                                FloatBuffer.wrap(specularReflection));
-               gl.glMateriali(GL2.GL_FRONT, GL2.GL_SHININESS, 20);
+               gl.glMateriali(GL2.GL_FRONT, GL2.GL_SHININESS, 40);
 
                gl.glColor3f(0.73f, 0.73f, 0.75f);
                drawNodes(gl);
@@ -165,6 +195,29 @@
                // drawNodesEdges(gl);
 
                framesElapsed++;
+               
+               
+               if (keys.hasNew()) {
+                       System.out.println("Keys down: " + keys.getHeld());
+                       keys.update();
+               }
+               
+               if (mouse.hasNew()) {
+                       System.out.println("Mouse keys down: " + 
mouse.getHeld());
+                       System.out.println("Mouse scroll change: " + 
mouse.dWheel());
+                       mouse.update();
+               }
+               
+               /*
+               if (mouse.hasMoved()) {
+                       System.out.println("dx: " + mouse.dX());
+                       System.out.println("dy: " + mouse.dY());
+                       mouse.update();
+               }
+               */
+               
+               //GLU glu = new GLU();
+               //glu.gluLookAt(0, 0, 0, 0, 1, 0, 0, 0, 1);
        }
 
        private void drawNodes(GL2 gl) {
@@ -232,8 +285,11 @@
                generateNodes();
                generateEdges();
                startTime = System.nanoTime();
-               // createDisplayListsIndividual(gl);
+               //createDisplayListsIndividual(gl);
                createDisplayLists(gl);
+               
+               //drawable.addGLEventListener(arg0)
+               //keys = new KeyboardMonitor();
        }
 
        private void createDisplayListsIndividual(GL2 gl) {
@@ -427,25 +483,8 @@
                gl.glLoadIdentity();
        }
 
+       /*
        @Override
-       public void mouseClicked(MouseEvent e) {
-       }
-
-       @Override
-       public void mouseEntered(MouseEvent e) {
-       }
-
-       @Override
-       public void mouseExited(MouseEvent arg0) {
-       }
-
-       @Override
-       public void mousePressed(MouseEvent e) {
-               lastX = e.getX();
-               lastY = e.getY();
-       }
-
-       @Override
        public void mouseReleased(MouseEvent arg0) {
                endTime = System.nanoTime();
 
@@ -457,7 +496,9 @@
                rotateY(1);
                System.out.println("New facing: (" + xFace + ", " + yFace + ", 
" + zFace + ")");
        }
+       */
 
+       /*
        @Override
        public void mouseDragged(MouseEvent e) {
                float xDelta = e.getX() - lastX;
@@ -476,6 +517,7 @@
                lastX = e.getX();
                lastY = e.getY();
        }
+       */
 
        // Rotation about the absolute y-axis, by the right-hand rule
        private void rotateY(float degrees) {
@@ -540,8 +582,4 @@
                zFace = (float) Math.cos(Math.toRadians(newAngle)) * radius;
                yFace = (float) -Math.sin(Math.toRadians(newAngle)) * radius;
        }
-       
-       @Override
-       public void mouseMoved(MouseEvent e) {
-       }
 }
\ No newline at end of file

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