Ignore:
Timestamp:
04/30/13 17:50:00 (12 years ago)
Author:
adeicke
Message:

Added handling for text input events.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/autoquest-test-utils/src/main/java/de/ugoe/cs/autoquest/tasktrees/TaskTreeDecoder.java

    r1146 r1202  
    1515package de.ugoe.cs.autoquest.tasktrees; 
    1616 
     17import java.util.ArrayList; 
    1718import java.util.HashMap; 
    1819import java.util.Map; 
     
    2021import java.util.regex.Pattern; 
    2122 
     23import de.ugoe.cs.autoquest.eventcore.Event; 
    2224import de.ugoe.cs.autoquest.eventcore.IEventTarget; 
     25import de.ugoe.cs.autoquest.eventcore.IEventType; 
    2326import de.ugoe.cs.autoquest.eventcore.StringEventType; 
     27import de.ugoe.cs.autoquest.eventcore.gui.TextInput; 
    2428import de.ugoe.cs.autoquest.tasktrees.treeifc.IIteration; 
    2529import de.ugoe.cs.autoquest.tasktrees.treeifc.IOptional; 
     
    3337import de.ugoe.cs.autoquest.tasktrees.treeifc.IUserSession; 
    3438import de.ugoe.cs.autoquest.test.DummyGUIElement; 
     39import de.ugoe.cs.autoquest.test.DummyTextField; 
    3540 
    3641/** 
     
    4752    /** */ 
    4853    private static Pattern taskInstanceDetailsPattern = 
    49         Pattern.compile("\\s*(\\w*)\\s*([\\w\\(\\)\"]*)\\s*((\\w*)|(\".*\"))?"); 
    50      
     54        Pattern.compile("\\s*(\\w*)\\s*([\\w\\(\\)\"]*)\\s*(\\(([\\w*\\s*]*)\\))?((\\w*)|(\".*\"))?"); 
     55 
    5156    /** */ 
    5257    private ITaskFactory taskFactory; 
     
    168173            } 
    169174            else { 
    170                 IEventTarget target = targets.get(id); 
    171              
    172                 if (target == null) { 
    173                     target = new DummyGUIElement(id); 
    174                     targets.put(id, target); 
    175                 } 
    176              
    177                 task = taskFactory.createNewEventTask(new StringEventType(type), target); 
    178             } 
    179              
     175                task = createUserInteractionTask(matcher); 
     176            }   
    180177            tasks.put(id, task); 
    181178        } 
     
    225222    } 
    226223 
     224        private ITask createUserInteractionTask(Matcher matcher) { 
     225                String evenType = matcher.group(1); 
     226        String id = matcher.group(2); 
     227                IEventTarget evenTarget = targets.get(id); 
     228        if(evenTarget == null) { 
     229                evenTarget = determineTarget(evenType, id, matcher.group(4)); 
     230                targets.put(id, evenTarget); 
     231        } 
     232        IEventType eventType = determineType(evenType, matcher.group(4)); 
     233        return taskFactory.createNewEventTask(eventType, evenTarget); 
     234        } 
     235 
     236        private IEventTarget determineTarget(String type, String id, String enteredText) { 
     237                if ("TextInput".equals(type) && enteredText != null) { 
     238                        return new DummyTextField(enteredText); 
     239                } else { 
     240                        return new DummyGUIElement(id); 
     241                } 
     242        } 
     243         
     244        private IEventType determineType(String type, String enteredText) { 
     245                if ("TextInput".equals(type) && enteredText != null) { 
     246                        return new TextInput(enteredText, new ArrayList<Event>()); 
     247                } else { 
     248                        return new StringEventType(type); 
     249                } 
     250        } 
     251 
    227252} 
Note: See TracChangeset for help on using the changeset viewer.