Index: /trunk/autoquest-plugin-mfc/data/guimappings/guimapping-MFC-dummy.txt
===================================================================
--- /trunk/autoquest-plugin-mfc/data/guimappings/guimapping-MFC-dummy.txt	(revision 1006)
+++ /trunk/autoquest-plugin-mfc/data/guimappings/guimapping-MFC-dummy.txt	(revision 1006)
@@ -0,0 +1,16 @@
+OleMainThreadWndClass = de.ugoe.cs.autoquest.plugin.mfc.guimodel.MFCWindow
+IME = de.ugoe.cs.autoquest.plugin.mfc.guimodel.MFCWindow
+OleDdeWndClass = de.ugoe.cs.autoquest.plugin.mfc.guimodel.MFCWindow
+AfxControlBar90u = de.ugoe.cs.autoquest.plugin.mfc.guimodel.MFCWindow
+CicMarshalWndClass = de.ugoe.cs.autoquest.plugin.mfc.guimodel.MFCWindow
+MSCTFIME\ UI = de.ugoe.cs.autoquest.plugin.mfc.guimodel.MFCWindow
+tooltips_class32 = de.ugoe.cs.autoquest.plugin.mfc.guimodel.MFCWindow
+\#32768 = de.ugoe.cs.autoquest.plugin.mfc.guimodel.MFCWindow
+SysShadow = de.ugoe.cs.autoquest.plugin.mfc.guimodel.MFCWindow
+msctls_updown32 = de.ugoe.cs.autoquest.plugin.mfc.guimodel.MFCWindow
+SysHeader32 = de.ugoe.cs.autoquest.plugin.mfc.guimodel.MFCWindow
+ReBarWindow32 = de.ugoe.cs.autoquest.plugin.mfc.guimodel.MFCWindow
+MarWinProbeBmpWnd = de.ugoe.cs.autoquest.plugin.mfc.guimodel.MFCWindow
+
+
+
Index: /trunk/autoquest-plugin-mfc/src/main/java/de/ugoe/cs/autoquest/plugin/mfc/EventGenerator.java
===================================================================
--- /trunk/autoquest-plugin-mfc/src/main/java/de/ugoe/cs/autoquest/plugin/mfc/EventGenerator.java	(revision 1005)
+++ /trunk/autoquest-plugin-mfc/src/main/java/de/ugoe/cs/autoquest/plugin/mfc/EventGenerator.java	(revision 1006)
@@ -34,4 +34,5 @@
 import de.ugoe.cs.autoquest.eventcore.Event;
 import de.ugoe.cs.autoquest.eventcore.IEventType;
+import de.ugoe.cs.autoquest.eventcore.guimodel.GUIElementTree;
 import de.ugoe.cs.autoquest.plugin.mfc.EventGenerationRule.Term;
 import de.ugoe.cs.autoquest.plugin.mfc.eventcore.MFCEventTypeFactory;
@@ -40,5 +41,4 @@
 import de.ugoe.cs.autoquest.plugin.mfc.eventcore.WindowsMessageType;
 import de.ugoe.cs.autoquest.plugin.mfc.guimodel.MFCGUIElement;
-import de.ugoe.cs.autoquest.plugin.mfc.guimodel.MFCWindowTree;
 import de.ugoe.cs.util.console.Console;
 
@@ -121,8 +121,8 @@
     /**
      * <p>
-     * reference to the window tree created during parsing
-     * </p>
-     */
-    private MFCWindowTree windowTree;
+     * reference to the gui element tree created during parsing
+     * </p>
+     */
+    private GUIElementTree guiElementTree;
 
     /**
@@ -131,7 +131,7 @@
      * </p>
      */
