diff --git a/src/main/java/ui/avatarsmd/AvatarSMDGPIO.java b/src/main/java/ui/avatarsmd/AvatarSMDGPIO.java
index 516e9f7c410ba85120e51e0da26ecd82a5ae1013..e9ab13b7726337ccc0a1d0287654ef810fecc442 100644
--- a/src/main/java/ui/avatarsmd/AvatarSMDGPIO.java
+++ b/src/main/java/ui/avatarsmd/AvatarSMDGPIO.java
@@ -419,9 +419,9 @@ public class AvatarSMDGPIO extends TGCScalableWithInternalComponent implements A
           null,
           getValue());*/
 
-        //JDialogAvatarGPIOState jdas = new JDialogAvatarGPIOState(frame, "Setting state parameters", value, entryCode);
+        JDialogAvatarGPIOState jdas = new JDialogAvatarGPIOState(frame, "Setting state parameters", value, entryCode);
 		
-		JDialogAvatarGPIOState jdas = new JDialogAvatarGPIOState(frame,  "Setting state parameters", null, refs); //DG 9.3. ToDo reference c'est quoi??
+	//	JDialogAvatarGPIOState jdas = new JDialogAvatarGPIOState(frame,  "Setting state parameters", null, refs); //DG 9.3. ToDo reference c'est quoi??
 								 
        // jdas.setSize(600, 550);
         GraphicLib.centerOnParent(jdas, 600, 550 );
@@ -432,7 +432,7 @@ public class AvatarSMDGPIO extends TGCScalableWithInternalComponent implements A
             return false;
         }
 
