Index: /trunk/quest-ui-core/src/main/java/de/ugoe/cs/quest/ui/GlobalDataContainer.java
===================================================================
--- /trunk/quest-ui-core/src/main/java/de/ugoe/cs/quest/ui/GlobalDataContainer.java	(revision 657)
+++ /trunk/quest-ui-core/src/main/java/de/ugoe/cs/quest/ui/GlobalDataContainer.java	(revision 658)
@@ -12,4 +12,5 @@
 
 import de.ugoe.cs.quest.SequenceInstanceOf;
+import de.ugoe.cs.quest.eventcore.guimodel.GUIModel;
 import de.ugoe.cs.quest.usageprofiles.IStochasticProcess;
 
@@ -212,4 +213,21 @@
 		return modelNames;
 	}
+	
+	/**
+	 * <p>
+	 * Returns the keys of all {@link GUIModel}s contained in the storage.
+	 * </p>
+	 *
+	 * @return keys of all {@link GUIModel}s contained in the storage
+	 */
+	public Collection<String> getAllGUIModelNames() {
+	    Collection<String> modelNames = new LinkedList<String>();
+	    for(Entry<String, Object> entry : dataObjects.entrySet()) {
+	        if( entry.getValue() instanceof GUIModel ) {
+	            modelNames.add(entry.getKey());
+	        }
+	    }
+	    return modelNames;
+	}
 
 	/**
Index: /trunk/quest-ui-swt/src/main/java/de/ugoe/cs/quest/ui/swt/DataTabComposite.java
===================================================================
--- /trunk/quest-ui-swt/src/main/java/de/ugoe/cs/quest/ui/swt/DataTabComposite.java	(revision 657)
+++ /trunk/quest-ui-swt/src/main/java/de/ugoe/cs/quest/ui/swt/DataTabComposite.java	(revision 658)
@@ -110,6 +110,6 @@
     public void updateDataList() {
         dataList.removeAll();
-        for (String sequencesName : GlobalDataContainer.getInstance().getAllKeys()) {
-            dataList.add(sequencesName);
+        for (String key : GlobalDataContainer.getInstance().getAllKeys()) {
+            dataList.add(key + " (" + GlobalDataContainer.getInstance().getData(key).getClass().toString() + ")");
         }
     }
Index: /trunk/quest-ui-swt/src/main/java/de/ugoe/cs/quest/ui/swt/GuiModelTabComposite.java
===================================================================
--- /trunk/quest-ui-swt/src/main/java/de/ugoe/cs/quest/ui/swt/GuiModelTabComposite.java	(revision 658)
+++ /trunk/quest-ui-swt/src/main/java/de/ugoe/cs/quest/ui/swt/GuiModelTabComposite.java	(revision 658)
@@ -0,0 +1,92 @@
+
+package de.ugoe.cs.quest.ui.swt;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.List;
+
+import de.ugoe.cs.quest.eventcore.guimodel.GUIModel;
+import de.ugoe.cs.quest.ui.GlobalDataContainer;
+
+/**
+ * <p>
+ * TODO comment
+ * </p>
+ * 
+ * @version $Revision: $ $Date: Aug 28, 2012$
+ * @author 2012, last modified by $Author: sherbold$
+ */
+public class GuiModelTabComposite extends Composite {
+
+    List guiModelList;
+
+    /**
+     * Create the composite.
+     * 
+     * @param parent
+     * @param style
+     */
+    public GuiModelTabComposite(Composite parent, int style) {
+        super(parent, style);
+        createContents();
+    }
+
+    private void createContents() {
+        setLayout(new GridLayout(5, false));
+
+        guiModelList = new List(this, SWT.BORDER | SWT.V_SCROLL);
+        guiModelList.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 5, 1));
+
+        Button btnShow = new Button(this, SWT.NONE);
+        btnShow.addSelectionListener(new SelectionAdapter() {
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                // TODO
+                String[] selectedStrings = guiModelList.getSelection();
+                if (selectedStrings.length == 0) {
+                    SWTHelpers.noSelectionError(getShell());
+                    return;
+                }
+                String modelName = selectedStrings[0];
+                GUIModel model = (GUIModel) GlobalDataContainer.getInstance().getData(modelName);
+
+                ShowGuiModelDialog showGuiModelDialog =
+                    new ShowGuiModelDialog(getShell(), SWT.NONE, model, modelName);
+                showGuiModelDialog.open();
+            }
+        });
+        btnShow.setText("Show");
+
+        Button btnDelete_1 = new Button(this, SWT.NONE);
+        btnDelete_1.addSelectionListener(new SelectionAdapter() {
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                if (SWTHelpers.deleteSelectedFromStorage(guiModelList)) {
+                    updateModelList();
+                }
+                else {
+                    SWTHelpers.noSelectionError(getShell());
+                }
+            }
+        });
+        btnDelete_1.setText("Delete");
+    }
+
+    @Override
+    protected void checkSubclass() {
+        // Disable the check that prevents subclassing of SWT components
+    }
+
+    public void updateModelList() {
+        guiModelList.removeAll();
+        for (String modelName : GlobalDataContainer.getInstance().getAllGUIModelNames()) {
+            guiModelList.add(modelName);
+        }
+    }
+
+}
Index: /trunk/quest-ui-swt/src/main/java/de/ugoe/cs/quest/ui/swt/MainWindow.java
===================================================================
--- /trunk/quest-ui-swt/src/main/java/de/ugoe/cs/quest/ui/swt/MainWindow.java	(revision 657)
+++ /trunk/quest-ui-swt/src/main/java/de/ugoe/cs/quest/ui/swt/MainWindow.java	(revision 658)
@@ -35,8 +35,10 @@
     protected TabItem sequencesTab;
     protected TabItem modelsTab;
