]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.g2d/src/org/simantics/g2d/participant/SubCanvas.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.g2d / src / org / simantics / g2d / participant / SubCanvas.java
index 016d8fbb014cb90793fef66aeb9d6483ae1f802f..776c15a90c51a7b299742a0d75678016cf3a3187 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.participant;\r
-\r
-import org.simantics.g2d.canvas.Hints;\r
-import org.simantics.g2d.canvas.ICanvasContext;\r
-import org.simantics.g2d.canvas.IMouseCaptureContext;\r
-import org.simantics.g2d.canvas.IMouseCursorContext;\r
-import org.simantics.g2d.canvas.IContentContext;\r
-import org.simantics.g2d.canvas.IContentContext.IContentListener;\r
-import org.simantics.g2d.canvas.impl.AbstractCanvasParticipant;\r
-import org.simantics.g2d.canvas.impl.DependencyReflection.Dependency;\r
-\r
-/**\r
- * Subcanvas encapsulates a canvas (another) in one participant.\r
- * \r
- * \r
- * @author Toni Kalajainen\r
- */\r
-public class SubCanvas extends AbstractCanvasParticipant {\r
-\r
-       @Dependency TransformUtil util;\r
-\r
-       private boolean enabled = true;\r
-       private ICanvasContext superCtx = null;\r
-       \r
-       /** Sub-Canvas */\r
-       private ICanvasContext sub;\r
-       int eventPriority, paintPriority, hintPriority;\r
-       //IHintContext subHintStack;\r
-       IMouseCursorContext origSubCursorCtx;\r
-       IMouseCaptureContext origSubCaptureCtx;\r
-       \r
-       // Subcanvas has become dirty, make super canvas also dirty\r
-       IContentListener paintableCtxListener = new IContentListener() {\r
-\r
-               @Override\r
-               public void onDirty(IContentContext sender) {\r
-                       if (superCtx==null) return;\r
-                       superCtx.getContentContext().setDirty();\r
-               }\r
-       };\r
-       \r
-       public SubCanvas(ICanvasContext subCanvas, int eventPriority, int paintPriority, int hintPriority) {\r
-               assert(subCanvas!=null);\r
-               this.sub = subCanvas;\r
-               this.eventPriority = eventPriority;\r
-               this.paintPriority = paintPriority;\r
-               this.hintPriority = hintPriority;\r
-               //subHintStack = sub.getHintStack().createStackRead(sub.getDefaultHintContext());\r
-               \r
-//             subCanvas.getMouseCaptureContext().addMouseCaptureListener(new IMouseCaptureListener() {\r
-//                     @Override\r
-//                     public void onMouseCaptured(IMouseCaptureContext sender, int mouseId) {\r
-//                             if (superCtx==null) return;\r
-//                             superCtx.getMouseCaptureContext().\r
-//                     }\r
-//                     @Override\r
-//                     public void onMouseReleased(IMouseCaptureContext sender, int mouseId) {\r
-//                     }});\r
-       }\r
-       \r
-       @Override\r
-       public void addedToContext(ICanvasContext ctx) {\r
-               super.addedToContext(ctx);\r
-               superCtx = ctx;\r
-               if (enabled) enable();\r
-       }\r
-       \r
-       @Override\r
-       public void removedFromContext(ICanvasContext ctx) {\r
-               assert(superCtx==ctx);\r
-               if (enabled) disable();\r
-               superCtx = null;\r
-               super.removedFromContext(ctx);\r
-       }\r
-       \r
-       public void setEnabled(boolean enabled)\r
-       {\r
-               if (this.enabled == enabled) return;\r
-               if (enabled) enable(); else disable();\r
-       }\r
-       \r
-       void enable() {\r
-               superCtx.getEventHandlerStack().add(sub.getEventHandlerStack(), eventPriority);\r
-//             superCtx.getPainterStack().add(sub.getPainterStack(), paintPriority);\r
-               //superCtx.getHintStack().addHintContext(subHintStack, hintPriority);\r
-               sub.getContentContext().addPaintableContextListener(paintableCtxListener);\r
-               origSubCursorCtx = sub.getMouseCursorContext();\r
-               sub.setMouseCursorContext(getContext().getMouseCursorContext());\r
-               origSubCaptureCtx = sub.getMouseCaptureContext();\r
-               sub.setMouseCaptureContext(getContext().getMouseCaptureContext());\r
-               assert(sub.getDefaultHintContext().getHint(Hints.KEY_SUPER_CANVAS)==null);\r
-               //sub.getDefaultHintContext().setHint(Hints.KEY_SUPER_CANVAS, ctx);\r
-               this.enabled = true;\r
-       }\r
-       \r
-       void disable() {\r
-               sub.getDefaultHintContext().removeHint(Hints.KEY_SUPER_CANVAS);\r
-               sub.setMouseCaptureContext(origSubCaptureCtx);          \r
-               sub.setMouseCursorContext(origSubCursorCtx);\r
-               sub.getContentContext().removePaintableContextListener(paintableCtxListener);\r
-               //ctx.getHintStack().removeHintContext(subHintStack);\r
-//             superCtx.getPainterStack().remove(sub.getPainterStack());\r
-               superCtx.getEventHandlerStack().remove(sub.getEventHandlerStack());\r
-               this.enabled = false;\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.participant;
+
+import org.simantics.g2d.canvas.Hints;
+import org.simantics.g2d.canvas.ICanvasContext;
+import org.simantics.g2d.canvas.IMouseCaptureContext;
+import org.simantics.g2d.canvas.IMouseCursorContext;
+import org.simantics.g2d.canvas.IContentContext;
+import org.simantics.g2d.canvas.IContentContext.IContentListener;
+import org.simantics.g2d.canvas.impl.AbstractCanvasParticipant;
+import org.simantics.g2d.canvas.impl.DependencyReflection.Dependency;
+
+/**
+ * Subcanvas encapsulates a canvas (another) in one participant.
+ * 
+ * 
+ * @author Toni Kalajainen
+ */
+public class SubCanvas extends AbstractCanvasParticipant {
+
+       @Dependency TransformUtil util;
+
+       private boolean enabled = true;
+       private ICanvasContext superCtx = null;
+       
+       /** Sub-Canvas */
+       private ICanvasContext sub;
+       int eventPriority, paintPriority, hintPriority;
+       //IHintContext subHintStack;
+       IMouseCursorContext origSubCursorCtx;
+       IMouseCaptureContext origSubCaptureCtx;
+       
+       // Subcanvas has become dirty, make super canvas also dirty
+       IContentListener paintableCtxListener = new IContentListener() {
+
+               @Override
+               public void onDirty(IContentContext sender) {
+                       if (superCtx==null) return;
+                       superCtx.getContentContext().setDirty();
+               }
+       };
+       
+       public SubCanvas(ICanvasContext subCanvas, int eventPriority, int paintPriority, int hintPriority) {
+               assert(subCanvas!=null);
+               this.sub = subCanvas;
+               this.eventPriority = eventPriority;
+               this.paintPriority = paintPriority;
+               this.hintPriority = hintPriority;
+               //subHintStack = sub.getHintStack().createStackRead(sub.getDefaultHintContext());
+               
+//             subCanvas.getMouseCaptureContext().addMouseCaptureListener(new IMouseCaptureListener() {
+//                     @Override
+//                     public void onMouseCaptured(IMouseCaptureContext sender, int mouseId) {
+//                             if (superCtx==null) return;
+//                             superCtx.getMouseCaptureContext().
+//                     }
+//                     @Override
+//                     public void onMouseReleased(IMouseCaptureContext sender, int mouseId) {
+//                     }});
+       }
+       
+       @Override
+       public void addedToContext(ICanvasContext ctx) {
+               super.addedToContext(ctx);
+               superCtx = ctx;
+               if (enabled) enable();
+       }
+       
+       @Override
+       public void removedFromContext(ICanvasContext ctx) {
+               assert(superCtx==ctx);
+               if (enabled) disable();
+               superCtx = null;
+               super.removedFromContext(ctx);
+       }
+       
+       public void setEnabled(boolean enabled)
+       {
+               if (this.enabled == enabled) return;
+               if (enabled) enable(); else disable();
+       }
+       
+       void enable() {
+               superCtx.getEventHandlerStack().add(sub.getEventHandlerStack(), eventPriority);
+//             superCtx.getPainterStack().add(sub.getPainterStack(), paintPriority);
+               //superCtx.getHintStack().addHintContext(subHintStack, hintPriority);
+               sub.getContentContext().addPaintableContextListener(paintableCtxListener);
+               origSubCursorCtx = sub.getMouseCursorContext();
+               sub.setMouseCursorContext(getContext().getMouseCursorContext());
+               origSubCaptureCtx = sub.getMouseCaptureContext();
+               sub.setMouseCaptureContext(getContext().getMouseCaptureContext());
+               assert(sub.getDefaultHintContext().getHint(Hints.KEY_SUPER_CANVAS)==null);
+               //sub.getDefaultHintContext().setHint(Hints.KEY_SUPER_CANVAS, ctx);
+               this.enabled = true;
+       }
+       
+       void disable() {
+               sub.getDefaultHintContext().removeHint(Hints.KEY_SUPER_CANVAS);
+               sub.setMouseCaptureContext(origSubCaptureCtx);          
+               sub.setMouseCursorContext(origSubCursorCtx);
+               sub.getContentContext().removePaintableContextListener(paintableCtxListener);
+               //ctx.getHintStack().removeHintContext(subHintStack);
+//             superCtx.getPainterStack().remove(sub.getPainterStack());
+               superCtx.getEventHandlerStack().remove(sub.getEventHandlerStack());
+               this.enabled = false;
+       }
+
+}