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