diff --git a/src/main/java/ui/window/JDialogSysCAMSBlockTDF.java b/src/main/java/ui/window/JDialogSysCAMSBlockTDF.java
index ca81a6c37046ed06272a05af95df096147d99c3a..d9ac0277283fd854e98c515a2d1450baf4eb1c54 100644
--- a/src/main/java/ui/window/JDialogSysCAMSBlockTDF.java
+++ b/src/main/java/ui/window/JDialogSysCAMSBlockTDF.java
@@ -50,9 +50,9 @@ import javax.swing.border.*;
 import org.apache.derby.tools.sysinfo;
 
 /**
- * Class JDialogSystemCAMSBlockTDF Dialog for managing of SystemC-AMS TDF Block
+ * Class JDialogSystemCAMSBlockTDF 
+ * Dialog for managing of SystemC-AMS TDF Block
  * Creation: 26/04/2018
- * 
  * @version 1.0 26/04/2018
  * @author Irina Kit Yan LEE
  */
diff --git a/src/main/java/ui/window/JDialogSysCAMSPortConverter.java b/src/main/java/ui/window/JDialogSysCAMSPortConverter.java
index 5ca7bcb902acf5c3ef3cb0ed435ed2109b2adca2..3869dd5a1bb59bac66257fb4fa347de7134808dd 100644
--- a/src/main/java/ui/window/JDialogSysCAMSPortConverter.java
+++ b/src/main/java/ui/window/JDialogSysCAMSPortConverter.java
@@ -71,7 +71,7 @@ import javax.swing.KeyStroke;
  * Creation: 07/05/2018
  * @version 1.0 07/05/2018
  * @author Irina Kit Yan LEE
-*/
+ */
 
 @SuppressWarnings("serial")
 
@@ -84,7 +84,7 @@ public class JDialogSysCAMSPortConverter extends JDialog implements ActionListen
 	private JComboBox<String> periodComboBoxString;
 	private JTextField rateTextField;
 	private JTextField delayTextField;
-	private String listTypeString[];
+	private ArrayList<String> listArrrayTypeString;
 	private JComboBox<String> typeComboBoxString;
 	private String listOriginString[];
 	private JComboBox<String> originComboBoxString;
@@ -103,14 +103,14 @@ public class JDialogSysCAMSPortConverter extends JDialog implements ActionListen
 
 		/** Parameters **/
 		this.port = port;
-		
+
 		getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("ESCAPE"), "close");
 		getRootPane().getActionMap().put("close", new AbstractAction() {
 			public void actionPerformed(ActionEvent e) {
-		        dispose();
+				dispose();
 			}
 		});
-        
+
 		dialog();
 	}
 
@@ -118,10 +118,10 @@ public class JDialogSysCAMSPortConverter extends JDialog implements ActionListen
 		/** JPanel **/
 		JPanel mainPanel = new JPanel(new BorderLayout());
 		this.add(mainPanel);
-		
+
 		JPanel attributesMainPanel = new JPanel(new GridLayout());
 		mainPanel.add(attributesMainPanel, BorderLayout.NORTH);
-		
+
 		Box box = Box.createVerticalBox();
 		box.setBorder(BorderFactory.createTitledBorder("Setting converter input port attributes"));
 
@@ -133,44 +133,44 @@ public class JDialogSysCAMSPortConverter extends JDialog implements ActionListen
 
 		JLabel labelName = new JLabel("Name : ");
 		constraints = new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(15, 10, 5, 10), 0, 0);
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(15, 10, 5, 10), 0, 0);
 		gridBag.setConstraints(labelName, constraints);
 		boxPanel.add(labelName);
 
-	   	 if (port.getPortName().toString().equals("")) { 
+		if (port.getPortName().toString().equals("")) { 
 			nameTextField = new JTextField(10);
 		} else {
 			nameTextField = new JTextField(port.getPortName().toString(), 10);
 		}
-	   	constraints = new GridBagConstraints(1, 0, 2, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(15, 10, 5, 10), 0, 0);
+		constraints = new GridBagConstraints(1, 0, 2, 1, 1.0, 1.0,
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(15, 10, 5, 10), 0, 0);
 		gridBag.setConstraints(nameTextField, constraints);
 		boxPanel.add(nameTextField);
-	   
+
 		JLabel periodLabel = new JLabel("Period Tp : ");
 		constraints = new GridBagConstraints(0, 1, 1, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 5, 10), 0, 0);
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
 		gridBag.setConstraints(periodLabel, constraints);
-	    	boxPanel.add(periodLabel);
+		boxPanel.add(periodLabel);
 
