diff --git a/src/main/java/ddtranslatorSoclib/toTopCell/NetList.java b/src/main/java/ddtranslatorSoclib/toTopCell/NetList.java
index 9cc066dae4a72218bb9081e78bbec320f97650e3..540f5654cc2c32298282b831f64b5b99acb9a924 100644
--- a/src/main/java/ddtranslatorSoclib/toTopCell/NetList.java
+++ b/src/main/java/ddtranslatorSoclib/toTopCell/NetList.java
@@ -1086,29 +1086,6 @@ public class NetList
                 "sc_trace(tf,signal_from_ams" + amsCluster.getNo_amsCluster () +
                 ",\"signal_from_ams" + amsCluster.getNo_amsCluster () + "\");" + CR;
             }
-
-  //Call trace function from the AMS cluster.
-	    int tracefile_present=0;//only one trace file for all AMS clusters
-            for (AvatarAmsCluster amsCluster:TopCellGenerator.avatardd.getAllAmsCluster())
-		{
-		if(tracefile_present==0){
-		  
-                netlist += CR +
-		    "sca_util::sca_trace_file *tfp = sca_util::sca_create_tabular_trace_file(\"my_trace_analog\");" + CR;tracefile_present=1;}
-                netlist +=
-                "sca_util::sca_trace(tfp,signal_to_ams" + amsCluster.getNo_amsCluster() +
-                ",\"signal_to_ams" + amsCluster.getNo_amsCluster() + "\");" + CR;
-                netlist +=
-                "sca_util::sca_trace(tfp,signal_from_ams" + amsCluster.getNo_amsCluster() +
-                ",\"signal_from_ams" + amsCluster.getNo_amsCluster() + "\");" + CR;
-                
-                netlist +=
-                amsCluster.getAmsClusterName() + amsCluster.getNo_amsCluster() +
-                ".trace_" + amsCluster.getAmsClusterName() + "(tfp);" + CR;
-            }
-            
-            netlist += CR;
-	    
 	    }
 
 	netlist =
@@ -1123,7 +1100,6 @@ public class NetList
 	if (tracing)
 	    {
 		netlist += "sc_close_vcd_trace_file(tf);" + CR;
-		netlist += "sca_util::sca_close_tabular_trace_file(tfp);" + CR;
 	    }
 	netlist = netlist + CR + "  return EXIT_SUCCESS;" + CR;
 	netlist = netlist + "}" + CR;
diff --git a/src/main/java/ui/ActionPerformer.java b/src/main/java/ui/ActionPerformer.java
index d9ad4ea3531d977dd8362f54c08ff2efbcbd8efd..8550f8bdd14d4db218aa550b54ee959719496337 100644
--- a/src/main/java/ui/ActionPerformer.java
+++ b/src/main/java/ui/ActionPerformer.java
@@ -857,10 +857,7 @@ public class ActionPerformer {
             mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLARCHI_CPUNODE);
         } else if (command.equals(mgui.actions[TGUIAction.TMLARCHI_FPGANODE].getActionCommand())) {
             mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLARCHI_FPGANODE);
-        } else if (command.equals(mgui.actions[TGUIAction.TMLARCHI_ANALOGNODE].getActionCommand())) {
-            mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLARCHI_ANALOGNODE);
-        }
-	else if (command.equals(mgui.actions[TGUIAction.TMLARCHI_BUSNODE].getActionCommand())) {
+        } else if (command.equals(mgui.actions[TGUIAction.TMLARCHI_BUSNODE].getActionCommand())) {
             mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLARCHI_BUSNODE);
         } else if (command.equals(mgui.actions[TGUIAction.TMLARCHI_CPNODE].getActionCommand())) {
             mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLARCHI_CPNODE);
diff --git a/src/main/java/ui/GTMLModeling.java b/src/main/java/ui/GTMLModeling.java
index 69243fa7adba93a1b55d218cb3161fba1d5655b3..510f643acdb3f5be69dc059849ab59e3d3fe47b3 100644
--- a/src/main/java/ui/GTMLModeling.java
+++ b/src/main/java/ui/GTMLModeling.java
@@ -89,7 +89,6 @@ import ui.tmldd.TMLArchiCrossbarNode;
 import ui.tmldd.TMLArchiDMANode;
 import ui.tmldd.TMLArchiEventArtifact;
 import ui.tmldd.TMLArchiFPGANode;
-import ui.tmldd.TMLArchiAnalogNode;
 import ui.tmldd.TMLArchiFirewallNode;
 import ui.tmldd.TMLArchiHWANode;
 import ui.tmldd.TMLArchiKey;
