diff --git a/src/main/java/ui/TDiagramPanel.java b/src/main/java/ui/TDiagramPanel.java index de1835932f86596a6d9097bacfed3e24bdd637fd..b78ae41f53b5deb05f05aa7689463b26c27d2b89 100644 --- a/src/main/java/ui/TDiagramPanel.java +++ b/src/main/java/ui/TDiagramPanel.java @@ -336,6 +336,10 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree { private FontMetrics savedFontMetrics = null; + public boolean changeOnComponent(TGComponent tgc, String oldValue, String newValue) { + return true; + } + public int stringWidth(Graphics g, String str) { if (this.savedFontMetrics == null) this.savedFontMetrics = g.getFontMetrics(new Font(Font.SANS_SERIF, Font.PLAIN, this.getFontSize())); diff --git a/src/main/java/ui/tmldd/TMLArchiBUSNode.java b/src/main/java/ui/tmldd/TMLArchiBUSNode.java index 148a6a9e7605bb665c2bc14b25a16292eae6fe3e..45bb6ddd9f85c4cfeccc43da81ba118cf1a8abbf 100755 --- a/src/main/java/ui/tmldd/TMLArchiBUSNode.java +++ b/src/main/java/ui/tmldd/TMLArchiBUSNode.java @@ -271,7 +271,9 @@ public class TMLArchiBUSNode extends TMLArchiCommunicationNode implements Swallo error = true; errors += "Name of the node "; } else { + String oldName = name; name = tmpName; + tdp.changeOnComponent(this, oldName, name); } } @@ -378,6 +380,8 @@ public class TMLArchiBUSNode extends TMLArchiCommunicationNode implements Swallo return false; } + + return true; } diff --git a/src/main/java/ui/tmldd/TMLArchiBridgeNode.java b/src/main/java/ui/tmldd/TMLArchiBridgeNode.java index 9b0d7fa71562b8d424f0151dd5f5cb0fd61bd257..b678716ec09bbaa71db1888ecfe50d100b7e3ace 100755 --- a/src/main/java/ui/tmldd/TMLArchiBridgeNode.java +++ b/src/main/java/ui/tmldd/TMLArchiBridgeNode.java @@ -204,7 +204,9 @@ public class TMLArchiBridgeNode extends TMLArchiCommunicationNode implements Swa error = true; errors += "Name of the node "; } else { + String oldName = name; name = tmpName; + tdp.changeOnComponent(this, oldName, name); } } diff --git a/src/main/java/ui/tmldd/TMLArchiCPNode.java b/src/main/java/ui/tmldd/TMLArchiCPNode.java index 0f97175cf10775a1da6367c4e9f420d8302fb4d2..f90df583710091d583c518de96e6f03dc5ab179c 100755 --- a/src/main/java/ui/tmldd/TMLArchiCPNode.java +++ b/src/main/java/ui/tmldd/TMLArchiCPNode.java @@ -279,7 +279,9 @@ public class TMLArchiCPNode extends TMLArchiCommunicationNode implements Swallow errors += "Name of the node "; } else { + String oldName = name; name = tmpName; + tdp.changeOnComponent(this, oldName, name); } } diff --git a/src/main/java/ui/tmldd/TMLArchiCommunicationArtifact.java b/src/main/java/ui/tmldd/TMLArchiCommunicationArtifact.java index f65bac120b58a0e24b511192e2ed463f93584adc..ab9b166d8fa07ee2d0192d5b161391909b42d61a 100755 --- a/src/main/java/ui/tmldd/TMLArchiCommunicationArtifact.java +++ b/src/main/java/ui/tmldd/TMLArchiCommunicationArtifact.java @@ -411,4 +411,23 @@ public class TMLArchiCommunicationArtifact extends TGCWithoutInternalComponent i public String getAttributes() { return "Priority = " + priority; } + + public void updateMappedElements(String oldName, String newName) { + //TraceManager.addDev("Old:" + oldName + " newName:" + newName); + String found = null; + int index = 0; + for(String s: mappedElements) { + if (s.compareTo(oldName) == 0) { + found = s; + break; + } + index ++; + } + + if (found != null) { + //TraceManager.addDev("Found mapping to change"); + mappedElements.remove(index); + mappedElements.add(index, newName); + } + } } diff --git a/src/main/java/ui/tmldd/TMLArchiCrossbarNode.java b/src/main/java/ui/tmldd/TMLArchiCrossbarNode.java index 34f7ec87936d62b49b8c4639994723b1083930da..d5772d6b2e2ec9452ed6deb67569e1fd9083510a 100755 --- a/src/main/java/ui/tmldd/TMLArchiCrossbarNode.java +++ b/src/main/java/ui/tmldd/TMLArchiCrossbarNode.java @@ -215,28 +215,13 @@ public class TMLArchiCrossbarNode extends TMLArchiCommunicationNode implements S error = true; errors += "Name of the node "; } else { + String oldName = name; name = tmpName; - } - } + tdp.changeOnComponent(this, oldName, name); - /* arbitrationPolicy = dialog.getArbitrationPolicy(); - privacy = dialog.getPrivacy(); - if (arbitrationPolicy == HwBus.BASIC_ROUND_ROBIN) { - stereotype = "BUS-RR"; - } - - if (arbitrationPolicy == HwBus.PRIORITY_BASED) { - stereotype = "BUS-PB"; - } - - if (arbitrationPolicy == HwBus.CAN) { - stereotype = "BUS-CAN"; + } } - if (arbitrationPolicy == HwBus.CROSSBAR) { - stereotype = "CROSSBAR"; - }*/ - // DG we need only data size if (dialog.getByteDataSize().length() != 0) { diff --git a/src/main/java/ui/tmldd/TMLArchiDMANode.java b/src/main/java/ui/tmldd/TMLArchiDMANode.java index 28ea0cec3ae5d747124e9cfc2e1fd201ada2d544..2e96f0152cbada6485fae3e0b67cad940840b7d3 100755 --- a/src/main/java/ui/tmldd/TMLArchiDMANode.java +++ b/src/main/java/ui/tmldd/TMLArchiDMANode.java @@ -208,7 +208,9 @@ public class TMLArchiDMANode extends TMLArchiCommunicationNode implements Swallo error = true; errors += "Name of the node "; } else { + String oldName = name; name = tmpName; + tdp.changeOnComponent(this, oldName, name); } } diff --git a/src/main/java/ui/tmldd/TMLArchiDiagramPanel.java b/src/main/java/ui/tmldd/TMLArchiDiagramPanel.java index 0a43ea411a76d5c07dbc0112a3951c59c8049f1a..1ce1806d7c26c3302140193ee97b91d0cd22c80d 100755 --- a/src/main/java/ui/tmldd/TMLArchiDiagramPanel.java +++ b/src/main/java/ui/tmldd/TMLArchiDiagramPanel.java @@ -79,6 +79,9 @@ public class TMLArchiDiagramPanel extends TDiagramPanel implements TDPWithAttrib @Override public boolean actionOnDoubleClick(TGComponent tgc) { + + TraceManager.addDev("Change on tgc=" + tgc); + // /*if (tgc instanceof TCDTClass) { TCDTClass t = (TCDTClass)tgc; @@ -98,6 +101,8 @@ public class TMLArchiDiagramPanel extends TDiagramPanel implements TDPWithAttrib return false; } + + @Override public boolean actionOnAdd(TGComponent tgc) { /*if (tgc instanceof TCDTClass) { @@ -185,10 +190,29 @@ public class TMLArchiDiagramPanel extends TDiagramPanel implements TDPWithAttrib /*if (tgc instanceof TCDTClass) { return actionOnDoubleClick(tgc); }*/ + + listOfCP = getListOfCPNodes(); return false; } + public boolean changeOnComponent(TGComponent tgc, String oldData, String newData) { + + if (tgc instanceof TMLArchiCommunicationNode) { + // This change of name may induce mapping problems -> we do the refactoring + // We have to find all comm artifacts, and update their multi-mapping + //TraceManager.addDev("Change on comm node name"); + for(TGComponent artifact: getAllComponentList()) { + if (artifact instanceof TMLArchiCommunicationArtifact) { + //TraceManager.addDev("Artifact found: " + artifact.getName() + " " + artifact.getValue()); + ((TMLArchiCommunicationArtifact)artifact).updateMappedElements(oldData, newData); + } + } + } + + return true; + } + public int getMasterClockFrequency() { return masterClockFrequency; } diff --git a/src/main/java/ui/tmldd/TMLArchiFirewallNode.java b/src/main/java/ui/tmldd/TMLArchiFirewallNode.java index 22d941c68e98ab16659758345f51a952c5465d89..757263ca72996edfe74171a5537a8fbf39adbd23 100644 --- a/src/main/java/ui/tmldd/TMLArchiFirewallNode.java +++ b/src/main/java/ui/tmldd/TMLArchiFirewallNode.java @@ -213,7 +213,9 @@ public class TMLArchiFirewallNode extends TMLArchiCommunicationNode implements S error = true; errors += "Name of the node "; } else { - name = tmpName; + String oldName = name; + name = tmpName; + tdp.changeOnComponent(this, oldName, name); } } latency = Integer.valueOf(dialog.getLatency()); diff --git a/src/main/java/ui/tmldd/TMLArchiMemoryNode.java b/src/main/java/ui/tmldd/TMLArchiMemoryNode.java index 36c7c6cfc0b67c152476b9c9d705e7927da74102..7d43e3ccce5747d50f0f9d302930d4857d1e2322 100755 --- a/src/main/java/ui/tmldd/TMLArchiMemoryNode.java +++ b/src/main/java/ui/tmldd/TMLArchiMemoryNode.java @@ -219,7 +219,9 @@ public class TMLArchiMemoryNode extends TMLArchiCommunicationNode implements Swa error = true; errors += "Name of the node "; } else { + String oldName = name; name = tmpName; + tdp.changeOnComponent(this, oldName, name); } } diff --git a/src/main/java/ui/tmldd/TMLArchiRouterNode.java b/src/main/java/ui/tmldd/TMLArchiRouterNode.java index d9ea2d11cccb2d59adf05ee524f5ed764cc53d35..e25a95c7d947a6a04c4b5574af1f6c19de6b526e 100755 --- a/src/main/java/ui/tmldd/TMLArchiRouterNode.java +++ b/src/main/java/ui/tmldd/TMLArchiRouterNode.java @@ -209,7 +209,9 @@ public class TMLArchiRouterNode extends TMLArchiCommunicationNode implements Swa error = true; errors += "Name of the node "; } else { + String oldName = name; name = tmpName; + tdp.changeOnComponent(this, oldName, name); } } diff --git a/src/main/java/ui/tmldd/TMLArchiVGMNNode.java b/src/main/java/ui/tmldd/TMLArchiVGMNNode.java index fb8a79651d5633329a34c2c82d991de0798f3d32..87320dd5928cc2d3bb3e57e4643dd540cbdaa80f 100755 --- a/src/main/java/ui/tmldd/TMLArchiVGMNNode.java +++ b/src/main/java/ui/tmldd/TMLArchiVGMNNode.java @@ -232,28 +232,13 @@ public class TMLArchiVGMNNode extends TMLArchiCommunicationNode implements Swall error = true; errors += "Name of the node "; } else { + String oldName = name; name = tmpName; + tdp.changeOnComponent(this, oldName, name); } } - /* arbitrationPolicy = dialog.getArbitrationPolicy(); - privacy = dialog.getPrivacy(); - if (arbitrationPolicy == HwBus.BASIC_ROUND_ROBIN) { - stereotype = "BUS-RR"; - } - - if (arbitrationPolicy == HwBus.PRIORITY_BASED) { - stereotype = "BUS-PB"; - } - if (arbitrationPolicy == HwBus.CAN) { - stereotype = "BUS-CAN"; - } - - if (arbitrationPolicy == HwBus.CROSSBAR) { - stereotype = "CROSSBAR"; - }*/ - //DG we need only data size if (dialog.getByteDataSize().length() != 0) { try { tmp = byteDataSize; @@ -269,50 +254,6 @@ public class TMLArchiVGMNNode extends TMLArchiCommunicationNode implements Swall } } - /* if (dialog.getSliceTime().length() != 0) { - try { - tmp = sliceTime; - sliceTime = Integer.decode(dialog.getSliceTime()).intValue(); - if (sliceTime <= 0) { - sliceTime = tmp; - error = true; - errors += "Slice time "; - } - } catch (Exception e) { - error = true; - errors += "Slice time "; - } - } - - if (dialog.getPipelineSize().length() != 0) { - try { - tmp = pipelineSize; - pipelineSize = Integer.decode(dialog.getPipelineSize()).intValue(); - if (pipelineSize <= 0) { - pipelineSize = tmp; - error = true; - errors += "Pipeline size "; - } - } catch (Exception e) { - error = true; - errors += "Pipeline size "; - } - } - - if (dialog.getClockRatio().length() != 0) { - try { - tmp = clockRatio; - clockRatio = Integer.decode(dialog.getClockRatio()).intValue(); - if (clockRatio <= 0) { - clockRatio = tmp; - error = true; - errors += "Clock diviser "; - } - } catch (Exception e) { - error = true; - errors += "Clock diviser "; - } - }*/ if (error) { JOptionPane.showMessageDialog(frame,