1 /*******************************************************************************
\r
2 * Copyright (c) 2011 Association for Decentralized Information Management in
\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
10 * VTT Technical Research Centre of Finland - initial API and implementation
\r
11 *******************************************************************************/
\r
12 package org.simantics.diagram.elements;
\r
14 import java.awt.Graphics2D;
\r
15 import java.awt.geom.Rectangle2D;
\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
25 * @author Tuukka Lehtonen
\r
27 public class EditDataNode extends G2DNode {
\r
30 * Used for naming and identifying (see {@link #setLookupId(String)})
\r
31 * GridNode instances in scene graphs.
\r
33 public static final String NODE_ID = "edit";
\r
35 private static final long serialVersionUID = -6446582030817143221L;
\r
37 private transient TextEditActivation activation;
\r
40 public void init() {
\r
41 setLookupId(NODE_ID);
\r
44 public void setTextEditActivation(TextEditActivation a) {
\r
45 this.activation = a;
\r
48 public TextEditActivation getTextEditActivation() {
\r
53 public void render(Graphics2D g2d) {
\r
57 public Rectangle2D getBoundsInLocal() {
\r
61 public static EditDataNode getNode(INode node) {
\r
62 return getEditDataNode( NodeUtil.getLookupService(node) );
\r
65 public static EditDataNode getEditDataNode(ILookupService lookup) {
\r
66 EditDataNode node = (EditDataNode) lookup.lookupNode(EditDataNode.NODE_ID);
\r
68 DataNode data = (DataNode) lookup.lookupNode(SceneGraphConstants.DATA_NODE_NAME);
\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