-	    	if (port.getPeriod() == -1) { 
+		if (port.getPeriod() == -1) { 
 			periodTextField = new JTextField(10);
 		} else {
 			periodTextField = new JTextField("" + port.getPeriod(), 10); 
 		}
-	    	constraints = new GridBagConstraints(1, 1, 1, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 5, 10), 0, 0);
+		constraints = new GridBagConstraints(1, 1, 1, 1, 1.0, 1.0,
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
 		gridBag.setConstraints(periodTextField, constraints);
 		boxPanel.add(periodTextField);
-	    
+
 		listPeriodString = new String[3];
 		listPeriodString[0] = "us";
 		listPeriodString[1] = "ms";
@@ -186,17 +186,17 @@ public class JDialogSysCAMSPortConverter extends JDialog implements ActionListen
 		periodComboBoxString.setActionCommand("time");
 		periodComboBoxString.addActionListener(this);
 		constraints = new GridBagConstraints(2, 1, 1, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 5, 10), 0, 0);
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
 		gridBag.setConstraints(periodComboBoxString, constraints);
-	    	boxPanel.add(periodComboBoxString);
-	    
+		boxPanel.add(periodComboBoxString);
+
 		JLabel rateLabel = new JLabel("Rate : ");
 		constraints = new GridBagConstraints(0, 2, 1, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 5, 10), 0, 0);
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
 		gridBag.setConstraints(rateLabel, constraints);
 		boxPanel.add(rateLabel);
 
@@ -206,75 +206,83 @@ public class JDialogSysCAMSPortConverter extends JDialog implements ActionListen
 			rateTextField = new JTextField("" + port.getRate(), 10);
 		}
 		constraints = new GridBagConstraints(1, 2, 2, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 5, 10), 0, 0);
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
 		gridBag.setConstraints(rateTextField, constraints);
 		boxPanel.add(rateTextField); 
 
 		JLabel delayLabel = new JLabel("Delay : ");
 		constraints = new GridBagConstraints(0, 3, 1, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 5, 10), 0, 0);
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
 		gridBag.setConstraints(delayLabel, constraints);
 		boxPanel.add(delayLabel);
-		
+
 		if (port.getDelay() == -1) { 
 			delayTextField = new JTextField(10);
 		} else {
 			delayTextField = new JTextField("" + port.getDelay(), 10);
 		}
 		constraints = new GridBagConstraints(1, 3, 2, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 5, 10), 0, 0);
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
 		gridBag.setConstraints(delayTextField, constraints);
 		boxPanel.add(delayTextField);
 
 		JLabel typeLabel = new JLabel("Type : ");
 		constraints = new GridBagConstraints(0, 4, 1, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 5, 10), 0, 0);
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
 		gridBag.setConstraints(typeLabel, constraints);
 		boxPanel.add(typeLabel);
-		
-		listTypeString = new String[4];
-		listTypeString[0] = "int";
-		listTypeString[1] = "bool";
-		listTypeString[2] = "double";
-		listTypeString[3] = "sc_dt::sc_logic";
-		typeComboBoxString = new JComboBox<String>(listTypeString);
-		if (port.getConvType().equals("") || port.getConvType().equals("int")) {
-			typeComboBoxString.setSelectedIndex(0);
-		}
-		if (port.getConvType().equals("bool")) {
-			typeComboBoxString.setSelectedIndex(1);
+
+		listArrayTypeString = new ArrayList<String>();
+		listArrayTypeString.add("int");
+		listArrayTypeString.add("bool");
+		listArrayTypeString.add("double");
+		if (port.getFather() != null) {
+			if (port.getFather() instanceof SysCAMSBlockTDF) {
+				if (!((SysCAMSBlockTDF) port.getFather()).getListTypedef().isEmpty()) {
+					for (int i = 0; i < ((SysCAMSBlockTDF) port.getFather()).getListTypedef().getSize(); i++) {
+						String select = ((SysCAMSBlockTDF) port.getFather()).getListTypedef().get(i);
+						String[] split = select.split(" : ");
+						listArrayTypeString.add(split[0]);
+					}
+				}
+			}
 		}
-		if (port.getConvType().equals("double")) {
-			typeComboBoxString.setSelectedIndex(2);
+		typeComboBoxString = new JComboBox<String>();
+		for (int i = 0; i < listArrayTypeString.size(); i++) {
+			typeComboBoxString.addItem(listArrayTypeString.get(i));
 		}
-		if (port.getConvType().equals("sc_dt::sc_logic")) {
-			typeComboBoxString.setSelectedIndex(3);
+		for (int i = 0; i < listArrayTypeString.size(); i++) {
+			if (port.getTDFType().equals("")) {
+				typeComboBoxString.setSelectedIndex(0);
+			}
+			if (port.getTDFType().equals(listArrayTypeString.get(i))) {
+				typeComboBoxString.setSelectedIndex(i);
+			}
 		}
-		typeComboBoxString.setActionCommand("type");
 		typeComboBoxString.addActionListener(this);
 		constraints = new GridBagConstraints(1, 4, 2, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 5, 10), 0, 0);
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
 		gridBag.setConstraints(typeComboBoxString, constraints);
 		boxPanel.add(typeComboBoxString);
-		
+
 		JLabel orginLabel = new JLabel("Origin : ");
 		constraints = new GridBagConstraints(0, 5, 1, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 15, 10), 0, 0);
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 15, 10), 0, 0);
 		gridBag.setConstraints(orginLabel, constraints);
 		boxPanel.add(orginLabel);
-		
+
 		listOriginString = new String[2];
 		listOriginString[0] = "Input";
 		listOriginString[1] = "Output";
