Author: paperwing
Date: 2011-06-08 11:48:58 -0700 (Wed, 08 Jun 2011)
New Revision: 25673

Added:
   
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/WindMapRenderingEngineFactory.java
Modified:
   csplugins/trunk/toronto/yuedong/paperwing-impl/
   
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/KeyboardMonitor.java
   
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/MouseMonitor.java
   
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/SampleAction.java
   
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/TestGraphics.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/WindRenderingEngineFactory.java
   
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/resources/META-INF/spring/bundle-context-osgi.xml
   
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/resources/META-INF/spring/bundle-context.xml
Log:
Updated RenderingEngineFactory, RenderingEngine, also plans created for 
organizing the RenderingEngine


Property changes on: csplugins/trunk/toronto/yuedong/paperwing-impl
___________________________________________________________________
Added: svn:ignore
   + target


Modified: 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/KeyboardMonitor.java
===================================================================
--- 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/KeyboardMonitor.java
  2011-06-08 04:38:48 UTC (rev 25672)
+++ 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/KeyboardMonitor.java
  2011-06-08 18:48:58 UTC (rev 25673)
@@ -1,11 +1,13 @@
 package org.cytoscape.paperwing.internal;
+import java.awt.event.FocusEvent;
+import java.awt.event.FocusListener;
 import java.awt.event.KeyEvent;
 import java.awt.event.KeyListener;
 import java.util.Set;
 import java.util.TreeSet;
 
 
-public class KeyboardMonitor implements KeyListener {
+public class KeyboardMonitor implements KeyListener, FocusListener {
 
        private TreeSet<Integer> justPressed;
        private TreeSet<Integer> keysDown;
@@ -68,6 +70,19 @@
                justReleased.clear();
                hasNew = false;
        }
+
+       @Override
+       public void focusGained(FocusEvent event) {
+               
+       }
+
+       @Override
+       public void focusLost(FocusEvent event) {
+               // Release all keys
+               justReleased.addAll(keysDown);
+               keysDown.clear();
+               hasNew = true;
+       }
        
 
 }

Modified: 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/MouseMonitor.java
===================================================================
--- 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/MouseMonitor.java
     2011-06-08 04:38:48 UTC (rev 25672)
+++ 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/MouseMonitor.java
     2011-06-08 18:48:58 UTC (rev 25673)
@@ -1,6 +1,8 @@
 package org.cytoscape.paperwing.internal;
 import java.awt.AWTException;
 import java.awt.Robot;
+import java.awt.event.FocusEvent;
+import java.awt.event.FocusListener;
 import java.awt.event.MouseEvent;
 import java.awt.event.MouseListener;
 import java.awt.event.MouseMotionListener;
@@ -10,7 +12,7 @@
 import java.util.TreeSet;
 
 
-public class MouseMonitor implements MouseListener, MouseMotionListener, 
MouseWheelListener {
+public class MouseMonitor implements MouseListener, MouseMotionListener, 
MouseWheelListener, FocusListener {
        private int prevX;
        private int prevY;
        private int currentX;
@@ -144,6 +146,19 @@
                }
                
        }
+
+       @Override
+       public void focusGained(FocusEvent event) {
+       }
+
+       @Override
+       public void focusLost(FocusEvent event) {
+               // Release all keys
+               justReleased.addAll(buttonsDown);
+               buttonsDown.clear();
+               ignoreNext = true;
+               hasNew = true;
+       }
        
 
 }

Modified: 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/SampleAction.java
===================================================================
--- 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/SampleAction.java
     2011-06-08 04:38:48 UTC (rev 25672)
+++ 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/SampleAction.java
     2011-06-08 18:48:58 UTC (rev 25673)
@@ -59,7 +59,6 @@
                // applicationManager.
 
                canvas.addGLEventListener(graphics);
