#set( $symbol_pound = '#' )
#set( $symbol_dollar = '$' )
#set( $symbol_escape = '\' )
/*
* This is part of Geomajas, a GIS framework, http://www.geomajas.org/.
*
* Copyright 2008-2015 Geosparc nv, http://www.geosparc.com/, Belgium.
*
* The program is available in open source according to the GNU Affero
* General Public License. All contributions in this program are covered
* by the Geomajas Contributors License Agreement. For full licensing
* details, see LICENSE.txt in the project root.
*/
package ${package}.client;
import org.geomajas.gwt.client.Geomajas;
import org.geomajas.gwt.client.controller.ZoomInAndOutController;
import org.geomajas.gwt.client.gfx.paintable.Image;
import org.geomajas.gwt.client.gfx.paintable.mapaddon.PanButtonCollection;
import org.geomajas.gwt.client.gfx.paintable.mapaddon.SingleMapAddon;
import org.geomajas.gwt.client.gfx.paintable.mapaddon.ZoomSlider;
import org.geomajas.gwt.client.util.ImageUtil;
import org.geomajas.gwt.client.widget.MapWidget;
/**
* Combined pan and zoom slider.
*
* @author Oliver May TODO: this should move to the GWT face
*/
public class PanAndZoomSlider extends ZoomSlider {
private static final String IMAGE_FOLDER = Geomajas.getIsomorphicDir() + "geomajas/mapaddon/";
private static final Integer SLIDER_WIDTH = 20;
private static final Integer SLIDER_PART_HEIGHT = 13;
private static final Integer SLIDER_UNIT_WIDTH = 25;
private static final Integer SLIDER_UNIT_HEIGHT = 14;
private static final String PANID = "myPanBTNCollection";
private static final String ZOOMID = "myZoomAddon";
private static final String ZOOMRECTID = "myZoomRectAddon";
private static final String ZOOM_IN = "zoomIn";
private static final String ZOOM_OUT = "zoomOut";
private static final String ICON = "GeodeskIcon";
/**
* Convenience method to add the zoomslider to the map.
* <p>
* Call this only when Map has been initialized (eg. in onMapmodelChange)!!
*
* @param mapWidget
*/
public static void addPanAndZoomSliderTo(MapWidget mapWidget) {
// ----- Pan -----
PanButtonCollection panButtons = new PanButtonCollection(PANID, mapWidget);
panButtons.setHorizontalMargin(5);
panButtons.setVerticalMargin(5);
mapWidget.registerMapAddon(panButtons);
Image zoomToLocationIcon = ImageUtil.createRectangleImage("zoomToLocationIcon", Geomajas.getIsomorphicDir()
+ "geomajas/mapaddon/zoomToLocation.png", 0, 0, SLIDER_WIDTH, SLIDER_WIDTH);
SingleMapAddon zoomToLocation = new SingleMapAddon("zoomToLocation", zoomToLocationIcon, mapWidget,
new ZoomToLocationController(mapWidget));
zoomToLocation.setHorizontalMargin(25);
zoomToLocation.setVerticalMargin(72);
mapWidget.registerMapAddon(zoomToLocation);
// ----- zoom -----
PanAndZoomSlider mzs = new PanAndZoomSlider(ZOOMID, mapWidget);
mzs.setHorizontalMargin(25);
mzs.setVerticalMargin(95);
mapWidget.registerMapAddon(mzs);
mapWidget.getMapModel().getMapView().addMapViewChangedHandler(mzs);
// // ----- ZoomToRectangle -----
// ZoomToRectangleAddon zoomToRectangleAddon = new ZoomToRectangleAddon(ZOOMRECTID, mapWidget);
// zoomToRectangleAddon.setHorizontalMargin(19);
// zoomToRectangleAddon.setVerticalMargin(62);
// mapWidget.registerMapAddon(zoomToRectangleAddon);
}
public PanAndZoomSlider(String id, MapWidget mapWidget) {
super(id, mapWidget);
init();
}
// -------------------------------------------------
private void init() {
MapWidget mapWidget = getMapWidget();
Image sliderUnit = ImageUtil.createRectangleImage(ZoomSlider.SLIDER_UNIT + "icon", IMAGE_FOLDER
+ "sliderUnit.png", 0, 0, SLIDER_UNIT_WIDTH, SLIDER_UNIT_HEIGHT);
Image backgroundPart = ImageUtil.createRectangleImage(ZoomSlider.SLIDER + "Bg", IMAGE_FOLDER + "sliderbg.png",
0, 0, SLIDER_WIDTH, SLIDER_PART_HEIGHT);
Image in = ImageUtil.createSquareImage(ZOOM_IN + ICON, Geomajas.getIsomorphicDir()
+ "geomajas/mapaddon/zoomPlus.png", 0, 0, SLIDER_WIDTH);
Image sliderTop = ImageUtil.createSquareImage(ZoomSlider.SLIDER + "Top", IMAGE_FOLDER + "sliderbgtop.png", 0,
0, SLIDER_WIDTH);
SingleMapAddon zoomIn = new SingleMapAddon(ZOOM_IN, in, sliderTop, mapWidget, new ZoomInAndOutController(
mapWidget, 1.01));
Image out = ImageUtil.createRectangleImage(ZOOM_OUT + ICON, Geomajas.getIsomorphicDir()
+ "geomajas/mapaddon/zoomMinus.png", 0, 0, SLIDER_WIDTH, SLIDER_WIDTH);
Image sliderBottom = ImageUtil.createRectangleImage(ZoomSlider.SLIDER + "Bottom", IMAGE_FOLDER
+ "sliderbgbottom.png", 0, 0, SLIDER_WIDTH, SLIDER_WIDTH);
SingleMapAddon zoomOut = new SingleMapAddon(ZOOM_OUT, out, sliderBottom, mapWidget, new ZoomInAndOutController(
mapWidget, 0.99));
setZoomIn(zoomIn);
setBackgroundPart(backgroundPart);
setSliderUnit(sliderUnit);
setZoomOut(zoomOut);
}
}