annotate flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MapToolbar.java @ 799:f4299b90c996

Added controls to navigate in the map. flys-client/trunk@2318 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Mon, 11 Jul 2011 13:29:57 +0000
parents
children 95cc560ce7c4
rev   line source
799
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.client.client.ui.map;
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
2
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
3 import com.google.gwt.core.client.GWT;
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
4
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
5 import com.smartgwt.client.types.SelectionType;
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
6 import com.smartgwt.client.widgets.ImgButton;
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
7 import com.smartgwt.client.widgets.events.ClickEvent;
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
8 import com.smartgwt.client.widgets.events.ClickHandler;
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
9 import com.smartgwt.client.widgets.layout.HLayout;
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
11 import org.gwtopenmaps.openlayers.client.Map;
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
12 import org.gwtopenmaps.openlayers.client.control.DragPan;
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
13 import org.gwtopenmaps.openlayers.client.control.ZoomBox;
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
14
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
15 import de.intevation.flys.client.client.FLYSConstants;
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
16
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
17
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
18 /**
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
19 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
20 */
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
21 public class MapToolbar extends HLayout {
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
22
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
23 /** The message class that provides i18n strings.*/
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
24 protected FLYSConstants MSG = GWT.create(FLYSConstants.class);
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
25
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
26 protected FloodMap floodMap;
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
27 protected DragPan pan;
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
28 protected ZoomBox zoomBox;
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
29
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
30 protected ImgButton zoomToMaxButton;
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
31 protected ImgButton zoomBoxButton;
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
32 protected ImgButton zoomOutButton;
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
33 protected ImgButton panButton;
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
34
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
35
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
36 public MapToolbar(FloodMap floodMap) {
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
37 super();
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
38
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
39 setWidth100();
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
40 setHeight(30);
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
41 setMembersMargin(10);
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
42 setPadding(5);
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
43 setBorder("1px solid black");
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
44
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
45 this.floodMap = floodMap;
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
46
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
47 zoomToMaxButton = createMaxExtentControl();
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
48 zoomBoxButton = createZoomBoxControl();
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
49 zoomOutButton = createZoomOutControl();
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
50 panButton = createPanControl();
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
51
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
52 addMember(zoomToMaxButton);
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
53 addMember(zoomBoxButton);
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
54 addMember(zoomOutButton);
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
55 addMember(panButton);
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
56 }
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
57
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
58
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
59 protected Map getMap() {
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
60 return floodMap.getMap();
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
61 }
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
62
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
63
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
64 protected void activatePan(boolean activate) {
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
65 if (activate) {
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
66 panButton.select();
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
67 pan.activate();
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
68 }
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
69 else {
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
70 panButton.deselect();
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
71 pan.deactivate();
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
72 }
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
73 }
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
74
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
75
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
76 protected void activateZoomBox(boolean activate) {
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
77 if (activate) {
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
78 zoomBoxButton.select();
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
79 zoomBox.activate();
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
80 }
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
81 else {
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
82 zoomBoxButton.deselect();
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
83 zoomBox.deactivate();
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
84 }
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
85 }
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
86
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
87
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
88 protected ImgButton createMaxExtentControl() {
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
89 ImgButton zoomToMax = new ImgButton();
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
90
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
91 String baseUrl = GWT.getHostPageBaseURL();
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
92 zoomToMax.setSrc(baseUrl + MSG.zoom_all());
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
93 zoomToMax.setWidth(20);
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
94 zoomToMax.setHeight(20);
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
95 zoomToMax.setShowDown(false);
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
96 zoomToMax.setShowRollOver(false);
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
97 zoomToMax.setShowDisabled(false);
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
98 zoomToMax.setShowDisabledIcon(true);
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
99 zoomToMax.setShowDownIcon(false);
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
100 zoomToMax.setShowFocusedIcon(false);
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
101
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
102 zoomToMax.addClickHandler(new ClickHandler() {
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
103 public void onClick(ClickEvent event) {
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
104 floodMap.getMap().zoomToMaxExtent();
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
105 }
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
106 });
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
107
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
108 return zoomToMax;
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
109 }
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
110
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
111
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
112 protected ImgButton createZoomBoxControl() {
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
113 zoomBox = new ZoomBox();
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
114
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
115 final ImgButton button = new ImgButton();
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
116
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
117 String baseUrl = GWT.getHostPageBaseURL();
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
118 button.setSrc(baseUrl + MSG.zoom_in());
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
119 button.setActionType(SelectionType.CHECKBOX);
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
120 button.setSize(20);
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
121 button.setShowRollOver(false);
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
122 button.setSelected(false);
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
123
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
124 button.addClickHandler(new ClickHandler() {
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
125 public void onClick(ClickEvent e) {
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
126 if (button.isSelected()) {
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
127 activatePan(false);
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
128 activateZoomBox(true);
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
129 }
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
130 else {
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
131 activateZoomBox(false);
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
132 }
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
133 }
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
134 });
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
135
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
136 Map map = getMap();
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
137 map.addControl(zoomBox);
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
138
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
139 return button;
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
140 }
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
141
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
142
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
143 protected ImgButton createZoomOutControl() {
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
144 ImgButton zoomOut = new ImgButton();
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
145
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
146 String baseUrl = GWT.getHostPageBaseURL();
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
147 zoomOut.setSrc(baseUrl + MSG.zoom_out());
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
148 zoomOut.setWidth(20);
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
149 zoomOut.setHeight(20);
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
150 zoomOut.setShowDown(false);
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
151 zoomOut.setShowRollOver(false);
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
152 zoomOut.setShowDisabled(false);
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
153 zoomOut.setShowDisabledIcon(true);
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
154 zoomOut.setShowDownIcon(false);
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
155 zoomOut.setShowFocusedIcon(false);
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
156
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
157 zoomOut.addClickHandler(new ClickHandler() {
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
158 public void onClick(ClickEvent event) {
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
159 Map map = floodMap.getMap();
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
160 int level = map.getZoom();
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
161
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
162 if (level > 1) {
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
163 map.zoomTo(level-1);
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
164 }
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
165 }
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
166 });
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
167
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
168 return zoomOut;
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
169 }
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
170
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
171
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
172 protected ImgButton createPanControl() {
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
173 pan = new DragPan();
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
174
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
175 final ImgButton button = new ImgButton();
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
176
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
177 String baseUrl = GWT.getHostPageBaseURL();
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
178 button.setSrc(baseUrl + MSG.pan());
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
179 button.setActionType(SelectionType.CHECKBOX);
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
180 button.setSize(20);
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
181 button.setShowRollOver(false);
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
182 button.setSelected(false);
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
183
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
184 button.addClickHandler(new ClickHandler() {
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
185 public void onClick(ClickEvent e) {
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
186 if (button.isSelected()) {
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
187 activateZoomBox(false);
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
188 activatePan(true);
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
189 }
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
190 else {
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
191 activatePan(false);
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
192 }
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
193 }
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
194 });
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
195
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
196 Map map = getMap();
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
197 map.addControl(pan);
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
198
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
199 return button;
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
200 }
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
201 }
f4299b90c996 Added controls to navigate in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
202 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org