source: trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/testutil/GenerateTaskModelUtil.java @ 1218

Last change on this file since 1218 was 1218, checked in by adeicke, 11 years ago

Adjustments according to renaming refactorings.

  • Property svn:mime-type set to text/plain
File size: 4.2 KB
Line 
1//   Copyright 2012 Georg-August-Universität Göttingen, Germany
2//
3//   Licensed under the Apache License, Version 2.0 (the "License");
4//   you may not use this file except in compliance with the License.
5//   You may obtain a copy of the License at
6//
7//       http://www.apache.org/licenses/LICENSE-2.0
8//
9//   Unless required by applicable law or agreed to in writing, software
10//   distributed under the License is distributed on an "AS IS" BASIS,
11//   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12//   See the License for the specific language governing permissions and
13//   limitations under the License.
14
15package de.ugoe.cs.autoquest.usability.testutil;
16
17import java.util.Arrays;
18import java.util.List;
19import java.util.logging.Level;
20
21import com.google.common.collect.Lists;
22
23import de.ugoe.cs.autoquest.commands.sequences.CMDcondenseGuiModel;
24import de.ugoe.cs.autoquest.commands.sequences.CMDcondenseMouseClicks;
25import de.ugoe.cs.autoquest.commands.sequences.CMDcorrectKeyInteractionTargets;
26import de.ugoe.cs.autoquest.commands.sequences.CMDdetectTextInputEvents;
27import de.ugoe.cs.autoquest.commands.sequences.CMDsortKeyInteractions;
28import de.ugoe.cs.autoquest.commands.usability.CMDgenerateTaskTree;
29import de.ugoe.cs.autoquest.plugin.jfc.commands.CMDparseJFC;
30import de.ugoe.cs.autoquest.tasktrees.TaskTreeDecoder;
31import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskFactory;
32import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskInstanceList;
33import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel;
34import de.ugoe.cs.autoquest.tasktrees.treeifc.IUserSession;
35import de.ugoe.cs.autoquest.tasktrees.treeimpl.TaskBuilder;
36import de.ugoe.cs.autoquest.tasktrees.treeimpl.TaskFactory;
37import de.ugoe.cs.autoquest.test.CommandRunner;
38import de.ugoe.cs.util.console.GlobalDataContainer;
39import de.ugoe.cs.util.console.TextConsole;
40
41/**
42 * <p>
43 * TODO comment
44 * </p>
45 *
46 * @author Alexander Deicke
47 */
48public class GenerateTaskModelUtil {
49
50    private static final String seqName = "sequences";
51
52    private static final String taskTreeName = "taskTree";
53   
54    public static ITaskModel getTaskModelFromSpec(String... userSessions) {
55        ITaskFactory factory = new TaskFactory();
56        TaskTreeDecoder taskTreeDecoder = new TaskTreeDecoder(factory, new TaskBuilder());
57        List<IUserSession> userSessionsList = Lists.newArrayList();
58        for(String userSession: Arrays.asList(userSessions)) {
59                ITaskInstanceList taskInstances = taskTreeDecoder.decode(userSession);
60                userSessionsList.add((IUserSession) taskInstances);
61        }
62        return factory.createTaskModel(userSessionsList);
63    }
64   
65    public static ITaskModel getTaskTreeFromFile(String filename) {
66        new TextConsole(Level.ALL);
67        parseTraceFile(filename);
68        condenseGuiModel();
69        sortKeyInteractions();
70        correctKeyInteractionTargets();
71        detectTextInputEvents();
72        condenseMouseClicks();
73        return generateTaskModel();
74    }
75
76    static private void parseTraceFile(String filetoparse) {
77        CommandRunner.runCommand(CMDparseJFC.class, ClassLoader.getSystemResource(filetoparse)
78            .getFile(), seqName);
79    }
80
81    private static void condenseGuiModel() {
82        CommandRunner.runCommand(CMDcondenseGuiModel.class, seqName);
83    }
84
85    private static void sortKeyInteractions() {
86        CommandRunner.runCommand(CMDsortKeyInteractions.class, seqName);
87    }
88
89    private static void correctKeyInteractionTargets() {
90        CommandRunner.runCommand(CMDcorrectKeyInteractionTargets.class, seqName);
91    }
92
93    private static void detectTextInputEvents() {
94        CommandRunner.runCommand(CMDdetectTextInputEvents.class, seqName);
95    }
96
97    private static void condenseMouseClicks() {
98        CommandRunner.runCommand(CMDcondenseMouseClicks.class, seqName);
99    }
100
101    private static ITaskModel generateTaskModel() {
102        CommandRunner.runCommand(CMDgenerateTaskTree.class, seqName, taskTreeName);
103        GlobalDataContainer dataContainer = GlobalDataContainer.getInstance();
104        return (ITaskModel) dataContainer.getData(taskTreeName);
105    }
106
107}
Note: See TracBrowser for help on using the repository browser.