diff --git a/src/main/java/ui/eln/ELNClusterPortDE.java b/src/main/java/ui/eln/ELNClusterPortDE.java
index 627a4c078a203968a9edb415009ecdcdaaa728a7..a37f561ef870be9f043e88323eab17c7ac6de762 100644
--- a/src/main/java/ui/eln/ELNClusterPortDE.java
+++ b/src/main/java/ui/eln/ELNClusterPortDE.java
@@ -67,6 +67,9 @@ public class ELNClusterPortDE extends TGCScalableWithInternalComponent implement
 	private int textX = 15;
 	private double dtextX = 0.0;
 	protected int decPoint = 3;
+	
+	private String type;
+	private String origin;
 
 	public ELNClusterPortDE(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);
@@ -92,6 +95,8 @@ public class ELNClusterPortDE extends TGCScalableWithInternalComponent implement
 		userResizable = false;
 
 		value = "";
+		type = "bool";
+		origin = "in";
 	}
 
 	public void initConnectingPoint(int nb) {
@@ -274,7 +279,9 @@ public class ELNClusterPortDE extends TGCScalableWithInternalComponent implement
 
 	protected String translateExtraParam() {
 		StringBuffer sb = new StringBuffer("<extraparam>\n");
-		sb.append("<attributes name=\"" + getValue() + "\"");
+		sb.append("<attributes name=\"" + value);
+		sb.append("\" type=\"" + type);
+		sb.append("\" origin=\"" + origin + "\"");
 		sb.append("/>\n");
 		sb.append("</extraparam>\n");
 		return new String(sb);
@@ -286,7 +293,7 @@ public class ELNClusterPortDE extends TGCScalableWithInternalComponent implement
 			Node n1, n2;
 			Element elt;
 
-			String name;
+			String name, type, origin;
 
 			for (int i = 0; i < nl.getLength(); i++) {
 				n1 = nl.item(i);
@@ -298,7 +305,11 @@ public class ELNClusterPortDE extends TGCScalableWithInternalComponent implement
 							elt = (Element) n2;
 							if (elt.getTagName().equals("attributes")) {
 								name = elt.getAttribute("name");
+								type = elt.getAttribute("type");
+								origin = elt.getAttribute("origin");
 								setValue(name);
+								setPortType(type);
+								setOrigin(origin);
 							}
 						}
 					}
@@ -312,4 +323,20 @@ public class ELNClusterPortDE extends TGCScalableWithInternalComponent implement
 	public int getDefaultConnector() {
 		return TGComponentManager.ELN_CONNECTOR;
 	}
+	
+	public String getPortType() {
+		return type;
+	}
+
+	public void setPortType(String _type) {
+		type = _type;
+	}
+	
+	public String getOrigin() {
+		return origin;
+	}
+
+	public void setOrigin(String _origin) {
+		origin = _origin;
+	}
 }
\ No newline at end of file
diff --git a/src/main/java/ui/eln/ELNClusterPortTDF.java b/src/main/java/ui/eln/ELNClusterPortTDF.java
index 43f893afcd53320163d81fb1973cabced8154930..95c82cf99423fa1b626b4f04fd29f8178673d849 100644
--- a/src/main/java/ui/eln/ELNClusterPortTDF.java
+++ b/src/main/java/ui/eln/ELNClusterPortTDF.java
@@ -67,6 +67,9 @@ public class ELNClusterPortTDF extends TGCScalableWithInternalComponent implemen
 	private int textX = 15;
 	private double dtextX = 0.0;
 	protected int decPoint = 3;
+	
+	private String type;
+	private String origin;
 
 	public ELNClusterPortTDF(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);
@@ -92,6 +95,8 @@ public class ELNClusterPortTDF extends TGCScalableWithInternalComponent implemen
 		userResizable = false;
 
 		value = "";
