]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.g2d/src/org/simantics/g2d/diagram/handler/PickRequest.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.g2d / src / org / simantics / g2d / diagram / handler / PickRequest.java
index 4d5d76094ec1e118f20130cf0fefa06405c6fee2..a43e8350a15b2aeff8c2f155558d4cd93b5aa72b 100644 (file)
-/*******************************************************************************\r
- * Copyright (c) 2007, 2010 Association for Decentralized Information Management\r
- * in Industry THTH ry.\r
- * All rights reserved. This program and the accompanying materials\r
- * are made available under the terms of the Eclipse Public License v1.0\r
- * which accompanies this distribution, and is available at\r
- * http://www.eclipse.org/legal/epl-v10.html\r
- *\r
- * Contributors:\r
- *     VTT Technical Research Centre of Finland - initial API and implementation\r
- *******************************************************************************/\r
-package org.simantics.g2d.diagram.handler;\r
-\r
-import java.awt.Shape;\r
-import java.awt.geom.AffineTransform;\r
-import java.awt.geom.Area;\r
-import java.awt.geom.Point2D;\r
-import java.awt.geom.Rectangle2D;\r
-import java.util.Collections;\r
-import java.util.Comparator;\r
-import java.util.List;\r
-\r
-import org.simantics.g2d.connection.handler.ConnectionHandler;\r
-import org.simantics.g2d.element.IElement;\r
-import org.simantics.g2d.element.handler.BendsHandler;\r
-import org.simantics.g2d.element.handler.TerminalTopology;\r
-import org.simantics.g2d.element.handler.impl.ConnectionSelectionOutline;\r
-import org.simantics.g2d.elementclass.BranchPoint;\r
-import org.simantics.g2d.elementclass.MonitorHandler;\r
-import org.simantics.g2d.utils.GeometryUtils;\r
-import org.simantics.scenegraph.utils.TransformedRectangle;\r
-\r
-/**\r
- *\r
- * @See {@link GeometryUtils} for intersect and contains tests\r
- * @See {@link TransformedRectangle}\r
- * @See {@link Area} intersects operations for complex shapes\r
- * @author Toni Kalajainen\r
- */\r
-public class PickRequest {\r
-\r
-    public static enum PickPolicy {\r
-        PICK_INTERSECTING_OBJECTS,\r
-        PICK_CONTAINED_OBJECTS\r
-    }\r
-\r
-    public Shape      pickArea;\r
-    public PickPolicy pickPolicy = PickPolicy.PICK_INTERSECTING_OBJECTS;\r
-    /** Pick filter (null == everything is accepted) */\r
-    public PickFilter pickFilter = null;\r
-    public PickSorter pickSorter = null;\r
-\r
-    public PickRequest(double x, double y)\r
-    {\r
-        pickArea = new Rectangle2D.Double(x, y, 1, 1);\r
-    }\r
-    public PickRequest(Point2D p)\r
-    {\r
-        pickArea = new Rectangle2D.Double(p.getX(), p.getY(), 0.0001, 0.0001);\r
-    }\r
-    public PickRequest(Shape shape)\r
-    {\r
-        pickArea = shape;\r
-    }\r
-    public PickRequest(Shape shape, AffineTransform transform)\r
-    {\r
-        pickArea = GeometryUtils.transformShape(shape, transform);\r
-    }\r
-\r
-    public static interface PickFilter {\r
-        boolean accept(IElement e);\r
-\r
-        public static final PickFilter FILTER_ALL = new PickFilter() {\r
-            @Override\r
-            public boolean accept(IElement e) {\r
-                return true;\r
-            }\r
-        };\r
-        // Connections\r
-        public static final PickFilter FILTER_CONNECTIONS = new PickFilter() {\r
-            @Override\r
-            public boolean accept(IElement e) {\r
-                return e.getElementClass().containsClass(ConnectionHandler.class);\r
-            }\r
-            @Override\r
-            public String toString() { return "FILTER_CONNECTIONS"; }\r
-        };\r
-        // Connection edges\r
-        public static final PickFilter FILTER_CONNECTION_EDGES = new PickFilter() {\r
-            @Override\r
-            public boolean accept(IElement e) {\r
-                return e.getElementClass().containsClass(BendsHandler.class) || e.getElementClass().containsClass(ConnectionSelectionOutline.class);\r
-            }\r
-            @Override\r
-            public String toString() { return "FILTER_CONNECTION_EDGES"; }\r
-        };\r
-        // Connections\r
-        public static final PickFilter FILTER_BRANCH_POINT = new PickFilter() {\r
-            @Override\r
-            public boolean accept(IElement e) {\r
-                return e.getElementClass().containsClass(BranchPoint.class);\r
-            }\r
-            @Override\r
-            public String toString() { return "FILTER_BRANCH_POINTS"; }\r
-        };\r
-        // Anything that has terminals\r
-        public static final PickFilter FILTER_NODES = new PickFilter() {\r
-            @Override\r
-            public boolean accept(IElement e) {\r
-                return e.getElementClass().containsClass(TerminalTopology.class);\r
-            }\r
-            @Override\r
-            public String toString() { return "FILTER_NODES"; }\r
-        };\r
-        public static final PickFilter FILTER_MONITORS = new PickFilter() {\r
-            @Override\r
-            public boolean accept(IElement e) {\r
-                return e.getElementClass().containsClass(MonitorHandler.class);\r
-            }\r
-            @Override\r
-            public String toString() { return "FILTER_MONITORS"; }\r
-        };\r
-    }\r
-\r
-    public static interface PickSorter {\r
-        void sort(List<IElement> elements);\r
-\r
-        //\r
-        public static final PickSorter CONNECTIONS_LAST = new PickSorter() {\r
-            @Override\r
-            public void sort(List<IElement> elements) {\r
-                Collections.sort(elements, new Comparator<IElement>() {\r
-                    @Override\r
-                    public int compare(IElement e1, IElement e2) {\r
-                        boolean isConn1 = PickFilter.FILTER_CONNECTION_EDGES.accept(e1);\r
-                        boolean isConn2 = PickFilter.FILTER_CONNECTION_EDGES.accept(e2);\r
-                        if (!isConn1 && isConn2)\r
-                            return -1;\r
-                        if (isConn1 && !isConn2)\r
-                            return 1;\r
-                        return 0;\r
-                    }\r
-                });\r
-            }\r
-        };\r
-        public static final PickSorter CONNECTIONS_FIRST = new PickSorter() {\r
-            @Override\r
-            public void sort(List<IElement> elements) {\r
-                Collections.sort(elements, new Comparator<IElement>() {\r
-                    @Override\r
-                    public int compare(IElement e1, IElement e2) {\r
-                        boolean isConn1 = PickFilter.FILTER_CONNECTION_EDGES.accept(e1);\r
-                        boolean isConn2 = PickFilter.FILTER_CONNECTION_EDGES.accept(e2);\r
-                        if (!isConn1 && isConn2)\r
-                            return 1;\r
-                        if (isConn1 && !isConn2)\r
-                            return -1;\r
-                        return 0;\r
-                    }\r
-                });\r
-            }\r
-        };\r
-    }\r
-\r
-}\r
+/*******************************************************************************
+ * Copyright (c) 2007, 2010 Association for Decentralized Information Management
+ * in Industry THTH ry.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     VTT Technical Research Centre of Finland - initial API and implementation
+ *******************************************************************************/
+package org.simantics.g2d.diagram.handler;
+
+import java.awt.Shape;
+import java.awt.geom.AffineTransform;
+import java.awt.geom.Area;
+import java.awt.geom.Point2D;
+import java.awt.geom.Rectangle2D;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+
+import org.simantics.g2d.connection.handler.ConnectionHandler;
+import org.simantics.g2d.element.IElement;
+import org.simantics.g2d.element.handler.BendsHandler;
+import org.simantics.g2d.element.handler.TerminalTopology;
+import org.simantics.g2d.element.handler.impl.ConnectionSelectionOutline;
+import org.simantics.g2d.elementclass.BranchPoint;
+import org.simantics.g2d.elementclass.MonitorHandler;
+import org.simantics.g2d.utils.GeometryUtils;
+import org.simantics.scenegraph.utils.TransformedRectangle;
+
+/**
+ *
+ * @See {@link GeometryUtils} for intersect and contains tests
+ * @See {@link TransformedRectangle}
+ * @See {@link Area} intersects operations for complex shapes
+ * @author Toni Kalajainen
+ */
+public class PickRequest {
+
+    public static enum PickPolicy {
+        PICK_INTERSECTING_OBJECTS,
+        PICK_CONTAINED_OBJECTS
+    }
+
+    public Shape      pickArea;
+    public PickPolicy pickPolicy = PickPolicy.PICK_INTERSECTING_OBJECTS;
+    /** Pick filter (null == everything is accepted) */
+    public PickFilter pickFilter = null;
+    public PickSorter pickSorter = null;
+
+    public PickRequest(double x, double y)
+    {
+        pickArea = new Rectangle2D.Double(x, y, 1, 1);
+    }
+    public PickRequest(Point2D p)
+    {
+        pickArea = new Rectangle2D.Double(p.getX(), p.getY(), 0.0001, 0.0001);
+    }
+    public PickRequest(Shape shape)
+    {
+        pickArea = shape;
+    }
+    public PickRequest(Shape shape, AffineTransform transform)
+    {
+        pickArea = GeometryUtils.transformShape(shape, transform);
+    }
+
+    public static interface PickFilter {
+        boolean accept(IElement e);
+
+        public static final PickFilter FILTER_ALL = new PickFilter() {
+            @Override
+            public boolean accept(IElement e) {
+                return true;
+            }
+        };
+        // Connections
+        public static final PickFilter FILTER_CONNECTIONS = new PickFilter() {
+            @Override
+            public boolean accept(IElement e) {
+                return e.getElementClass().containsClass(ConnectionHandler.class);
+            }
+            @Override
+            public String toString() { return "FILTER_CONNECTIONS"; }
+        };
+        // Connection edges
+        public static final PickFilter FILTER_CONNECTION_EDGES = new PickFilter() {
+            @Override
+            public boolean accept(IElement e) {
+                return e.getElementClass().containsClass(BendsHandler.class) || e.getElementClass().containsClass(ConnectionSelectionOutline.class);
+            }
+            @Override
+            public String toString() { return "FILTER_CONNECTION_EDGES"; }
+        };
+        // Connections
+        public static final PickFilter FILTER_BRANCH_POINT = new PickFilter() {
+            @Override
+            public boolean accept(IElement e) {
+                return e.getElementClass().containsClass(BranchPoint.class);
+            }
+            @Override
+            public String toString() { return "FILTER_BRANCH_POINTS"; }
+        };
+        // Anything that has terminals
+        public static final PickFilter FILTER_NODES = new PickFilter() {
+            @Override
+            public boolean accept(IElement e) {
+                return e.getElementClass().containsClass(TerminalTopology.class);
+            }
+            @Override
+            public String toString() { return "FILTER_NODES"; }
+        };
+        public static final PickFilter FILTER_MONITORS = new PickFilter() {
+            @Override
+            public boolean accept(IElement e) {
+                return e.getElementClass().containsClass(MonitorHandler.class);
+            }
+            @Override
+            public String toString() { return "FILTER_MONITORS"; }
+        };
+    }
+
+    public static interface PickSorter {
+        void sort(List<IElement> elements);
+
+        //
+        public static final PickSorter CONNECTIONS_LAST = new PickSorter() {
+            @Override
+            public void sort(List<IElement> elements) {
+                Collections.sort(elements, new Comparator<IElement>() {
+                    @Override
+                    public int compare(IElement e1, IElement e2) {
+                        boolean isConn1 = PickFilter.FILTER_CONNECTION_EDGES.accept(e1);
+                        boolean isConn2 = PickFilter.FILTER_CONNECTION_EDGES.accept(e2);
+                        if (!isConn1 && isConn2)
+                            return -1;
+                        if (isConn1 && !isConn2)
+                            return 1;
+                        return 0;
+                    }
+                });
+            }
+        };
+        public static final PickSorter CONNECTIONS_FIRST = new PickSorter() {
+            @Override
+            public void sort(List<IElement> elements) {
+                Collections.sort(elements, new Comparator<IElement>() {
+                    @Override
+                    public int compare(IElement e1, IElement e2) {
+                        boolean isConn1 = PickFilter.FILTER_CONNECTION_EDGES.accept(e1);
+                        boolean isConn2 = PickFilter.FILTER_CONNECTION_EDGES.accept(e2);
+                        if (!isConn1 && isConn2)
+                            return 1;
+                        if (isConn1 && !isConn2)
+                            return -1;
+                        return 0;
+                    }
+                });
+            }
+        };
+    }
+
+}