import java.awt.Graphics2D;
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;
+import java.util.Map;
+import org.simantics.scenegraph.INode;
+import org.simantics.scenegraph.g2d.G2DRenderingHints;
import org.simantics.scenegraph.g2d.IG2DNode;
import org.simantics.scenegraph.g2d.events.EventTypes;
import org.simantics.scenegraph.g2d.events.MouseEvent;
protected Composite composite;
protected Boolean visible = Boolean.TRUE;
protected Boolean hidden = Boolean.FALSE;
+ private transient Object key;
+ private transient String typeClass;
+ private transient Map<String, Object> parameters;
+
+ public void setKey(Object key) {
+ this.key = key;
+ }
+
+ public void setTypeClass(String typeClass) {
+ this.typeClass = typeClass;
+ }
+
+ public Object getKey() {
+ return key;
+ }
+
+ public String getTypeClass() {
+ return typeClass;
+ }
+
+ public void setParameters(Map<String,Object> parameters) {
+ this.parameters = parameters;
+ }
+
+ public <T> T getParameter(String key) {
+ if (parameters != null) {
+ @SuppressWarnings("unchecked")
+ T t = (T) parameters.get(key);
+ if(t != null) return t;
+ }
+ INode parent = NodeUtil.getNearestParentOfType(this, SingleElementNode.class);
+ if (parent instanceof SingleElementNode) {
+ return ((SingleElementNode)parent).getParameter(key);
+ }
+ return null;
+ }
public void setTransferableProvider(TransferableProvider transferableProvider) {
if (transferableProvider != this.transferableProvider) {
return EventTypes.MouseDragBeginMask;
}
+ public void beforeRender(Graphics2D g) {
+ g.setRenderingHint(G2DRenderingHints.KEY_BEGIN_ELEMENT, "definedElement");
+ }
+
+ public void afterRender(Graphics2D g) {
+ g.setRenderingHint(G2DRenderingHints.KEY_END_ELEMENT, "definedElement");
+ }
+
}