+    protected TabItem guiModelsTab;
     protected TabItem dataTab;
     protected ConsoleTabComposite consoleTabComposite;
     protected SequencesTabComposite sequencesTabComposite;
     protected ModelsTabComposite modelsTabComposite;
+    protected GuiModelTabComposite guiModelTabComposite;
     protected DataTabComposite dataTabComposite;
 
@@ -198,4 +200,7 @@
                     modelsTabComposite.updateModelList();
                 }
+                else if (e.item == guiModelsTab) {
+                    guiModelTabComposite.updateModelList();
+                }
                 else if (e.item == dataTab) {
                     dataTabComposite.updateDataList();
@@ -222,4 +227,10 @@
         modelsTabComposite = new ModelsTabComposite(tabFolder, SWT.NO_BACKGROUND);
         modelsTab.setControl(modelsTabComposite);
+        
+        guiModelsTab = new TabItem(tabFolder, SWT.NONE);
+        guiModelsTab.setText("GUI Models");
+
+        guiModelTabComposite = new GuiModelTabComposite(tabFolder, SWT.NO_BACKGROUND);
+        guiModelsTab.setControl(guiModelTabComposite);
 
         dataTab = new TabItem(tabFolder, SWT.NONE);
Index: /trunk/quest-ui-swt/src/main/java/de/ugoe/cs/quest/ui/swt/ShowGuiModelDialog.java
===================================================================
--- /trunk/quest-ui-swt/src/main/java/de/ugoe/cs/quest/ui/swt/ShowGuiModelDialog.java	(revision 658)
+++ /trunk/quest-ui-swt/src/main/java/de/ugoe/cs/quest/ui/swt/ShowGuiModelDialog.java	(revision 658)
@@ -0,0 +1,134 @@
+
+package de.ugoe.cs.quest.ui.swt;
+
+import java.util.List;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Dialog;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeItem;
+
+import de.ugoe.cs.quest.eventcore.guimodel.GUIModel;
+import de.ugoe.cs.quest.eventcore.guimodel.IGUIElement;
+import org.eclipse.swt.widgets.Label;
+
+/**
+ * <p>
+ * TODO comment
+ * </p>
+ * 
+ * @version $Revision: $ $Date: Aug 28, 2012$
+ * @author 2012, last modified by $Author: sherbold$
+ */
+public class ShowGuiModelDialog extends Dialog {
+
+    protected Object result;
+    protected Shell shell;
+    private Tree guiTree;
+
+    protected GUIModel model;
+
+    /**
+     * Create the dialog.
+     * 
+     * @param parent
+     * @param style
+     */
+    public ShowGuiModelDialog(Shell parent, int style, GUIModel model, String modelName) {
+        super(parent, style);
+        setText("GUI Model " + modelName);
+        this.model = model;
+    }
+
+    /**
+     * Open the dialog.
+     * 
+     * @return the result
+     */
+    public Object open() {
+        createContents();
+        shell.open();
+        shell.layout();
+        Display display = getParent().getDisplay();
+        while (!shell.isDisposed()) {
+            if (!display.readAndDispatch()) {
+                display.sleep();
+            }
+        }
+        return result;
+    }
+
+    /**
+     * Create contents of the dialog.
+     */
+    private void createContents() {
+        shell = new Shell(getParent(), SWT.SHELL_TRIM | SWT.BORDER | SWT.APPLICATION_MODAL);
+        shell.setSize(450, 300);
+        shell.setText(getText());
+
+        shell.setLayout(new GridLayout(2, false));
+
+        guiTree = new Tree(shell, SWT.BORDER);
+        guiTree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
+
+        buildGuiTree();
+
+        Button btnExpandAll = new Button(shell, SWT.NONE);
+        btnExpandAll.addSelectionListener(new SelectionAdapter() {
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                expandAll(guiTree, true);
+            }
+        });
+        btnExpandAll.setText("Expand all");
+
+        Button btnCollapseAll = new Button(shell, SWT.NONE);
+        btnCollapseAll.addSelectionListener(new SelectionAdapter() {
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                expandAll(guiTree, false);
+            }
+        });
+        btnCollapseAll.setText("Collapse all");
+        new Label(shell, SWT.NONE);
+        new Label(shell, SWT.NONE);
+
+    }
+
+    private void buildGuiTree() {
+        for (IGUIElement element : model.getRootElements()) {
+            TreeItem child = new TreeItem(guiTree, SWT.NULL);
+            child.setText(element.toString());
+            buildGuiTree(child, model.getChildren(element));
+        }
+    }
+
+    private void buildGuiTree(TreeItem currentParent, List<IGUIElement> elements) {
+        for (IGUIElement element : elements) {
+            TreeItem child = new TreeItem(currentParent, SWT.NULL);
+            child.setText(element.toString());
+            buildGuiTree(child, model.getChildren(element));
+        }
+    }
+
+    private void expandAll(Tree tree, boolean expanded) {
+        for (TreeItem item : tree.getItems()) {
+            expandAll(item, expanded);
+        }
+    }
+
+    private void expandAll(TreeItem item, boolean expanded) {
+        item.setExpanded(expanded);
+        for (TreeItem childItem : item.getItems()) {
+            expandAll(childItem, expanded);
+        }
+    }
+
+}