-    public EventGenerator(MFCWindowTree windowTree) {
+    public EventGenerator(GUIElementTree guiElementTree) {
         rulesFile = "data/rules.xml";
-        this.windowTree = windowTree;
+        this.guiElementTree = guiElementTree;
     }
 
@@ -477,5 +477,5 @@
                 String storeParam = resolveElement.getStoreParameterName();
                 long paramHwnd = (Long) currentMessage.getParameter(param);
-                MFCGUIElement guiElement = windowTree.find(paramHwnd);
+                MFCGUIElement guiElement = (MFCGUIElement) guiElementTree.find(paramHwnd);
                 if (guiElement != null) {
                     currentMessage.addParameter(storeParam, "" + guiElement.toXML());
Index: /trunk/autoquest-plugin-mfc/src/main/java/de/ugoe/cs/autoquest/plugin/mfc/HandlerCreate.java
===================================================================
--- /trunk/autoquest-plugin-mfc/src/main/java/de/ugoe/cs/autoquest/plugin/mfc/HandlerCreate.java	(revision 1005)
+++ /trunk/autoquest-plugin-mfc/src/main/java/de/ugoe/cs/autoquest/plugin/mfc/HandlerCreate.java	(revision 1006)
@@ -15,4 +15,7 @@
 package de.ugoe.cs.autoquest.plugin.mfc;
 
+import de.ugoe.cs.autoquest.eventcore.guimodel.GUIElementTree;
+import de.ugoe.cs.autoquest.eventcore.guimodel.IGUIElementSpec;
+import de.ugoe.cs.autoquest.plugin.mfc.guimodel.MFCGUIElementSpec;
 import de.ugoe.cs.autoquest.plugin.mfc.guimodel.MFCWindowTree;
 
@@ -32,9 +35,9 @@
      * </p>
      * 
-     * @param windowTree the tree of GUI element specifications to be created and adapted during
+     * @param guiElementTree the tree of GUI element specifications to be created and adapted during
      *                   parsing
      */
-    public HandlerCreate(MFCWindowTree windowTree) {
-        super(windowTree);
+    public HandlerCreate(GUIElementTree guiElementTree) {
+        super(guiElementTree);
     }
 
@@ -89,5 +92,6 @@
     public void onEndElement() {
         if (hwnd != 0) {
-            super.getWindowTree().add(parentHwnd, hwnd, windowName, resourceId, className, isModal);
+        	IGUIElementSpec spec = new MFCGUIElementSpec(hwnd, windowName, resourceId, className, isModal);
+            super.getGUIElementTree().add(hwnd, parentHwnd, spec);
         }
     }
Index: /trunk/autoquest-plugin-mfc/src/main/java/de/ugoe/cs/autoquest/plugin/mfc/HandlerDestroy.java
===================================================================
--- /trunk/autoquest-plugin-mfc/src/main/java/de/ugoe/cs/autoquest/plugin/mfc/HandlerDestroy.java	(revision 1005)
+++ /trunk/autoquest-plugin-mfc/src/main/java/de/ugoe/cs/autoquest/plugin/mfc/HandlerDestroy.java	(revision 1006)
@@ -15,5 +15,5 @@
 package de.ugoe.cs.autoquest.plugin.mfc;
 
-import de.ugoe.cs.autoquest.plugin.mfc.guimodel.MFCWindowTree;
+import de.ugoe.cs.autoquest.eventcore.guimodel.GUIElementTree;
 
 /**
@@ -23,4 +23,5 @@
  * 
  * @author Steffen Herbold
+ * @author Fabian Glaser
  * @version 1.0
  */
@@ -32,9 +33,9 @@
      * </p>
      * 
-     * @param windowTree
+     * @param guiElementTree
      *            the tree of GUI element specifications to be created and adapted during parsing
      */
-    public HandlerDestroy(MFCWindowTree windowTree) {
-        super(windowTree);
+    public HandlerDestroy(GUIElementTree guiElementTree) {
+        super(guiElementTree);
     }
 
@@ -54,5 +55,5 @@
     public void onEndElement() {
         if (hwnd != 0) {
-            super.getWindowTree().remove(hwnd);
+            super.getGUIElementTree().remove(hwnd);
         }
     }
Index: /trunk/autoquest-plugin-mfc/src/main/java/de/ugoe/cs/autoquest/plugin/mfc/HandlerSetText.java
===================================================================
--- /trunk/autoquest-plugin-mfc/src/main/java/de/ugoe/cs/autoquest/plugin/mfc/HandlerSetText.java	(revision 1005)
+++ /trunk/autoquest-plugin-mfc/src/main/java/de/ugoe/cs/autoquest/plugin/mfc/HandlerSetText.java	(revision 1006)
@@ -15,4 +15,7 @@
 package de.ugoe.cs.autoquest.plugin.mfc;
 
+import de.ugoe.cs.autoquest.eventcore.guimodel.GUIElementTree;
+import de.ugoe.cs.autoquest.plugin.mfc.guimodel.MFCGUIElement;
+import de.ugoe.cs.autoquest.plugin.mfc.guimodel.MFCGUIElementSpec;
 import de.ugoe.cs.autoquest.plugin.mfc.guimodel.MFCWindowTree;
 
@@ -23,4 +26,5 @@
  * 
  * @author Steffen Herbold
+ * @author Fabian Glaser
  * @version 1.0
  */
@@ -32,9 +36,9 @@
      * </p>
      * 
-     * @param windowTree
+     * @param guiElementTree
      *            the tree of GUI element specifications to be created and adapted during parsing
      */
-    public HandlerSetText(MFCWindowTree windowTree) {
-        super(windowTree);
+    public HandlerSetText(GUIElementTree guiElementTree) {
+        super(guiElementTree);
     }
 
@@ -61,5 +65,7 @@
     public void onEndElement() {
         if (hwnd != 0) {
-            super.getWindowTree().setName(hwnd, windowName);
+        	MFCGUIElement element = (MFCGUIElement) super.getGUIElementTree().find(hwnd);
+        	MFCGUIElementSpec spec = (MFCGUIElementSpec) element.getSpecification();
+            spec.setName(windowName);
         }
     }
Index: /trunk/autoquest-plugin-mfc/src/main/java/de/ugoe/cs/autoquest/plugin/mfc/MFCLogParser.java
===================================================================
--- /trunk/autoquest-plugin-mfc/src/main/java/de/ugoe/cs/autoquest/plugin/mfc/MFCLogParser.java	(revision 1005)
+++ /trunk/autoquest-plugin-mfc/src/main/java/de/ugoe/cs/autoquest/plugin/mfc/MFCLogParser.java	(revision 1006)
@@ -41,9 +41,9 @@
 
 import de.ugoe.cs.autoquest.eventcore.Event;
+import de.ugoe.cs.autoquest.eventcore.guimodel.GUIElementTree;
 import de.ugoe.cs.autoquest.eventcore.guimodel.GUIModel;
 import de.ugoe.cs.autoquest.plugin.mfc.eventcore.WindowsMessage;
 import de.ugoe.cs.autoquest.plugin.mfc.eventcore.WindowsMessageType;
 import de.ugoe.cs.autoquest.plugin.mfc.guimodel.MFCGUIElement;
-import de.ugoe.cs.autoquest.plugin.mfc.guimodel.MFCWindowTree;
 import de.ugoe.cs.util.StringTools;
 import de.ugoe.cs.util.console.Console;
@@ -58,4 +58,5 @@
  * 
  * @author Steffen Herbold
+ * @author Fabian Glaser
  * @version 1.0
  */
@@ -72,8 +73,8 @@
     /**
      * <p>
-     * internal handle to the current window tree
-     * </p>
-     */
-    private MFCWindowTree currentWindowTree;
+     * internal handle to the gui element tree
+     * </p>
+     */
+    private GUIElementTree guiElementTree;
 
     /**
@@ -251,6 +252,6 @@
      */
     public GUIModel getGuiModel() {
-        if( currentWindowTree!=null ) {
-            return currentWindowTree.getGUIModel();
+        if( guiElementTree!=null ) {
+            return guiElementTree.getGUIModel();
         } else {
             return null;
@@ -272,8 +273,8 @@
             // in some logs, the session end may be marked in between the log. This is because
             // of thread problems. So instead of creating a new GUI model, preserve it.
-            if (currentWindowTree == null) {
-                currentWindowTree = new MFCWindowTree();
-            }
-            sequenceSplitter = new SequenceSplitter(currentWindowTree);
+            if (guiElementTree == null) {
+                guiElementTree = new GUIElementTree();
+            }
+            sequenceSplitter = new SequenceSplitter(guiElementTree);
         }
         else if (qName.equals("msg")) {
@@ -291,13 +292,13 @@
 
             if (currentMessageType == WindowsMessageType.WM_CREATE) {
-                currentHandler = new HandlerCreate(currentWindowTree);
+                currentHandler = new HandlerCreate(guiElementTree);
                 currentHandler.onStartElement();
             }
             else if (currentMessageType == WindowsMessageType.WM_DESTROY) {
-                currentHandler = new HandlerDestroy(currentWindowTree);
+                currentHandler = new HandlerDestroy(guiElementTree);
                 currentHandler.onStartElement();
             }
             else if (currentMessageType == WindowsMessageType.WM_SETTEXT) {
-                currentHandler = new HandlerSetText(currentWindowTree);
+                currentHandler = new HandlerSetText(guiElementTree);
                 currentHandler.onStartElement();
             }
@@ -343,5 +344,5 @@
                 try {
                     long hwnd = (Long) currentMessageParameters.get("window.hwnd");
-                    MFCGUIElement target = currentWindowTree.find(hwnd);
+                    MFCGUIElement target = (MFCGUIElement) guiElementTree.find(hwnd);
                     
                     WindowsMessage message = new WindowsMessage
Index: /trunk/autoquest-plugin-mfc/src/main/java/de/ugoe/cs/autoquest/plugin/mfc/MessageHandler.java
===================================================================
--- /trunk/autoquest-plugin-mfc/src/main/java/de/ugoe/cs/autoquest/plugin/mfc/MessageHandler.java	(revision 1005)
+++ /trunk/autoquest-plugin-mfc/src/main/java/de/ugoe/cs/autoquest/plugin/mfc/MessageHandler.java	(revision 1006)
@@ -15,5 +15,5 @@
 package de.ugoe.cs.autoquest.plugin.mfc;
 
-import de.ugoe.cs.autoquest.plugin.mfc.guimodel.MFCWindowTree;
+import de.ugoe.cs.autoquest.eventcore.guimodel.GUIElementTree;
 
 /**
@@ -25,4 +25,5 @@
  * 
  * @author Steffen Herbold
+ * @author Fabian Glaser
  * @version 1.0
  */
@@ -35,5 +36,5 @@
      * </p>
      */
-    private MFCWindowTree windowTree;
+    private GUIElementTree guiElementTree;
 
     /**
@@ -42,9 +43,9 @@
      * </p>
      * 
-     * @param windowTree the tree of GUI element specifications to be created and adapted during
+     * @param guiElementTree the tree of GUI element specifications to be created and adapted during
      *                   parsing
      */
-    protected MessageHandler(MFCWindowTree windowTree) {
-        this.windowTree = windowTree;
+    protected MessageHandler(GUIElementTree guiElementTree) {
+        this.guiElementTree = guiElementTree;
     }
 
@@ -76,8 +77,8 @@
 
     /**
-     * @return the window tree created and adapted during parsing
+     * @return the gui element tree created and adapted during parsing
      */
-    protected MFCWindowTree getWindowTree() {
-        return windowTree;
+    protected GUIElementTree getGUIElementTree() {
+        return guiElementTree;
     }
     
Index: /trunk/autoquest-plugin-mfc/src/main/java/de/ugoe/cs/autoquest/plugin/mfc/SequenceSplitter.java
===================================================================
--- /trunk/autoquest-plugin-mfc/src/main/java/de/ugoe/cs/autoquest/plugin/mfc/SequenceSplitter.java	(revision 1005)
+++ /trunk/autoquest-plugin-mfc/src/main/java/de/ugoe/cs/autoquest/plugin/mfc/SequenceSplitter.java	(revision 1006)
@@ -20,7 +20,7 @@
 
 import de.ugoe.cs.autoquest.eventcore.Event;
+import de.ugoe.cs.autoquest.eventcore.guimodel.GUIElementTree;
 import de.ugoe.cs.autoquest.plugin.mfc.eventcore.WindowsMessage;
 import de.ugoe.cs.autoquest.plugin.mfc.eventcore.WindowsMessageType;
-import de.ugoe.cs.autoquest.plugin.mfc.guimodel.MFCWindowTree;
 import de.ugoe.cs.util.console.Console;
 
@@ -85,9 +85,9 @@
      * </p>
      */
-    public SequenceSplitter(MFCWindowTree windowTree) {
+    public SequenceSplitter(GUIElementTree guiElementTree) {
         currentSequence = new LinkedList<WindowsMessage>();
         openDowns = 0;
         initMessages = true;
-        tokenGenerator = new EventGenerator(windowTree);
+        tokenGenerator = new EventGenerator(guiElementTree);
         actionSequence = new LinkedList<Event>();
         prevMsg = null;
Index: /trunk/autoquest-plugin-mfc/src/main/java/de/ugoe/cs/autoquest/plugin/mfc/guimodel/MFCGUIElementSpec.java
===================================================================
--- /trunk/autoquest-plugin-mfc/src/main/java/de/ugoe/cs/autoquest/plugin/mfc/guimodel/MFCGUIElementSpec.java	(revision 1005)
+++ /trunk/autoquest-plugin-mfc/src/main/java/de/ugoe/cs/autoquest/plugin/mfc/guimodel/MFCGUIElementSpec.java	(revision 1006)
@@ -94,14 +94,9 @@
     /**
      * <p>
-     * Creates a new WindowTreeNode.
-     * </p>
-     * <p>
-     * The constructor is protected WindowTreeNode may only be created from the MFCWindowTree.
+     * Creates a new MFCGUIElementSpec.
      * </p>
      * 
      * @param hwnd
      *            hwnd of the window
-     * @param parent
-     *            reference to the parent's WindowTreeNode
      * @param name
      *            name of the window
@@ -113,5 +108,5 @@
      *            modality of the window
      */
-    protected MFCGUIElementSpec(long hwnd, String name, int resourceId, String type, boolean isModal)
+    public MFCGUIElementSpec(long hwnd, String name, int resourceId, String type, boolean isModal)
     {
         this.hwnd = hwnd;
