Index: trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/InteractionPatternBuilder.java
===================================================================
--- trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/InteractionPatternBuilder.java	(revision 1292)
+++ trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/InteractionPatternBuilder.java	(revision 1293)
@@ -25,4 +25,5 @@
 import de.ugoe.cs.autoquest.usability.rules.patterns.visitors.StartsWithEventVisitor;
 import de.ugoe.cs.autoquest.usability.rules.patterns.visitors.StartsWithInteractionPatternVisitor;
+import de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTargetFilter;
 import de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter;
 import de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter;
@@ -36,53 +37,4 @@
  */
 public class InteractionPatternBuilder {
-
-    /**
-     * <p>
-     * Type of root task. Determines the order in which sub task appear.
-     * </p>
-     */
-    protected TaskTypeFilter rootTask;
-
-    /**
-     * <p>
-     * Interaction pattern starts with event.
-     * </p>
-     */
-    protected EventTypeFilter startsWithEvent;
-
-    /**
-     * <p>
-     * Interaction pattern starts with interaction pattern.
-     * </p>
-     */
-    protected InteractionPattern startsWithPattern;
-
-    /**
-     * <p>
-     * Interaction pattern ends with event.
-     * </p>
-     */
-    protected EventTypeFilter endsWithEvent;
-
-    /**
-     * <p>
-     * Interaction pattern ends with interaction pattern.
-     * </p>
-     */
-    protected InteractionPattern endsWithPattern;
-
-    /**
-     * <p>
-     * Interaction pattern contains certain event.
-     * </p>
-     */
-    protected EventTypeFilter containsEvent;
-
-    /**
-     * <p>
-     * Interaction pattern contains certain interaction pattern.
-     * </p>
-     */
-    protected InteractionPattern containsPattern;
 
     /**
@@ -107,12 +59,18 @@
 
         public StartsWithStep startsWithEvent(EventTypeFilter startsWithEventType);
+        
+        public StartsWithStep startsWithEvent(EventTypeFilter startsWithEventType, EventTargetFilter eventTarget);
 
         public StartsWithStep startsWithPattern(InteractionPattern endsWithPattern);
 
         public ContainsStep containsEvent(EventTypeFilter containsEventType);
+        
+        public ContainsStep containsEvent(EventTypeFilter containsEventType, EventTargetFilter eventTarget);
 
         public ContainsStep containsPattern(InteractionPattern containsPattern);
 
         public EndsWithStep endsWithEvent(EventTypeFilter endsWithEventType);
+        
+        public EndsWithStep endsWithEvent(EventTypeFilter endsWithEventType, EventTargetFilter eventTarget);
 
         public EndsWithStep endsWithPattern(InteractionPattern endsPattern);
@@ -125,8 +83,12 @@
 
         public ContainsStep containsEvent(EventTypeFilter containsEventType);
+        
+        public ContainsStep containsEvent(EventTypeFilter containsEventType, EventTargetFilter eventTarget);
 
         public ContainsStep containsPattern(InteractionPattern containsPattern);
 
         public EndsWithStep endsWithEvent(EventTypeFilter endsWithEventType);
+        
+        public EndsWithStep endsWithEvent(EventTypeFilter endsWithEventType, EventTargetFilter eventTarget);
 
         public EndsWithStep endsWithPattern(InteractionPattern endsPattern);
@@ -138,9 +100,7 @@
     public static interface ContainsStep {
 
-        public ContainsStep containsEvent(EventTypeFilter containsEventType);
-
-        public ContainsStep containsPattern(InteractionPattern containsPattern);
-
         public EndsWithStep endsWithEvent(EventTypeFilter endsWithEventType);
+        
+        public EndsWithStep endsWithEvent(EventTypeFilter endsWithEventType, EventTargetFilter eventTarget);
 
         public EndsWithStep endsWithPattern(InteractionPattern endsPattern);
@@ -180,4 +140,12 @@
             return this;
         }
+        
+		@Override
+		public StartsWithStep startsWithEvent(
+				EventTypeFilter startsWithEventType,
+				EventTargetFilter startsWithEventTarget) {
+            this.visitors.add(new StartsWithEventVisitor(startsWithEventType, startsWithEventTarget, concernedNode));
+            return this;
+		}
 
         @Override
@@ -194,4 +162,11 @@
         }
 
+		@Override
+		public ContainsStep containsEvent(EventTypeFilter containsEventType,
+				EventTargetFilter containsEventTarget) {
+            this.visitors.add(new ContainsEventVisitor(containsEventType, containsEventTarget ,concernedNode));
+            return this;
+		}
+        
         @Override
         public ContainsStep containsPattern(InteractionPattern containsPattern) {
@@ -206,4 +181,11 @@
             return this;
         }
+        
+		@Override
+		public EndsWithStep endsWithEvent(EventTypeFilter endsWithEventType,
+				EventTargetFilter endsWithEventTarget) {
+            this.visitors.add(new EndsWithEventVisitor(endsWithEventType, endsWithEventTarget ,concernedNode));
+            return this;
+		}
 
         @Override
Index: trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/InteractionPatternVisitor.java
===================================================================
--- trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/InteractionPatternVisitor.java	(revision 1292)
+++ trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/InteractionPatternVisitor.java	(revision 1293)
@@ -22,4 +22,5 @@
 import com.google.common.collect.Lists;
 
+import de.ugoe.cs.autoquest.eventcore.IEventTarget;
 import de.ugoe.cs.autoquest.eventcore.IEventType;
 import de.ugoe.cs.autoquest.eventcore.StringEventType;
@@ -31,4 +32,6 @@
 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask;
 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskVisitor;
+import de.ugoe.cs.autoquest.test.DummyGUIElement;
+import de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTargetFilter;
 import de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter;
 import de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter;
@@ -46,4 +49,6 @@
 
     protected EventTypeFilter eventType;
+    
+    protected EventTargetFilter eventTarget;
 
     protected InteractionPattern containedPattern;
@@ -62,15 +67,31 @@
     public void visit(IEventTask event) {
         if (!this.present && isEventVisitor()) {
-            IEventType eventType = event.getEventType();
-            if (eventType instanceof StringEventType) {
-                this.present = eventType.toString().equals(nameOfEventType());
-            }
-            else {
-                this.present = eventType.getClass().equals(this.eventType.clazz());
-            }
-        }
-    }
-
-    public boolean isEventVisitor() {
+        	boolean matchesEventType = matchesEventType(event.getEventType());
+        	boolean matchesEventTarget = matchesEventTarget(event.getEventTarget());
+        	this.present = eventTarget != null ? matchesEventType && matchesEventTarget : matchesEventType;
+        }
+    }
+
+    private boolean matchesEventType(IEventType eventType) {
+        if (eventType instanceof StringEventType) {
+            return eventType.toString().equals(nameOfEventType());
+        }
+        else {
+            return eventType.getClass().equals(this.eventType.clazz());
+        }
+	}
+
+	private boolean matchesEventTarget(IEventTarget eventTarget) {
+		if(this.eventTarget != null) {
+			if(eventTarget instanceof DummyGUIElement) {
+				return false;
+			} else {
+	        	return eventTarget.getClass().equals(this.eventTarget.clazz());
+	        }
+		}
+		return false;
+	}
+
+	public boolean isEventVisitor() {
         return this.eventType != null && this.containedPattern == null;
     }
Index: trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/LongFormUsageProblem.java
===================================================================
--- trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/LongFormUsageProblem.java	(revision 1292)
+++ trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/LongFormUsageProblem.java	(revision 1293)
@@ -25,6 +25,6 @@
 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel;
 import de.ugoe.cs.autoquest.usability.EvaluationMethodCaller;
+import de.ugoe.cs.autoquest.usability.result.UsabilityProblemDescription;
 import de.ugoe.cs.autoquest.usability.result.UsabilityProblemDescriptionResolver;
-import de.ugoe.cs.autoquest.usability.result.UsabilityProblemDescription;
 import de.ugoe.cs.autoquest.usability.rules.UsabilityRule;
 import de.ugoe.cs.autoquest.usability.rules.UsabilityUsageProblem;
Index: trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/ContainsEventVisitor.java
===================================================================
--- trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/ContainsEventVisitor.java	(revision 1292)
+++ trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/ContainsEventVisitor.java	(revision 1293)
@@ -22,4 +22,5 @@
 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask;
 import de.ugoe.cs.autoquest.usability.rules.patterns.InteractionPatternVisitor;
+import de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTargetFilter;
 import de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter;
 import de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter;
@@ -46,5 +47,12 @@
     }
 
-    /*
+	public ContainsEventVisitor(EventTypeFilter eventType,
+			EventTargetFilter eventTarget, TaskTypeFilter taskType) {
+		this.eventType = eventType;
+		this.eventTarget = eventTarget;
+		this.taskType = taskType;
+	}
+
+	/*
      * (non-Javadoc)
      * 
Index: trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/EndsWithEventVisitor.java
===================================================================
--- trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/EndsWithEventVisitor.java	(revision 1292)
+++ trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/EndsWithEventVisitor.java	(revision 1293)
@@ -19,4 +19,5 @@
 import de.ugoe.cs.autoquest.tasktrees.treeifc.ISequence;
 import de.ugoe.cs.autoquest.usability.rules.patterns.InteractionPatternVisitor;
+import de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTargetFilter;
 import de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter;
 import de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter;
@@ -44,5 +45,12 @@
     }
 
-    /*
+	public EndsWithEventVisitor(EventTypeFilter eventType,
+			EventTargetFilter eventTarget, TaskTypeFilter taskType) {
+		this.eventType = eventType;
+		this.eventTarget = eventTarget;
+		this.taskType = taskType;
+	}
+
+	/*
      * (non-Javadoc)
      * 
Index: trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/StartsWithEventVisitor.java
===================================================================
--- trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/StartsWithEventVisitor.java	(revision 1292)
+++ trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/StartsWithEventVisitor.java	(revision 1293)
@@ -19,4 +19,5 @@
 import de.ugoe.cs.autoquest.tasktrees.treeifc.ISequence;
 import de.ugoe.cs.autoquest.usability.rules.patterns.InteractionPatternVisitor;
+import de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTargetFilter;
 import de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter;
 import de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter;
@@ -44,5 +45,13 @@
     }
 
-    /*
+    public StartsWithEventVisitor(EventTypeFilter eventType,
+			EventTargetFilter eventTarget,
+			TaskTypeFilter taskType) {
+        this.eventType = eventType;
+        this.eventTarget = eventTarget;
+        this.taskType = taskType;
+	}
+
+	/*
      * (non-Javadoc)
      * 
