MCPcopy Create free account
hub / github.com/OpenEndedGroup/Field2 / dispatch

Method dispatch

src/main/java/fieldbox/boxes/Mouse.java:56–168  ·  view source on GitHub ↗
(Box root, Window.Event<Window.MouseState> event)

Source from the content-addressed store, hash-verified

54 int click = 0;
55
56 public void dispatch(Box root, Window.Event<Window.MouseState> event) {
57
58 Optional<Drawing> drawing = root.find(Drawing.drawing, root.both())
59 .findFirst();
60 if (drawing.isPresent())
61 {
62 fixDrawingSpace(drawing, event.after);
63 fixDrawingSpace(drawing, event.before);
64 }
65
66 Box startAt = Intersects.startAt(event.after, root);
67
68 event.properties.put(originatesAt, startAt);
69
70 Set<Integer> pressed = Window.MouseState.buttonsPressed(event.before, event.after);
71 Set<Integer> released = Window.MouseState.buttonsReleased(event.before, event.after);
72 Set<Integer> down = event.after.buttonsDown;
73
74 if (pressed.size()==1) {
75 if (startAt == lastStartAt && System.currentTimeMillis() - lastStartAtTime < 300) {
76 event.properties.put(clickNumber, ++click);
77
78 } else {
79 event.properties.put(clickNumber, click=1);
80 lastStartAt = startAt;
81 }
82
83 lastStartAtTime = System.currentTimeMillis();
84 }
85
86 released.stream()
87 .map(r -> ongoingDrags.remove(r))
88 .filter(x -> x != null)
89 .forEach(drags -> {
90 drags.stream()
91 .filter(d -> d != null)
92 .forEach(dragger -> dragger.update(event, true));
93 drags.clear();
94 });
95
96 for (Collection<Dragger> d : ongoingDrags.values()) {
97 Iterator<Dragger> dd = d.iterator();
98 while (dd.hasNext()) {
99 Dragger dragger = dd.next();
100 boolean cont = false;
101 try {
102 cont = dragger.update(event, false);
103 } catch (Throwable t) {
104 System.err.println(" Exception thrown in dragger update :" + t);
105 System.err.println(" dragger will not be called again");
106 t.printStackTrace();
107 cont = false;
108 }
109 if (!cont) dd.remove();
110 }
111 }
112
113 Util.Errors errors = new Util.Errors();

Callers 3

CnFunction · 0.45
d3.min.jsFile · 0.45
OpenMethod · 0.45

Calls 15

findMethod · 0.95
bothMethod · 0.95
fixDrawingSpaceMethod · 0.95
startAtMethod · 0.95
updateMethod · 0.95
wrapMethod · 0.95
breadthFirstMethod · 0.95
upwardsMethod · 0.95
hasErrorsMethod · 0.95
getErrorsMethod · 0.95
isPresentMethod · 0.80
buttonsPressedMethod · 0.80

Tested by

no test coverage detected