@@ -287,12 +295,12 @@ public class JDialogSysCAMSPortConverter extends JDialog implements ActionListen
 		originComboBoxString.setActionCommand("origin");
 		originComboBoxString.addActionListener(this);
 		constraints = new GridBagConstraints(1, 5, 2, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 15, 10), 0, 0);
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 15, 10), 0, 0);
 		gridBag.setConstraints(originComboBoxString, constraints);
 		boxPanel.add(originComboBoxString);
-		
+
 		box.add(boxPanel);
 		attributesMainPanel.add(box);
 
@@ -381,7 +389,7 @@ public class JDialogSysCAMSPortConverter extends JDialog implements ActionListen
 			} else {
 				port.setOrigin(0);
 			}
-			
+
 			this.dispose();
 		}
 
diff --git a/src/main/java/ui/window/JDialogSysCAMSPortTDF.java b/src/main/java/ui/window/JDialogSysCAMSPortTDF.java
index a24235bf8cf789fc940818829f4c4202e820f91a..c5a2609ab59df51072a613df31c4a31489f34871 100644
--- a/src/main/java/ui/window/JDialogSysCAMSPortTDF.java
+++ b/src/main/java/ui/window/JDialogSysCAMSPortTDF.java
@@ -39,31 +39,11 @@
 package ui.window;
 
 import ui.syscams.*;
-import ui.util.IconManager;
-
-import java.awt.BorderLayout;
-import java.awt.Dimension;
-import java.awt.FlowLayout;
-import java.awt.Font;
-import java.awt.GridBagConstraints;
-import java.awt.GridBagLayout;
-import java.awt.GridLayout;
-import java.awt.Insets;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-
-import javax.swing.AbstractAction;
-import javax.swing.BorderFactory;
-import javax.swing.Box;
-import javax.swing.JButton;
-import javax.swing.JComboBox;
-import javax.swing.JComponent;
-import javax.swing.JDialog;
-import javax.swing.JLabel;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-import javax.swing.JTextField;
-import javax.swing.KeyStroke;
+import ui.util.*;
+import java.awt.*;
+import java.awt.event.*;
+import java.util.*;
+import javax.swing.*;
 
 /**
  * Class JDialogSystemCAMSPortTDF
@@ -84,7 +64,7 @@ public class JDialogSysCAMSPortTDF extends JDialog implements ActionListener {
 	private JComboBox<String> periodComboBoxString;
 	private JTextField rateTextField;
 	private JTextField delayTextField;
-	private String listTypeString[];
+	private ArrayList<String> listArrayTypeString;
 	private JComboBox<String> typeComboBoxString;
 	private String listOriginString[];
 	private JComboBox<String> originComboBoxString;
@@ -240,21 +220,33 @@ public class JDialogSysCAMSPortTDF extends JDialog implements ActionListener {
 		gridBag.setConstraints(typeLabel, constraints);
 		boxPanel.add(typeLabel);
 
-		listTypeString = new String[3];
-		listTypeString[0] = "int";
-		listTypeString[1] = "bool";
-		listTypeString[2] = "double";
-		typeComboBoxString = new JComboBox<String>(listTypeString);
-		if (port.getTDFType().equals("") || port.getTDFType().equals("int")) {
-			typeComboBoxString.setSelectedIndex(0);
+		listArrayTypeString = new ArrayList<String>();
+		listArrayTypeString.add("int");
+		listArrayTypeString.add("bool");
+		listArrayTypeString.add("double");
+		if (port.getFather() != null) {
+			if (port.getFather() instanceof SysCAMSBlockTDF) {
+				if (!((SysCAMSBlockTDF) port.getFather()).getListTypedef().isEmpty()) {
+					for (int i = 0; i < ((SysCAMSBlockTDF) port.getFather()).getListTypedef().getSize(); i++) {
+						String select = ((SysCAMSBlockTDF) port.getFather()).getListTypedef().get(i);
+						String[] split = select.split(" : ");
+						listArrayTypeString.add(split[0]);
+					}
+				}
+			}
 		}
-		if (port.getTDFType().equals("bool")) {
-			typeComboBoxString.setSelectedIndex(1);
+		typeComboBoxString = new JComboBox<String>();
+		for (int i = 0; i < listArrayTypeString.size(); i++) {
+			typeComboBoxString.addItem(listArrayTypeString.get(i));
 		}
-		if (port.getTDFType().equals("double")) {
-			typeComboBoxString.setSelectedIndex(2);
+		for (int i = 0; i < listArrayTypeString.size(); i++) {
+			if (port.getTDFType().equals("")) {
+				typeComboBoxString.setSelectedIndex(0);
+			}
+			if (port.getTDFType().equals(listArrayTypeString.get(i))) {
+				typeComboBoxString.setSelectedIndex(i);
+			}
 		}
-		typeComboBoxString.setActionCommand("type");
 		typeComboBoxString.addActionListener(this);
 		constraints = new GridBagConstraints(1, 4, 2, 1, 1.0, 1.0,
 				GridBagConstraints.CENTER,