|
@@ -37,7 +37,7 @@ class NodeController {
|
|
|
if (upperNode == null)
|
|
|
cvs.addNewObject(node);
|
|
|
else
|
|
|
- addObjectInUpperNode(node, upperNode);
|
|
|
+ addObjectInUpperNode(node, upperNode, false);
|
|
|
|
|
|
}
|
|
|
|
|
@@ -70,7 +70,7 @@ class NodeController {
|
|
|
// Put all selected Nodes into the Upper Node
|
|
|
for (AbstractCpsObject obj : toGroup) {
|
|
|
// füge Neue Objecte in Neuen Node hinzu
|
|
|
- addObjectInUpperNode(obj, node);
|
|
|
+ addObjectInUpperNode(obj, node, false);
|
|
|
}
|
|
|
|
|
|
// Füge die Edges die Alle Objekte vorher verbunden hat in neuen Node
|
|
@@ -437,10 +437,14 @@ class NodeController {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
/**
|
|
|
- * Add a Object into a CpsUpperNode
|
|
|
+ * Adds object to the upperNode, might replace objects if replace==true
|
|
|
+ * @param object
|
|
|
+ * @param upperNode
|
|
|
+ * @param replace
|
|
|
*/
|
|
|
- void addObjectInUpperNode(AbstractCpsObject object, CpsUpperNode upperNode) {
|
|
|
+ void addObjectInUpperNode(AbstractCpsObject object, CpsUpperNode upperNode, boolean replace) {
|
|
|
object.setSav("" + upperNode.getId());
|
|
|
upperNode.getNodesIdx().put(object.getId(), upperNode.getNodes().size());
|
|
|
upperNode.getNodes().add(object);
|
|
@@ -448,43 +452,44 @@ class NodeController {
|
|
|
/**
|
|
|
* check if we should drag & drop replace
|
|
|
*/
|
|
|
+ if(replace){
|
|
|
+ /** x of the dragged Object */
|
|
|
+ int x = object.getPosition().x;
|
|
|
|
|
|
- /** x of the dragged Object */
|
|
|
- int x = object.getPosition().x;
|
|
|
-
|
|
|
- /** y of the dragged Object */
|
|
|
- int y = object.getPosition().y;
|
|
|
-
|
|
|
- /** distance threshold for replacement */
|
|
|
- int treshhold = model.getScale()/2;
|
|
|
-
|
|
|
- /** number of Objects that might be replaced (should be 1) */
|
|
|
- int replaceCounter = 0;
|
|
|
+ /** y of the dragged Object */
|
|
|
+ int y = object.getPosition().y;
|
|
|
+
|
|
|
+ /** distance threshold for replacement */
|
|
|
+ int treshhold = model.getScale()/2;
|
|
|
|
|
|
- /** last object that could be replaced */
|
|
|
- AbstractCpsObject toBeReplaced = null;
|
|
|
+ /** number of Objects that might be replaced (should be 1) */
|
|
|
+ int replaceCounter = 0;
|
|
|
|
|
|
- /** for each cps on Canvas */
|
|
|
- for (AbstractCpsObject cps : upperNode.getNodes()){
|
|
|
+ /** last object that could be replaced */
|
|
|
+ AbstractCpsObject toBeReplaced = null;
|
|
|
|
|
|
- /** same object -> ignore */
|
|
|
- if(cps == object)continue;
|
|
|
+ /** for each cps on Canvas */
|
|
|
+ for (AbstractCpsObject cps : upperNode.getNodes()){
|
|
|
+
|
|
|
+ /** same object -> ignore */
|
|
|
+ if(cps == object)continue;
|
|
|
|
|
|
- /** x of object that might get replaced */
|
|
|
- int c_x = cps.getPosition().x;
|
|
|
-
|
|
|
- /** y of object that might get replaced */
|
|
|
- int c_y = cps.getPosition().y;
|
|
|
-
|
|
|
- /** if near enough */
|
|
|
- if(Math.abs(x-c_x)<treshhold && Math.abs(y-c_y)<treshhold){
|
|
|
- replaceCounter++;
|
|
|
- toBeReplaced = cps;
|
|
|
+ /** x of object that might get replaced */
|
|
|
+ int c_x = cps.getPosition().x;
|
|
|
+
|
|
|
+ /** y of object that might get replaced */
|
|
|
+ int c_y = cps.getPosition().y;
|
|
|
+
|
|
|
+ /** if near enough */
|
|
|
+ if(Math.abs(x-c_x)<treshhold && Math.abs(y-c_y)<treshhold){
|
|
|
+ replaceCounter++;
|
|
|
+ toBeReplaced = cps;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ /** if replacement of exactly one object possible */
|
|
|
+ if(replaceCounter == 1 && toBeReplaced != null){
|
|
|
+ replaceObjectInUpperNode(toBeReplaced, object, upperNode);
|
|
|
}
|
|
|
- }
|
|
|
- /** if replacement of exactly one object possible */
|
|
|
- if(replaceCounter == 1 && toBeReplaced != null){
|
|
|
- replaceObjectInUpperNode(toBeReplaced, object, upperNode);
|
|
|
}
|
|
|
}
|
|
|
|