Ignore:
Timestamp:
08/10/13 10:26:53 (11 years ago)
Author:
adeicke
Message:

Added possibility to consider event target in interaction patterns.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/InteractionPatternVisitor.java

    r1217 r1293  
    2222import com.google.common.collect.Lists; 
    2323 
     24import de.ugoe.cs.autoquest.eventcore.IEventTarget; 
    2425import de.ugoe.cs.autoquest.eventcore.IEventType; 
    2526import de.ugoe.cs.autoquest.eventcore.StringEventType; 
     
    3132import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask; 
    3233import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskVisitor; 
     34import de.ugoe.cs.autoquest.test.DummyGUIElement; 
     35import de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTargetFilter; 
    3336import de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter; 
    3437import de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter; 
     
    4649 
    4750    protected EventTypeFilter eventType; 
     51     
     52    protected EventTargetFilter eventTarget; 
    4853 
    4954    protected InteractionPattern containedPattern; 
     
    6267    public void visit(IEventTask event) { 
    6368        if (!this.present && isEventVisitor()) { 
    64             IEventType eventType = event.getEventType(); 
    65             if (eventType instanceof StringEventType) { 
    66                 this.present = eventType.toString().equals(nameOfEventType()); 
    67             } 
    68             else { 
    69                 this.present = eventType.getClass().equals(this.eventType.clazz()); 
    70             } 
    71         } 
    72     } 
    73  
    74     public boolean isEventVisitor() { 
     69                boolean matchesEventType = matchesEventType(event.getEventType()); 
     70                boolean matchesEventTarget = matchesEventTarget(event.getEventTarget()); 
     71                this.present = eventTarget != null ? matchesEventType && matchesEventTarget : matchesEventType; 
     72        } 
     73    } 
     74 
     75    private boolean matchesEventType(IEventType eventType) { 
     76        if (eventType instanceof StringEventType) { 
     77            return eventType.toString().equals(nameOfEventType()); 
     78        } 
     79        else { 
     80            return eventType.getClass().equals(this.eventType.clazz()); 
     81        } 
     82        } 
     83 
     84        private boolean matchesEventTarget(IEventTarget eventTarget) { 
     85                if(this.eventTarget != null) { 
     86                        if(eventTarget instanceof DummyGUIElement) { 
     87                                return false; 
     88                        } else { 
     89                        return eventTarget.getClass().equals(this.eventTarget.clazz()); 
     90                } 
     91                } 
     92                return false; 
     93        } 
     94 
     95        public boolean isEventVisitor() { 
    7596        return this.eventType != null && this.containedPattern == null; 
    7697    } 
Note: See TracChangeset for help on using the changeset viewer.