annotate flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MapPanel.java @ 5462:f2371f3aaf03

Show top level folder icons only if node has no factory If you have an empty folder the folder icon is still shown. This makes it possible to add functional "Top Level" entries in the Datacage
author Andre Heinecke <aheinecke@intevation.de>
date Tue, 26 Mar 2013 18:29:13 +0100
parents 95e23bcf6a50
children ef32ab3c1679
rev   line source
832
303a923d232b Added a panel that wraps all the stuff to combine SmartGWT and GWT-OpenLayers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.client.client.ui.map;
303a923d232b Added a panel that wraps all the stuff to combine SmartGWT and GWT-OpenLayers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
2
4475
6fb4e29a2a9b Resize MapWidget in MapPanel manually using a ResizedHandler.
Christian Lins <christian.lins@intevation.de>
parents: 4402
diff changeset
3 import com.google.gwt.core.client.GWT;
4570
8ca06d3040d0 flys-client: Map.updateSize() is now called on every windows movement
Christian Lins <christian.lins@intevation.de>
parents: 4553
diff changeset
4 import com.smartgwt.client.widgets.events.ParentMovedEvent;
8ca06d3040d0 flys-client: Map.updateSize() is now called on every windows movement
Christian Lins <christian.lins@intevation.de>
parents: 4553
diff changeset
5 import com.smartgwt.client.widgets.events.ParentMovedHandler;
4475
6fb4e29a2a9b Resize MapWidget in MapPanel manually using a ResizedHandler.
Christian Lins <christian.lins@intevation.de>
parents: 4402
diff changeset
6 import com.smartgwt.client.widgets.events.ResizedEvent;
6fb4e29a2a9b Resize MapWidget in MapPanel manually using a ResizedHandler.
Christian Lins <christian.lins@intevation.de>
parents: 4402
diff changeset
7 import com.smartgwt.client.widgets.events.ResizedHandler;
832
303a923d232b Added a panel that wraps all the stuff to combine SmartGWT and GWT-OpenLayers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
8 import com.smartgwt.client.widgets.layout.VLayout;
303a923d232b Added a panel that wraps all the stuff to combine SmartGWT and GWT-OpenLayers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
9
303a923d232b Added a panel that wraps all the stuff to combine SmartGWT and GWT-OpenLayers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10 import de.intevation.flys.client.shared.model.BBox;
303a923d232b Added a panel that wraps all the stuff to combine SmartGWT and GWT-OpenLayers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
11 import de.intevation.flys.client.shared.model.MapInfo;
303a923d232b Added a panel that wraps all the stuff to combine SmartGWT and GWT-OpenLayers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
12
3347
6d749af6a9c2 Issue #726 work.
Christian Lins <christian.lins@intevation.de>
parents: 1389
diff changeset
13 import org.gwtopenmaps.openlayers.client.Bounds;
4475
6fb4e29a2a9b Resize MapWidget in MapPanel manually using a ResizedHandler.
Christian Lins <christian.lins@intevation.de>
parents: 4402
diff changeset
14 import org.gwtopenmaps.openlayers.client.MapWidget;
3347
6d749af6a9c2 Issue #726 work.
Christian Lins <christian.lins@intevation.de>
parents: 1389
diff changeset
15
4475
6fb4e29a2a9b Resize MapWidget in MapPanel manually using a ResizedHandler.
Christian Lins <christian.lins@intevation.de>
parents: 4402
diff changeset
16 /**
6fb4e29a2a9b Resize MapWidget in MapPanel manually using a ResizedHandler.
Christian Lins <christian.lins@intevation.de>
parents: 4402
diff changeset
17 * Panel that contains a MapWidget and a MapToolbar.
6fb4e29a2a9b Resize MapWidget in MapPanel manually using a ResizedHandler.
Christian Lins <christian.lins@intevation.de>
parents: 4402
diff changeset
18 * This panel is used by the flood map calculation input helper.
6fb4e29a2a9b Resize MapWidget in MapPanel manually using a ResizedHandler.
Christian Lins <christian.lins@intevation.de>
parents: 4402
diff changeset
19 */
832
303a923d232b Added a panel that wraps all the stuff to combine SmartGWT and GWT-OpenLayers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
20 public class MapPanel extends VLayout {
303a923d232b Added a panel that wraps all the stuff to combine SmartGWT and GWT-OpenLayers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
21
303a923d232b Added a panel that wraps all the stuff to combine SmartGWT and GWT-OpenLayers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
22 protected MapToolbar toolbar;
303a923d232b Added a panel that wraps all the stuff to combine SmartGWT and GWT-OpenLayers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
23
4475
6fb4e29a2a9b Resize MapWidget in MapPanel manually using a ResizedHandler.
Christian Lins <christian.lins@intevation.de>
parents: 4402
diff changeset
24 protected FloodMap floodMap;
6fb4e29a2a9b Resize MapWidget in MapPanel manually using a ResizedHandler.
Christian Lins <christian.lins@intevation.de>
parents: 4402
diff changeset
25 protected MapWidget floodMapWidget;
6fb4e29a2a9b Resize MapWidget in MapPanel manually using a ResizedHandler.
Christian Lins <christian.lins@intevation.de>
parents: 4402
diff changeset
26 protected boolean digitizeEnabled;
832
303a923d232b Added a panel that wraps all the stuff to combine SmartGWT and GWT-OpenLayers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
27
303a923d232b Added a panel that wraps all the stuff to combine SmartGWT and GWT-OpenLayers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
28 public MapPanel(MapInfo mapInfo, boolean digitizeEnabled) {
303a923d232b Added a panel that wraps all the stuff to combine SmartGWT and GWT-OpenLayers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
29 BBox bbox = mapInfo.getBBox();
303a923d232b Added a panel that wraps all the stuff to combine SmartGWT and GWT-OpenLayers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
30
303a923d232b Added a panel that wraps all the stuff to combine SmartGWT and GWT-OpenLayers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
31 this.digitizeEnabled = digitizeEnabled;
303a923d232b Added a panel that wraps all the stuff to combine SmartGWT and GWT-OpenLayers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
32 this.floodMap = new FloodMap(
303a923d232b Added a panel that wraps all the stuff to combine SmartGWT and GWT-OpenLayers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
33 String.valueOf(mapInfo.getSrid()),
303a923d232b Added a panel that wraps all the stuff to combine SmartGWT and GWT-OpenLayers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
34 new Bounds(
303a923d232b Added a panel that wraps all the stuff to combine SmartGWT and GWT-OpenLayers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
35 bbox.getLowerX(),
303a923d232b Added a panel that wraps all the stuff to combine SmartGWT and GWT-OpenLayers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
36 bbox.getLowerY(),
303a923d232b Added a panel that wraps all the stuff to combine SmartGWT and GWT-OpenLayers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
37 bbox.getUpperX(),
4402
c84630d544a1 Get rid of HorizontalLayout in MapOutputTab and use manual resizing.
Christian Lins <christian.lins@intevation.de>
parents: 4064
diff changeset
38 bbox.getUpperY()),
4476
099d136b215b Try to fix resize problems with MapWidget in DigitizePanel (#802).
Christian Lins <christian.lins@intevation.de>
parents: 4475
diff changeset
39 640, 480);
832
303a923d232b Added a panel that wraps all the stuff to combine SmartGWT and GWT-OpenLayers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
40
303a923d232b Added a panel that wraps all the stuff to combine SmartGWT and GWT-OpenLayers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
41 initLayout();
303a923d232b Added a panel that wraps all the stuff to combine SmartGWT and GWT-OpenLayers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
42 }
303a923d232b Added a panel that wraps all the stuff to combine SmartGWT and GWT-OpenLayers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
43
303a923d232b Added a panel that wraps all the stuff to combine SmartGWT and GWT-OpenLayers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
44
303a923d232b Added a panel that wraps all the stuff to combine SmartGWT and GWT-OpenLayers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
45 private void initLayout() {
303a923d232b Added a panel that wraps all the stuff to combine SmartGWT and GWT-OpenLayers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
46 setWidth100();
303a923d232b Added a panel that wraps all the stuff to combine SmartGWT and GWT-OpenLayers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
47 setHeight100();
303a923d232b Added a panel that wraps all the stuff to combine SmartGWT and GWT-OpenLayers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
48
4475
6fb4e29a2a9b Resize MapWidget in MapPanel manually using a ResizedHandler.
Christian Lins <christian.lins@intevation.de>
parents: 4402
diff changeset
49 floodMapWidget = floodMap.getMapWidget();
1386
9aa1a453eed5 Issue 294.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 832
diff changeset
50 toolbar = new MapToolbar(floodMap, digitizeEnabled);
832
303a923d232b Added a panel that wraps all the stuff to combine SmartGWT and GWT-OpenLayers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
51
303a923d232b Added a panel that wraps all the stuff to combine SmartGWT and GWT-OpenLayers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
52 addMember(toolbar);
4475
6fb4e29a2a9b Resize MapWidget in MapPanel manually using a ResizedHandler.
Christian Lins <christian.lins@intevation.de>
parents: 4402
diff changeset
53 addMember(floodMapWidget);
6fb4e29a2a9b Resize MapWidget in MapPanel manually using a ResizedHandler.
Christian Lins <christian.lins@intevation.de>
parents: 4402
diff changeset
54
6fb4e29a2a9b Resize MapWidget in MapPanel manually using a ResizedHandler.
Christian Lins <christian.lins@intevation.de>
parents: 4402
diff changeset
55 addResizedHandler(new ResizedHandler() {
6fb4e29a2a9b Resize MapWidget in MapPanel manually using a ResizedHandler.
Christian Lins <christian.lins@intevation.de>
parents: 4402
diff changeset
56 @Override
6fb4e29a2a9b Resize MapWidget in MapPanel manually using a ResizedHandler.
Christian Lins <christian.lins@intevation.de>
parents: 4402
diff changeset
57 public void onResized(ResizedEvent event) {
6fb4e29a2a9b Resize MapWidget in MapPanel manually using a ResizedHandler.
Christian Lins <christian.lins@intevation.de>
parents: 4402
diff changeset
58 doLayout();
6fb4e29a2a9b Resize MapWidget in MapPanel manually using a ResizedHandler.
Christian Lins <christian.lins@intevation.de>
parents: 4402
diff changeset
59 }
6fb4e29a2a9b Resize MapWidget in MapPanel manually using a ResizedHandler.
Christian Lins <christian.lins@intevation.de>
parents: 4402
diff changeset
60 });
4570
8ca06d3040d0 flys-client: Map.updateSize() is now called on every windows movement
Christian Lins <christian.lins@intevation.de>
parents: 4553
diff changeset
61
8ca06d3040d0 flys-client: Map.updateSize() is now called on every windows movement
Christian Lins <christian.lins@intevation.de>
parents: 4553
diff changeset
62 addParentMovedHandler(new ParentMovedHandler() {
8ca06d3040d0 flys-client: Map.updateSize() is now called on every windows movement
Christian Lins <christian.lins@intevation.de>
parents: 4553
diff changeset
63 @Override
8ca06d3040d0 flys-client: Map.updateSize() is now called on every windows movement
Christian Lins <christian.lins@intevation.de>
parents: 4553
diff changeset
64 public void onParentMoved(ParentMovedEvent event) {
8ca06d3040d0 flys-client: Map.updateSize() is now called on every windows movement
Christian Lins <christian.lins@intevation.de>
parents: 4553
diff changeset
65 floodMapWidget.getMap().updateSize();
8ca06d3040d0 flys-client: Map.updateSize() is now called on every windows movement
Christian Lins <christian.lins@intevation.de>
parents: 4553
diff changeset
66 }
8ca06d3040d0 flys-client: Map.updateSize() is now called on every windows movement
Christian Lins <christian.lins@intevation.de>
parents: 4553
diff changeset
67 });
4475
6fb4e29a2a9b Resize MapWidget in MapPanel manually using a ResizedHandler.
Christian Lins <christian.lins@intevation.de>
parents: 4402
diff changeset
68 }
6fb4e29a2a9b Resize MapWidget in MapPanel manually using a ResizedHandler.
Christian Lins <christian.lins@intevation.de>
parents: 4402
diff changeset
69
6fb4e29a2a9b Resize MapWidget in MapPanel manually using a ResizedHandler.
Christian Lins <christian.lins@intevation.de>
parents: 4402
diff changeset
70 protected void doLayout() {
4541
7b454c6e2bcb MapPanel position and size now properly aligned (#568).
Christian Lins <christian.lins@intevation.de>
parents: 4476
diff changeset
71 int width = getWidth();
7b454c6e2bcb MapPanel position and size now properly aligned (#568).
Christian Lins <christian.lins@intevation.de>
parents: 4476
diff changeset
72 int height = getHeight();
7b454c6e2bcb MapPanel position and size now properly aligned (#568).
Christian Lins <christian.lins@intevation.de>
parents: 4476
diff changeset
73 GWT.log("MapPanel.size: " + width + "x" + height);
4475
6fb4e29a2a9b Resize MapWidget in MapPanel manually using a ResizedHandler.
Christian Lins <christian.lins@intevation.de>
parents: 4402
diff changeset
74
4541
7b454c6e2bcb MapPanel position and size now properly aligned (#568).
Christian Lins <christian.lins@intevation.de>
parents: 4476
diff changeset
75 width -= 2; // minus black borders
7b454c6e2bcb MapPanel position and size now properly aligned (#568).
Christian Lins <christian.lins@intevation.de>
parents: 4476
diff changeset
76 height -= toolbar.getHeight() + 4;
7b454c6e2bcb MapPanel position and size now properly aligned (#568).
Christian Lins <christian.lins@intevation.de>
parents: 4476
diff changeset
77
4571
95e23bcf6a50 Fix FLYS logo URL for printing.
Christian Lins <christian.lins@intevation.de>
parents: 4570
diff changeset
78 if (width < 0 || height < 0) {
95e23bcf6a50 Fix FLYS logo URL for printing.
Christian Lins <christian.lins@intevation.de>
parents: 4570
diff changeset
79 GWT.log("MapPanel: Oops what a size!");
95e23bcf6a50 Fix FLYS logo URL for printing.
Christian Lins <christian.lins@intevation.de>
parents: 4570
diff changeset
80 return;
95e23bcf6a50 Fix FLYS logo URL for printing.
Christian Lins <christian.lins@intevation.de>
parents: 4570
diff changeset
81 }
95e23bcf6a50 Fix FLYS logo URL for printing.
Christian Lins <christian.lins@intevation.de>
parents: 4570
diff changeset
82
4553
fac54b8470d4 Map view in DigitizePanel now shows OSM background, river axis and
Christian Lins <christian.lins@intevation.de>
parents: 4541
diff changeset
83 floodMapWidget.setSize(Integer.toString(width), Integer.toString(height));
fac54b8470d4 Map view in DigitizePanel now shows OSM background, river axis and
Christian Lins <christian.lins@intevation.de>
parents: 4541
diff changeset
84 floodMapWidget.getMap().updateSize();
832
303a923d232b Added a panel that wraps all the stuff to combine SmartGWT and GWT-OpenLayers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
85 }
303a923d232b Added a panel that wraps all the stuff to combine SmartGWT and GWT-OpenLayers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
86
303a923d232b Added a panel that wraps all the stuff to combine SmartGWT and GWT-OpenLayers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
87
303a923d232b Added a panel that wraps all the stuff to combine SmartGWT and GWT-OpenLayers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
88 public FloodMap getFloodMap() {
303a923d232b Added a panel that wraps all the stuff to combine SmartGWT and GWT-OpenLayers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
89 return floodMap;
303a923d232b Added a panel that wraps all the stuff to combine SmartGWT and GWT-OpenLayers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
90 }
1389
d29a9fa10313 Issue 265.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1386
diff changeset
91
d29a9fa10313 Issue 265.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1386
diff changeset
92 public MapToolbar getMapToolbar () {
d29a9fa10313 Issue 265.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1386
diff changeset
93 return toolbar;
d29a9fa10313 Issue 265.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1386
diff changeset
94 }
832
303a923d232b Added a panel that wraps all the stuff to combine SmartGWT and GWT-OpenLayers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
95 }
303a923d232b Added a panel that wraps all the stuff to combine SmartGWT and GWT-OpenLayers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
96 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org