]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scenegraph/testcases/org/simantics/scenegraph/tests/TestRouteGraphNodeApplet.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.scenegraph / testcases / org / simantics / scenegraph / tests / TestRouteGraphNodeApplet.java
index edfb34be258adf5d6404b0104293c835e2ef619b..3a5e4438641788ca296ca3c0b0b0e59765f5b4f8 100644 (file)
-package org.simantics.scenegraph.tests;\r
-import java.awt.AWTEvent;\r
-import java.awt.BasicStroke;\r
-import java.awt.Color;\r
-import java.awt.Graphics;\r
-import java.awt.Graphics2D;\r
-import java.awt.Stroke;\r
-import java.awt.event.ComponentEvent;\r
-import java.awt.event.FocusEvent;\r
-import java.awt.event.KeyEvent;\r
-import java.awt.event.MouseEvent;\r
-import java.awt.event.MouseWheelEvent;\r
-import java.awt.geom.AffineTransform;\r
-import java.awt.image.VolatileImage;\r
-import java.util.Timer;\r
-import java.util.TimerTask;\r
-\r
-import javax.swing.JApplet;\r
-\r
-import org.simantics.diagram.connection.RouteGraph;\r
-import org.simantics.diagram.connection.RouteLine;\r
-import org.simantics.diagram.connection.RouteTerminal;\r
-import org.simantics.diagram.connection.rendering.BasicConnectionStyle;\r
-import org.simantics.diagram.connection.rendering.StyledRouteGraphRenderer;\r
-import org.simantics.diagram.connection.rendering.arrows.ILineEndStyle;\r
-import org.simantics.diagram.connection.rendering.arrows.PlainExampleLineEndStyle;\r
-import org.simantics.scenegraph.g2d.G2DFocusManager;\r
-import org.simantics.scenegraph.g2d.G2DParentNode;\r
-import org.simantics.scenegraph.g2d.G2DSceneGraph;\r
-import org.simantics.scenegraph.g2d.events.EventDelegator;\r
-import org.simantics.scenegraph.g2d.nodes.NavigationNode;\r
-import org.simantics.scenegraph.g2d.nodes.connection.IRouteGraphListener;\r
-import org.simantics.scenegraph.g2d.nodes.connection.RouteGraphChangeEvent;\r
-import org.simantics.scenegraph.g2d.nodes.connection.RouteGraphNode;\r
-\r
-\r
-/**\r
- * @author Tuukka Lehtonen\r
- */\r
-public class TestRouteGraphNodeApplet extends JApplet implements Runnable {\r
-\r
-    private static final long serialVersionUID = -2097427018689455381L;\r
-\r
-    private static final int FPS = 60;\r
-\r
-    protected VolatileImage backbuffer = null;\r
-    protected boolean interrupted = false;\r
-\r
-    Color LINE_COLOR1 = Color.RED;\r
-    Color LINE_COLOR2 = Color.GREEN;\r
-    Stroke LINE_STROKE = new BasicStroke(1, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_BEVEL);\r
-    Stroke ROUTE_LINE_STROKE = new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL);\r
-\r
-    G2DSceneGraph sg;\r
-    RouteGraph rg;\r
-    RouteGraphNode rgn;\r
-    BasicConnectionStyle style = new BasicConnectionStyle(LINE_COLOR1, Color.BLACK, 3.0, LINE_STROKE, ROUTE_LINE_STROKE, 8);\r
-\r
-    Timer timer = new Timer();\r
-    TimerTask task = new TimerTask() {\r
-        boolean toggle = false;\r
-        @Override\r
-        public void run() {\r
-            //Color color = toggle ? LINE_COLOR1 : LINE_COLOR2;\r
-            //style.setLineColor(color);\r
-            rgn.setRenderer(new StyledRouteGraphRenderer(style));\r
-            toggle ^= true;\r
-        }\r
-    };\r
-\r
-    public void init() {\r
-        setSize(600, 600);\r
-        setFocusable(true);\r
-        setFocusCycleRoot(true);\r
-        enableInputMethods(true);\r
-        enableEvents(AWTEvent.INPUT_METHOD_EVENT_MASK | AWTEvent.MOUSE_EVENT_MASK | AWTEvent.MOUSE_MOTION_EVENT_MASK | AWTEvent.KEY_EVENT_MASK | AWTEvent.TEXT_EVENT_MASK | AWTEvent.MOUSE_WHEEL_EVENT_MASK | AWTEvent.COMPONENT_EVENT_MASK | AWTEvent.PAINT_EVENT_MASK | AWTEvent.FOCUS_EVENT_MASK);\r
-\r
-        backbuffer = createVolatileImage(getWidth(), getHeight());\r
-\r
-        this.rg = new RouteGraph();\r
-        RouteLine v = rg.addLine(false, 0);\r
-        v.setData( "L1" );\r
-\r
-        rg.link(addTerminal("T1", rg, -100, -100, 1, PlainExampleLineEndStyle.INSTANCE), v);\r
-//        rg.link(addTerminal("T2", rg, -100, 100, 1, PlainExampleLineEndStyle.INSTANCE), v);\r
-//        rg.link(addTerminal("T3", rg, 100, -80, 1, ArrowExampleLineEndStyle.INSTANCE), v);\r
-//        rg.link(addTerminal("T4", rg, 100, 100, 4, ArrowExampleLineEndStyle.INSTANCE), v);\r
-\r
-        sg = new G2DSceneGraph();\r
-        NavigationNode nav = sg.addNode("navigation", NavigationNode.class);\r
-\r
-        // This just tests that RouteGraphNode handles transforms correctly\r
-        final G2DParentNode temp = nav.addNode("temp", G2DParentNode.class);\r
-        temp.setTransform(AffineTransform.getTranslateInstance(50, 50));\r
-\r
-        rgn = temp.addNode("rg1", RouteGraphNode.class);\r
-        rgn.setTransform(AffineTransform.getTranslateInstance(100, 100));\r
-        rgn.setRouteGraph(rg);\r
-        rgn.setRenderer(new StyledRouteGraphRenderer(style));\r
-\r
-        rgn.setRouteGraphListener(new IRouteGraphListener() {\r
-            @Override\r
-            public void routeGraphChanged(RouteGraphChangeEvent event) {\r
-                event.node.getRouteGraphDelta().print();\r
-            }\r
-        });\r
-\r
-        Thread t = new Thread(this);\r
-        t.start();\r
-\r
-        timer.schedule(task, 1000, 1000);\r
-    }\r
-\r
-    private static RouteTerminal addTerminal(Object data, RouteGraph rg, double x, double y, int allowedDirections, ILineEndStyle style) {\r
-        RouteTerminal rt = rg.addTerminal(x, y, x-20, y-20, x+20, y+20, allowedDirections, style);\r
-        rt.setData( data );\r
-        return rt;\r
-    }\r
-\r
-    public void run() {\r
-        while(!interrupted) {\r
-            repaint();\r
-            long ival = 1000 / FPS;\r
-            try {\r
-                Thread.sleep(ival);\r
-            } catch (InterruptedException e) {\r
-                e.printStackTrace();\r
-            }\r
-        }\r
-    }\r
-\r
-    public void update(Graphics g) {\r
-        int result = backbuffer.validate(getGraphicsConfiguration());           \r
-        if (result == VolatileImage.IMAGE_INCOMPATIBLE) {\r
-            backbuffer = this.createVolatileImage(getWidth(), getHeight());\r
-        }\r
-\r
-        Graphics2D g2d = backbuffer.createGraphics();\r
-        g2d.clearRect(0, 0, getWidth(), getHeight());\r
-        g2d.setClip(0, 0, getWidth(), getHeight());\r
-        sg.render(g2d);\r
-        g2d.dispose();\r
-        g.drawImage(backbuffer, 0, 0, this);\r
-    }\r
-    \r
-    public void paint(Graphics g) {\r
-        update(g);\r
-    }\r
-\r
-    public void processEvent(AWTEvent event) {\r
-        if(event.getID() == ComponentEvent.COMPONENT_RESIZED) {\r
-            backbuffer = this.createVolatileImage(getWidth(), getHeight());\r
-            repaint();\r
-        }\r
-\r
-        {\r
-            EventDelegator handler = sg.getEventDelegator();\r
-            switch(event.getID()) {\r
-                case MouseEvent.MOUSE_PRESSED:\r
-                    G2DFocusManager.INSTANCE.clearFocus();\r
-                    handler.mousePressed((MouseEvent)event);\r
-                    if(G2DFocusManager.INSTANCE.getFocusOwner() == null) {\r
-                        this.requestFocusInWindow();\r
-                    }\r
-                    break;\r
-                    \r
-                case MouseEvent.MOUSE_RELEASED:\r
-                    handler.mouseReleased((MouseEvent)event);\r
-                    break;\r
-                    \r
-                case MouseEvent.MOUSE_CLICKED:\r
-                    handler.mouseClicked((MouseEvent)event);\r
-                    break;\r
-                    \r
-                case MouseEvent.MOUSE_MOVED:\r
-                    handler.mouseMoved((MouseEvent)event);\r
-                    break;\r
-\r
-                case MouseEvent.MOUSE_DRAGGED:\r
-                    handler.mouseDragged((MouseEvent)event);\r
-                    break;\r
-                    \r
-                case MouseEvent.MOUSE_WHEEL:\r
-                    handler.mouseWheelMoved((MouseWheelEvent)event);\r
-                    break;\r
-                    \r
-                case MouseEvent.MOUSE_ENTERED:\r
-                    handler.mouseEntered((MouseEvent)event);\r
-                    break;\r
-                    \r
-                case MouseEvent.MOUSE_EXITED:\r
-                    handler.mouseExited((MouseEvent)event);\r
-                    break;\r
-                    \r
-                case KeyEvent.KEY_PRESSED:\r
-                    handler.keyPressed((KeyEvent)event);\r
-                    break;\r
-                    \r
-                case KeyEvent.KEY_RELEASED:\r
-                    handler.keyReleased((KeyEvent)event);\r
-                    break;\r
-                    \r
-                case KeyEvent.KEY_TYPED:\r
-                    handler.keyTyped((KeyEvent)event);\r
-                    break;\r
-                    \r
-                case FocusEvent.FOCUS_GAINED:\r
-                    handler.focusGained((FocusEvent)event);\r
-                    break;\r
-                    \r
-                case FocusEvent.FOCUS_LOST:\r
-                    handler.focusLost((FocusEvent)event);\r
-                    break;\r
-                    \r
-                default:\r
-                    break;\r
-            }\r
-        }\r
-    }\r
-\r
-}\r
+package org.simantics.scenegraph.tests;
+import java.awt.AWTEvent;
+import java.awt.BasicStroke;
+import java.awt.Color;
+import java.awt.Graphics;
+import java.awt.Graphics2D;
+import java.awt.Stroke;
+import java.awt.event.ComponentEvent;
+import java.awt.event.FocusEvent;
+import java.awt.event.KeyEvent;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseWheelEvent;
+import java.awt.geom.AffineTransform;
+import java.awt.image.VolatileImage;
+import java.util.Timer;
+import java.util.TimerTask;
+
+import javax.swing.JApplet;
+
+import org.simantics.diagram.connection.RouteGraph;
+import org.simantics.diagram.connection.RouteLine;
+import org.simantics.diagram.connection.RouteTerminal;
+import org.simantics.diagram.connection.rendering.BasicConnectionStyle;
+import org.simantics.diagram.connection.rendering.StyledRouteGraphRenderer;
+import org.simantics.diagram.connection.rendering.arrows.ILineEndStyle;
+import org.simantics.diagram.connection.rendering.arrows.PlainExampleLineEndStyle;
+import org.simantics.scenegraph.g2d.G2DFocusManager;
+import org.simantics.scenegraph.g2d.G2DParentNode;
+import org.simantics.scenegraph.g2d.G2DSceneGraph;
+import org.simantics.scenegraph.g2d.events.EventDelegator;
+import org.simantics.scenegraph.g2d.nodes.NavigationNode;
+import org.simantics.scenegraph.g2d.nodes.connection.IRouteGraphListener;
+import org.simantics.scenegraph.g2d.nodes.connection.RouteGraphChangeEvent;
+import org.simantics.scenegraph.g2d.nodes.connection.RouteGraphNode;
+
+
+/**
+ * @author Tuukka Lehtonen
+ */
+public class TestRouteGraphNodeApplet extends JApplet implements Runnable {
+
+    private static final long serialVersionUID = -2097427018689455381L;
+
+    private static final int FPS = 60;
+
+    protected VolatileImage backbuffer = null;
+    protected boolean interrupted = false;
+
+    Color LINE_COLOR1 = Color.RED;
+    Color LINE_COLOR2 = Color.GREEN;
+    Stroke LINE_STROKE = new BasicStroke(1, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_BEVEL);
+    Stroke ROUTE_LINE_STROKE = new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL);
+
+    G2DSceneGraph sg;
+    RouteGraph rg;
+    RouteGraphNode rgn;
+    BasicConnectionStyle style = new BasicConnectionStyle(LINE_COLOR1, Color.BLACK, 3.0, LINE_STROKE, ROUTE_LINE_STROKE, 8);
+
+    Timer timer = new Timer();
+    TimerTask task = new TimerTask() {
+        boolean toggle = false;
+        @Override
+        public void run() {
+            //Color color = toggle ? LINE_COLOR1 : LINE_COLOR2;
+            //style.setLineColor(color);
+            rgn.setRenderer(new StyledRouteGraphRenderer(style));
+            toggle ^= true;
+        }
+    };
+
+    public void init() {
+        setSize(600, 600);
+        setFocusable(true);
+        setFocusCycleRoot(true);
+        enableInputMethods(true);
+        enableEvents(AWTEvent.INPUT_METHOD_EVENT_MASK | AWTEvent.MOUSE_EVENT_MASK | AWTEvent.MOUSE_MOTION_EVENT_MASK | AWTEvent.KEY_EVENT_MASK | AWTEvent.TEXT_EVENT_MASK | AWTEvent.MOUSE_WHEEL_EVENT_MASK | AWTEvent.COMPONENT_EVENT_MASK | AWTEvent.PAINT_EVENT_MASK | AWTEvent.FOCUS_EVENT_MASK);
+
+        backbuffer = createVolatileImage(getWidth(), getHeight());
+
+        this.rg = new RouteGraph();
+        RouteLine v = rg.addLine(false, 0);
+        v.setData( "L1" );
+
+        rg.link(addTerminal("T1", rg, -100, -100, 1, PlainExampleLineEndStyle.INSTANCE), v);
+//        rg.link(addTerminal("T2", rg, -100, 100, 1, PlainExampleLineEndStyle.INSTANCE), v);
+//        rg.link(addTerminal("T3", rg, 100, -80, 1, ArrowExampleLineEndStyle.INSTANCE), v);
+//        rg.link(addTerminal("T4", rg, 100, 100, 4, ArrowExampleLineEndStyle.INSTANCE), v);
+
+        sg = new G2DSceneGraph();
+        NavigationNode nav = sg.addNode("navigation", NavigationNode.class);
+
+        // This just tests that RouteGraphNode handles transforms correctly
+        final G2DParentNode temp = nav.addNode("temp", G2DParentNode.class);
+        temp.setTransform(AffineTransform.getTranslateInstance(50, 50));
+
+        rgn = temp.addNode("rg1", RouteGraphNode.class);
+        rgn.setTransform(AffineTransform.getTranslateInstance(100, 100));
+        rgn.setRouteGraph(rg);
+        rgn.setRenderer(new StyledRouteGraphRenderer(style));
+
+        rgn.setRouteGraphListener(new IRouteGraphListener() {
+            @Override
+            public void routeGraphChanged(RouteGraphChangeEvent event) {
+                event.node.getRouteGraphDelta().print();
+            }
+        });
+
+        Thread t = new Thread(this);
+        t.start();
+
+        timer.schedule(task, 1000, 1000);
+    }
+
+    private static RouteTerminal addTerminal(Object data, RouteGraph rg, double x, double y, int allowedDirections, ILineEndStyle style) {
+        RouteTerminal rt = rg.addTerminal(x, y, x-20, y-20, x+20, y+20, allowedDirections, style);
+        rt.setData( data );
+        return rt;
+    }
+
+    public void run() {
+        while(!interrupted) {
+            repaint();
+            long ival = 1000 / FPS;
+            try {
+                Thread.sleep(ival);
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+    public void update(Graphics g) {
+        int result = backbuffer.validate(getGraphicsConfiguration());           
+        if (result == VolatileImage.IMAGE_INCOMPATIBLE) {
+            backbuffer = this.createVolatileImage(getWidth(), getHeight());
+        }
+
+        Graphics2D g2d = backbuffer.createGraphics();
+        g2d.clearRect(0, 0, getWidth(), getHeight());
+        g2d.setClip(0, 0, getWidth(), getHeight());
+        sg.render(g2d);
+        g2d.dispose();
+        g.drawImage(backbuffer, 0, 0, this);
+    }
+    
+    public void paint(Graphics g) {
+        update(g);
+    }
+
+    public void processEvent(AWTEvent event) {
+        if(event.getID() == ComponentEvent.COMPONENT_RESIZED) {
+            backbuffer = this.createVolatileImage(getWidth(), getHeight());
+            repaint();
+        }
+
+        {
+            EventDelegator handler = sg.getEventDelegator();
+            switch(event.getID()) {
+                case MouseEvent.MOUSE_PRESSED:
+                    G2DFocusManager.INSTANCE.clearFocus();
+                    handler.mousePressed((MouseEvent)event);
+                    if(G2DFocusManager.INSTANCE.getFocusOwner() == null) {
+                        this.requestFocusInWindow();
+                    }
+                    break;
+                    
+                case MouseEvent.MOUSE_RELEASED:
+                    handler.mouseReleased((MouseEvent)event);
+                    break;
+                    
+                case MouseEvent.MOUSE_CLICKED:
+                    handler.mouseClicked((MouseEvent)event);
+                    break;
+                    
+                case MouseEvent.MOUSE_MOVED:
+                    handler.mouseMoved((MouseEvent)event);
+                    break;
+
+                case MouseEvent.MOUSE_DRAGGED:
+                    handler.mouseDragged((MouseEvent)event);
+                    break;
+                    
+                case MouseEvent.MOUSE_WHEEL:
+                    handler.mouseWheelMoved((MouseWheelEvent)event);
+                    break;
+                    
+                case MouseEvent.MOUSE_ENTERED:
+                    handler.mouseEntered((MouseEvent)event);
+                    break;
+                    
+                case MouseEvent.MOUSE_EXITED:
+                    handler.mouseExited((MouseEvent)event);
+                    break;
+                    
+                case KeyEvent.KEY_PRESSED:
+                    handler.keyPressed((KeyEvent)event);
+                    break;
+                    
+                case KeyEvent.KEY_RELEASED:
+                    handler.keyReleased((KeyEvent)event);
+                    break;
+                    
+                case KeyEvent.KEY_TYPED:
+                    handler.keyTyped((KeyEvent)event);
+                    break;
+                    
+                case FocusEvent.FOCUS_GAINED:
+                    handler.focusGained((FocusEvent)event);
+                    break;
+                    
+                case FocusEvent.FOCUS_LOST:
+                    handler.focusLost((FocusEvent)event);
+                    break;
+                    
+                default:
+                    break;
+            }
+        }
+    }
+
+}