-               graphics.getKeyListener();
                frame.add(canvas);
 
                frame.addWindowListener(new WindowAdapter() {
@@ -72,11 +71,7 @@
 
                frame.setVisible(true);
                
-               frame.addKeyListener(graphics.getKeyListener());
-               canvas.addKeyListener(graphics.getKeyListener());
-               canvas.addMouseListener(graphics.getMouseListener());
-               
canvas.addMouseMotionListener(graphics.getMouseMotionListener());
-               canvas.addMouseWheelListener(graphics.getMouseWheelListener());
+               graphics.trackInput(canvas);
                
                FPSAnimator animator = new FPSAnimator(60);
                animator.add(canvas);

Modified: 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/TestGraphics.java
===================================================================
--- 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/TestGraphics.java
     2011-06-08 04:38:48 UTC (rev 25672)
+++ 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/TestGraphics.java
     2011-06-08 18:48:58 UTC (rev 25673)
@@ -1,4 +1,5 @@
 package org.cytoscape.paperwing.internal;
+import java.awt.Component;
 import java.awt.event.KeyEvent;
 import java.awt.event.KeyListener;
 import java.awt.event.MouseEvent;
@@ -26,6 +27,7 @@
 
 import org.cytoscape.session.CyApplicationManager;
 import org.cytoscape.model.CyNetworkManager;
+import org.cytoscape.view.model.CyNetworkView;
 import org.cytoscape.view.model.CyNetworkViewManager;
 import org.cytoscape.view.presentation.RenderingEngineManager;
 
@@ -42,9 +44,6 @@
        private static final int EDGE_SLICES_DETAIL = 3;
        private static final int EDGE_STACKS_DETAIL = 1;
 
-       private DrawnNode[] nodes;
-       private DrawnEdge[] edges;
-
        private class DrawnNode {
                public float x;
                public float y;
@@ -61,6 +60,9 @@
                public float rotateAngle;
                public float length;
        }
+       
+       private DrawnNode[] nodes;
+       private DrawnEdge[] edges;
 
        private int nodeListIndex;
        private int edgeListIndex;
@@ -81,6 +83,15 @@
        private CyNetworkViewManager networkViewManager;
        private RenderingEngineManager renderingEngineManager;
        
+       static {
+               
+       }
+       
+       public static void initSingleton() {
+               GLProfile.initSingleton(false);
+               System.out.println("initSingleton called");
+       }
+       
        public TestGraphics() {
                keys = new KeyboardMonitor();
                mouse = new MouseMonitor();
@@ -90,22 +101,16 @@
                                new Vector3(0, 1, 0), 0.04, 0.003, 0.01, 0.01, 
0.4);
        }
        
-       public KeyListener getKeyListener() {
-               return keys;
+       public void trackInput(Component component) {
+               component.addMouseListener(mouse);
+               component.addMouseMotionListener(mouse);
+               component.addMouseWheelListener(mouse);
+               component.addFocusListener(mouse);
+               
+               component.addKeyListener(keys);
+               component.addFocusListener(keys);
        }
        
-       public MouseListener getMouseListener() {
-               return mouse;
-       }
-       
-       public MouseMotionListener getMouseMotionListener() {
-               return mouse;
-       }
-       
-       public MouseWheelListener getMouseWheelListener() {
-               return mouse;
-       }
-       
        public void setManagers(CyApplicationManager applicationManager,
                        CyNetworkManager networkManager,
                        CyNetworkViewManager networkViewManager,
@@ -130,7 +135,6 @@
                TestGraphics graphics = new TestGraphics();
 
                canvas.addGLEventListener(graphics);
-               graphics.getKeyListener();
                frame.add(canvas);
 
                frame.addWindowListener(new WindowAdapter() {
@@ -142,15 +146,12 @@
 
                frame.setVisible(true);
                
-               frame.addKeyListener(graphics.getKeyListener());
-               canvas.addKeyListener(graphics.getKeyListener());
-               canvas.addMouseListener(graphics.getMouseListener());
-               
canvas.addMouseMotionListener(graphics.getMouseMotionListener());
-               canvas.addMouseWheelListener(graphics.getMouseWheelListener());
+               graphics.trackInput(frame.getContentPane());
                
                FPSAnimator animator = new FPSAnimator(60);
                animator.add(canvas);
                animator.start();
+               // animator.pause()
        }
 
        @Override
@@ -280,6 +281,11 @@
                                if (pressed.contains(KeyEvent.VK_N)) {
                                        System.out.println("current rendering 
engine: "
                                                        + 
applicationManager.getCurrentRenderingEngine().getClass().getName());
+                                       
+                                       System.out.println("number of rendering 
engines: "
+                                                       + 
renderingEngineManager.getAllRenderingEngines().size());
+                                       
+                                       
                                }
                                
                                if (pressed.contains(KeyEvent.VK_M)) {
@@ -291,7 +297,13 @@
                                }
                                
                                if (pressed.contains(KeyEvent.VK_COMMA)) {
+                                       System.out.println("networkViewSet: " + 
networkViewManager.getNetworkViewSet());
                                        
+                                       for (CyNetworkView view : 
networkViewManager.getNetworkViewSet()) {
+                                               System.out.println("current 
model: " + view.getModel());
+                                               System.out.println("current 
model suid: " + view.getModel().getSUID());
+                                               System.out.println("current 
suid: " + view.getSUID());  
+                                       }
                                }
 
                        
@@ -325,7 +337,7 @@
                }
                
                if (mouse.hasMoved() || mouse.hasNew()) {
-                       if (mouse.getHeld().contains(MouseEvent.BUTTON1)) {
+                       if (keys.getHeld().contains(KeyEvent.VK_SHIFT)) {
                                camera.turnRight(mouse.dX());
                                camera.turnUp(mouse.dY());
                        }

Added: 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/WindMapRenderingEngineFactory.java
===================================================================
--- 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/WindMapRenderingEngineFactory.java
                            (rev 0)
+++ 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/WindMapRenderingEngineFactory.java
    2011-06-08 18:48:58 UTC (rev 25673)
@@ -0,0 +1,145 @@
+package org.cytoscape.paperwing.internal;
+
+import java.awt.BorderLayout;
+import java.awt.Container;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+
+import javax.media.opengl.GLCapabilities;
+import javax.media.opengl.GLProfile;
+import javax.media.opengl.awt.GLCanvas;
+import javax.media.opengl.awt.GLJPanel;
+import javax.swing.JComponent;
+import javax.swing.JInternalFrame;
+
+import org.cytoscape.model.CyNetwork;
+import org.cytoscape.view.model.CyNetworkView;
+import org.cytoscape.view.model.CyNetworkViewManager;
+import org.cytoscape.view.model.View;
+import org.cytoscape.view.model.VisualLexicon;
+import org.cytoscape.view.presentation.RenderingEngine;
+import org.cytoscape.view.presentation.RenderingEngineFactory;
+import org.cytoscape.view.presentation.RenderingEngineManager;
+
+import com.jogamp.opengl.util.FPSAnimator;
+
+public class WindMapRenderingEngineFactory implements 
RenderingEngineFactory<CyNetwork> {
+
+       private CyNetworkViewManager networkViewManager;
+       private RenderingEngineManager renderingEngineManager;
+       private final VisualLexicon visualLexicon;
+       
+       public WindMapRenderingEngineFactory(CyNetworkViewManager 
networkViewManager, RenderingEngineManager renderingEngineManager, 
VisualLexicon lexicon) {   
+               this.networkViewManager = networkViewManager;
+               this.renderingEngineManager = renderingEngineManager;
+               this.visualLexicon = lexicon;
+       }
+       
+       @Override
+       public RenderingEngine<CyNetwork> getInstance(
+                       Object container, View<CyNetwork> viewModel) {
+
+               if (container instanceof JComponent) {
+                       System.out.println("map getInstance called");
+                       
+                       JComponent component = (JComponent) container;
+                       // component.removeAll();
+                       // System.out.println("number of components in 
container after remove: " + component.getComponents().length);
+                       
+                       // Use the system's default version of OpenGL
+                       GLProfile profile = GLProfile.getDefault();
+                       
+                       // TODO: changed true to false, check for performance 
difference
+                       // GLProfile.initSingleton(false);
+
+                       GLCapabilities capabilities = new 
GLCapabilities(profile);
+
+                       // TODO: check whether to use GLCanvas or GLJPanel
+                       // GLCanvas canvas = new GLCanvas(capabilities);
+                       GLJPanel canvas = new GLJPanel(capabilities);
+                       // canvas.setBorder(BorderFactory.createEmptyBorder(5, 
5, 5, 5));
+
+                       TestGraphics graphics = new TestGraphics();
+
+                       canvas.addGLEventListener(graphics);
+       
+                       if (container instanceof JInternalFrame) {
+                               JInternalFrame frame = (JInternalFrame) 
container;
+                               Container pane = frame.getContentPane();
+                               
+                               graphics.trackInput(pane);
+                               
+                               /*
+                               JPanel panel = new JPanel();
+                               panel.setLayout(new BorderLayout());
+                               panel.add(canvas, BorderLayout.CENTER);
+                               component.add(panel, BorderLayout.CENTER);
+                               */
+                               
+                               pane.setLayout(new BorderLayout());
+                               pane.add(canvas, BorderLayout.CENTER);
+                               
+                               // TODO: check if this line needed
+                               pane.setVisible(true);
+                       } else {
+                               graphics.trackInput(component);
+                               // graphics.trackInput(canvas);
+                               
+                               component.setLayout(new BorderLayout());
+                               // component.add(canvas, BorderLayout.CENTER);
+                       }
+                       
+                       graphics.setManagers(null, null, networkViewManager, 
renderingEngineManager);
+                       
+                       //FPSAnimator animator = new FPSAnimator(60);
+                       //animator.add(canvas);
+                       //animator.start();
+                       
+                       // Animator animator = new Animator(canvas);
+                       // animator.setRunAsFastAsPossible(true);
+                       // animator.start();
+               }
+               
+               /* For code below, seems that NetworkViewManager does not 
contain references to all available NetworkViews
+                */
+               System.out.println("map given model: " + viewModel.getModel());
+               System.out.println("map given model suid: " + 
viewModel.getModel().getSUID());
+               System.out.println("map given suid: " + viewModel.getSUID());
+               System.out.println("map networkViewSet: " + 
networkViewManager.getNetworkViewSet());
+               
+               /*
+               // CyNetworkView networkView = 
networkViewManager.getNetworkView(viewModel.getSUID());
+               CyNetworkView networkView = null;
+               for (CyNetworkView view : 
networkViewManager.getNetworkViewSet()) {
+                       if (view.getModel() == viewModel.getModel()) {
+                               networkView = view;
+                       }
+                       System.out.println("current model: " + view.getModel());
+                       System.out.println("current model suid: " + 
view.getModel().getSUID());
+                       System.out.println("current suid: " + view.getSUID());
+                       
+                       
+               }
+               // viewModel.getModel().
+               
+               System.out.println("Returning networkView: " + networkView);
+               */
+               
+               //TODO: NetworkViewManager does not contain all instances of 
CyNetworkView, so wait 
+               WindRenderingEngine engine = new 
WindRenderingEngine(networkViewManager, viewModel, visualLexicon);
+               System.out.println("map returning engine: " + engine);
+               renderingEngineManager.addRenderingEngine(engine);
+               
+               
+               // TODO Auto-generated method stub
+               return engine;
+       }
+
+       @Override
+       public VisualLexicon getVisualLexicon() {
+               // System.out.println("getVisualLexicon call");
+               
+               return visualLexicon;
+       }
+
+}


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

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
      2011-06-08 04:38:48 UTC (rev 25672)
+++ 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/WindRenderingEngine.java
      2011-06-08 18:48:58 UTC (rev 25673)
@@ -1,35 +1,128 @@
 package org.cytoscape.paperwing.internal;
 
+import java.awt.BorderLayout;
 import java.awt.Color;
+import java.awt.Container;
 import java.awt.Image;
+import java.awt.event.FocusEvent;
+import java.awt.event.FocusListener;
 import java.awt.image.BufferedImage;
 import java.awt.print.Printable;
 import java.util.Properties;
 
+import javax.media.opengl.GLCapabilities;
+import javax.media.opengl.GLProfile;
+import javax.media.opengl.awt.GLJPanel;
 import javax.swing.Icon;
 import javax.swing.ImageIcon;
+import javax.swing.JComponent;
+import javax.swing.JInternalFrame;
 
 import org.cytoscape.model.CyNetwork;
 import org.cytoscape.view.model.CyNetworkView;
+import org.cytoscape.view.model.CyNetworkViewManager;
 import org.cytoscape.view.model.View;
 import org.cytoscape.view.model.VisualLexicon;
 import org.cytoscape.view.model.VisualProperty;
 import org.cytoscape.view.presentation.RenderingEngine;
 
+import com.jogamp.opengl.util.FPSAnimator;
+
 public class WindRenderingEngine implements RenderingEngine<CyNetwork> {
 
+       private static CyNetworkViewManager networkViewManager;
+       
+       private CyNetworkView networkView;
        private View<CyNetwork> viewModel;
-       private VisualLexicon lexicon;
+       private VisualLexicon visualLexicon;
        
-       public WindRenderingEngine(View<CyNetwork> viewModel, VisualLexicon 
lexicon) {
+       private FPSAnimator animator;
+       
+       private boolean active;
+       
+       public WindRenderingEngine(Object container, View<CyNetwork> viewModel, 
VisualLexicon visualLexicon) {
+               // this.networkView = networkView;
+       
                this.viewModel = viewModel;
-               this.lexicon = lexicon;
+               this.visualLexicon = visualLexicon;
+               this.active = false;
                
-               //System.out.println("renderingengine viewMondel: " + 
viewModel);
-               //System.out.println("renderingengine visualLexicon: " + 
lexicon);
-               //System.out.println("");
+               if (networkViewManager != null) {
+                       this.networkView = 
networkViewManager.getNetworkView(viewModel.getModel().getSUID());
+               }
+               
+               if (this.networkView != null) {
+                       System.out.println("Setting up canvas..");
+                       setUpCanvas(container);
+               }
        }
        
+       public static void setNetworkViewManager(CyNetworkViewManager 
networkViewManager) {
+               WindRenderingEngine.networkViewManager = networkViewManager;
+       }
+       
+       public boolean isActive() {
+               return active;
+       }
+       
+       private void setUpCanvas(Object container) {
+               if (container instanceof JComponent) {                  
+                       JComponent component = (JComponent) container;
+                       Container focus = component;
+                       
+                       // Use the system's default version of OpenGL
+                       GLProfile profile = GLProfile.getDefault();
+                       GLCapabilities capabilities = new 
GLCapabilities(profile);
+
+                       // TODO: check whether to use GLCanvas or GLJPanel
+                       GLJPanel panel = new GLJPanel(capabilities);
+                       
+                       TestGraphics graphics = new TestGraphics();
+
+                       panel.addGLEventListener(graphics);
+       
+                       if (container instanceof JInternalFrame) {
+                               JInternalFrame frame = (JInternalFrame) 
container;
+                               Container pane = frame.getContentPane();
+                               
+                               focus = pane;
+                               graphics.trackInput(pane);
+                               
+                               pane.setLayout(new BorderLayout());
+                               pane.add(panel, BorderLayout.CENTER);
+                       } else {
+                               graphics.trackInput(component);
+                               
+                               component.setLayout(new BorderLayout());
+                               component.add(panel, BorderLayout.CENTER);
+                       }
+                       
+                       animator = new FPSAnimator(60);
+                       animator.add(panel);
+
+                       focus.addFocusListener(new FocusListener() {
+
+                               @Override
+                               public void focusGained(FocusEvent event) {
+                                       if (!event.isTemporary()) {
+                                               System.out.println("Animator 
started for: " + this);
+                                               animator.start();
+                                       }
+                               }
+
+                               @Override
+                               public void focusLost(FocusEvent event) {
+                                       if (!event.isTemporary()) {
+                                               System.out.println("Animator 
stopped for: " + this);
+                                               animator.stop();
+                                       }
+                               }
+                       });
+                       
+                       active = true;
+               }
+       }
+       
        @Override
        public View<CyNetwork> getViewModel() {
                return viewModel;
@@ -37,7 +130,7 @@
 
        @Override
        public VisualLexicon getVisualLexicon() {
-               return lexicon;
+               return visualLexicon;
        }
 
        @Override
@@ -55,14 +148,16 @@
        @Override
        public Image createImage(int width, int height) {
                // TODO Auto-generated method stub
-               return new BufferedImage(0, width, height);
+               return null;
+               //return new BufferedImage(0, width, height);
        }
 
        @Override
        public <V> Icon createIcon(VisualProperty<V> vp, V value, int width,
                        int height) {
                // TODO Auto-generated method stub
-               return new ImageIcon();
+               return null;
+               //return new ImageIcon();
        }
 
 }

Modified: 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/WindRenderingEngineFactory.java
===================================================================
--- 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/WindRenderingEngineFactory.java
       2011-06-08 04:38:48 UTC (rev 25672)
+++ 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/WindRenderingEngineFactory.java
       2011-06-08 18:48:58 UTC (rev 25673)
@@ -1,79 +1,87 @@
 package org.cytoscape.paperwing.internal;
 
+import java.awt.BorderLayout;
+import java.awt.Container;
 import java.awt.event.WindowAdapter;
 import java.awt.event.WindowEvent;
 
 import javax.media.opengl.GLCapabilities;
 import javax.media.opengl.GLProfile;
 import javax.media.opengl.awt.GLCanvas;
+import javax.media.opengl.awt.GLJPanel;
+import javax.swing.BorderFactory;
+import javax.swing.JButton;
 import javax.swing.JComponent;
+import javax.swing.JInternalFrame;
+import javax.swing.JPanel;
 
 import org.cytoscape.model.CyNetwork;
+import org.cytoscape.view.model.CyNetworkView;
+import org.cytoscape.view.model.CyNetworkViewManager;
 import org.cytoscape.view.model.View;
 import org.cytoscape.view.model.VisualLexicon;
 import org.cytoscape.view.presentation.RenderingEngine;
 import org.cytoscape.view.presentation.RenderingEngineFactory;
 import org.cytoscape.view.presentation.RenderingEngineManager;
 
+import com.jogamp.opengl.util.Animator;
 import com.jogamp.opengl.util.FPSAnimator;
 
 public class WindRenderingEngineFactory implements 
RenderingEngineFactory<CyNetwork> {
 
-       private final VisualLexicon lexicon;
-       private RenderingEngineManager manager;
+       private CyNetworkViewManager networkViewManager;
+       private RenderingEngineManager renderingEngineManager;
+       private final VisualLexicon visualLexicon;
        
-       public WindRenderingEngineFactory(RenderingEngineManager manager, 
VisualLexicon lexicon) {
+       public WindRenderingEngineFactory(CyNetworkViewManager 
networkViewManager, RenderingEngineManager renderingEngineManager, 
VisualLexicon lexicon) {      
+               this.networkViewManager = networkViewManager;
+               this.renderingEngineManager = renderingEngineManager;
+               this.visualLexicon = lexicon;
                
-               this.lexicon = lexicon;
-               this.manager = manager;
-               
+               TestGraphics.initSingleton();
+               WindRenderingEngine.setNetworkViewManager(networkViewManager);
        }
        
        @Override
        public RenderingEngine<CyNetwork> getInstance(
                        Object container, View<CyNetwork> viewModel) {
                
-               //if (container instanceof JComponent) {
-               if (false) {
-                       System.out.println("Adding canvas");
-                       
-                       JComponent component = (JComponent) container;
-                       component.removeAll();
-                       
-                       // Use the system's default version of OpenGL
-                       GLProfile profile = GLProfile.getDefault();
-                       GLProfile.initSingleton(true);
-                       
-                       GLCapabilities capabilities = new 
GLCapabilities(profile);
-                       GLCanvas canvas = new GLCanvas(capabilities);
-       
-                       TestGraphics graphics = new TestGraphics();
-       
-                       canvas.addGLEventListener(graphics);
-                       graphics.getKeyListener();
-
-                       canvas.addKeyListener(graphics.getKeyListener());
-                       canvas.addMouseListener(graphics.getMouseListener());
-                       
canvas.addMouseMotionListener(graphics.getMouseMotionListener());
-                       
canvas.addMouseWheelListener(graphics.getMouseWheelListener());
-                       
-                       component.add(canvas);
-                       component.addKeyListener(graphics.getKeyListener());
-                       
-                       FPSAnimator animator = new FPSAnimator(60);
-                       animator.add(canvas);
-                       animator.start();
+               /* For code below, seems that NetworkViewManager does not 
contain references to all available NetworkViews
+                */
+               System.out.println("given model: " + viewModel.getModel());
+               System.out.println("given model suid: " + 
viewModel.getModel().getSUID());
+               System.out.println("given suid: " + viewModel.getSUID());
+               System.out.println("networkViewSet: " + 
networkViewManager.getNetworkViewSet());
+               
+               /*
+               // CyNetworkView networkView = 
networkViewManager.getNetworkView(viewModel.getSUID());
+               CyNetworkView networkView = null;
+               for (CyNetworkView view : 
networkViewManager.getNetworkViewSet()) {
+                       if (view.getModel() == viewModel.getModel()) {
+                               networkView = view;
+                       }
+                       System.out.println("current model: " + view.getModel());
+                       System.out.println("current model suid: " + 
view.getModel().getSUID());
+                       System.out.println("current suid: " + view.getSUID());
+                               
                }
+               */
                
-               // TODO Auto-generated method stub
-               return new WindRenderingEngine(viewModel, lexicon);
+               //TODO: NetworkViewManager does not contain all instances of 
CyNetworkView, so wait 
+               WindRenderingEngine engine = new WindRenderingEngine(container, 
viewModel, visualLexicon);
+               System.out.println("returning engine: " + engine);
+               renderingEngineManager.addRenderingEngine(engine);
+               
+               System.out.println("Engine active?: " + engine.isActive());
+               
+               return engine;
        }
 
        @Override
        public VisualLexicon getVisualLexicon() {
                // System.out.println("getVisualLexicon call");
                
-               return lexicon;
+               return visualLexicon;
        }
 
 }

Modified: 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/resources/META-INF/spring/bundle-context-osgi.xml
===================================================================
--- 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/resources/META-INF/spring/bundle-context-osgi.xml
   2011-06-08 04:38:48 UTC (rev 25672)
+++ 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/resources/META-INF/spring/bundle-context-osgi.xml
   2011-06-08 18:48:58 UTC (rev 25673)
@@ -28,17 +28,27 @@
                </osgi:interfaces>
                <osgi:service-properties>
                        <entry key="serviceType" value="presentationFactory" />
-                       <entry key="id" value="Wind" />
+                       <entry key="id" value="wind" />
                </osgi:service-properties>
        </osgi:service>
        
+       <osgi:service id="windMapRenderingEngineFactoryService" 
ref="windMapRenderingEngineFactory">
+               <osgi:interfaces>
+                       
<value>org.cytoscape.view.presentation.RenderingEngineFactory</value>
+               </osgi:interfaces>
+               <osgi:service-properties>
+                       <entry key="serviceType" value="presentationFactory" />
+                       <entry key="id" value="windMap" />
+               </osgi:service-properties>
+       </osgi:service>
+       
        <osgi:service id="windVisualLexiconService" ref="windVisualLexicon">
                <osgi:interfaces>
                        <value>org.cytoscape.view.model.VisualLexicon</value>
                </osgi:interfaces>
                <osgi:service-properties>
                        <entry key="serviceType" value="visualLexicon" />
-                       <entry key="id" value="Wind" />
+                       <entry key="id" value="wind" />
                </osgi:service-properties>
        </osgi:service>
 

Modified: 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/resources/META-INF/spring/bundle-context.xml
===================================================================
--- 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/resources/META-INF/spring/bundle-context.xml
        2011-06-08 04:38:48 UTC (rev 25672)
+++ 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/resources/META-INF/spring/bundle-context.xml
        2011-06-08 18:48:58 UTC (rev 25673)
@@ -32,10 +32,18 @@
        
        <bean name="windRenderingEngineFactory"
                
class="org.cytoscape.paperwing.internal.WindRenderingEngineFactory">
+               <constructor-arg ref="cyNetworkViewManagerRef"/>
                <constructor-arg ref="cyRenderingEngineManagerRef"/>
                <constructor-arg ref="windVisualLexicon"/>
        </bean>
        
+       <bean name="windMapRenderingEngineFactory"
+               
class="org.cytoscape.paperwing.internal.WindMapRenderingEngineFactory">
+               <constructor-arg ref="cyNetworkViewManagerRef"/>
+               <constructor-arg ref="cyRenderingEngineManagerRef"/>
+               <constructor-arg ref="windVisualLexicon"/>
+       </bean>
+       
        <bean name="windVisualLexicon"
                class="org.cytoscape.paperwing.internal.WindVisualLexicon">
        </bean>

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