Index: /trunk/autoquest-ui-swt/src/main/java/de/ugoe/cs/autoquest/ui/swt/ShowTaskTreeDialog.java
===================================================================
--- /trunk/autoquest-ui-swt/src/main/java/de/ugoe/cs/autoquest/ui/swt/ShowTaskTreeDialog.java	(revision 2126)
+++ /trunk/autoquest-ui-swt/src/main/java/de/ugoe/cs/autoquest/ui/swt/ShowTaskTreeDialog.java	(revision 2127)
@@ -18,5 +18,9 @@
 import java.awt.GraphicsDevice;
 import java.awt.GraphicsEnvironment;
+import java.awt.Toolkit;
+import java.awt.datatransfer.Clipboard;
+import java.awt.datatransfer.StringSelection;
 import java.lang.reflect.Method;
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -348,4 +352,16 @@
         }
 
+        VisualizationUtils.addItemSpecificContextMenu
+            (instanceTree, ITask.class, "copy to clipboard", new SelectionAdapter()
+        {
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                StringSelection stringSelection = new StringSelection
+                    (taskDetailsTree.getSelection()[0].getData().toString());
+                Clipboard clpbrd = Toolkit.getDefaultToolkit().getSystemClipboard();
+                clpbrd.setContents(stringSelection, null);
+            }
+        });
+
         buildInstanceTree();
         instanceTreeTab.setControl(instanceTree);
@@ -476,4 +492,16 @@
             });
         }
+
+        VisualizationUtils.addItemSpecificContextMenu
+            (taskDetailsTree, ITask.class, "copy to clipboard", new SelectionAdapter()
+        {
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                StringSelection stringSelection = new StringSelection
+                    (taskDetailsTree.getSelection()[0].getData().toString());
+                Clipboard clpbrd = Toolkit.getDefaultToolkit().getSystemClipboard();
+                clpbrd.setContents(stringSelection, null);
+            }
+        });
         
         executionVariantsTree = new Tree(detailsTopSashForm, SWT.BORDER | SWT.SINGLE | SWT.WRAP);
@@ -514,4 +542,16 @@
             });
         }
+
+        VisualizationUtils.addItemSpecificContextMenu
+            (parentTasks, ITask.class, "copy to clipboard", new SelectionAdapter()
+        {
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                StringSelection stringSelection = new StringSelection
+                    (taskDetailsTree.getSelection()[0].getData().toString());
+                Clipboard clpbrd = Toolkit.getDefaultToolkit().getSystemClipboard();
+                clpbrd.setContents(stringSelection, null);
+            }
+        });
         
         involvedTargetsTree =
@@ -543,9 +583,12 @@
         root.setData(taskModel);
         
-        for (IUserSession session : sessions) {
+        // simulate a child
+        new TreeItem(root, SWT.NULL);
+        
+        /*for (IUserSession session : sessions) {
             buildInstanceTree(root, session);
-        }
-        
-        root.setExpanded(true);
+        }*/
+        
+        root.setExpanded(false);
     }
 
@@ -566,11 +609,13 @@
      */
     private void buildModelTree(ITaskModel taskModel) {
+        VisualizationUtils.addExpansionListener(modelTree, defaultExpansionListener);
+        
         Collection<ITask> allTasks = taskModel.getTasks();
         
-        List<ITask> sequences = new LinkedList<ITask>();
-        List<ITask> iterations = new LinkedList<ITask>();
-        List<ITask> selections = new LinkedList<ITask>();
-        List<ITask> optionals = new LinkedList<ITask>();
-        List<ITask> others = new LinkedList<ITask>();
+        List<ITask> sequences = new ArrayList<ITask>();
+        List<ITask> iterations = new ArrayList<ITask>();
+        List<ITask> selections = new ArrayList<ITask>();
+        List<ITask> optionals = new ArrayList<ITask>();
+        List<ITask> others = new ArrayList<ITask>();
         
         TreeItem root = new TreeItem(modelTree, SWT.NULL);
@@ -819,4 +864,11 @@
                 }
             }
+            else if (parent.getData() instanceof ITaskModel) {
+                ITaskModel taskModel = (ITaskModel) parent.getData();
+
+                for (IUserSession session : taskModel.getUserSessions()) {
+                    buildInstanceTree(parent, session);
+                }
+            }
         }
     }
@@ -832,7 +884,8 @@
         // simulate a child
         if (taskList.size() > 0) {
-            for (ITask task : taskList) {
+            new TreeItem(item, SWT.NULL);
+            /*for (ITask task : taskList) {
                 VisualizationUtils.createTreeItemFor(task, item, taskModel, false);
-            }
+            }*/
         }
     }
