DOM.setStyleAttribute(right.getElement(), "cursor", "pointer");
DOM.setStyleAttribute(up.getElement(), "cursor", "pointer");
DOM.setStyleAttribute(down.getElement(), "cursor", "pointer");
StopPropagationHandler handler = new StopPropagationHandler();
left.addMouseUpHandler(new MouseUpHandler() {
public void onMouseUp(MouseUpEvent event) {
Bbox bounds = viewPort.getBounds();
double deltaX = -bounds.getWidth() / 3;
PanAnimation animation = new PanAnimation(viewPort);
animation.panTo(deltaX, 0, 300);
event.stopPropagation();
}
});
left.addMouseDownHandler(handler);
left.addClickHandler(handler);
left.addDoubleClickHandler(handler);
right.addMouseUpHandler(new MouseUpHandler() {
public void onMouseUp(MouseUpEvent event) {
Bbox bounds = viewPort.getBounds();
double deltaX = bounds.getWidth() / 3;
PanAnimation animation = new PanAnimation(viewPort);
animation.panTo(deltaX, 0, 300);
event.stopPropagation();
}
});
right.addMouseDownHandler(handler);
right.addClickHandler(handler);
right.addDoubleClickHandler(handler);
up.addMouseUpHandler(new MouseUpHandler() {
public void onMouseUp(MouseUpEvent event) {
Bbox bounds = viewPort.getBounds();
double deltaY = bounds.getHeight() / 3;
PanAnimation animation = new PanAnimation(viewPort);
animation.panTo(0, deltaY, 300);
event.stopPropagation();
}
});
up.addMouseDownHandler(handler);
up.addClickHandler(handler);
up.addDoubleClickHandler(handler);
down.addMouseUpHandler(new MouseUpHandler() {
public void onMouseUp(MouseUpEvent event) {
Bbox bounds = viewPort.getBounds();
double deltaY = -bounds.getHeight() / 3;
PanAnimation animation = new PanAnimation(viewPort);
animation.panTo(0, deltaY, 300);
event.stopPropagation();
}
});
down.addMouseDownHandler(handler);
down.addClickHandler(handler);
down.addDoubleClickHandler(handler);
container.add(panBg);
container.add(left);
container.add(right);
container.add(up);
container.add(down);
// Zooming buttons:
Image zoomBg = new Image(20, 60, 20, 60, zoomBackgroundImage);
Image zoomIn = new Image(20, 60, 20, 20, zoomInImage);
Image zoomExtent = new Image(20, 80, 20, 20, zoomExtentImage);
Image zoomOut = new Image(20, 100, 20, 20, zoomOutImage);
DOM.setStyleAttribute(zoomIn.getElement(), "cursor", "pointer");
DOM.setStyleAttribute(zoomOut.getElement(), "cursor", "pointer");
DOM.setStyleAttribute(zoomExtent.getElement(), "cursor", "pointer");
zoomIn.addMouseUpHandler(new MouseUpHandler() {
public void onMouseUp(MouseUpEvent event) {
int index = viewPort.getZoomStrategy().getZoomStepIndex(viewPort.getScale());
viewPort.applyScale(viewPort.getZoomStrategy().getZoomStepScale(index - 1));
event.stopPropagation();
}
});
zoomIn.addMouseDownHandler(handler);
zoomIn.addClickHandler(handler);
zoomIn.addDoubleClickHandler(handler);
zoomExtent.addMouseUpHandler(new MouseUpHandler() {
public void onMouseUp(MouseUpEvent event) {
viewPort.applyBounds(viewPort.getMaximumBounds());
event.stopPropagation();
}
});
zoomExtent.addMouseDownHandler(handler);
zoomExtent.addClickHandler(handler);
zoomExtent.addDoubleClickHandler(handler);
zoomOut.addMouseUpHandler(new MouseUpHandler() {
public void onMouseUp(MouseUpEvent event) {
int index = viewPort.getZoomStrategy().getZoomStepIndex(viewPort.getScale());
viewPort.applyScale(viewPort.getZoomStrategy().getZoomStepScale(index + 1));
event.stopPropagation();
}
});
zoomOut.addMouseDownHandler(handler);
zoomOut.addClickHandler(handler);
zoomOut.addDoubleClickHandler(handler);
container.add(zoomBg);
container.add(zoomIn);
container.add(zoomExtent);
container.add(zoomOut);
// Zoom to rectangle buttons:
Image zoomToRectangle = new Image(20, 130, 20, 20, zoomToRectangleImage);
zoomToRectangle.setTitle("Zoom to rectangle by dragging the mouse on the map.");
DOM.setStyleAttribute(zoomToRectangle.getElement(), "cursor", "pointer");
zoomToRectangle.addMouseUpHandler(new MouseUpHandler() {
public void onMouseUp(MouseUpEvent event) {
zoomToRectangleGroup = new ZoomToRectGroup(viewPort);
container.add(zoomToRectangleGroup);
event.stopPropagation();