Changeset 2042 for trunk/autoquest-core-usability/src/main/java/de/ugoe/cs/autoquest/usability/MisleadingClickCueRule.java
- Timestamp:
- 10/20/15 10:11:04 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/autoquest-core-usability/src/main/java/de/ugoe/cs/autoquest/usability/MisleadingClickCueRule.java
r1918 r2042 24 24 import de.ugoe.cs.autoquest.eventcore.gui.MouseClick; 25 25 import de.ugoe.cs.autoquest.eventcore.gui.MouseDoubleClick; 26 import de.ugoe.cs.autoquest.eventcore.guimodel.IButton; 26 27 import de.ugoe.cs.autoquest.eventcore.guimodel.IGUIElement; 27 28 import de.ugoe.cs.autoquest.eventcore.guimodel.IGUIView; … … 65 66 UsabilityEvaluationResult results) 66 67 { 67 for (Map.Entry<IGUI View, Map<IGUIElement, Integer>> uselessClickCounter :68 for (Map.Entry<IGUIElement, Map<IGUIView, Integer>> uselessClickCounter : 68 69 statistics.getUselessClickCounters().entrySet()) 69 70 { 70 for (Map.Entry<IGUIElement, Integer> counter : uselessClickCounter.getValue().entrySet()) 71 { 72 int uselessClicks = counter.getValue(); 73 int noOfViewDisplays = statistics.getViewOpenedCount(uselessClickCounter.getKey()); 74 75 int ratio = Math.min(1000, 1000 * uselessClicks / noOfViewDisplays); 76 77 UsabilitySmellIntensity intensity = 78 UsabilitySmellIntensity.getIntensity(ratio, uselessClicks, -1); 79 80 if (intensity != null) { 81 Map<String, Object> parameters = new HashMap<String, Object>(); 82 parameters.put("noOfViewDisplays", noOfViewDisplays); 83 parameters.put("uselessClicks", uselessClicks); 84 parameters.put("element", counter.getKey()); 85 parameters.put("view", uselessClickCounter.getKey()); 86 87 results.addSmell 88 (intensity, UsabilitySmellDescription.MISLEADING_CLICK_CUE, parameters); 89 } 71 int uselessClicks = 0; 72 int noOfViewDisplays = 0; 73 74 for (Map.Entry<IGUIView, Integer> counter : uselessClickCounter.getValue().entrySet()) { 75 uselessClicks += counter.getValue(); 76 noOfViewDisplays += statistics.getViewOpenedCount(counter.getKey()); 77 } 78 79 int ratio = Math.min(1000, 1000 * uselessClicks / noOfViewDisplays); 80 81 UsabilitySmellIntensity intensity = 82 UsabilitySmellIntensity.getIntensity(ratio, uselessClicks, -1); 83 84 if (intensity != null) { 85 Map<String, Object> parameters = new HashMap<String, Object>(); 86 parameters.put("noOfViewDisplays", noOfViewDisplays); 87 parameters.put("uselessClicks", uselessClicks); 88 parameters.put("element", uselessClickCounter.getKey()); 89 90 results.addSmell 91 (intensity, UsabilitySmellDescription.MISLEADING_CLICK_CUE, parameters); 90 92 } 91 93 } … … 155 157 (target instanceof IText)) 156 158 { 157 return true; 159 // check if the parent is a button 160 IGUIElement parent = target; 161 while ((parent != null) && !(parent instanceof IButton)) { 162 parent = parent.getParent(); 163 } 164 165 return !(parent instanceof IButton); 158 166 } 159 167 else { … … 171 179 172 180 /** */ 173 private Map<IGUI View, Map<IGUIElement, Integer>> uselessClickCounters = new HashMap<>();181 private Map<IGUIElement, Map<IGUIView, Integer>> uselessClickCounters = new HashMap<>(); 174 182 175 183 /** … … 199 207 */ 200 208 private void addUselessClick(IEventTaskInstance eventTaskInstance) { 201 Map<IGUIElement, Integer> counterMap = uselessClickCounters.get 202 (((IGUIElement) eventTaskInstance.getEvent().getTarget()).getView()); 209 IGUIElement target = (IGUIElement) eventTaskInstance.getEvent().getTarget(); 210 211 Map<IGUIView, Integer> counterMap = uselessClickCounters.get(target); 203 212 204 213 if (counterMap == null) { 205 214 counterMap = new HashMap<>(); 206 uselessClickCounters.put 207 (((IGUIElement) eventTaskInstance.getEvent().getTarget()).getView(), counterMap); 208 } 209 210 Integer counter = counterMap.get(eventTaskInstance.getEvent().getTarget()); 215 uselessClickCounters.put(target, counterMap); 216 } 217 218 Integer counter = counterMap.get(target.getView()); 211 219 212 220 if (counter == null) { 213 counterMap.put( (IGUIElement) eventTaskInstance.getEvent().getTarget(), 1);221 counterMap.put(target.getView(), 1); 214 222 } 215 223 else { 216 counterMap.put( (IGUIElement) eventTaskInstance.getEvent().getTarget(), counter + 1);217 } 218 } 219 220 /** 221 * 222 */ 223 private Map<IGUI View, Map<IGUIElement, Integer>> getUselessClickCounters() {224 counterMap.put(target.getView(), counter + 1); 225 } 226 } 227 228 /** 229 * 230 */ 231 private Map<IGUIElement, Map<IGUIView, Integer>> getUselessClickCounters() { 224 232 return uselessClickCounters; 225 233 }
Note: See TracChangeset
for help on using the changeset viewer.