Index: trunk/autoquest-test-utils/src/main/java/de/ugoe/cs/autoquest/tasktrees/TaskTreeDecoder.java
===================================================================
--- trunk/autoquest-test-utils/src/main/java/de/ugoe/cs/autoquest/tasktrees/TaskTreeDecoder.java	(revision 1146)
+++ trunk/autoquest-test-utils/src/main/java/de/ugoe/cs/autoquest/tasktrees/TaskTreeDecoder.java	(revision 1202)
@@ -15,4 +15,5 @@
 package de.ugoe.cs.autoquest.tasktrees;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Map;
@@ -20,6 +21,9 @@
 import java.util.regex.Pattern;
 
+import de.ugoe.cs.autoquest.eventcore.Event;
 import de.ugoe.cs.autoquest.eventcore.IEventTarget;
+import de.ugoe.cs.autoquest.eventcore.IEventType;
 import de.ugoe.cs.autoquest.eventcore.StringEventType;
+import de.ugoe.cs.autoquest.eventcore.gui.TextInput;
 import de.ugoe.cs.autoquest.tasktrees.treeifc.IIteration;
 import de.ugoe.cs.autoquest.tasktrees.treeifc.IOptional;
@@ -33,4 +37,5 @@
 import de.ugoe.cs.autoquest.tasktrees.treeifc.IUserSession;
 import de.ugoe.cs.autoquest.test.DummyGUIElement;
+import de.ugoe.cs.autoquest.test.DummyTextField;
 
 /**
@@ -47,6 +52,6 @@
     /** */
     private static Pattern taskInstanceDetailsPattern =
-        Pattern.compile("\\s*(\\w*)\\s*([\\w\\(\\)\"]*)\\s*((\\w*)|(\".*\"))?");
-    
+        Pattern.compile("\\s*(\\w*)\\s*([\\w\\(\\)\"]*)\\s*(\\(([\\w*\\s*]*)\\))?((\\w*)|(\".*\"))?");
+
     /** */
     private ITaskFactory taskFactory;
@@ -168,14 +173,6 @@
             }
             else {
-                IEventTarget target = targets.get(id);
-            
-                if (target == null) {
-                    target = new DummyGUIElement(id);
-                    targets.put(id, target);
-                }
-            
-                task = taskFactory.createNewEventTask(new StringEventType(type), target);
-            }
-            
+            	task = createUserInteractionTask(matcher);
+            }  
             tasks.put(id, task);
         }
@@ -225,3 +222,31 @@
     }
 
+	private ITask createUserInteractionTask(Matcher matcher) {
+		String evenType = matcher.group(1);
+        String id = matcher.group(2);
+		IEventTarget evenTarget = targets.get(id);
+        if(evenTarget == null) {
+        	evenTarget = determineTarget(evenType, id, matcher.group(4));
+        	targets.put(id, evenTarget);
+        }
+        IEventType eventType = determineType(evenType, matcher.group(4));
+        return taskFactory.createNewEventTask(eventType, evenTarget);
+	}
+
+	private IEventTarget determineTarget(String type, String id, String enteredText) {
+		if ("TextInput".equals(type) && enteredText != null) {
+			return new DummyTextField(enteredText);
+		} else {
+			return new DummyGUIElement(id);
+		}
+	}
+	
+	private IEventType determineType(String type, String enteredText) {
+		if ("TextInput".equals(type) && enteredText != null) {
+			return new TextInput(enteredText, new ArrayList<Event>());
+		} else {
+			return new StringEventType(type);
+		}
+	}
+
 }
