Index: trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/swing/DlgInsert.java
===================================================================
--- trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/swing/DlgInsert.java	(revision 154)
+++ trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/swing/DlgInsert.java	(revision 155)
@@ -2,5 +2,5 @@
 
 import java.awt.BorderLayout;
-import java.awt.FlowLayout;
+import java.util.ArrayList;
 import java.util.List;
 
@@ -29,4 +29,8 @@
 import javax.swing.JScrollPane;
 import javax.swing.JList;
+import javax.swing.border.EtchedBorder;
+import javax.swing.JTree;
+import javax.swing.tree.DefaultTreeModel;
+import javax.swing.tree.DefaultMutableTreeNode;
 
 public class DlgInsert extends JDialog {
@@ -70,5 +74,5 @@
 
 		setModal(true);
-		setBounds(100, 100, 522, 482);
+		setBounds(100, 100, 530, 631);
 		getContentPane().setLayout(new BorderLayout());
 		contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
@@ -77,5 +81,7 @@
 		final JComboBox comboBoxTestcase = new JComboBox();
 		final JPanel panelTextEquals = new JPanel();
+		panelTextEquals.setBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null));
 		final JPanel panelFileEquals = new JPanel();
+		panelFileEquals.setBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null));
 
 		// JComboBox: comboBoxTestcase
@@ -100,5 +106,5 @@
 				"TextEquals", "OutputFileEquals" }));
 		comboBoxTestcase.setSelectedIndex(0);
-		comboBoxTestcase.setBounds(128, 11, 178, 20);
+		comboBoxTestcase.setBounds(91, 11, 178, 20);
 		contentPanel.add(comboBoxTestcase);
 		// ***
@@ -106,9 +112,9 @@
 		// JLabel
 		JLabel label = new JLabel("Testcase:");
-		label.setBounds(10, 14, 86, 14);
+		label.setBounds(12, 14, 86, 14);
 		contentPanel.add(label);
 
 		JLabel label_1 = new JLabel("Expected value:");
-		label_1.setBounds(10, 11, 83, 14);
+		label_1.setBounds(10, 11, 96, 14);
 
 		JLabel label_2 = new JLabel("Target:");
@@ -124,5 +130,5 @@
 		// JPanel: panel
 		panelTextEquals.setLayout(null);
-		panelTextEquals.setBounds(10, 39, 494, 210);
+		panelTextEquals.setBounds(10, 39, 494, 350);
 		contentPanel.add(panelTextEquals);
 		panelTextEquals.add(label_1);
@@ -131,31 +137,73 @@
 
 		JScrollPane scrollPane = new JScrollPane();
-		scrollPane.setBounds(116, 36, 368, 163);
+		scrollPane.setBounds(421, 36, 63, 14);
 		panelTextEquals.add(scrollPane);
 
-		final JList listTargets = new JList(modelListTargets);
+		final JList listTargets = new JList(modelListTargets);		
 		scrollPane.setViewportView(listTargets);
-
-		List<String> targets = null;
 		