@@ -2782,7 +2781,6 @@ public class GTMLModeling {
 
         TMLArchiCPUNode node;
         TMLArchiFPGANode fpgaNode;
-	TMLArchiAnalogNode analogNode;
         TMLArchiHWANode hwanode;
         TMLArchiBUSNode busnode;
         TMLArchiVGMNNode vgmnnode;
@@ -2794,7 +2792,6 @@ public class GTMLModeling {
         TMLArchiRouterNode routerNode;
         HwCPU cpu;
         HwFPGA fpga;
-	HwAnalog analog;
         HwA hwa;
         HwBus bus;
         HwVGMN vgmn;
@@ -2871,36 +2868,6 @@ public class GTMLModeling {
                 }
             }
 
-	    if (tgc instanceof TMLArchiAnalogNode) {
-                analogNode = (TMLArchiAnalogNode) tgc;
-                if (nameInUse(names, analogNode.getName())) {
-                    // Node with the same name
-                    UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Two nodes have the same name: " + analogNode.getName());
-                    ce.setTDiagramPanel(tmlap.tmlap);
-                    ce.setTGComponent(analogNode);
-                    checkingErrors.add(ce);
-                } else {
-                    names.add(analogNode.getName());
-                    analog = new HwAnalog(analogNode.getName());
-                    analog.capacity = analogNode.getCapacity();
-                    analog.byteDataSize = analogNode.getByteDataSize();
-                    analog.mappingPenalty = analogNode.getMappingPenalty();
-                    analog.goIdleTime = analogNode.getGoIdleTime();
-                    analog.maxConsecutiveIdleCycles = analogNode.getMaxConsecutiveIdleCycles();
-                    analog.reconfigurationTime = analogNode.getReconfigurationTime();
-                    analog.execiTime = analogNode.getExeciTime();
-                    analog.execcTime = analogNode.getExeccTime();
-                    analog.clockRatio = analogNode.getClockRatio();
-                    analog.setOperation(analogNode.getOperation());
-                    analog.setScheduling(analogNode.getScheduling());
-
-                    listE.addCor(analog, analogNode);
-                    archi.addHwNode(analog);
-                    //TraceManager.addDev("Analog node added: " + analogNode.getName());
-                }
-            }
-
-	    
             if (tgc instanceof TMLArchiHWANode) {
                 hwanode = (TMLArchiHWANode) tgc;
                 if (nameInUse(names, hwanode.getName())) {
diff --git a/src/main/java/ui/TGComponentManager.java b/src/main/java/ui/TGComponentManager.java
index a9b2441d42717ddb0178960d7e1ad160d4ba0cc6..a42b1b98b344837368c62a07dc44f7d99a42d9f1 100644
--- a/src/main/java/ui/TGComponentManager.java
+++ b/src/main/java/ui/TGComponentManager.java
@@ -280,7 +280,6 @@ public class TGComponentManager {
     public static final int TMLARCHI_CROSSBARNODE = 1113;
     public static final int TMLARCHI_FIREWALL = 1114;
     public static final int TMLARCHI_FPGANODE = 1116;
-    public static final int TMLARCHI_ANALOGNODE = 5720;
     public static final int TMLARCHI_ROUTERNODE = 1117;
 
     public static final int TMLCTD_CCOMPONENT = 1200;
@@ -1241,9 +1240,6 @@ public class TGComponentManager {
             case TMLARCHI_FPGANODE:
                 tgc = new TMLArchiFPGANode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
                 break;
-		case TMLARCHI_ANALOGNODE:
-                tgc = new TMLArchiAnalogNode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
             case TMLARCHI_BUSNODE:
                 tgc = new TMLArchiBUSNode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
                 break;
@@ -2164,8 +2160,6 @@ public class TGComponentManager {
             return TMLARCHI_CPUNODE;
         } else if (tgc instanceof TMLArchiFPGANode) {
             return TMLARCHI_FPGANODE;
-	 } else if (tgc instanceof TMLArchiAnalogNode) {
-            return TMLARCHI_ANALOGNODE;    
         } else if (tgc instanceof TMLArchiBUSNode) {
             return TMLARCHI_BUSNODE;
         } else if (tgc instanceof TMLArchiVGMNNode) {
diff --git a/src/main/java/ui/TGUIAction.java b/src/main/java/ui/TGUIAction.java
index dc580d18e71d991f867a965d10b0cdbdb2dc73df..d0940e93e1202bc33bf2cb0d0fde34502f6fae9c 100644
--- a/src/main/java/ui/TGUIAction.java
+++ b/src/main/java/ui/TGUIAction.java
@@ -251,8 +251,7 @@ public class TGUIAction extends AbstractAction {
     public static final int TMLARCHI_KEY = 435;
     public static final int TMLARCHI_FIREWALL = 436;
     public static final int TMLARCHI_FPGANODE = 474;
-    public static final int TMLARCHI_ANALOGNODE = 519;
-    
+
     public static final int TMLCP_EDIT = 378;
     public static final int TMLCP_CONNECTOR = 379;
     public static final int TMLCP_REF_SD = 380;
@@ -674,7 +673,7 @@ public class TGUIAction extends AbstractAction {
     public static final int MOVE_ENABLED = 463;
     public static final int FIRST_DIAGRAM = 464;
     
-    public static final int NB_ACTION = 520;
+    public static final int NB_ACTION = 519;
 
     private static final TAction [] actions = new TAction[NB_ACTION];
 
@@ -1138,7 +1137,6 @@ public class TGUIAction extends AbstractAction {
         actions[TMLARCHI_LINK] = new TAction("add-tmlarchi-link", "Add a link", IconManager.imgic202, IconManager.imgic202, "Link", "Add a link between two nodes of the currently opened DIPLODOCUS architecture diagram", 0);
         actions[TMLARCHI_CPUNODE] = new TAction("add-tmlarchi-cpunode", "Add a CPU node", IconManager.imgic1100, IconManager.imgic1100, "CPU node", "Add a cpu node to the currently opened DIPLODOCUS architecture diagram", 0);
         actions[TMLARCHI_FPGANODE] = new TAction("add-tmlarchi-fpganode", "Add a FPGA node", IconManager.imgic1120, IconManager.imgic1120, "FPGA node", "Add a fpga node to the currently opened DIPLODOCUS architecture diagram", 0);
-	 actions[TMLARCHI_ANALOGNODE] = new TAction("add-tmlarchi-analognode", "Add an analog  node", IconManager.imgic8006, IconManager.imgic8006, "Analog node", "Add an analog node to the currently opened DIPLODOCUS architecture diagram", 0);
         actions[TMLARCHI_BUSNODE] = new TAction("add-tmlarchi-busnode", "Add a Bus node", IconManager.imgic1102, IconManager.imgic1102, "Bus node", "Add a bus node to the currently opened DIPLODOCUS architecture diagram", 0);
         actions[TMLARCHI_CPNODE] = new TAction("add-tmlarchi-cpnode", "Add a Communication pattern node", IconManager.imgic1102, IconManager.imgic1102, "CP node", "Add a communication pattern node to the currently opened DIPLODOCUS architecture diagram", 0);
         actions[TMLARCHI_ARTIFACT] = new TAction("add-tmlarchi-artifact", "Map a task", IconManager.imgic702, IconManager.imgic702, "Map a task", "Map a task onto a node in the currently opened DIPLODOCUS architecture diagram", 0);
diff --git a/src/main/java/ui/avatardd/ADDMemoryNode.java-new b/src/main/java/ui/avatardd/ADDMemoryNode.java-new
new file mode 100755
index 0000000000000000000000000000000000000000..403be2baafa54577a1e8dfff2ff509583a11cb56
--- /dev/null
+++ b/src/main/java/ui/avatardd/ADDMemoryNode.java-new
@@ -0,0 +1,335 @@
+/* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
+ * 
+ * ludovic.apvrille AT enst.fr
+ * 
+ * This software is a computer program whose purpose is to allow the
+ * edition of TURTLE analysis, design and deployment diagrams, to
+ * allow the generation of RT-LOTOS or Java code from this diagram,
+ * and at last to allow the analysis of formal validation traces
+ * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP
+ * from INRIA Rhone-Alpes.
+ * 
+ * This software is governed by the CeCILL  license under French law and
+ * abiding by the rules of distribution of free software.  You can  use,
+ * modify and/ or redistribute the software under the terms of the CeCILL
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ * 
+ * As a counterpart to the access to the source code and  rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty  and the software's author,  the holder of the
+ * economic rights,  and the successive licensors  have only  limited
+ * liability.
+ * 
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading,  using,  modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean  that it is complicated to manipulate,  and  that  also
+ * therefore means  that it is reserved for developers  and  experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and,  more generally, to use and operate it in the
+ * same conditions as regards security.
+ * 
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL license and that you accept its terms.
+ */
+
+package ui.avatardd;
+
+import myutil.GraphicLib;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import tmltranslator.HwMemory;
+import ui.*;
+import ui.util.IconManager;
+import ui.window.JDialogADDMemoryNode;
+
+import javax.swing.*;
+import java.awt.*;
+
+/**
+   * Class ADDMemoryNode
+   * Node. To be used in avatar deployment diagrams.
+   * Creation: 21/08/2014
+   * @version 1.0 21/08/2014
+   * @author Ludovic APVRILLE
+ */
+
+public abstract class ADDMemoryNode extends ADDCommunicationNode implements WithAttributes {
+    protected int textY1 = 15;
+    protected int textY2 = 30;
+    protected int derivationx = 2;
+    protected int derivationy = 3;
+    protected String stereotype = "RAM";
+
+    protected int index = 0;
+    protected int cluster_index = 0;
+    protected int monitored = 0;
+    protected int byteDataSize = HwMemory.DEFAULT_BYTE_DATA_SIZE;
+
+    private String processCode;
+    
+    public ADDMemoryNode(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
+        super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
+        
+        setProcessCode("");
+    }
+
+    public void internalDrawing(Graphics g) {
+        Color c = g.getColor();
+        g.draw3DRect(x, y, width, height, true);
+
+        // Top lines
+        g.drawLine(x, y, x + derivationx, y - derivationy);
+        g.drawLine(x + width, y, x + width + derivationx, y - derivationy);
+        g.drawLine(x + derivationx, y - derivationy, x + width + derivationx, y - derivationy);
+
+        // Right lines
+        g.drawLine(x + width, y + height, x + width + derivationx, y - derivationy + height);
+        g.drawLine(x + derivationx + width, y - derivationy, x + width + derivationx, y - derivationy + height);
+
+        // Filling color
+        g.setColor(ColorManager.MEMORY_BOX);
+        g.fill3DRect(x+1, y+1, width-1, height-1, true);
+        g.setColor(c);
+
+        // Strings
+        String ster = "<<" + stereotype + ">>";
+        int w  = g.getFontMetrics().stringWidth(ster);
+        Font f = g.getFont();
+        g.setFont(f.deriveFont(Font.BOLD));
+        g.drawString(ster, x + (width - w)/2, y + textY1);
+        w  = g.getFontMetrics().stringWidth(name);
+        g.setFont(f);
+        g.drawString(name, x + (width - w)/2, y + textY2);
+
+        // Icon
+        //g.drawImage(IconManager.imgic1108.getImage(), x + width - 20, y + 4, null);
+        g.drawImage(IconManager.imgic1108.getImage(), x + 4, y + 4, null);
+        g.drawImage(IconManager.img9, x + width - 20, y + 4, null);
+    }
+
+    public TGComponent isOnOnlyMe(int x1, int y1) {
+        Polygon pol = new Polygon();
+        pol.addPoint(x, y);
+        pol.addPoint(x + derivationx, y - derivationy);
+        pol.addPoint(x + derivationx + width, y - derivationy);
+        pol.addPoint(x + derivationx + width, y + height - derivationy);
+        pol.addPoint(x + width, y + height);
+        pol.addPoint(x, y + height);
+        if (pol.contains(x1, y1)) {
+            return this;
+        }
+        return null;
+    }
+
+    public String getStereotype() {
+        return stereotype;
+    }
+
+    public String getNodeName() {
+        return name;
+    }
+
+    public int getIndex() {
+        return index;
+    }
+
+    public int getClusterIndex() {
+        return cluster_index;
+    }
+    
+    public int getDataSize() {
+        return byteDataSize;
+    }
+
+    public int getMonitored() {
+        return monitored;
+    }
+
+    public boolean editOndoubleClick(JFrame frame) {
+        boolean error = false;
+        String errors = "";
+        int tmp;
+        String tmpName;
+
+        JDialogADDMemoryNode dialog = new JDialogADDMemoryNode(frame, "Setting " + stereotype + " attributes", this);
+       // dialog.setSize(500, 450);
+        GraphicLib.centerOnParent(dialog, 500, 450);
+        dialog.setVisible( true ); // blocked until dialog has been closed
+
+        if (!dialog.isRegularClose()) {
+            return false;
+        }
+
+        if (dialog.getNodeName().length() != 0) {
+            tmpName = dialog.getNodeName();
+            tmpName = tmpName.trim();
+            if (!TAttribute.isAValidId(tmpName, false, false)) {
+                error = true;
+                errors += "Name of the node  ";
+            } else {
+                name = tmpName;
+            }
+        }
+
+        if (dialog.getIndex().length() != 0) {
+            try {
+                tmp = index;
+                index = Integer.decode(dialog.getIndex()).intValue();
+                if (index < 0) {
+                    index = tmp;
+                    error = true;
+                    errors += "index ";
+                }
+            } catch (Exception e) {
+                error = true;
+                errors += "index  ";
+            }
+        }
+
+	if (dialog.getClusterIndex().length() != 0) {
+            try {
+                tmp = cluster_index;
+                index = Integer.decode(dialog.getClusterIndex()).intValue();
+                if (index < 0) {
+                    index = tmp;
+                    error = true;
+                    errors += "cluster index ";
+                }
+            } catch (Exception e) {
+                error = true;
+                errors += "cluster index  ";
+            }
+        }
+
+	
+
+        if (dialog.getDataSize().length() != 0) {
+            try {
+                tmp = byteDataSize;
+                byteDataSize = Integer.decode(dialog.getDataSize()).intValue();
+                if (index < 0) {
+                    byteDataSize = tmp;
+                    error = true;
+                    errors += "byteDataSize ";
+                }
+            } catch (Exception e) {
+                error = true;
+                errors += "byteDataSize  ";
+            }
+        }
+
+        //if (dialog.getMonitored().length() != 0) {
+	if (dialog.getMonitored() != 0) {
+            try {
+                tmp = monitored;
+                monitored = dialog.getMonitored();//Integer.decode(dialog.getMonitored()).intValue();
+                if (index < 0) {
+                    monitored = tmp;
+                    error = true;
+                    errors += "monitored ";
+                }
+            } catch (Exception e) {
+                error = true;
+                errors += "monitored  ";
+            }
+        }
+
+        if (error) {
+            JOptionPane.showMessageDialog(frame,
+                                          "Invalid value for the following attributes: " + errors,
+                                          "Error",
+                                          JOptionPane.INFORMATION_MESSAGE);
+            return false;
+        }
+        return true;
+    }
+
+    protected String translateExtraParam() {
+        StringBuffer sb = new StringBuffer("<extraparam>\n");
+        sb.append("<info stereotype=\"" + stereotype + "\" nodeName=\"" + name);
+        sb.append("\" />\n");
+        sb.append("<attributes byteDataSize=\"" + byteDataSize + "\" ");
+        sb.append(" index=\"" + index + "\" ");
+	 sb.append(" cluster_index=\"" + cluster_index + "\" ");
+        if (stereotype.equals("RAM")) {
+        	sb.append(" processCode=\"" + getProcessCode() + "\" ");
+        }
+    	sb.append("/>\n");
+        sb.append("</extraparam>\n");
+        return new String(sb);
+    }
+
+    public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException{
+        //
+        try {
+            NodeList nli;
+            Node n1, n2;
+            Element elt;
+            //int t1id;
+            String sstereotype = null, snodeName = null;
+            monitored = 0;
+            String processCode;
+
+            for(int i=0; i<nl.getLength(); i++) {
+                n1 = nl.item(i);
+                //
+                if (n1.getNodeType() == Node.ELEMENT_NODE) {
+                    nli = n1.getChildNodes();
+                    for(int j=0; j<nli.getLength(); j++) {
+                        n2 = nli.item(j);
+                        //
+                        if (n2.getNodeType() == Node.ELEMENT_NODE) {
+                            elt = (Element) n2;
+                            if (elt.getTagName().equals("info")) {
+                                sstereotype = elt.getAttribute("stereotype");
+                                snodeName = elt.getAttribute("nodeName");
+                            }
+                            if (sstereotype != null) {
+                                stereotype = sstereotype;
+                            }
+                            if (snodeName != null){
+                                name = snodeName;
+                            }
+                            if (elt.getTagName().equals("attributes")) {
+                                byteDataSize = Integer.decode(elt.getAttribute("byteDataSize")).intValue();
+                                //monitored = Integer.decode(elt.getAttribute("monitored")).intValue();
+                                index = Integer.decode(elt.getAttribute("index")).intValue();
+				//cluster_index = Integer.decode(elt.getAttribute("cluster_index")).intValue();
+                                if (sstereotype.equals("RAM")) {
+                                	processCode = elt.getAttribute("processCode");
+                            		setProcessCode(processCode);
+                            	}
+                            }
+                        }
+                    }
+                }
+            }
+        } catch (Exception e) {
+            throw new MalformedModelingException();
+        }
+    }
+
+    public int getByteDataSize(){
+        return byteDataSize;
+    }
+
+    public String getAttributes() {
+        String attr = "";
+        attr += "Data size (in byte) = " + byteDataSize + "\n";
+        attr += "Index  = " + index + "\n";
+        return attr;
+    }
+
+	public String getProcessCode() {
+		return processCode;
+	}
+
+	public void setProcessCode(String _processCode) {
+		processCode = _processCode;
+	}
+}
diff --git a/src/main/java/ui/avatardd/ADDRAMNode.java-new b/src/main/java/ui/avatardd/ADDRAMNode.java-new
new file mode 100755
index 0000000000000000000000000000000000000000..6fee322b5a6ac5216cf1e846c1413d81acf4cc36
--- /dev/null
+++ b/src/main/java/ui/avatardd/ADDRAMNode.java-new
@@ -0,0 +1,167 @@
+/* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
+ * 
+ * ludovic.apvrille AT enst.fr
+ * 
+ * This software is a computer program whose purpose is to allow the
+ * edition of TURTLE analysis, design and deployment diagrams, to
+ * allow the generation of RT-LOTOS or Java code from this diagram,
+ * and at last to allow the analysis of formal validation traces
+ * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP
+ * from INRIA Rhone-Alpes.
+ * 
+ * This software is governed by the CeCILL  license under French law and
+ * abiding by the rules of distribution of free software.  You can  use,
+ * modify and/ or redistribute the software under the terms of the CeCILL
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ * 
+ * As a counterpart to the access to the source code and  rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty  and the software's author,  the holder of the
+ * economic rights,  and the successive licensors  have only  limited
+ * liability.
+ * 
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading,  using,  modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean  that it is complicated to manipulate,  and  that  also
+ * therefore means  that it is reserved for developers  and  experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and,  more generally, to use and operate it in the
+ * same conditions as regards security.
+ * 
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL license and that you accept its terms.
+ */
+
+package ui.avatardd;
+
+import ui.*;
+import ui.util.IconManager;
+
+import java.util.Vector;
+
+/**
+   * Class ADDRAMNode
+   * Node. To be used in avatar deployment diagrams.
+   * Creation: 01/07/2014
+   * @version 1.0 01/07/2014
+   * @author Ludovic APVRILLE
+ */
+
+public class ADDRAMNode extends ADDMemoryNode implements SwallowTGComponent, WithAttributes {
+
+    protected int monitored = 0;
+    protected int index = 0;
+    protected int cluster_index = 0;
+    
+    public ADDRAMNode(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
+        super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
+
+        width = 200;
+        height = 200;
+        minWidth = 100;
+        minHeight = 35;
+
+        nbConnectingPoint = 16;
+        connectingPoint = new TGConnectingPoint[16];
+
+        connectingPoint[0] = new ADDConnectingPoint(this, 0, 0, false, true, 0.0, 0.0);
+        connectingPoint[1] = new ADDConnectingPoint(this, 0, 0, false, true, 0.5, 0.0);
+        connectingPoint[2] = new ADDConnectingPoint(this, 0, 0, false, true, 1.0, 0.0);
+        connectingPoint[3] = new ADDConnectingPoint(this, 0, 0, false, true, 0.0, 0.5);
+        connectingPoint[4] = new ADDConnectingPoint(this, 0, 0, false, true, 1.0, 0.5);
+        connectingPoint[5] = new ADDConnectingPoint(this, 0, 0, false, true, 0.0, 1.0);
+        connectingPoint[6] = new ADDConnectingPoint(this, 0, 0, false, true, 0.5, 1.0);
+        connectingPoint[7] = new ADDConnectingPoint(this, 0, 0, false, true, 1.0, 1.0);
+
+        connectingPoint[8] = new ADDConnectingPoint(this, 0, 0, false, true, 0.25, 0.0);
+        connectingPoint[9] = new ADDConnectingPoint(this, 0, 0, false, true, 0.75, 0.0);
+        connectingPoint[10] = new ADDConnectingPoint(this, 0, 0, false, true, 0.0, 0.25);
+        connectingPoint[11] = new ADDConnectingPoint(this, 0, 0, false, true, 1.0, 0.25);
+        connectingPoint[12] = new ADDConnectingPoint(this, 0, 0, false, true, 0.0, 0.75);
+        connectingPoint[13] = new ADDConnectingPoint(this, 0, 0, false, true, 1.0, 0.75);
+        connectingPoint[14] = new ADDConnectingPoint(this, 0, 0, false, true, 0.25, 1.0);
+        connectingPoint[15] = new ADDConnectingPoint(this, 0, 0, false, true, 0.75, 1.0);
+
+        addTGConnectingPointsComment();
+
+        nbInternalTGComponent = 0;
+
+        moveable = true;
+        editable = true;
+        removable = true;
+        userResizable = true;
+
+        stereotype = "RAM";
+
+        name = tdp.findNodeName("Memory");
+        value = "name";
+
+        myImageIcon = IconManager.imgic700;
+    }
+
+    public int getType() {
+        return TGComponentManager.ADD_RAMNODE;
+    }
+
+    public boolean acceptSwallowedTGComponent(TGComponent tgc) {
+        //TraceManager.addDev("Accept swallowed?");
+        return tgc instanceof ADDBlockArtifact;
+    }
+
+    public boolean addSwallowedTGComponent(TGComponent tgc, int x, int y) {
+        //TraceManager.addDev("Add swallowed?");
+        //Set its coordinates
+        if (tgc instanceof ADDChannelArtifact) {
+            tgc.setFather(this);
+            tgc.setDrawingZone(true);
+            tgc.resizeWithFather();
+            //TraceManager.addDev("Add swallowed!!!");
+            addInternalComponent(tgc, 0);
+            return true;
+        }
+        return false;
+    }
+
+    public void removeSwallowedTGComponent(TGComponent tgc) {
+        removeInternalComponent(tgc);
+    }
+
+    public Vector<ADDChannelArtifact> getArtifactList() {
+        Vector<ADDChannelArtifact> v = new Vector<ADDChannelArtifact>();
+        
+        for(int i=0; i<nbInternalTGComponent; i++) {
+            if (tgcomponent[i] instanceof ADDChannelArtifact) {
+                v.add( (ADDChannelArtifact) tgcomponent[i] );
+            }
+        }
+        return v;
+    }
+
+    public void hasBeenResized() {
+        for(int i=0; i<nbInternalTGComponent; i++) {
+            if (tgcomponent[i] instanceof ADDChannelArtifact) {
+                tgcomponent[i].resizeWithFather();
+            }
+        }
+    }
+
+    public int getIndex() {
+	return index;
+	}
+
+    public int getClusterIndex() {
+        return cluster_index;
+       }
+    
+    public int getMonitored() {
+        return monitored;
+    }
+
+    public void setMonitored(int _monitored){
+    	monitored = _monitored;
+    }
+}
diff --git a/src/main/java/ui/avatardd/ADDTTYNode.java-new b/src/main/java/ui/avatardd/ADDTTYNode.java-new
new file mode 100755
index 0000000000000000000000000000000000000000..234c60314ecd88aa1385959de8069b4441133235
--- /dev/null
+++ b/src/main/java/ui/avatardd/ADDTTYNode.java-new
@@ -0,0 +1,328 @@
+/* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
+ * 
+ * ludovic.apvrille AT enst.fr
+ * 
+ * This software is a computer program whose purpose is to allow the
+ * edition of TURTLE analysis, design and deployment diagrams, to
+ * allow the generation of RT-LOTOS or Java code from this diagram,
+ * and at last to allow the analysis of formal validation traces
+ * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP
+ * from INRIA Rhone-Alpes.
+ * 
+ * This software is governed by the CeCILL  license under French law and
+ * abiding by the rules of distribution of free software.  You can  use,
+ * modify and/ or redistribute the software under the terms of the CeCILL
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ * 
+ * As a counterpart to the access to the source code and  rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty  and the software's author,  the holder of the
+ * economic rights,  and the successive licensors  have only  limited
+ * liability.
+ * 
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading,  using,  modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean  that it is complicated to manipulate,  and  that  also
+ * therefore means  that it is reserved for developers  and  experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and,  more generally, to use and operate it in the
+ * same conditions as regards security.
+ * 
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL license and that you accept its terms.
+ */
+
+
+
+
+package ui.avatardd;
+
+import myutil.GraphicLib;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import ui.*;
+import ui.util.IconManager;
+import ui.window.JDialogADDTTYNode;
+
+import javax.swing.*;
+import java.awt.*;
+
+/**
+* Class ADDTTYNode
+* Node. To be used in Avatar deployment diagrams.
+* Creation: 01/07/2014
+* @version 1.0 01/07/2014
+* @author Ludovic APVRILLE
+ */
+public class ADDTTYNode extends ADDNode implements WithAttributes {
+	private int textY1 = 15;
+	private int textY2 = 30;
+	private int derivationx = 2;
+	private int derivationy = 3;
+	private String stereotype = "TTY";
+	
+	private int index = 0;
+	protected int cluster_index = 0;
+	
+	public ADDTTYNode(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
+		super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
+		
+		width = 250;
+		height = 200;
+		minWidth = 150;
+		minHeight = 100;
+		
+		nbConnectingPoint = 16;
+		connectingPoint = new TGConnectingPoint[16];
+		
+		connectingPoint[0] = new ADDConnectingPoint(this, 0, 0, false, true, 0.0, 0.0);
+		connectingPoint[1] = new ADDConnectingPoint(this, 0, 0, false, true, 0.5, 0.0);
+		connectingPoint[2] = new ADDConnectingPoint(this, 0, 0, false, true, 1.0, 0.0);
+		connectingPoint[3] = new ADDConnectingPoint(this, 0, 0, false, true, 0.0, 0.5);
+		connectingPoint[4] = new ADDConnectingPoint(this, 0, 0, false, true, 1.0, 0.5);
+		connectingPoint[5] = new ADDConnectingPoint(this, 0, 0, false, true, 0.0, 1.0);
+		connectingPoint[6] = new ADDConnectingPoint(this, 0, 0, false, true, 0.5, 1.0);
+		connectingPoint[7] = new ADDConnectingPoint(this, 0, 0, false, true, 1.0, 1.0);
+		
+		connectingPoint[8] = new ADDConnectingPoint(this, 0, 0, false, true, 0.25, 0.0);
+		connectingPoint[9] = new ADDConnectingPoint(this, 0, 0, false, true, 0.75, 0.0);
+		connectingPoint[10] = new ADDConnectingPoint(this, 0, 0, false, true, 0.0, 0.25);
+		connectingPoint[11] = new ADDConnectingPoint(this, 0, 0, false, true, 1.0, 0.25);
+		connectingPoint[12] = new ADDConnectingPoint(this, 0, 0, false, true, 0.0, 0.75);
+		connectingPoint[13] = new ADDConnectingPoint(this, 0, 0, false, true, 1.0, 0.75);
+		connectingPoint[14] = new ADDConnectingPoint(this, 0, 0, false, true, 0.25, 1.0);
+		connectingPoint[15] = new ADDConnectingPoint(this, 0, 0, false, true, 0.75, 1.0);
+		
+		addTGConnectingPointsComment();
+		
+		nbInternalTGComponent = 0;
+		
+		moveable = true;
+		editable = true;
+		removable = true;
+		userResizable = true;
+		
+		name = tdp.findNodeName("TTY");
+		value = "name";
+		
+		myImageIcon = IconManager.imgic700;
+	}
+	
+	public void internalDrawing(Graphics g) {
+		Color c = g.getColor();
+		g.draw3DRect(x, y, width, height, true);
+		
+		
+		// Top lines
+		g.drawLine(x, y, x + derivationx, y - derivationy);
+		g.drawLine(x + width, y, x + width + derivationx, y - derivationy);
+		g.drawLine(x + derivationx, y - derivationy, x + width + derivationx, y - derivationy);
+		
+		// Right lines
+		g.drawLine(x + width, y + height, x + width + derivationx, y - derivationy + height);
+		g.drawLine(x + derivationx + width, y - derivationy, x + width + derivationx, y - derivationy + height);
+		
+		// Filling color
+		g.setColor(ColorManager.CPU_BOX_1);
+		g.fill3DRect(x+1, y+1, width-1, height-1, true);
+		g.setColor(c);
+		
+		// Strings
+		String ster = "<<" + stereotype + ">>";
+		int w  = g.getFontMetrics().stringWidth(ster);
+		Font f = g.getFont();
+		g.setFont(f.deriveFont(Font.BOLD));
+		g.drawString(ster, x + (width - w)/2, y + textY1);
+		g.setFont(f);
+		w  = g.getFontMetrics().stringWidth(name);
+		g.drawString(name, x + (width - w)/2, y + textY2);
+		
+		// Icon
+		g.drawImage(IconManager.imgic1100.getImage(), x + 4, y + 4, null);
+		g.drawImage(IconManager.img9, x + width - 20, y + 4, null);
+	}
+	
+	public TGComponent isOnOnlyMe(int x1, int y1) {
+		
+		Polygon pol = new Polygon();
+		pol.addPoint(x, y);
+		pol.addPoint(x + derivationx, y - derivationy);
+		pol.addPoint(x + derivationx + width, y - derivationy);
+		pol.addPoint(x + derivationx + width, y + height - derivationy);
+		pol.addPoint(x + width, y + height);
+		pol.addPoint(x, y + height);
+		if (pol.contains(x1, y1)) {
+			return this;
+		}
+		
+		return null;
+	}
+	
+	public String getStereotype() {
+		return stereotype;
+		
+	}
+	
+	public String getNodeName() {
+		return name;
+	}
+	
+	public int getIndex() {
+		return index;
+	}
+
+       public int getClusterIndex() {
+        return cluster_index;
+       }
+	
+	public boolean editOndoubleClick(JFrame frame) {
+			boolean error = false;
+			String errors = "";
+			int tmp;
+			String tmpName;
+			
+			JDialogADDTTYNode dialog = new JDialogADDTTYNode(frame, "Setting TTY attributes", this);
+		//	dialog.setSize(500, 450);
+			GraphicLib.centerOnParent(dialog, 500, 450);
+			dialog.setVisible( true ); // blocked until dialog has been closed
+			
+			if (!dialog.isRegularClose()) {
+					return false;
+			}
+			
+			if (dialog.getNodeName().length() != 0) {
+					tmpName = dialog.getNodeName();
+					tmpName = tmpName.trim();
+					if (!TAttribute.isAValidId(tmpName, false, false)) {
+							error = true;
+							errors += "Name of the node  ";
+					} else {
+							name = tmpName;
+					}
+			}
+			
+			
+			
+			if (dialog.getIndex().length() != 0) {	
+					try {
+							tmp = index;
+							index = Integer.decode(dialog.getIndex()).intValue();
+							if (index < 0) {
+									index = tmp;
+									error = true;
+									errors += "index ";
+							}
+					} catch (Exception e) {
+							error = true;
+							errors += "index  ";
+					}
+			}
+			
+			if (dialog.getClusterIndex().length() != 0) {
+            try {
+                tmp = cluster_index;
+                index = Integer.decode(dialog.getClusterIndex()).intValue();
+                if (index < 0) {
+                    index = tmp;
+                    error = true;
+                    errors += "cluster index ";
+                }
+            } catch (Exception e) {
+                error = true;
+                errors += "cluster index  ";
+            }
+        }
+
+			
+			if (error) {
+					JOptionPane.showMessageDialog(frame,
+							"Invalid value for the following attributes: " + errors,
+							"Error",
+							JOptionPane.INFORMATION_MESSAGE);
+					return false;
+			}
+			
+			return true;
+	}
+	
+	
+	public int getType() {
+		return TGComponentManager.ADD_TTYNODE;
+	}
+	
+	protected String translateExtraParam() {
+		StringBuffer sb = new StringBuffer("<extraparam>\n");
+		sb.append("<info stereotype=\"" + stereotype + "\" nodeName=\"" + name);
+		sb.append("\" />\n");
+		sb.append("<attributes index=\"" + index + "\" ");
+		sb.append("cluster_index=\"" + cluster_index + "\" ");
+		//sb.append(" clockRatio=\"" + clockRatio + "\"");
+		sb.append("/>\n");
+		sb.append("</extraparam>\n");
+		return new String(sb);
+	}
+	
+    @Override
+	public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException{
+		//
+		try {
+			
+			NodeList nli;
+			Node n1, n2;
+			Element elt;
+		//	int t1id;
+			String sstereotype = null, snodeName = null;
+			
+			for(int i=0; i<nl.getLength(); i++) {
+				n1 = nl.item(i);
+				//
+				if (n1.getNodeType() == Node.ELEMENT_NODE) {
+					nli = n1.getChildNodes();
+					for(int j=0; j<nli.getLength(); j++) {
+						n2 = nli.item(j);
+						//
+						if (n2.getNodeType() == Node.ELEMENT_NODE) {
+							elt = (Element) n2;
+							if (elt.getTagName().equals("info")) {
+								sstereotype = elt.getAttribute("stereotype");
+								snodeName = elt.getAttribute("nodeName");
+							}
+							if (sstereotype != null) {
+								stereotype = sstereotype;
+							} 
+							if (snodeName != null){
+								name = snodeName;
+							}
+							
+							if (elt.getTagName().equals("attributes")) {
+								
+								index = Integer.decode(elt.getAttribute("index")).intValue();
+								cluster_index = Integer.decode(elt.getAttribute("cluster_index")).intValue();
+							}
+						}
+					}
+				}
+			}
+			
+		} catch (Exception e) {
+			throw new MalformedModelingException();
+		}
+	}
+	
+	public int getDefaultConnector() {
+		return TGComponentManager.ADD_CONNECTOR;
+	}
+	
+	
+	public String getAttributes() {
+		String attr = "";
+		attr += "index = " + index + "\n";
+		return attr;	
+	}
+	
+}
diff --git a/src/main/java/ui/tmldd/TMLArchiAnalogNode.java b/src/main/java/ui/tmldd/TMLArchiAnalogNode.java
deleted file mode 100755
index 839af5165c0c883e3bc68238560c1b34567eca23..0000000000000000000000000000000000000000
--- a/src/main/java/ui/tmldd/TMLArchiAnalogNode.java
+++ /dev/null
@@ -1,585 +0,0 @@
-/* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
- * 
- * ludovic.apvrille AT enst.fr
- * 
- * This software is a computer program whose purpose is to allow the
- * edition of TURTLE analysis, design and deployment diagrams, to
- * allow the generation of RT-LOTOS or Java code from this diagram,
- * and at last to allow the analysis of formal validation traces
- * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP
- * from INRIA Rhone-Alpes.
- * 
- * This software is governed by the CeCILL  license under French law and
- * abiding by the rules of distribution of free software.  You can  use,
- * modify and/ or redistribute the software under the terms of the CeCILL
- * license as circulated by CEA, CNRS and INRIA at the following URL
- * "http://www.cecill.info".
- * 
- * As a counterpart to the access to the source code and  rights to copy,
- * modify and redistribute granted by the license, users are provided only
- * with a limited warranty  and the software's author,  the holder of the
- * economic rights,  and the successive licensors  have only  limited
- * liability.
- * 
- * In this respect, the user's attention is drawn to the risks associated
- * with loading,  using,  modifying and/or developing or reproducing the
- * software by the user in light of its specific status of free software,
- * that may mean  that it is complicated to manipulate,  and  that  also
- * therefore means  that it is reserved for developers  and  experienced
- * professionals having in-depth computer knowledge. Users are therefore
- * encouraged to load and test the software's suitability as regards their
- * requirements in conditions enabling the security of their systems and/or
- * data to be ensured and,  more generally, to use and operate it in the
- * same conditions as regards security.
- * 
- * The fact that you are presently reading this means that you have had
- * knowledge of the CeCILL license and that you accept its terms.
- */
-
-
-
-
-package ui.tmldd;
-
-import myutil.GraphicLib;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import tmltranslator.HwAnalog;
-//import tmltranslator.modelcompiler.ArchUnitMEC;
-import ui.*;
-import ui.util.IconManager;
-import ui.window.JDialogAnalogNode;
-
-import javax.swing.*;
-import java.awt.*;
-import java.util.Vector;
-
-/**
-   * Class TMLAnalogNode
-   * Node. To be used in TML architecture diagrams.
-   * Creation: 07/02/2018
-   * @version 1.1 07/02/2018
-   * @author Ludovic APVRILLE, Matteo BERTOLINO
- */
-public class TMLArchiAnalogNode extends TMLArchiNode implements SwallowTGComponent, WithAttributes, TMLArchiElementInterface {
-    private int textY1 = 15;
-    private int textY2 = 30;
-    private int derivationx = 2;
-    private int derivationy = 3;
-    private String stereotype = "Analog";
-
-    private int byteDataSize = HwAnalog.DEFAULT_BYTE_DATA_SIZE;
-    private int goIdleTime = HwAnalog.DEFAULT_GO_IDLE_TIME;
-    private int maxConsecutiveIdleCycles = HwAnalog.DEFAULT_MAX_CONSECUTIVE_IDLE_CYCLES;
-    private int execiTime = HwAnalog.DEFAULT_EXECI_TIME;
-    private int execcTime = HwAnalog.DEFAULT_EXECC_TIME;
-    private int capacity = HwAnalog.DEFAULT_CAPACITY;
-    private int mappingPenalty = HwAnalog.DEFAULT_MAPPING_PENALTY;
-    private int reconfigurationTime = HwAnalog.DEFAULT_RECONFIGURATION_TIME;
-
-    private String operation = "";
-
-    private String scheduling = "";
-
-
-    public TMLArchiAnalogNode(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
-        super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
-
-        width = 250;
-        height = 200;
-        minWidth = 150;
-        minHeight = 100;
-
-        nbConnectingPoint = 16;
-        connectingPoint = new TGConnectingPoint[16];
-
-        connectingPoint[0] = new TMLArchiConnectingPoint(this, 0, 0, false, true, 0.0, 0.0);
-        connectingPoint[1] = new TMLArchiConnectingPoint(this, 0, 0, false, true, 0.5, 0.0);
-        connectingPoint[2] = new TMLArchiConnectingPoint(this, 0, 0, false, true, 1.0, 0.0);
-        connectingPoint[3] = new TMLArchiConnectingPoint(this, 0, 0, false, true, 0.0, 0.5);
-        connectingPoint[4] = new TMLArchiConnectingPoint(this, 0, 0, false, true, 1.0, 0.5);
-        connectingPoint[5] = new TMLArchiConnectingPoint(this, 0, 0, false, true, 0.0, 1.0);
-        connectingPoint[6] = new TMLArchiConnectingPoint(this, 0, 0, false, true, 0.5, 1.0);
-        connectingPoint[7] = new TMLArchiConnectingPoint(this, 0, 0, false, true, 1.0, 1.0);
-
-        connectingPoint[8] = new TMLArchiConnectingPoint(this, 0, 0, false, true, 0.25, 0.0);
-        connectingPoint[9] = new TMLArchiConnectingPoint(this, 0, 0, false, true, 0.75, 0.0);
-        connectingPoint[10] = new TMLArchiConnectingPoint(this, 0, 0, false, true, 0.0, 0.25);
-        connectingPoint[11] = new TMLArchiConnectingPoint(this, 0, 0, false, true, 1.0, 0.25);
-        connectingPoint[12] = new TMLArchiConnectingPoint(this, 0, 0, false, true, 0.0, 0.75);
-        connectingPoint[13] = new TMLArchiConnectingPoint(this, 0, 0, false, true, 1.0, 0.75);
-        connectingPoint[14] = new TMLArchiConnectingPoint(this, 0, 0, false, true, 0.25, 1.0);
-        connectingPoint[15] = new TMLArchiConnectingPoint(this, 0, 0, false, true, 0.75, 1.0);
-
-        addTGConnectingPointsComment();
-
-        nbInternalTGComponent = 0;
-
-        moveable = true;
-        editable = true;
-        removable = true;
-        userResizable = true;
-
-        name = tdp.findNodeName("Analog");
-        value = "name";
-
-        myImageIcon = IconManager.imgic700;//DG ToDo image
-    }
-
-    public void internalDrawing(Graphics g) {
-        Color c = g.getColor();
-        g.draw3DRect(x, y, width, height, true);
-
-
-        // Top lines
-        g.drawLine(x, y, x + derivationx, y - derivationy);
-        g.drawLine(x + width, y, x + width + derivationx, y - derivationy);
-        g.drawLine(x + derivationx, y - derivationy, x + width + derivationx, y - derivationy);
-
-        // Right lines
-        g.drawLine(x + width, y + height, x + width + derivationx, y - derivationy + height);
-        g.drawLine(x + derivationx + width, y - derivationy, x + width + derivationx, y - derivationy + height);
-
-        // Filling color
-        g.setColor(ColorManager.CPU_BOX_1);
-        g.fill3DRect(x+1, y+1, width-1, height-1, true);
-        g.setColor(c);
-
-        // Strings
-        String ster = "<<" + stereotype + ">>";
-        int w  = g.getFontMetrics().stringWidth(ster);
-        Font f = g.getFont();
-        g.setFont(f.deriveFont(Font.BOLD));
-        g.drawString(ster, x + (width - w)/2, y + textY1);
-        g.setFont(f);
-        w  = g.getFontMetrics().stringWidth(name);
-        g.drawString(name, x + (width - w)/2, y + textY2);
-
-        // Icon
-        g.drawImage(IconManager.imgic1120.getImage(), x + 4, y + 4, null);
-        //g.drawImage(IconManager.img9, x + width - 20, y + 4, null);
-    }
-
-    public TGComponent isOnOnlyMe(int x1, int y1) {
-
-        Polygon pol = new Polygon();
-        pol.addPoint(x, y);
-        pol.addPoint(x + derivationx, y - derivationy);
-        pol.addPoint(x + derivationx + width, y - derivationy);
-        pol.addPoint(x + derivationx + width, y + height - derivationy);
-        pol.addPoint(x + width, y + height);
-        pol.addPoint(x, y + height);
-        if (pol.contains(x1, y1)) {
-            return this;
-        }
-
-        return null;
-    }
-
-
-    public String getNodeName() {
-        return name;
-    }
-
-    public boolean editOndoubleClick(JFrame frame) {
-        boolean error = false;
-        String errors = "";
-        int tmp;
-        String tmpName;
-
-        JDialogAnalogNode dialog = new JDialogAnalogNode(frame, "Setting Analog attributes", this);
-        dialog.setSize(500, 450);
-        GraphicLib.centerOnParent(dialog, 500, 450 );
-       // dialog.show(); // blocked until dialog has been closed
-        dialog.setVisible( true );
-
-        if (!dialog.isRegularClose()) {
-            return false;
-        }
-
-        if (dialog.getNodeName().length() != 0) {
-            tmpName = dialog.getNodeName();
-            tmpName = tmpName.trim();
-            if (!TAttribute.isAValidId(tmpName, false, false, false)) {
-                error = true;
-                errors += "Name of the node  ";
-            } else {
-                name = tmpName;
-            }
-        }
-
-
-        if (dialog.getCapacity().length() != 0) {
-            try {
-                tmp = capacity;
-                capacity = Integer.decode(dialog.getCapacity()).intValue();
-                if (capacity <= 0) {
-                    capacity = tmp;
-                    error = true;
-                    errors += "Capacity  ";
-                }
-            } catch (Exception e) {
-                error = true;
-                errors += "Capacity  ";
-            }
-        }
-
-        if (dialog.getMappingPenalty().length() != 0) {
-            try {
-                tmp = mappingPenalty;
-                mappingPenalty = Integer.decode(dialog.getMappingPenalty()).intValue();
-                if (mappingPenalty < 0) {
-                    mappingPenalty = tmp;
-                    error = true;
-                    errors += "Mapping penalty  ";
-                }
-            } catch (Exception e) {
-                error = true;
-                errors += "Mapping penalty  ";
-            }
-        }
-
-        if (dialog.getReconfigurationTime().length() != 0) {
-            try {
-                tmp = reconfigurationTime;
-                reconfigurationTime = Integer.decode(dialog.getReconfigurationTime()).intValue();
-                if (reconfigurationTime <= 0) {
-                    reconfigurationTime = tmp;
-                    error = true;
-                    errors += "Reconfiguration time  ";
-                }
-            } catch (Exception e) {
-                error = true;
-                errors += "Reconfiguration time  ";
-            }
-        }
-
-        if (dialog.getByteDataSize().length() != 0) {
-            try {
-                tmp = byteDataSize;
-                byteDataSize = Integer.decode(dialog.getByteDataSize()).intValue();
-                if (byteDataSize <= 0) {
-                    byteDataSize = tmp;
-                    error = true;
-                    errors += "Data size  ";
-                }
-            } catch (Exception e) {
-                error = true;
-                errors += "Data size  ";
-            }
-        }
-
-
-        if (dialog.getGoIdleTime().length() != 0) {
-            try {
-                tmp = goIdleTime;
-                goIdleTime = Integer.decode(dialog.getGoIdleTime()).intValue();
-                if (goIdleTime < 0) {
-                    goIdleTime = tmp;
-                    error = true;
-                    errors += "Go idle time  ";
-                }
-            } catch (Exception e) {
-                error = true;
-                errors += "Go idle time  ";
-            }
-        }
-
-        if (dialog.getMaxConsecutiveIdleCycles().length() != 0) {
-            try {
-                tmp = goIdleTime;
-                maxConsecutiveIdleCycles = Integer.decode(dialog.getMaxConsecutiveIdleCycles()).intValue();
-                if (maxConsecutiveIdleCycles < 0) {
-                    maxConsecutiveIdleCycles = tmp;
-                    error = true;
-                    errors += "Max consecutive idle cycles  ";
-                }
-            } catch (Exception e) {
-                error = true;
-                errors += "Max consecutive idle cycles  ";
-            }
-        }
-
-        if (dialog.getExeciTime().length() != 0) {
-            try {
-                tmp = execiTime;
-                execiTime = Integer.decode(dialog.getExeciTime()).intValue();
-                if (execiTime < 0) {
-                    execiTime = tmp;
-                    error = true;
-                    errors += "execi time  ";
-                }
-            } catch (Exception e) {
-                error = true;
-                errors += "execi time  ";
-            }
-        }
-
-        if (dialog.getExeccTime().length() != 0) {
-            try {
-                tmp = execcTime;
-                execcTime = Integer.decode(dialog.getExeccTime()).intValue();
-                if (execcTime < 0) {
-                    execcTime = tmp;
-                    error = true;
-                    errors += "execc time  ";
-                }
-            } catch (Exception e) {
-                error = true;
-                errors += "execc time  ";
-            }
-        }
-
-
-        if (dialog.getClockRatio().length() != 0) {
-            try {
-                tmp = clockRatio;
-                clockRatio = Integer.decode(dialog.getClockRatio()).intValue();
-                if (clockRatio < 1) {
-                    clockRatio = tmp;
-                    error = true;
-                    errors += "Clock divider  ";
-                }
-            } catch (Exception e) {
-                error = true;
-                errors += "Clock divider  ";
-            }
-        }
-
-       operation = dialog.getOperation().trim();
-        scheduling = dialog.getScheduling().trim();
-
-
-        if (error) {
-            JOptionPane.showMessageDialog(frame,
-                                          "Invalid value for the following attributes: " + errors,
-                                          "Error",
-                                          JOptionPane.INFORMATION_MESSAGE);
-            return false;
-        }
-
-        return true;
-    }
-
-
-    public int getType() {
-        return TGComponentManager.TMLARCHI_ANALOGNODE;
-    }
-
-    public boolean acceptSwallowedTGComponent(TGComponent tgc) {
-        return tgc instanceof TMLArchiArtifact;
-
-    }
-
-    public boolean addSwallowedTGComponent(TGComponent tgc, int x, int y) {
-
-        //Set its coordinates
-        if (tgc instanceof TMLArchiArtifact) {
-            tgc.setFather(this);
-            tgc.setDrawingZone(true);
-            tgc.resizeWithFather();
-            addInternalComponent(tgc, 0);
-            return true;
-        }
-
-        return false;
-    }
-
-    public void removeSwallowedTGComponent(TGComponent tgc) {
-        removeInternalComponent(tgc);
-    }
-
-    public Vector<TMLArchiArtifact> getArtifactList() {
-        Vector<TMLArchiArtifact> v = new Vector<TMLArchiArtifact>();
-        
-        for(int i=0; i<nbInternalTGComponent; i++) {
-            if (tgcomponent[i] instanceof TMLArchiArtifact) {
-                v.add( (TMLArchiArtifact) tgcomponent[i] );
-            }
-        }
-        return v;
-    }
-
-    public void hasBeenResized() {
-        for(int i=0; i<nbInternalTGComponent; i++) {
-            if (tgcomponent[i] instanceof TMLArchiArtifact) {
-                tgcomponent[i].resizeWithFather();
-            }
-        }
-    }
-
-    protected String translateExtraParam() {
-        StringBuffer sb = new StringBuffer("<extraparam>\n");
-        sb.append("<info stereotype=\"" + stereotype + "\" nodeName=\"" + name);
-        sb.append("\" />\n");
-        sb.append("<attributes capacity=\"" + capacity + "\" byteDataSize=\"" + byteDataSize + "\" ");
-        sb.append(" mappingPenalty=\"" + mappingPenalty + "\" ");
-        sb.append(" reconfigurationTime=\"" + reconfigurationTime + "\" ");
-        sb.append(" goIdleTime=\"" + goIdleTime + "\" ");
-        sb.append(" maxConsecutiveIdleCycles=\"" + maxConsecutiveIdleCycles + "\" ");
-        sb.append(" execiTime=\"" + execiTime + "\"");
-        sb.append(" execcTime=\"" + execcTime + "\"");
-        sb.append(" clockRatio=\"" + clockRatio + "\"");
-        sb.append(" operation =\"" + operation + "\" ");
-        sb.append(" scheduling =\"" + scheduling + "\" ");
-        sb.append("/>\n");
-        sb.append("</extraparam>\n");
-        return new String(sb);
-    }
-
-    @Override
-    public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException{
-        //
-        try {
-
-            NodeList nli;
-            Node n1, n2;
-            Element elt;
-           // int t1id;
-            String sstereotype = null, snodeName = null;
-            String operationTypesTmp;
-
-            for(int i=0; i<nl.getLength(); i++) {
-                n1 = nl.item(i);
-                //
-
-                if (n1.getNodeType() == Node.ELEMENT_NODE) {
-                    nli = n1.getChildNodes();
-
-                    // Issue #17 copy-paste error on j index
-                    for(int j=0; j<nli.getLength(); j++) {
-                        n2 = nli.item(j);
-                        //
-                        if (n2.getNodeType() == Node.ELEMENT_NODE) {
-                            elt = (Element) n2;
-                            if (elt.getTagName().equals("info")) {
-                                sstereotype = elt.getAttribute("stereotype");
-                                snodeName = elt.getAttribute("nodeName");
-                            }
-                            if (sstereotype != null) {
-                                stereotype = sstereotype;
-                            }
-                            if (snodeName != null){
-                                name = snodeName;
-                            }
-
-                            if (elt.getTagName().equals("attributes")) {
-                                try {
-                                    // the "try" statement is for retro compatibility
-                                    capacity = Integer.decode(elt.getAttribute("capacity")).intValue();
-                                } catch (Exception e) {
-                                }
-                                byteDataSize = Integer.decode(elt.getAttribute("byteDataSize")).intValue();
-                                mappingPenalty =Integer.decode(elt.getAttribute("mappingPenalty")).intValue();
-                                goIdleTime = Integer.decode(elt.getAttribute("goIdleTime")).intValue();
-                                reconfigurationTime = Integer.decode(elt.getAttribute("reconfigurationTime")).intValue();
-
-                                if ((elt.getAttribute("execiTime") != null) &&  (elt.getAttribute("execiTime").length() > 0)){
-                                    execiTime = Integer.decode(elt.getAttribute("execiTime")).intValue();
-                                }
-                                if ((elt.getAttribute("execcTime") != null) &&  (elt.getAttribute("execcTime").length() > 0)){
-                                    execcTime = Integer.decode(elt.getAttribute("execcTime")).intValue();
-                                }
-                                if ((elt.getAttribute("maxConsecutiveIdleCycles") != null) &&  (elt.getAttribute("maxConsecutiveIdleCycles").length() > 0)){
-                                    maxConsecutiveIdleCycles = Integer.decode(elt.getAttribute("maxConsecutiveIdleCycles")).intValue();
-                                }
-                                if ((elt.getAttribute("clockRatio") != null) &&  (elt.getAttribute("clockRatio").length() > 0)){
-                                    clockRatio = Integer.decode(elt.getAttribute("clockRatio")).intValue();
-                                }
-                                /*if ((elt.getAttribute("MECType") != null) &&  (elt.getAttribute("MECType").length() > 0)){
-                                    if( elt.getAttribute("MECType").length() > 1 )      {       //old format
-                                        MECType = ArchUnitMEC.Types.get(0);
-                                    }
-                                    else        {
-                                        MECType = ArchUnitMEC.Types.get( Integer.valueOf( elt.getAttribute("MECType") ) );
-                                    }
-                                }*/
-                                operation = elt.getAttribute("operation");
-                                if (operation == null) {
-                                    operation = "";
-                                }
-
-                                scheduling = elt.getAttribute("scheduling");
-                                if (scheduling == null) {
-                                    scheduling = "";
-                                }
-
-                            }
-                        }
-                    }
-                }
-            }
-
-        } catch (Exception e) {
-            throw new MalformedModelingException();
-        }
-    }
-
-    public int getDefaultConnector() {
-        return TGComponentManager.CONNECTOR_NODE_TMLARCHI;
-    }
-
-    public int getCapacity(){
-        return capacity;
-    }
-
-    public int getByteDataSize(){
-        return byteDataSize;
-    }
-
-    public int getReconfigurationTime(){
-        return reconfigurationTime;
-    }
-
-    public int getGoIdleTime(){
-        return goIdleTime;
-    }
-
-    public int getMaxConsecutiveIdleCycles(){
-        return maxConsecutiveIdleCycles;
-    }
-
-    public int getExeciTime(){
-        return execiTime;
-    }
-
-    public int getExeccTime(){
-        return execcTime;
-    }
-
-    public int getMappingPenalty(){
-        return mappingPenalty;
-    }
-
-    public String getOperation() {
-        return operation;
-    }
-
-    public String getScheduling() {
-        return scheduling;
-    }
-
-
-    public String getAttributes() {
-        String attr = "";
-        attr += "Data size (in byte) = " + byteDataSize + "\n";
-        attr += "Capacity = " + capacity + "\n";
-        attr += "Mapping penalty (percentage) = " + mappingPenalty + "\n";
-        attr += "Reconfiguration time = " + reconfigurationTime + "\n";
-        attr += "Go in idle mode (in cycle) = " + goIdleTime + "\n";
-        attr += "Idle cycles to go idle = " + maxConsecutiveIdleCycles + "\n";
-        attr += "EXECI exec. time (in cycle) = " + execiTime + "\n";
-        attr += "EXECC exec. time (in cycle) = " + execcTime + "\n";
-        attr += "Operation  = " + operation + "\n";
-        attr += "Scheduling  = " + scheduling + "\n";
-        attr += "Clock divider = " + clockRatio + "\n";
-        return attr;
-
-    }
-
-    public int getComponentType()       {
-        return CONTROLLER;
-    }
-
-}
diff --git a/src/main/java/ui/tmldd/TMLArchiDiagramToolBar.java b/src/main/java/ui/tmldd/TMLArchiDiagramToolBar.java
index ec03387239b388616181c8b798786aee508b3c43..bafabffb53668394b36c7fac7107305590de9e32 100755
--- a/src/main/java/ui/tmldd/TMLArchiDiagramToolBar.java
+++ b/src/main/java/ui/tmldd/TMLArchiDiagramToolBar.java
@@ -77,7 +77,6 @@ public class TMLArchiDiagramToolBar extends TToolBar  implements ActionListener
         mgui.actions[TGUIAction.TMLARCHI_LINK].setEnabled(b);
         mgui.actions[TGUIAction.TMLARCHI_CPUNODE].setEnabled(b);
         mgui.actions[TGUIAction.TMLARCHI_FPGANODE].setEnabled(b);
-	mgui.actions[TGUIAction.TMLARCHI_ANALOGNODE].setEnabled(b);
         mgui.actions[TGUIAction.TMLARCHI_HWANODE].setEnabled(b);
         mgui.actions[TGUIAction.TMLARCHI_BUSNODE].setEnabled(b);
         mgui.actions[TGUIAction.TMLARCHI_CPNODE].setEnabled(b);
@@ -134,11 +133,7 @@ public class TMLArchiDiagramToolBar extends TToolBar  implements ActionListener
             button = this.add(mgui.actions[TGUIAction.TMLARCHI_FPGANODE]);
             button.addMouseListener(mgui.mouseHandler);
         }
-	
-	if (mgui.isExperimentalOn()) {
-            button = this.add(mgui.actions[TGUIAction.TMLARCHI_ANALOGNODE]);
-            button.addMouseListener(mgui.mouseHandler);
-        }
+
 
         button = this.add(mgui.actions[TGUIAction.TMLARCHI_ARTIFACT]);
         button.addMouseListener(mgui.mouseHandler);
diff --git a/src/main/java/ui/window/JDialogAnalogNode.java b/src/main/java/ui/window/JDialogAnalogNode.java
deleted file mode 100644
index 7e86c34178de2850da16082edc60ca24cb50f9fe..0000000000000000000000000000000000000000
--- a/src/main/java/ui/window/JDialogAnalogNode.java
+++ /dev/null
@@ -1,300 +0,0 @@
-/* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
- * 
- * ludovic.apvrille AT enst.fr
- * 
- * This software is a computer program whose purpose is to allow the
- * edition of TURTLE analysis, design and deployment diagrams, to
- * allow the generation of RT-LOTOS or Java code from this diagram,
- * and at last to allow the analysis of formal validation traces
- * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP
- * from INRIA Rhone-Alpes.
- * 
- * This software is governed by the CeCILL  license under French law and
- * abiding by the rules of distribution of free software.  You can  use,
- * modify and/ or redistribute the software under the terms of the CeCILL
- * license as circulated by CEA, CNRS and INRIA at the following URL
- * "http://www.cecill.info".
- * 
- * As a counterpart to the access to the source code and  rights to copy,
- * modify and redistribute granted by the license, users are provided only
- * with a limited warranty  and the software's author,  the holder of the
- * economic rights,  and the successive licensors  have only  limited
- * liability.
- * 
- * In this respect, the user's attention is drawn to the risks associated
- * with loading,  using,  modifying and/or developing or reproducing the
- * software by the user in light of its specific status of free software,
- * that may mean  that it is complicated to manipulate,  and  that  also
- * therefore means  that it is reserved for developers  and  experienced
- * professionals having in-depth computer knowledge. Users are therefore
- * encouraged to load and test the software's suitability as regards their
- * requirements in conditions enabling the security of their systems and/or
- * data to be ensured and,  more generally, to use and operate it in the
- * same conditions as regards security.
- * 
- * The fact that you are presently reading this means that you have had
- * knowledge of the CeCILL license and that you accept its terms.
- */
-
-
-package ui.window;
-
-import myutil.GraphicLib;
-import tmltranslator.modelcompiler.ArchUnitMEC;
-import ui.ColorManager;
-import ui.interactivesimulation.SimulationTransaction;
-import ui.tmldd.TMLArchiAnalogNode;
-
-import javax.swing.*;
-import java.awt.*;
-import java.awt.event.*;
-import java.math.BigDecimal;
-import java.util.*;
-
-/**
- * Class JDialogAnalog
- * Dialog for managing attributes of cpu nodes
- * Creation: 07/02/2018
- *
- * @author Ludovic APVRILLE
- * @version 2.0 05/03/2019
- */
-public class JDialogAnalogNode extends JDialogBase implements ActionListener {
-
-    private boolean regularClose;
-
-    private JPanel panel2, panel4, panel5;
-    //   private Frame frame;
-    private TMLArchiAnalogNode node;
-
-
-    protected JTextField nodeName;
-
-    // Panel2
-    protected JTextField byteDataSize, goIdleTime, maxConsecutiveIdleCycles, clockRatio, execiTime, execcTime,
-            capacity, mappingPenalty, reconfigurationTime, operation, scheduling;
-
-    // Tabbed pane for panel1 and panel2
-    //private JTabbedPane tabbedPane;
-
-
-    /*
-     * Creates new form
-     */
-    public JDialogAnalogNode(Frame _frame, String _title, TMLArchiAnalogNode _node) {
-        super(_frame, _title, true);
-        //  frame = _frame;
-        node = _node;
-        initComponents();
-        //     myInitComponents();
-        pack();
-    }
-//
-//    private void myInitComponents() {
-//    }
-
-    private void initComponents() {
-        Container c = getContentPane();
-        GridBagLayout gridbag0 = new GridBagLayout();
-        GridBagLayout gridbag2 = new GridBagLayout();
-        GridBagLayout gridbag4 = new GridBagLayout();
-        GridBagConstraints c0 = new GridBagConstraints();
-        //GridBagConstraints c1 = new GridBagConstraints();
-        GridBagConstraints c2 = new GridBagConstraints();
-        GridBagConstraints c4 = new GridBagConstraints();
-
-        setFont(new Font("Helvetica", Font.PLAIN, 14));
-        c.setLayout(gridbag0);
-
-        setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
-
-
-        panel2 = new JPanel();
-        panel2.setLayout(gridbag2);
-        panel2.setBorder(new javax.swing.border.TitledBorder("Attributes"));
-        panel2.setPreferredSize(new Dimension(400, 300));
-
-        // Issue #41 Ordering of tabbed panes 
-        //tabbedPane = GraphicLib.createTabbedPane();//new JTabbedPane();
-
-        c2.gridwidth = 1;
-        c2.gridheight = 1;
-        c2.weighty = 1.0;
-        c2.weightx = 1.0;
-        c2.fill = GridBagConstraints.HORIZONTAL;
-        panel2.add(new JLabel("CPU name:"), c2);
-        c2.gridwidth = GridBagConstraints.REMAINDER; //end row
-        nodeName = new JTextField(node.getNodeName(), 30);
-        nodeName.setEditable(true);
-        nodeName.setFont(new Font("times", Font.PLAIN, 12));
-        panel2.add(nodeName, c2);
-
-
-        c2.gridwidth = 1;
-        panel2.add(new JLabel("Data size (in byte):"), c2);
-        c2.gridwidth = GridBagConstraints.REMAINDER; //end row
-        byteDataSize = new JTextField("" + node.getByteDataSize(), 15);
-        panel2.add(byteDataSize, c2);
-
-        c2.gridwidth = 1;
-        panel2.add(new JLabel("Overall mapping capacity:"), c2);
-        c2.gridwidth = GridBagConstraints.REMAINDER; //end row
-        capacity = new JTextField("" + node.getCapacity(), 15);
-        panel2.add(capacity, c2);
-
-        c2.gridwidth = 1;
-        panel2.add(new JLabel("Mapping penalty:"), c2);
-        c2.gridwidth = GridBagConstraints.REMAINDER; //end row
-        mappingPenalty = new JTextField("" + node.getMappingPenalty(), 15);
-        panel2.add(mappingPenalty, c2);
-
-        c2.gridwidth = 1;
-        panel2.add(new JLabel("Reconfiguration time:"), c2);
-        c2.gridwidth = GridBagConstraints.REMAINDER; //end row
-        reconfigurationTime = new JTextField("" + node.getReconfigurationTime(), 15);
-        panel2.add(reconfigurationTime, c2);
-
-
-        c2.gridwidth = 1;
-        panel2.add(new JLabel("Go idle time (in cycle):"), c2);
-        c2.gridwidth = GridBagConstraints.REMAINDER; //end row
-        goIdleTime = new JTextField("" + node.getGoIdleTime(), 15);
-        panel2.add(goIdleTime, c2);
-
-        c2.gridwidth = 1;
-        panel2.add(new JLabel("Max consecutive cycles before idle (in cycle):"), c2);
-        c2.gridwidth = GridBagConstraints.REMAINDER; //end row
-        maxConsecutiveIdleCycles = new JTextField("" + node.getMaxConsecutiveIdleCycles(), 15);
-        panel2.add(maxConsecutiveIdleCycles, c2);
-
-        c2.gridwidth = 1;
-        panel2.add(new JLabel("EXECI execution time (in cycle):"), c2);
-        c2.gridwidth = GridBagConstraints.REMAINDER; //end row
-        execiTime = new JTextField("" + node.getExeciTime(), 15);
-        panel2.add(execiTime, c2);
-
-        c2.gridwidth = 1;
-        panel2.add(new JLabel("EXECC execution time (in cycle):"), c2);
-        c2.gridwidth = GridBagConstraints.REMAINDER; //end row
-        execcTime = new JTextField("" + node.getExeccTime(), 15);
-        panel2.add(execcTime, c2);
-
-        c2.gridwidth = 1;
-        panel2.add(new JLabel("Operation:"), c2);
-        c2.gridwidth = GridBagConstraints.REMAINDER; //end row
-        operation = new JTextField(""+node.getOperation(), 15);
-        panel2.add(operation, c2);
-
-        c2.gridwidth = 1;
-        panel2.add(new JLabel("Scheduling:"), c2);
-        c2.gridwidth = GridBagConstraints.REMAINDER; //end row
-        scheduling = new JTextField(""+node.getScheduling(), 15);
-        panel2.add(scheduling, c2);
-
-        c2.gridwidth = 1;
-        panel2.add(new JLabel("Clock divider:"), c2);
-        c2.gridwidth = GridBagConstraints.REMAINDER; //end row
-        clockRatio = new JTextField("" + node.getClockRatio(), 15);
-        panel2.add(clockRatio, c2);
-
-
-        // main panel;
-        c0.gridheight = 10;
-        c0.weighty = 1.0;
-        c0.weightx = 1.0;
-        c0.gridwidth = GridBagConstraints.REMAINDER; //end row
-        c0.fill = GridBagConstraints.BOTH;
-        c.add(panel2, c0);
-
-        c0.gridwidth = 1;
-        c0.gridheight = 1;
-        c0.fill = GridBagConstraints.HORIZONTAL;
-
-        initButtons(c0, c, this);
-    }
-
-    public void actionPerformed(ActionEvent evt) {
-        /* if (evt.getSource() == typeBox) {
-           boolean b = ((Boolean)(initValues.elementAt(typeBox.getSelectedIndex()))).booleanValue();
-           initialValue.setEnabled(b);
-           return;
-           }*/
-
-//        if (evt.getSource() == tracemode) {
-//            selectedTracemode = tracemode.getSelectedIndex();
-//        }
-
-        String command = evt.getActionCommand();
-
-        // Compare the action command to the known actions.
-        if (command.equals("Save and Close")) {
-            closeDialog();
-        } else if (command.equals("Cancel")) {
-            cancelDialog();
-        }
-    }
-
-    public void closeDialog() {
-        regularClose = true;
-        dispose();
-    }
-
-    public void cancelDialog() {
-        dispose();
-    }
-
-    public boolean isRegularClose() {
-        return regularClose;
-    }
-
-    public String getNodeName() {
-        return nodeName.getText();
-    }
-
-    public String getCapacity() {
-        return capacity.getText();
-    }
-
-    public String getByteDataSize() {
-        return byteDataSize.getText();
-    }
-
-    public String getReconfigurationTime() {
-        return reconfigurationTime.getText();
-    }
-
-    public String getMappingPenalty() {
-        return mappingPenalty.getText();
-    }
-
-    public String getGoIdleTime() {
-        return goIdleTime.getText();
-    }
-
-    public String getMaxConsecutiveIdleCycles() {
-        return maxConsecutiveIdleCycles.getText();
-    }
-
-    public String getExeciTime() {
-        return execiTime.getText();
-    }
-
-    public String getExeccTime() {
-        return execcTime.getText();
-    }
-
-    public String getOperation() {
-        return operation.getText();
-    }
-
-    public String getScheduling() {
-        return scheduling.getText();
-    }
-
-
-    public String getClockRatio() {
-        return clockRatio.getText();
-    }
-
-
-}