public void keyPressed(char key, int keyCode) { for (UnfoldingMap map : maps) { if (map.isActive()) { if (key == '+' || key == '-') { ZoomMapEvent zoomMapEvent = new ZoomMapEvent(this, map.getId()); zoomMapEvent.setTransformationCenterLocation(map.getCenter()); zoomMapEvent.setSubType(ZoomMapEvent.ZOOM_BY_LEVEL); if (key == '+') { zoomMapEvent.setZoomLevelDelta(1); } else { zoomMapEvent.setZoomLevelDelta(-1); } eventDispatcher.fireMapEvent(zoomMapEvent); } else if (key == PConstants.CODED) { // FIXME Use toLocation instead of panLeft, etc to allow listening maps to pan // correctly. if (keyCode == PConstants.LEFT || keyCode == PConstants.RIGHT || keyCode == PConstants.UP || keyCode == PConstants.DOWN) { PanMapEvent panMapEvent = new PanMapEvent(this, map.getId()); switch (keyCode) { case PConstants.LEFT: panMapEvent.setSubType(PanMapEvent.PAN_LEFT); break; case PConstants.RIGHT: panMapEvent.setSubType(PanMapEvent.PAN_RIGHT); break; case PConstants.UP: panMapEvent.setSubType(PanMapEvent.PAN_UP); break; case PConstants.DOWN: panMapEvent.setSubType(PanMapEvent.PAN_DOWN); break; } eventDispatcher.fireMapEvent(panMapEvent); } } } } }