+		type = "bool";
+		origin = "in";
 	}
 
 	public void initConnectingPoint(int nb) {
@@ -274,7 +279,9 @@ public class ELNClusterPortTDF extends TGCScalableWithInternalComponent implemen
 
 	protected String translateExtraParam() {
 		StringBuffer sb = new StringBuffer("<extraparam>\n");
-		sb.append("<attributes name=\"" + getValue() + "\"");
+		sb.append("<attributes name=\"" + value);
+		sb.append("\" type=\"" + type);
+		sb.append("\" origin=\"" + origin + "\"");
 		sb.append("/>\n");
 		sb.append("</extraparam>\n");
 		return new String(sb);
@@ -286,7 +293,7 @@ public class ELNClusterPortTDF extends TGCScalableWithInternalComponent implemen
 			Node n1, n2;
 			Element elt;
 
-			String name;
+			String name, type, origin;
 
 			for (int i = 0; i < nl.getLength(); i++) {
 				n1 = nl.item(i);
@@ -298,7 +305,11 @@ public class ELNClusterPortTDF extends TGCScalableWithInternalComponent implemen
 							elt = (Element) n2;
 							if (elt.getTagName().equals("attributes")) {
 								name = elt.getAttribute("name");
+								type = elt.getAttribute("type");
+								origin = elt.getAttribute("origin");
 								setValue(name);
+								setPortType(type);
+								setOrigin(origin);
 							}
 						}
 					}
@@ -312,4 +323,20 @@ public class ELNClusterPortTDF extends TGCScalableWithInternalComponent implemen
 	public int getDefaultConnector() {
 		return TGComponentManager.ELN_CONNECTOR;
 	}
+	
+	public String getPortType() {
+		return type;
+	}
+
+	public void setPortType(String _type) {
+		type = _type;
+	}
+	
+	public String getOrigin() {
+		return origin;
+	}
+
+	public void setOrigin(String _origin) {
+		origin = _origin;
+	}
 }
