X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.g3d%2Fsrc%2Forg%2Fsimantics%2Fg3d%2Fscenegraph%2Fstructural%2FComponentNode.java;h=332d3cdf1e346ec02ec52511186a2b6803bd0c9f;hb=9f84331c9967c88e0e5550ce91f2b7e364a5cb6d;hp=b701aca5af9c75ec67ed6cbf0dd1d5fe48165fbc;hpb=289aaab900078ef56efc8779e4b15830e472149e;p=simantics%2F3d.git diff --git a/org.simantics.g3d/src/org/simantics/g3d/scenegraph/structural/ComponentNode.java b/org.simantics.g3d/src/org/simantics/g3d/scenegraph/structural/ComponentNode.java index b701aca5..332d3cdf 100644 --- a/org.simantics.g3d/src/org/simantics/g3d/scenegraph/structural/ComponentNode.java +++ b/org.simantics.g3d/src/org/simantics/g3d/scenegraph/structural/ComponentNode.java @@ -15,6 +15,7 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.List; +import java.util.Objects; import org.simantics.g3d.ontology.G3D; import org.simantics.g3d.property.annotations.GetPropertyValue; @@ -26,7 +27,7 @@ import org.simantics.objmap.graph.annotations.RelatedSetValue; import org.simantics.objmap.structural.IStructuralObject; import org.simantics.utils.datastructures.MapList; -public abstract class ComponentNode extends Node implements IComponentNode{ +public abstract class ComponentNode, T2 extends IComponentNode> extends Node implements IComponentNode{ private String name; @@ -41,7 +42,7 @@ public abstract class ComponentNode getAllConnectedNodes() { List list = new ArrayList(); for (T c : getAllConnections()) { - T2 node = (T2)c.getOther(this); + T2 node = c.getOther(this); if (node != null) list.add(node); } return list; } - - @Override - public void addConnection(String id, T c) { - assert(isValidConnectionId(id)); - if (!isPartOfInstantiatedModel()) - _addConnection(id, c); - else - _addConnection(id+"/str", c); - } - - @Override - public void removeConnection(String id, T c) { - assert(isValidConnectionId(id)); - if (!isPartOfInstantiatedModel()) - _removeConnection(id, c); - else - _removeConnection(id+"/str", c); - } - - @Override - public void removeConnection(String id) { - assert(isValidConnectionId(id)); - if (!isPartOfInstantiatedModel()) - _removeConnection(id); - else - _removeConnection(id+"/str"); - } + + @Override + public void addConnection(String id, T c) { + assert(isValidConnectionId(id)); + if (!isPartOfInstantiatedModel()) + _addConnection(id, c); + else + _addConnection(id+"/str", c); + } + + @Override + public void removeConnection(String id, T c) { + assert(isValidConnectionId(id)); + if (!isPartOfInstantiatedModel()) + _removeConnection(id, c); + else + _removeConnection(id+"/str", c); + } + + @Override + public void removeConnection(String id) { + assert(isValidConnectionId(id)); + if (!isPartOfInstantiatedModel()) + _removeConnection(id); + else + _removeConnection(id+"/str"); + } private MapList connections = new MapList(); + @SuppressWarnings("unchecked") protected void _addConnection(String id, T c) { connections.add(id, c); - c.addConnect(this); + c.addConnect((T2) this); firePropertyChanged(id); } @@ -223,7 +225,7 @@ public abstract class ComponentNode getConnectedNodes(String id) { List list = new ArrayList(); for (T c : getConnections(id)) { - T2 node = (T2)c.getOther(this); + T2 node = c.getOther(this); if (node != null) list.add(node); }