-        String s = jdas.getGPIOName();
+        String s = jdas.getGPIOStateName();
 
         if ((s != null) && (s.length() > 0) && (!s.equals(oldValue))) {
             //boolean b;
diff --git a/src/main/java/ui/window/JDialogAvatarGPIOState.java b/src/main/java/ui/window/JDialogAvatarGPIOState.java
index 8a10d533af490e98f79e46c1c82b3d62a19e7e0f..832a517ac6856635cd42d4bf1e763d03fdaa5946 100644
--- a/src/main/java/ui/window/JDialogAvatarGPIOState.java
+++ b/src/main/java/ui/window/JDialogAvatarGPIOState.java
@@ -36,225 +36,223 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-    //vrac
-/*for(AvatarAmsCluster amsCluster : TopCellGenerator.avatardd.getAllAmsCluster ()) {
-            if(amsCluster.getNo_amsCluster() == 0) {
-	    code += "if(strcmp(name, \""+amsCluster.getAmsClusterName()+"\") == 0) {\n";*/
-		//end vrac
+
 
 
 package ui.window;
 
-import java.awt.BorderLayout;
-import java.awt.Container;
-import java.awt.Font;
-import java.awt.Frame;
-import java.awt.GridBagConstraints;
-import java.awt.GridBagLayout;
+import myutil.Conversion;
+import myutil.GraphicLib;
+import ui.util.IconManager;
+
+import javax.swing.*;
+import java.awt.*;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Vector;
-
-import javax.swing.JButton;
-import javax.swing.JComboBox;
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JTextField;
-
-import myutil.TraceManager;
-import ui.AvatarSignal;
-import ui.TGComponent;
-
-import ddtranslatorSoclib.AvatarAmsCluster;
 
 /**
  * Class JDialogAvatarGPIOState
- * Dialog for managing several string components
- * Creation: 12/04/2010
- * @version 1.0 12/04/2010
+ * Dialog for managing AVATAR states information
+ * Creation: 08/03/2013
+ * @version 1.0 08/03/2013
  * @author Ludovic APVRILLE
  */
 public class JDialogAvatarGPIOState extends JDialogBase implements ActionListener  {
-
-    //private List<AvatarGPIO> gpios, realGpios;
-    private List<AvatarAmsCluster> gpios, realGpios;
-    private List<String> showGPIO;
-    private String currentGPIO;
-    private boolean isOut;
+    
 	
-	private TGComponent reference;
-    private Vector<TGComponent> refs;
-
+	//protected String [] globalCode;
+	protected String [] entryCode;
+    
     private boolean cancelled = true;
-
-	private JComboBox<TGComponent> refChecks;
-
+    
+    
     private JPanel panel1;
-
+	private JPanel panel2;
+    
     // Panel1
-    private JComboBox<String> listGPIO;
-    private JButton selectGPIO;
-    private JTextField GPIO;
-
+    private String stateName;
+	private JTextField stateNameText;
+	
+	// Panel of code and files
+	protected JTextArea jtaEntryCode; 
+	//jtaGlobalCode;
+    
+    
     /* Creates new form  */
-    public JDialogAvatarGPIOState(Frame _f, String _title, String _currentGPIO, List<AvatarAmsCluster> _GPIOs, boolean _isOut, TGComponent _reference, Vector<TGComponent> _refs) {
+    // arrayDelay: [0] -> minDelay ; [1] -> maxDelay
+    public JDialogAvatarGPIOState(Frame _f, String _title, String _name, String[] _entryCode) {
+        
         super(_f, _title, true);
-
-        GPIOs = _GPIOs;
-        currentGPIO = _currentGPIO;
-        isOut = _isOut;
-		reference=_reference;
-		refs=_refs;
-
-        makeGPIOs();
-
+       
+        stateName = _name;
+		
+	
+		
+		//globalCode = _globalCode;
+		entryCode = _entryCode;
+		
+		
         initComponents();
-//        myInitComponents();
-
+        myInitComponents();
         pack();
     }
-
-    private void makeGPIOs() {
-        showGPIOs = new LinkedList<String> ();
-        realGPIOs = new LinkedList<AvatarGPIO> ();
-
-
-	for(AvatarAmsCluster amsCluster : TopCellGenerator.avatardd.getAllAmsCluster ()) {
-            if(amsCluster.getNo_amsCluster() == 0) {
-	        showGPIOs.add(amsCluster.getAmsClusterName());
-		realGPIOs.add(amsCluster);
-		//DG toDo distinguish GPIO's in and out signals
 	
-		/*    for (AvatarGPIO as: GPIOs)
-            if (((as.getInOut() == AvatarGPIO.OUT) && (isOut)) ||  ((as.getInOut() == AvatarGPIO.IN) && (!isOut))){
-                showGPIOs.add(as.toString());
-                realGPIOs.add(as);
-		}*/
-		
-	    }
-	}
+    
+    
+    private void myInitComponents() {
     }
-
-//    private void myInitComponents() {
-//    }
-
+    
     private void initComponents() {
+		int i;
+		
         Container c = getContentPane();
-        //GridBagLayout gridbag0 = new GridBagLayout();
+        GridBagLayout gridbag0 = new GridBagLayout();
         GridBagLayout gridbag1 = new GridBagLayout();
-        //GridBagConstraints c0 = new GridBagConstraints();
+		GridBagLayout gridbag2 = new GridBagLayout();
+        GridBagConstraints c0 = new GridBagConstraints();
         GridBagConstraints c1 = new GridBagConstraints();
-
+		GridBagConstraints c2 = new GridBagConstraints();
+        
         setFont(new Font("Helvetica", Font.PLAIN, 14));
-        c.setLayout(new BorderLayout());
-
+        c.setLayout(gridbag0);
+        
         setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
-
+        
         panel1 = new JPanel();
         panel1.setLayout(gridbag1);
-
-        panel1.setBorder(new javax.swing.border.TitledBorder("GPIOs"));
-
-        //panel1.setPreferredSize(new Dimension(500, 250));
-
-        // first line panel1
+           
+        
+        panel1.setBorder(new javax.swing.border.TitledBorder("GPIOState parameters"));
+    
+        JPanel panel11 = new JPanel(new BorderLayout());
+        // Name of state
         c1.weighty = 1.0;
         c1.weightx = 1.0;
-        c1.gridwidth = GridBagConstraints.REMAINDER; //end row
-        c1.fill = GridBagConstraints.BOTH;
-        c1.gridheight = 1;
-        c1.anchor = GridBagConstraints.CENTER;
-        panel1.add(new JLabel(" "), c1);
-
-        // Combo box
-        c1.fill = GridBagConstraints.HORIZONTAL;
-        listGPIOs = new JComboBox<String> (showGPIOs.toArray (new String[showGPIOs.size()]));
-        panel1.add(listGPIOs, c1);
-
-
-        // GPIO
-        c1.gridwidth = GridBagConstraints.REMAINDER; //end row
-        selectGPIO = new JButton("Select GPIO by name");
-        panel1.add(selectGPIO, c1);
-        selectGPIO.setEnabled(showGPIOs.size() > 0);
-        selectGPIO.addActionListener(this);
-
-        // Text
-        c1.gridwidth = GridBagConstraints.REMAINDER; //end row
-        GPIO = new JTextField(currentGPIO, 30);
-        panel1.add(GPIO, c1);
-        //panel1.setEditable(true);
-
-		//Reference to DIPLODOCUS GPIO or Requirement
-		c1.gridwidth = 1;
+        c1.gridwidth = 1;
+		c1.gridheight = 1;
         c1.fill = GridBagConstraints.HORIZONTAL;
-        c1.anchor = GridBagConstraints.CENTER;
-		panel1.add(new JLabel("Reference Requirement"),c1);
+        c1.gridheight = 1;
+		panel1.add(new JLabel("ID of state = "), c1);
 		c1.gridwidth = GridBagConstraints.REMAINDER; //end row
-		refChecks = new JComboBox<TGComponent>(refs);
-		refChecks.insertItemAt(null, 0);
-		TraceManager.addDev("Reference=" + reference);
-		if (reference != null){
-			refChecks.setSelectedItem(reference);
-		} else {
-		    refChecks.setSelectedIndex(0);
-        }
-		panel1.add(refChecks,c1);
-
-        c.add(panel1, BorderLayout.CENTER);
-
-        JPanel buttons = initBasicButtons(this);
-        c.add(buttons, BorderLayout.SOUTH);
+		stateNameText = new JTextField(stateName);
+        panel1.add(stateNameText, c1);
+        panel11.add(panel1, BorderLayout.CENTER);
+        
+        
+       
+		panel2 = new JPanel();
+        panel2.setLayout(gridbag2);
+           
+        panel2.setBorder(new javax.swing.border.TitledBorder("Entry code"));
+		// guard
+        c2.weighty = 1.0;
+        c2.weightx = 1.0;
+        c2.gridwidth = 1;
+		c2.gridheight = 1;
+        c2.fill = GridBagConstraints.BOTH;
+		c2.gridwidth = GridBagConstraints.REMAINDER;
+        c2.gridheight = 1;
+       
+		/*panel2.add(new JLabel("Global code:"), c2);
+		jtaGlobalCode = new JTextArea();
+        jtaGlobalCode.setEditable(true);
+        jtaGlobalCode.setMargin(new Insets(10, 10, 10, 10));
+        jtaGlobalCode.setTabSize(3);
+		String files = "";
+		if (globalCode != null) {
+			for(i=0; i<globalCode.length; i++) {
+				files += globalCode[i] + "\n";
+			}
+		}
+        jtaGlobalCode.append(files);
+        jtaGlobalCode.setFont(new Font("times", Font.PLAIN, 12));
+        JScrollPane jsp = new JScrollPane(jtaGlobalCode, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
+        jsp.setPreferredSize(new Dimension(300, 200));
+        panel2.add(jsp, c2);*/
+        
+		//panel2.add(new JLabel("Entry code"), c2);
+		jtaEntryCode = new JTextArea();
+        jtaEntryCode.setEditable(true);
+        jtaEntryCode.setMargin(new Insets(10, 10, 10, 10));
+        jtaEntryCode.setTabSize(3);
+		String code = "";
+		if (entryCode != null) {
+			for(i=0; i<entryCode.length; i++) {
+				code += entryCode[i] + "\n";
+			}
+		}
+        jtaEntryCode.append(code);
+        jtaEntryCode.setFont(new Font("times", Font.PLAIN, 12));
+        JScrollPane jsp = new JScrollPane(jtaEntryCode, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
+         jsp.setPreferredSize(new Dimension(300, 200));
+        //jsp.setPreferredSize(new Dimension(300, 300));
+        panel2.add(jsp, c2);
+    
+        
+		 // main panel;
+        c0.gridwidth = 1;
+        c0.gridheight = 10;
+        c0.weighty = 1.0;
+        c0.weightx = 1.0;
+        c0.gridwidth = GridBagConstraints.REMAINDER; //end row
+        
+        // Issue #41 Ordering of tabbed panes 
+		JTabbedPane jtp = GraphicLib.createTabbedPane();//new JTabbedPane();
+		jtp.setPreferredSize( new Dimension( 400, 450 ) );
+		jtp.add("General", panel11);
+		jtp.add("Prototyping", panel2);
+        c0.fill = GridBagConstraints.BOTH;
+        c.add(jtp, c0);
+        
+        c0.gridwidth = 1;
+        c0.gridheight = 1;
+        c0.fill = GridBagConstraints.HORIZONTAL;
+        
+        initButtons(c0, c, this);
     }
-
-    @Override
+    
     public void	actionPerformed(ActionEvent evt)  {
         //String command = evt.getActionCommand();
-
+        
         // Compare the action command to the known actions.
         if (evt.getSource() == closeButton)  {
             closeDialog();
         } else if (evt.getSource() == cancelButton)  {
             cancelDialog();
-        } else if (evt.getSource() == selectGPIO)  {
-            selectGPIO();
-        }
+        } 
     }
-
-    public void selectGPIO() {
-        int index = listGPIOs.getSelectedIndex();
-        GPIO.setText(realGPIOs.get(index).getUseDescription());
-    }
-
+	
+    
     public void closeDialog() {
-        cancelled = false;
+		
+		//globalCode =  Conversion.wrapText(jtaGlobalCode.getText());
+		entryCode =  Conversion.wrapText(jtaEntryCode.getText());
+		cancelled = false;
         dispose();
     }
-
-    /*  public String getGPIO() {
-        return GPIO.getText();
-	}*/
-
-    public String getGPIOName() {
-        return GPIO.getText();
-	}
     
-	public TGComponent getReference(){
-		return (TGComponent) refChecks.getSelectedItem();
-	}
-
-    public boolean hasValidString() {
-        return GPIO.getText().length() > 0;
-    }
-
-    public boolean hasBeenCancelled() {
-        return cancelled;
+    /*public String getActions() {
+        return signal.getText();
+    }*/
+    
+    public String getGPIOStateName() {
+        return stateNameText.getText();
     }
-
+	
+	public boolean hasBeenCancelled() {
+		return cancelled;
+	}
+    
     public void cancelDialog() {
         dispose();
     }
+	
+	/*public String[] getGlobalCode() {
+		return globalCode;
+	}*/
+	
+	public String[] getEntryCode() {
+		return entryCode;
+	}
+	
 }