\ No newline at end of file
diff --git a/src/main/java/ui/eln/ELNModulePortDE.java b/src/main/java/ui/eln/ELNModulePortDE.java
index 82db73822d6d7b55befd3b48db24ad438fe95d5f..77e31963aba4be8230d101d64dc417b37f4601eb 100644
--- a/src/main/java/ui/eln/ELNModulePortDE.java
+++ b/src/main/java/ui/eln/ELNModulePortDE.java
@@ -48,7 +48,7 @@ import javax.swing.*;
 import java.awt.*;
 
 /**
- * Class ELNPortDEInout 
+ * Class ELNModulePortDE
  * Primitive port. To be used in ELN diagrams 
  * Creation: 03/08/2018
  * @version 1.0 03/08/2018
@@ -67,6 +67,9 @@ public class ELNModulePortDE extends TGCScalableWithInternalComponent implements
 	private int textX = 15;
 	private double dtextX = 0.0;
 	protected int decPoint = 3;
+	
+	private String type;
+	private String origin;
 
 	public ELNModulePortDE(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);
@@ -92,6 +95,8 @@ public class ELNModulePortDE extends TGCScalableWithInternalComponent implements
 		userResizable = false;
 
 		value = "";
+		type = "bool";
+		origin = "in";
 	}
 
 	public void initConnectingPoint(int nb) {
@@ -285,7 +290,9 @@ public class ELNModulePortDE extends TGCScalableWithInternalComponent implements
 
 	protected String translateExtraParam() {
 		StringBuffer sb = new StringBuffer("<extraparam>\n");
-		sb.append("<attributes name=\"" + getValue() + "\"");
+		sb.append("<attributes name=\"" + value);
+		sb.append("\" type=\"" + type);
+		sb.append("\" origin=\"" + origin + "\"");
 		sb.append("/>\n");
 		sb.append("</extraparam>\n");
 		return new String(sb);
@@ -297,7 +304,7 @@ public class ELNModulePortDE extends TGCScalableWithInternalComponent implements
 			Node n1, n2;
 			Element elt;
 
-			String name;
+			String name, type, origin;
 
 			for (int i = 0; i < nl.getLength(); i++) {
 				n1 = nl.item(i);
@@ -309,7 +316,11 @@ public class ELNModulePortDE extends TGCScalableWithInternalComponent implements
 							elt = (Element) n2;
 							if (elt.getTagName().equals("attributes")) {
 								name = elt.getAttribute("name");
+								type = elt.getAttribute("type");
+								origin = elt.getAttribute("origin");
 								setValue(name);
+								setPortType(type);
+								setOrigin(origin);
 							}
 						}
 					}
@@ -323,4 +334,20 @@ public class ELNModulePortDE extends TGCScalableWithInternalComponent implements
 	public int getDefaultConnector() {
 		return TGComponentManager.ELN_CONNECTOR;
 	}
+
+	public String getPortType() {
+		return type;
+	}
+
+	public void setPortType(String _type) {
+		type = _type;
+	}
+	
+	public String getOrigin() {
+		return origin;
+	}
+
+	public void setOrigin(String _origin) {
+		origin = _origin;
+	}
 }
\ No newline at end of file
diff --git a/src/main/java/ui/eln/ELNModulePortTDF.java b/src/main/java/ui/eln/ELNModulePortTDF.java
index 6c760a895ddf907b1813edfc1d44c9d22d8b056c..d2892351dabf3609de9387bcbda91342e2798bde 100644
--- a/src/main/java/ui/eln/ELNModulePortTDF.java
+++ b/src/main/java/ui/eln/ELNModulePortTDF.java
@@ -48,7 +48,7 @@ import javax.swing.*;
 import java.awt.*;
 
 /**
- * Class ELNPortTDFInout 
+ * Class ELNModulePortTDF
  * Primitive port. To be used in ELN diagrams 
  * Creation: 03/08/2018
  * @version 1.0 03/08/2018
@@ -68,6 +68,9 @@ public class ELNModulePortTDF extends TGCScalableWithInternalComponent implement
 	private double dtextX = 0.0;
 	protected int decPoint = 3;
 
+	private String type;
+	private String origin;
+	
 	public ELNModulePortTDF(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);
 
@@ -92,6 +95,8 @@ public class ELNModulePortTDF extends TGCScalableWithInternalComponent implement
 		userResizable = false;
 
 		value = "";
+		type = "bool";
+		origin = "in";
 	}
 
 	public void initConnectingPoint(int nb) {
@@ -285,7 +290,9 @@ public class ELNModulePortTDF extends TGCScalableWithInternalComponent implement
 
 	protected String translateExtraParam() {
 		StringBuffer sb = new StringBuffer("<extraparam>\n");
-		sb.append("<attributes name=\"" + getValue() + "\"");
+		sb.append("<attributes name=\"" + value);
+		sb.append("\" type=\"" + type);
+		sb.append("\" origin=\"" + origin + "\"");
 		sb.append("/>\n");
 		sb.append("</extraparam>\n");
 		return new String(sb);
@@ -297,7 +304,7 @@ public class ELNModulePortTDF extends TGCScalableWithInternalComponent implement
 			Node n1, n2;
 			Element elt;
 
-			String name;
+			String name, type, origin;
 
 			for (int i = 0; i < nl.getLength(); i++) {
 				n1 = nl.item(i);
@@ -309,7 +316,11 @@ public class ELNModulePortTDF extends TGCScalableWithInternalComponent implement
 							elt = (Element) n2;
 							if (elt.getTagName().equals("attributes")) {
 								name = elt.getAttribute("name");
+								type = elt.getAttribute("type");
+								origin = elt.getAttribute("origin");
 								setValue(name);
+								setPortType(type);
+								setOrigin(origin);
 							}
 						}
 					}
@@ -323,4 +334,20 @@ public class ELNModulePortTDF extends TGCScalableWithInternalComponent implement
 	public int getDefaultConnector() {
 		return TGComponentManager.ELN_CONNECTOR;
 	}
+	
+	public String getPortType() {
+		return type;
+	}
+
+	public void setPortType(String _type) {
+		type = _type;
+	}
+	
+	public String getOrigin() {
+		return origin;
+	}
+
+	public void setOrigin(String _origin) {
+		origin = _origin;
+	}
 }
\ No newline at end of file
diff --git a/src/main/java/ui/window/JDialogELNClusterPortDE.java b/src/main/java/ui/window/JDialogELNClusterPortDE.java
index 7337bfd2f2f25f896e6f7419ccd56e21b860462a..e2d4b50116efb9df4fca21b55b8e1194717d5b5e 100644
--- a/src/main/java/ui/window/JDialogELNClusterPortDE.java
+++ b/src/main/java/ui/window/JDialogELNClusterPortDE.java
@@ -42,6 +42,7 @@ import ui.eln.ELNClusterPortDE;
 import ui.util.*;
 import java.awt.*;
 import java.awt.event.*;
+import java.util.*;
 import javax.swing.*;
 
 /**
@@ -57,6 +58,10 @@ import javax.swing.*;
 public class JDialogELNClusterPortDE extends JDialog implements ActionListener {
 
 	private JTextField nameTextField;
+	private ArrayList<String> listArrayTypeString;
+	private JComboBox<String> typeComboBoxString;
+	private ArrayList<String> listOriginString;
+	private JComboBox<String> originComboBoxString;
 
 	private ELNClusterPortDE term;
 
@@ -103,16 +108,63 @@ public class JDialogELNClusterPortDE extends JDialog implements ActionListener {
 		gridBag.setConstraints(labelName, constraints);
 		attributesBoxPanel.add(labelName);
 
-		if (term.getValue().toString().equals("")) {
-			nameTextField = new JTextField(10);
-		} else {
-			nameTextField = new JTextField(term.getValue().toString(), 10); 
-		}
+		nameTextField = new JTextField(term.getValue().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);
 		gridBag.setConstraints(nameTextField, constraints);
 		attributesBoxPanel.add(nameTextField);
 
+		JLabel typeLabel = new JLabel("Type : ");
+		constraints = new GridBagConstraints(0, 1, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
+		gridBag.setConstraints(typeLabel, constraints);
+		attributesBoxPanel.add(typeLabel);
+
+		listArrayTypeString = new ArrayList<String>();
+		listArrayTypeString.add("bool");
+		listArrayTypeString.add("double");
+		listArrayTypeString.add("int");
+		typeComboBoxString = new JComboBox<String>();
+		for (int i = 0; i < listArrayTypeString.size(); i++) {
+			typeComboBoxString.addItem(listArrayTypeString.get(i));
+		}
+		for (int i = 0; i < listArrayTypeString.size(); i++) {
+			if (term.getPortType().equals(listArrayTypeString.get(i))) {
+				typeComboBoxString.setSelectedIndex(i);
+			}
+		}
+		typeComboBoxString.addActionListener(this);
+		constraints = new GridBagConstraints(1, 1, 2, 1, 1.0, 1.0,
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
+		gridBag.setConstraints(typeComboBoxString, constraints);
+		attributesBoxPanel.add(typeComboBoxString); 
+
+		JLabel orginLabel = new JLabel("In / Out : ");
+		constraints = new GridBagConstraints(0, 2, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
+				new Insets(5, 10, 15, 10), 0, 0);
+		gridBag.setConstraints(orginLabel, constraints);
+		attributesBoxPanel.add(orginLabel);
+
+		listOriginString = new ArrayList<String>();
+		listOriginString.add("in");
+		listOriginString.add("out");
+		originComboBoxString = new JComboBox<String>();
+		for (int i = 0; i < listOriginString.size(); i++) {
+			originComboBoxString.addItem(listOriginString.get(i));
+		}
+		for (int i = 0; i < listOriginString.size(); i++) {
+			if (term.getOrigin().equals(listOriginString.get(i))) {
+				originComboBoxString.setSelectedIndex(i);
+			}
+		}
+		originComboBoxString.addActionListener(this);
+		constraints = new GridBagConstraints(1, 2, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
+				new Insets(5, 10, 15, 10), 0, 0);
+		gridBag.setConstraints(originComboBoxString, constraints);
+		attributesBoxPanel.add(originComboBoxString);
+		
 		attributesBox.add(attributesBoxPanel);
 
 		attributesMainPanel.add(attributesBox, BorderLayout.NORTH); 
@@ -141,6 +193,9 @@ public class JDialogELNClusterPortDE extends JDialog implements ActionListener {
 	public void actionPerformed(ActionEvent e) {
 		if ("Save_Close".equals(e.getActionCommand())) {
 			term.setValue(new String(nameTextField.getText()));
+			term.setPortType((String) typeComboBoxString.getSelectedItem());
+			term.setOrigin((String) originComboBoxString.getSelectedItem());
+			
 			this.dispose();
 		}
 
diff --git a/src/main/java/ui/window/JDialogELNClusterPortTDF.java b/src/main/java/ui/window/JDialogELNClusterPortTDF.java
index 57e0d60b0fb15c9e373a83e1acb200d36bcdec41..129dab4a9ddf2d89e4989b2257cf72ffc34eea02 100644
--- a/src/main/java/ui/window/JDialogELNClusterPortTDF.java
+++ b/src/main/java/ui/window/JDialogELNClusterPortTDF.java
@@ -42,6 +42,7 @@ import ui.eln.ELNClusterPortTDF;
 import ui.util.*;
 import java.awt.*;
 import java.awt.event.*;
+import java.util.*;
 import javax.swing.*;
 
 /**
@@ -57,6 +58,10 @@ import javax.swing.*;
 public class JDialogELNClusterPortTDF extends JDialog implements ActionListener {
 
 	private JTextField nameTextField;
+	private ArrayList<String> listArrayTypeString;
+	private JComboBox<String> typeComboBoxString;
+	private ArrayList<String> listOriginString;
+	private JComboBox<String> originComboBoxString;
 
 	private ELNClusterPortTDF term;
 
@@ -103,16 +108,63 @@ public class JDialogELNClusterPortTDF extends JDialog implements ActionListener
 		gridBag.setConstraints(labelName, constraints);
 		attributesBoxPanel.add(labelName);
 
-		if (term.getValue().toString().equals("")) {
-			nameTextField = new JTextField(10);
-		} else {
-			nameTextField = new JTextField(term.getValue().toString(), 10); 
-		}
+		nameTextField = new JTextField(term.getValue().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);
 		gridBag.setConstraints(nameTextField, constraints);
 		attributesBoxPanel.add(nameTextField);
 
+		JLabel typeLabel = new JLabel("Type : ");
+		constraints = new GridBagConstraints(0, 1, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
+		gridBag.setConstraints(typeLabel, constraints);
+		attributesBoxPanel.add(typeLabel);
+
+		listArrayTypeString = new ArrayList<String>();
+		listArrayTypeString.add("bool");
+		listArrayTypeString.add("double");
+		listArrayTypeString.add("int");
+		typeComboBoxString = new JComboBox<String>();
+		for (int i = 0; i < listArrayTypeString.size(); i++) {
+			typeComboBoxString.addItem(listArrayTypeString.get(i));
+		}
+		for (int i = 0; i < listArrayTypeString.size(); i++) {
+			if (term.getPortType().equals(listArrayTypeString.get(i))) {
+				typeComboBoxString.setSelectedIndex(i);
+			}
+		}
+		typeComboBoxString.addActionListener(this);
+		constraints = new GridBagConstraints(1, 1, 2, 1, 1.0, 1.0,
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
+		gridBag.setConstraints(typeComboBoxString, constraints);
+		attributesBoxPanel.add(typeComboBoxString); 
+
+		JLabel orginLabel = new JLabel("In / Out : ");
+		constraints = new GridBagConstraints(0, 2, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
+				new Insets(5, 10, 15, 10), 0, 0);
+		gridBag.setConstraints(orginLabel, constraints);
+		attributesBoxPanel.add(orginLabel);
+
+		listOriginString = new ArrayList<String>();
+		listOriginString.add("in");
+		listOriginString.add("out");
+		originComboBoxString = new JComboBox<String>();
+		for (int i = 0; i < listOriginString.size(); i++) {
+			originComboBoxString.addItem(listOriginString.get(i));
+		}
+		for (int i = 0; i < listOriginString.size(); i++) {
+			if (term.getOrigin().equals(listOriginString.get(i))) {
+				originComboBoxString.setSelectedIndex(i);
+			}
+		}
+		originComboBoxString.addActionListener(this);
+		constraints = new GridBagConstraints(1, 2, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
+				new Insets(5, 10, 15, 10), 0, 0);
+		gridBag.setConstraints(originComboBoxString, constraints);
+		attributesBoxPanel.add(originComboBoxString);
+		
 		attributesBox.add(attributesBoxPanel);
 
 		attributesMainPanel.add(attributesBox, BorderLayout.NORTH); 
@@ -141,6 +193,9 @@ public class JDialogELNClusterPortTDF extends JDialog implements ActionListener
 	public void actionPerformed(ActionEvent e) {
 		if ("Save_Close".equals(e.getActionCommand())) {
 			term.setValue(new String(nameTextField.getText()));
+			term.setPortType((String) typeComboBoxString.getSelectedItem());
+			term.setOrigin((String) originComboBoxString.getSelectedItem());
+			
 			this.dispose();
 		}
 
diff --git a/src/main/java/ui/window/JDialogELNModulePortDE.java b/src/main/java/ui/window/JDialogELNModulePortDE.java
index 3f1c4401c2e5bdcb487d784f77794486ed8b09fd..ddb7e5a7a98be635ababf3534d3d7036ca82c701 100644
--- a/src/main/java/ui/window/JDialogELNModulePortDE.java
+++ b/src/main/java/ui/window/JDialogELNModulePortDE.java
@@ -42,6 +42,7 @@ import ui.eln.ELNModulePortDE;
 import ui.util.*;
 import java.awt.*;
 import java.awt.event.*;
+import java.util.*;
 import javax.swing.*;
 
 /**
@@ -57,6 +58,10 @@ import javax.swing.*;
 public class JDialogELNModulePortDE extends JDialog implements ActionListener {
 
 	private JTextField nameTextField;
+	private ArrayList<String> listArrayTypeString;
+	private JComboBox<String> typeComboBoxString;
+	private ArrayList<String> listOriginString;
+	private JComboBox<String> originComboBoxString;
 
 	private ELNModulePortDE term;
 
@@ -103,16 +108,63 @@ public class JDialogELNModulePortDE extends JDialog implements ActionListener {
 		gridBag.setConstraints(labelName, constraints);
 		attributesBoxPanel.add(labelName);
 
-		if (term.getValue().toString().equals("")) {
-			nameTextField = new JTextField(10);
-		} else {
-			nameTextField = new JTextField(term.getValue().toString(), 10); 
-		}
+		nameTextField = new JTextField(term.getValue().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);
 		gridBag.setConstraints(nameTextField, constraints);
 		attributesBoxPanel.add(nameTextField);
 
+		JLabel typeLabel = new JLabel("Type : ");
+		constraints = new GridBagConstraints(0, 1, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
+		gridBag.setConstraints(typeLabel, constraints);
+		attributesBoxPanel.add(typeLabel);
+
+		listArrayTypeString = new ArrayList<String>();
+		listArrayTypeString.add("bool");
+		listArrayTypeString.add("double");
+		listArrayTypeString.add("int");
+		typeComboBoxString = new JComboBox<String>();
+		for (int i = 0; i < listArrayTypeString.size(); i++) {
+			typeComboBoxString.addItem(listArrayTypeString.get(i));
+		}
+		for (int i = 0; i < listArrayTypeString.size(); i++) {
+			if (term.getPortType().equals(listArrayTypeString.get(i))) {
+				typeComboBoxString.setSelectedIndex(i);
+			}
+		}
+		typeComboBoxString.addActionListener(this);
+		constraints = new GridBagConstraints(1, 1, 2, 1, 1.0, 1.0,
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
+		gridBag.setConstraints(typeComboBoxString, constraints);
+		attributesBoxPanel.add(typeComboBoxString); 
+
+		JLabel orginLabel = new JLabel("In / Out : ");
+		constraints = new GridBagConstraints(0, 2, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
+				new Insets(5, 10, 15, 10), 0, 0);
+		gridBag.setConstraints(orginLabel, constraints);
+		attributesBoxPanel.add(orginLabel);
+
+		listOriginString = new ArrayList<String>();
+		listOriginString.add("in");
+		listOriginString.add("out");
+		originComboBoxString = new JComboBox<String>();
+		for (int i = 0; i < listOriginString.size(); i++) {
+			originComboBoxString.addItem(listOriginString.get(i));
+		}
+		for (int i = 0; i < listOriginString.size(); i++) {
+			if (term.getOrigin().equals(listOriginString.get(i))) {
+				originComboBoxString.setSelectedIndex(i);
+			}
+		}
+		originComboBoxString.addActionListener(this);
+		constraints = new GridBagConstraints(1, 2, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
+				new Insets(5, 10, 15, 10), 0, 0);
+		gridBag.setConstraints(originComboBoxString, constraints);
+		attributesBoxPanel.add(originComboBoxString);
+
 		attributesBox.add(attributesBoxPanel);
 
 		attributesMainPanel.add(attributesBox, BorderLayout.NORTH); 
@@ -141,6 +193,9 @@ public class JDialogELNModulePortDE extends JDialog implements ActionListener {
 	public void actionPerformed(ActionEvent e) {
 		if ("Save_Close".equals(e.getActionCommand())) {
 			term.setValue(new String(nameTextField.getText()));
+			term.setPortType((String) typeComboBoxString.getSelectedItem());
+			term.setOrigin((String) originComboBoxString.getSelectedItem());
+			
 			this.dispose();
 		}
 
diff --git a/src/main/java/ui/window/JDialogELNModulePortTDF.java b/src/main/java/ui/window/JDialogELNModulePortTDF.java
index faee4b53b592a8752a65056f5708128669821d2c..202c576b8280dd75b72d9c59ea9ea0ae4169c3ed 100644
--- a/src/main/java/ui/window/JDialogELNModulePortTDF.java
+++ b/src/main/java/ui/window/JDialogELNModulePortTDF.java
@@ -42,6 +42,7 @@ import ui.eln.ELNModulePortTDF;
 import ui.util.*;
 import java.awt.*;
 import java.awt.event.*;
+import java.util.*;
 import javax.swing.*;
 
 /**
@@ -57,6 +58,10 @@ import javax.swing.*;
 public class JDialogELNModulePortTDF extends JDialog implements ActionListener {
 
 	private JTextField nameTextField;
+	private ArrayList<String> listArrayTypeString;
+	private JComboBox<String> typeComboBoxString;
+	private ArrayList<String> listOriginString;
+	private JComboBox<String> originComboBoxString;
 
 	private ELNModulePortTDF term;
 
@@ -103,16 +108,63 @@ public class JDialogELNModulePortTDF extends JDialog implements ActionListener {
 		gridBag.setConstraints(labelName, constraints);
 		attributesBoxPanel.add(labelName);
 
-		if (term.getValue().toString().equals("")) {
-			nameTextField = new JTextField(10);
-		} else {
-			nameTextField = new JTextField(term.getValue().toString(), 10); 
-		}
+		nameTextField = new JTextField(term.getValue().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);
 		gridBag.setConstraints(nameTextField, constraints);
 		attributesBoxPanel.add(nameTextField);
 
+		JLabel typeLabel = new JLabel("Type : ");
+		constraints = new GridBagConstraints(0, 1, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
+		gridBag.setConstraints(typeLabel, constraints);
+		attributesBoxPanel.add(typeLabel);
+
+		listArrayTypeString = new ArrayList<String>();
+		listArrayTypeString.add("bool");
+		listArrayTypeString.add("double");
+		listArrayTypeString.add("int");
+		typeComboBoxString = new JComboBox<String>();
+		for (int i = 0; i < listArrayTypeString.size(); i++) {
+			typeComboBoxString.addItem(listArrayTypeString.get(i));
+		}
+		for (int i = 0; i < listArrayTypeString.size(); i++) {
+			if (term.getPortType().equals(listArrayTypeString.get(i))) {
+				typeComboBoxString.setSelectedIndex(i);
+			}
+		}
+		typeComboBoxString.addActionListener(this);
+		constraints = new GridBagConstraints(1, 1, 2, 1, 1.0, 1.0,
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
+		gridBag.setConstraints(typeComboBoxString, constraints);
+		attributesBoxPanel.add(typeComboBoxString); 
+
+		JLabel orginLabel = new JLabel("In / Out : ");
+		constraints = new GridBagConstraints(0, 2, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
+				new Insets(5, 10, 15, 10), 0, 0);
+		gridBag.setConstraints(orginLabel, constraints);
+		attributesBoxPanel.add(orginLabel);
+
+		listOriginString = new ArrayList<String>();
+		listOriginString.add("in");
+		listOriginString.add("out");
+		originComboBoxString = new JComboBox<String>();
+		for (int i = 0; i < listOriginString.size(); i++) {
+			originComboBoxString.addItem(listOriginString.get(i));
+		}
+		for (int i = 0; i < listOriginString.size(); i++) {
+			if (term.getOrigin().equals(listOriginString.get(i))) {
+				originComboBoxString.setSelectedIndex(i);
+			}
+		}
+		originComboBoxString.addActionListener(this);
+		constraints = new GridBagConstraints(1, 2, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
+				new Insets(5, 10, 15, 10), 0, 0);
+		gridBag.setConstraints(originComboBoxString, constraints);
+		attributesBoxPanel.add(originComboBoxString);
+		
 		attributesBox.add(attributesBoxPanel);
 
 		attributesMainPanel.add(attributesBox, BorderLayout.NORTH); 
@@ -141,6 +193,9 @@ public class JDialogELNModulePortTDF extends JDialog implements ActionListener {
 	public void actionPerformed(ActionEvent e) {
 		if ("Save_Close".equals(e.getActionCommand())) {
 			term.setValue(new String(nameTextField.getText()));
+			term.setPortType((String) typeComboBoxString.getSelectedItem());
+			term.setOrigin((String) originComboBoxString.getSelectedItem());
+			
 			this.dispose();
 		}