From 35c6c9f6492f80fb97ccb1937c4356ee84f9c99c Mon Sep 17 00:00:00 2001 From: Fabien Tessier <fabien.tessier@telecom-paristech.fr> Date: Fri, 6 Oct 2017 13:06:41 +0200 Subject: [PATCH] Refactoring for primitive component name --- src/main/java/ui/TGComponent.java | 24 +++++++++++++++++++ .../ui/tmlcompd/TMLCCompositeComponent.java | 7 ++++++ .../ui/tmlcompd/TMLCPrimitiveComponent.java | 1 + 3 files changed, 32 insertions(+) diff --git a/src/main/java/ui/TGComponent.java b/src/main/java/ui/TGComponent.java index 10575a4063..15120a872d 100755 --- a/src/main/java/ui/TGComponent.java +++ b/src/main/java/ui/TGComponent.java @@ -54,6 +54,7 @@ import ui.tmlcd.TMLTaskDiagramPanel; import ui.tmlcompd.TMLCPrimitiveComponent; import ui.tmlcompd.TMLComponentTaskDiagramPanel; import ui.tmldd.TMLArchiArtifact; +import ui.tmldd.TMLArchiCPUNode; import ui.tmldd.TMLArchiDiagramPanel; import ui.tmldd.TMLArchiFirewallNode; import ui.util.IconManager; @@ -2669,6 +2670,29 @@ public abstract class TGComponent implements CDElement, GenericTree { repaint = true; } + /** + * Rename all reference of a primitive component. + * @author Fabien Tessier + * @param s new name + */ + public void setComponentName(String s) { + for (TURTLEPanel tp: tdp.mgui.tabs) + for (TDiagramPanel t: tp.getPanels()) { + for (TGComponent t2: t.componentList) { + if (t2 instanceof TMLArchiCPUNode) { + TMLArchiCPUNode tcpu = (TMLArchiCPUNode) t2; + for (TMLArchiArtifact art: tcpu.getArtifactList()) { + if (art.getTaskName().equals(value)); + art.setTaskName(s); + String tmp = art.getValue().replaceAll("(?i)" + value + "$", s); + art.setValue(tmp); + } + } + } + t.repaint(); + } + } + public final int getState() { return state; } diff --git a/src/main/java/ui/tmlcompd/TMLCCompositeComponent.java b/src/main/java/ui/tmlcompd/TMLCCompositeComponent.java index 44d9216058..c3dde33139 100755 --- a/src/main/java/ui/tmlcompd/TMLCCompositeComponent.java +++ b/src/main/java/ui/tmlcompd/TMLCCompositeComponent.java @@ -220,6 +220,13 @@ public class TMLCCompositeComponent extends TGCScalableWithInternalComponent imp JOptionPane.INFORMATION_MESSAGE); return false; } + if (((TMLComponentTaskDiagramPanel)(tdp)).isCompositeNameUsed(s)) { + JOptionPane.showMessageDialog(frame, + "Error: the name is already in use", + "Name modification", + JOptionPane.ERROR_MESSAGE); + return false; + } setValueWithChange(s); return true; } diff --git a/src/main/java/ui/tmlcompd/TMLCPrimitiveComponent.java b/src/main/java/ui/tmlcompd/TMLCPrimitiveComponent.java index 64b36bf3cd..528d086787 100755 --- a/src/main/java/ui/tmlcompd/TMLCPrimitiveComponent.java +++ b/src/main/java/ui/tmlcompd/TMLCPrimitiveComponent.java @@ -330,6 +330,7 @@ public class TMLCPrimitiveComponent extends TGCScalableWithInternalComponent imp //TraceManager.addDev("Set value with change"); + setComponentName(s); setValueWithChange(s); isAttacker = s.contains("Attacker"); rescaled = true; -- GitLab