]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.diagram/src/org/simantics/diagram/elements/EditDataNode.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.diagram / src / org / simantics / diagram / elements / EditDataNode.java
1 /*******************************************************************************\r
2  * Copyright (c) 2011 Association for Decentralized Information Management in\r
3  * Industry THTH ry.\r
4  * All rights reserved. This program and the accompanying materials\r
5  * are made available under the terms of the Eclipse Public License v1.0\r
6  * which accompanies this distribution, and is available at\r
7  * http://www.eclipse.org/legal/epl-v10.html\r
8  *\r
9  * Contributors:\r
10  *     VTT Technical Research Centre of Finland - initial API and implementation\r
11  *******************************************************************************/\r
12 package org.simantics.diagram.elements;\r
13 \r
14 import java.awt.Graphics2D;\r
15 import java.awt.geom.Rectangle2D;\r
16 \r
17 import org.simantics.g2d.scenegraph.SceneGraphConstants;\r
18 import org.simantics.scenegraph.ILookupService;\r
19 import org.simantics.scenegraph.INode;\r
20 import org.simantics.scenegraph.g2d.G2DNode;\r
21 import org.simantics.scenegraph.g2d.nodes.DataNode;\r
22 import org.simantics.scenegraph.utils.NodeUtil;\r
23 \r
24 /**\r
25  * @author Tuukka Lehtonen\r
26  */\r
27 public class EditDataNode extends G2DNode {\r
28 \r
29     /**\r
30      * Used for naming and identifying (see {@link #setLookupId(String)})\r
31      * GridNode instances in scene graphs.\r
32      */\r
33     public static final String           NODE_ID          = "edit";\r
34 \r
35     private static final long            serialVersionUID = -6446582030817143221L;\r
36 \r
37     private transient TextEditActivation activation;\r
38 \r
39     @Override\r
40     public void init() {\r
41         setLookupId(NODE_ID);\r
42     }\r
43 \r
44     public void setTextEditActivation(TextEditActivation a) {\r
45         this.activation = a;\r
46     }\r
47 \r
48     public TextEditActivation getTextEditActivation() {\r
49         return activation;\r
50     }\r
51 \r
52     @Override\r
53     public void render(Graphics2D g2d) {\r
54     }\r
55 \r
56     @Override\r
57     public Rectangle2D getBoundsInLocal() {\r
58         return null;\r
59     }\r
60 \r
61     public static EditDataNode getNode(INode node) {\r
62         return getEditDataNode( NodeUtil.getLookupService(node) );\r
63     }\r
64 \r
65     public static EditDataNode getEditDataNode(ILookupService lookup) {\r
66         EditDataNode node = (EditDataNode) lookup.lookupNode(EditDataNode.NODE_ID);\r
67         if (node == null) {\r
68             DataNode data = (DataNode) lookup.lookupNode(SceneGraphConstants.DATA_NODE_NAME);\r
69             if (data == null)\r
70                 throw new IllegalStateException("No '" + SceneGraphConstants.DATA_NODE_NAME + "' node in lookup " + lookup);\r
71             node = data.getOrCreateNode(EditDataNode.NODE_ID, EditDataNode.class);\r
72             node.setLookupId(EditDataNode.NODE_ID);\r
73         }\r
74         return node;\r
75     }\r
76 \r
77 }\r