-		if (GlobalDataContainer.getInstance().getData("ListTargets") == null) {
-			Console.println("There were no Targets found in the GlobalDataContainer");
-		} else {
-			try {
-				targets = (List<String>) GlobalDataContainer.getInstance()
-						.getData("ListTargets");
-			} catch (ClassCastException e) {
-				Console.println("Not able to cast Data in GlobalDataContainer to List of Targets (String)");
-			}
-
-			for (int i = 0; i < targets.size(); i++) {
-				modelListTargets.addElement(targets.get(i).toString());
-			}
-		}
+		JScrollPane scrollPane_1 = new JScrollPane();
+		scrollPane_1.setBounds(10, 63, 474, 276);
+		panelTextEquals.add(scrollPane_1);
+		
+		//JTree to hold the targets
+		JTree tree = new JTree();
+		tree.setModel(new DefaultTreeModel(
+			new DefaultMutableTreeNode("Targets") {
+				{
+					List<DefaultMutableTreeNode> nodes = new ArrayList<DefaultMutableTreeNode>();
+					List<String> listTargets = new ArrayList<String>();
+					List<String> sortedTargets = new ArrayList<String>();
+
+					try {
+						listTargets = (List<String>) GlobalDataContainer.getInstance().getData("ListTargets");
+					}
+					catch (ClassCastException e) {
+						Console.println("Not able to cast data in GlobalDataContainer to List of Strings");
+					}
+		
+					int parts = 1;
+					while(sortedTargets.size() < listTargets.size()) {
+						for(int i=0; i<listTargets.size(); i++) {
+							String splitted[] = listTargets.get(i).split("/>");
+							if(splitted.length == parts) {
+								sortedTargets.add(listTargets.get(i));
+								modelListTargets.addElement(listTargets.get(i));
+								
+								//insert in tree
+								boolean inserted = false;
+								for(int j=parts-2; j>=0 && !inserted; j--) {
+									splitted[j] = splitted[j] + "/>";
+									for(int k=0; k<nodes.size(); k++) {
+										if(nodes.get(k).toString().compareTo(splitted[j]) == 0) {
+											DefaultMutableTreeNode newNode = new DefaultMutableTreeNode(splitted[j+1]);
+											nodes.add(newNode);
+											nodes.get(k).add(newNode);
+											inserted = true;
+											break;
+										}
+									}
+								}
+								
+								if(!inserted) {
+									DefaultMutableTreeNode newNode = new DefaultMutableTreeNode(listTargets.get(i).toString());
+									nodes.add(newNode);
+									add(newNode);
+								}
+							}
+						}
+						
+						parts++;
+					}
+				}
+			}
+		));
+		scrollPane_1.setViewportView(tree);
+		
 
 		if (listTargets.getComponentCount() > 0)
 			listTargets.setSelectedIndex(0);
 
-		panelFileEquals.setBounds(10, 260, 494, 140);
+		panelFileEquals.setBounds(12, 400, 494, 120);
 		contentPanel.add(panelFileEquals);
 		panelFileEquals.setLayout(null);
@@ -167,5 +215,5 @@
 
 		textFieldActualFile = new JTextField();
-		textFieldActualFile.setBounds(10, 36, 474, 20);
+		textFieldActualFile.setBounds(10, 30, 474, 20);
 		panelFileEquals.add(textFieldActualFile);
 		textFieldActualFile.setColumns(10);
@@ -181,22 +229,24 @@
 			}
 		});
-		btnNewButton.setBounds(99, 80, 89, 23);
+		btnNewButton.setBounds(93, 61, 89, 23);
 		panelFileEquals.add(btnNewButton);
 
 		JLabel lblNewLabel_1 = new JLabel("Expected file:");
-		lblNewLabel_1.setBounds(10, 84, 89, 14);
+		lblNewLabel_1.setBounds(10, 70, 89, 14);
 		panelFileEquals.add(lblNewLabel_1);
 
 		textFieldExpectedFile = new JTextField();
 		textFieldExpectedFile.setColumns(10);
-		textFieldExpectedFile.setBounds(10, 109, 474, 20);
+		textFieldExpectedFile.setBounds(10, 88, 474, 20);
 		panelFileEquals.add(textFieldExpectedFile);
 		{
 			JPanel buttonPane = new JPanel();
-			buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
-			getContentPane().add(buttonPane, BorderLayout.SOUTH);
+			buttonPane.setBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null));
+			buttonPane.setBounds(12, 531, 494, 51);
+			contentPanel.add(buttonPane);
 			{
 				// JButton: okButton
 				JButton okButton = new JButton("Insert");
+				okButton.setBounds(349, 11, 135, 31);
 				okButton.addMouseListener(new MouseAdapter() {
 					public void mouseClicked(MouseEvent arg0) {
@@ -281,4 +331,5 @@
 					}
 				});
+				buttonPane.setLayout(null);
 				okButton.setActionCommand("OK");
 				buttonPane.add(okButton);
@@ -290,4 +341,5 @@
 				// JButton: cancelButton
 				JButton cancelButton = new JButton("Cancel");
+				cancelButton.setBounds(10, 11, 135, 31);
 				cancelButton.addMouseListener(new MouseAdapter() {
 
