/
MapUtils.java
46 lines (37 loc) · 1.53 KB
/
MapUtils.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
package de.fhpotsdam.unfolding.utils;
import java.util.List;
import processing.core.PApplet;
import de.fhpotsdam.unfolding.Map;
import de.fhpotsdam.unfolding.events.EventDispatcher;
import de.fhpotsdam.unfolding.events.PanMapEvent;
import de.fhpotsdam.unfolding.events.ZoomMapEvent;
import de.fhpotsdam.unfolding.interactions.KeyboardHandler;
import de.fhpotsdam.unfolding.interactions.MouseHandler;
public class MapUtils {
/**
* Initializes default events, i.e. all given maps handle mouse and keyboard interactions. No
* cross-listening between maps.
*
* @param p
* The PApplet needed for mouse and key user interactions.
* @param maps
* One or many maps.
* @return The EventDispatcher to use for additional event handling.
*/
public static EventDispatcher createDefaultEventDispatcher(PApplet p, Map... maps) {
EventDispatcher eventDispatcher = new EventDispatcher();
MouseHandler mouseHandler = new MouseHandler(p, maps);
KeyboardHandler keyboardHandler = new KeyboardHandler(p, maps);
eventDispatcher.addBroadcaster(mouseHandler);
eventDispatcher.addBroadcaster(keyboardHandler);
for (Map map : maps) {
eventDispatcher.register(map, PanMapEvent.TYPE_PAN, map.getId());
eventDispatcher.register(map, ZoomMapEvent.TYPE_ZOOM, map.getId());
}
return eventDispatcher;
}
public static EventDispatcher createDefaultEventDispatcher(PApplet p, List<Map> maps) {
Map[] mapsArray = (maps != null) ? maps.toArray(new Map[0]) : new Map[0];
return createDefaultEventDispatcher(p, mapsArray);
}
}