Ejemplo n.º 1
0
  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);
          }
        }
      }
    }
  }