source: trunk/quest-ui-core/src/main/java/de/ugoe/cs/quest/commands/usability/CMDevaluateUsability.java @ 766

Last change on this file since 766 was 766, checked in by sherbold, 12 years ago
File size: 2.3 KB
Line 
1
2package de.ugoe.cs.quest.commands.usability;
3
4import java.util.List;
5
6import de.ugoe.cs.quest.CommandHelpers;
7import de.ugoe.cs.quest.tasktrees.treeifc.ITaskTree;
8import de.ugoe.cs.quest.usability.UsabilityEvaluationManager;
9import de.ugoe.cs.quest.usability.UsabilityEvaluationResult;
10import de.ugoe.cs.util.console.Command;
11import de.ugoe.cs.util.console.GlobalDataContainer;
12
13/**
14 * <p>
15 * This command performs a usability evaluation based on a task tree. It uses the
16 * {@link UsabilityEvaluationManager} for this purpose. Please consult the documentation of the
17 * usability evaluation manager for more details.
18 * </p>
19 *
20 * @author Patrick Harms
21 * @version 1.0
22 */
23public class CMDevaluateUsability implements Command {
24
25    /*
26     * (non-Javadoc)
27     *
28     * @see de.ugoe.cs.util.console.Command#help()
29     */
30    @Override
31    public String help() {
32        return "evaluateUsability <tasktree> {<evaluationResult>}";
33    }
34
35    /*
36     * (non-Javadoc)
37     *
38     * @see de.ugoe.cs.util.console.Command#run(java.util.List)
39     */
40    @Override
41    public void run(List<Object> parameters) {
42        String tasktreeName;
43        String evaluationResult;
44        try {
45            tasktreeName = (String) parameters.get(0);
46            if (parameters.size() > 1) {
47                evaluationResult = (String) parameters.get(1);
48            }
49            else {
50                evaluationResult = "usabilityEvaluationResult";
51            }
52        }
53        catch (Exception e) {
54            throw new IllegalArgumentException("must provide a task tree name");
55        }
56
57        Object dataObject = GlobalDataContainer.getInstance().getData(tasktreeName);
58        if (dataObject == null) {
59            CommandHelpers.objectNotFoundMessage(tasktreeName);
60            return;
61        }
62        if (!(dataObject instanceof ITaskTree)) {
63            CommandHelpers.objectNotType(tasktreeName, "ITaskTree");
64            return;
65        }
66
67        ITaskTree taskTree = (ITaskTree) dataObject;
68       
69        UsabilityEvaluationResult result =
70            new UsabilityEvaluationManager().evaluateUsability(taskTree);
71       
72        if (GlobalDataContainer.getInstance().addData(evaluationResult, result)) {
73            CommandHelpers.dataOverwritten(evaluationResult);
74        }
75       
76    }
77
78}
Note: See TracBrowser for help on using the repository browser.