Index: /trunk/autoquest-plugin-android/src/main/java/de/ugoe/cs/autoquest/plugin/android/AndroidLogParser.java
===================================================================
--- /trunk/autoquest-plugin-android/src/main/java/de/ugoe/cs/autoquest/plugin/android/AndroidLogParser.java	(revision 1814)
+++ /trunk/autoquest-plugin-android/src/main/java/de/ugoe/cs/autoquest/plugin/android/AndroidLogParser.java	(revision 1815)
@@ -39,7 +39,7 @@
 
 import de.ugoe.cs.autoquest.eventcore.Event;
+import de.ugoe.cs.autoquest.eventcore.gui.CharacterTyped;
 import de.ugoe.cs.autoquest.eventcore.gui.IInteraction;
-import de.ugoe.cs.autoquest.eventcore.gui.MouseButtonInteraction;
-import de.ugoe.cs.autoquest.eventcore.gui.MouseClick;
+import de.ugoe.cs.autoquest.eventcore.gui.TouchSingle;
 import de.ugoe.cs.autoquest.eventcore.guimodel.GUIElementTree;
 import de.ugoe.cs.autoquest.eventcore.guimodel.GUIModel;
@@ -53,5 +53,5 @@
  * <p>
  * This class provides functionality to parse XML log files generated by the
- * AndroidMonitor of autoquest. The result of parsing a file is a collection of
+ * AndroidMonitor of AutoQUEST. The result of parsing a file is a collection of
  * event sequences.
  * </p>
@@ -136,6 +136,11 @@
 	 */
 	private List<Event> currentSequence;
-
 	
+	/**
+     * <p>
+     * internal handle to the class ancestors
+     * </p>
+     */
+    private List<String> currentTypeHierarchy;	
 
 	/**
@@ -332,8 +337,10 @@
 			}
 		}
-
-		// TODO add hierarchy information if available -> Up to know gathering
-		// this information leads to an out of memory exception in the
-		// androidmonitor @see: AndroidmonitorLogFile#addComponent
+		else if (qName.equals("ancestor")) {
+            currentTypeHierarchy.add(atts.getValue("name"));
+        }
+        else if (qName.equals("ancestors")) {
+            currentTypeHierarchy = new LinkedList<String>();
+        }
 	}
 
@@ -355,5 +362,8 @@
 			}
 		}
-		if (qName.equals("component") && currentGUIElementHash != null) {
+		else if (qName.equals("ancestors")) {
+            currentGUIElementSpec.setTypeHierarchy(currentTypeHierarchy);
+        }
+		else if (qName.equals("component") && currentGUIElementHash != null) {
 			try {
 				currentGUIElementTree.add(currentGUIElementHash,
@@ -367,5 +377,7 @@
 			currentGUIElementHash = null;
 			currentParentHash = null;
-		} else if (currentEventId != null && qName.equals("event")) {
+			currentTypeHierarchy = null;
+		} 
+		else if (currentEventId != null && qName.equals("event")) {
 
 			IGUIElement currentGUIElement;
@@ -415,17 +427,13 @@
 		switch (event) {
 		case "onClick":
-			/*
-			 * due to the reason that android uses float instead of integer it
-			 * is necessary to parse the float values to integer values
-			 * this is simply done by removing the dot
-			 */
-
-			int x = Integer.parseInt(currentEventParameters.get("X").replace(".", ""));
-			int y = Integer.parseInt(currentEventParameters.get("Y").replace(".", ""));
-			MouseButtonInteraction.Button button = null;
-			button = MouseButtonInteraction.Button.LEFT;
-
-			return new MouseClick(button, x, y);
-
+			
+			float x = Float.parseFloat(currentEventParameters.get("X"));
+			float y = Float.parseFloat(currentEventParameters.get("Y"));
+			
+			return new TouchSingle(x,y);
+		
+		case "text":
+			return new CharacterTyped(currentEventParameters.get("message"));
+			
 		default:
 			throw new SAXException("unhandled event id " + event);
Index: /trunk/autoquest-plugin-android/src/main/java/de/ugoe/cs/autoquest/plugin/android/guimodel/ANDROIDGUIElementSpec.java
===================================================================
--- /trunk/autoquest-plugin-android/src/main/java/de/ugoe/cs/autoquest/plugin/android/guimodel/ANDROIDGUIElementSpec.java	(revision 1814)
+++ /trunk/autoquest-plugin-android/src/main/java/de/ugoe/cs/autoquest/plugin/android/guimodel/ANDROIDGUIElementSpec.java	(revision 1815)
@@ -14,4 +14,6 @@
 package de.ugoe.cs.autoquest.plugin.android.guimodel;
 
+import java.util.List;
+
 import de.ugoe.cs.autoquest.eventcore.guimodel.IGUIElementSpec;
 
@@ -36,5 +38,5 @@
 	/*
 	 * (non-Javadoc) see
-	 * de.ugoe.cs.autoquest.androidmonitor.AndroidmonitorLogFile logComponent()
+	 * de.ugoe.cs.autoquest.androidmonitor.AndroidmonitorLogFile#logComponent()
 	 */
 	/**
@@ -70,4 +72,11 @@
 	 */
 	private String type;
+	
+	/**
+     * <p>
+     * Type hierarchy of the class itself
+     * </p>
+     */
+    private List<String> typeHierarchy = null;
 
 	/*
@@ -90,7 +99,10 @@
 	@Override
 	public String[] getTypeHierarchy() {
-		return new String[] { (getType()) };
-		// TODO change this part after adding ancestors in
-		// de.ugoe.cs.autoquest.androidmonitor.AndroidmonitorLogFile#addComponent
+		if (typeHierarchy == null) {
+            return new String[]
+                { (getType()) };
+        }
+        else
+            return typeHierarchy.toArray(new String[typeHierarchy.size()]);
 	}
 
@@ -173,4 +185,16 @@
         this.type = type;
     }
+    
+    /**
+     * <p>
+     * Sets the type hierarchy of the specified GUI element.
+     * 
+     * @param typeHierarchy
+     *            </p>
+     */
+    public void setTypeHierarchy(List<String> typeHierarchy) {
+        this.typeHierarchy = typeHierarchy;
+    }
+    
 
 }
