annotate gwt-client/src/main/java/org/dive4elements/river/client/client/ui/map/MyWMSLoadHandler.java @ 9700:b2768f367dff

handler for wms theme legend
author dnt_bjoernsen <d.tironi@bjoernsen.de>
date Wed, 20 Jan 2021 19:06:57 +0100
parents
children
rev   line source
9700
b2768f367dff handler for wms theme legend
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
diff changeset
1 package org.dive4elements.river.client.client.ui.map;
b2768f367dff handler for wms theme legend
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
diff changeset
2
b2768f367dff handler for wms theme legend
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
diff changeset
3 import com.google.gwt.event.dom.client.LoadEvent;
b2768f367dff handler for wms theme legend
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
diff changeset
4 import com.google.gwt.event.shared.HandlerRegistration;
b2768f367dff handler for wms theme legend
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
diff changeset
5 import com.google.gwt.user.client.ui.Image;
b2768f367dff handler for wms theme legend
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
diff changeset
6 import com.smartgwt.client.widgets.layout.HLayout;
b2768f367dff handler for wms theme legend
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
diff changeset
7
b2768f367dff handler for wms theme legend
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
diff changeset
8 public class MyWMSLoadHandler implements com.google.gwt.event.dom.client.LoadHandler {
b2768f367dff handler for wms theme legend
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
diff changeset
9 private Image m_image;
b2768f367dff handler for wms theme legend
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
diff changeset
10 private HLayout m_row;
b2768f367dff handler for wms theme legend
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
diff changeset
11 private HandlerRegistration m_handelReg;
b2768f367dff handler for wms theme legend
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
diff changeset
12
b2768f367dff handler for wms theme legend
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
diff changeset
13 public MyWMSLoadHandler(HLayout row, Image image) {
b2768f367dff handler for wms theme legend
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
diff changeset
14 m_image = image;
b2768f367dff handler for wms theme legend
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
diff changeset
15 m_row = row;
b2768f367dff handler for wms theme legend
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
diff changeset
16 m_handelReg = image.addLoadHandler(this);
b2768f367dff handler for wms theme legend
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
diff changeset
17 }
b2768f367dff handler for wms theme legend
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
diff changeset
18
b2768f367dff handler for wms theme legend
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
diff changeset
19 @Override
b2768f367dff handler for wms theme legend
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
diff changeset
20 public void onLoad(LoadEvent event) {
b2768f367dff handler for wms theme legend
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
diff changeset
21 setDimensions( );
b2768f367dff handler for wms theme legend
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
diff changeset
22 if (m_handelReg != null)
b2768f367dff handler for wms theme legend
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
diff changeset
23 m_handelReg.removeHandler();
b2768f367dff handler for wms theme legend
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
diff changeset
24 }
b2768f367dff handler for wms theme legend
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
diff changeset
25
b2768f367dff handler for wms theme legend
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
diff changeset
26 private void setDimensions() {
b2768f367dff handler for wms theme legend
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
diff changeset
27 final int imageWidth = m_image.getWidth();
b2768f367dff handler for wms theme legend
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
diff changeset
28 final int imageHeight = m_image.getHeight();
b2768f367dff handler for wms theme legend
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
diff changeset
29 final double widthPercent = imageWidth / 400.;
b2768f367dff handler for wms theme legend
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
diff changeset
30
b2768f367dff handler for wms theme legend
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
diff changeset
31 // removing the limit of 150px height (legend can have an infinite height now,
b2768f367dff handler for wms theme legend
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
diff changeset
32 // as long as the width is less/eq 400px; if the width is >400,
b2768f367dff handler for wms theme legend
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
diff changeset
33 // the legend will be scaled to 400px width; the ratio will be kept)
b2768f367dff handler for wms theme legend
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
diff changeset
34
b2768f367dff handler for wms theme legend
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
diff changeset
35 // final double heightPercent = imageHeight / 150.;
b2768f367dff handler for wms theme legend
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
diff changeset
36 if (widthPercent > 1)// || heightPercent > 1) {
b2768f367dff handler for wms theme legend
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
diff changeset
37 m_image.setSize((int) (imageWidth / widthPercent) + "px", (int) (imageHeight / widthPercent) + "px");
b2768f367dff handler for wms theme legend
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
diff changeset
38
b2768f367dff handler for wms theme legend
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
diff changeset
39
b2768f367dff handler for wms theme legend
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
diff changeset
40 final int minHeight = 30;
b2768f367dff handler for wms theme legend
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
diff changeset
41 m_row.setHeight( m_image.getHeight() < minHeight ? minHeight : m_image.getHeight());
b2768f367dff handler for wms theme legend
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
diff changeset
42 m_row.setWidth( m_image.getWidth());
b2768f367dff handler for wms theme legend
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
diff changeset
43 }
b2768f367dff handler for wms theme legend
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
diff changeset
44 }

http://dive4elements.wald.intevation.org