diff --git a/src/main/java/ui/TGComponent.java b/src/main/java/ui/TGComponent.java index 10575a4063f50febc27f306f3ff35b4d034eb4c8..15120a872deee317271e33e770c5a14c50718aa5 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 44d92160582bab38564bf580d7ca2f910f121a1e..c3dde33139fe47713b956298d2bdf9d2b44baa79 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 64b36bf3cde455d306b104c670bb52a32d0e99fb..528d08678703f5a85ce5329de853818cb14e5b2b 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;