annotate flys-client/src/main/java/de/intevation/flys/client/client/ui/stationinfo/MeasurementStationListGrid.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 6f6461e07854
children b660090b417d
rev   line source
4956
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.client.client.ui.stationinfo;
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
2
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
3 import com.google.gwt.core.client.GWT;
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
4
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
5 import com.smartgwt.client.types.ListGridFieldType;
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
6 import com.smartgwt.client.widgets.Canvas;
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
7 import com.smartgwt.client.widgets.WidgetCanvas;
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
8 import com.smartgwt.client.widgets.grid.ListGridField;
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
9 import com.smartgwt.client.widgets.grid.ListGridRecord;
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
10
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
11 import de.intevation.flys.client.client.FLYS;
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
12 import de.intevation.flys.client.shared.model.MeasurementStation;
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
13 import de.intevation.flys.client.shared.model.RiverInfo;
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
14
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
15 import java.util.ArrayList;
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
16 import java.util.List;
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
17
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
18 /**
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
19 * @author <a href="mailto:bjoern.ricks@intevation.de">Björn Ricks</a>
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
20 */
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
21 public class MeasurementStationListGrid extends InfoListGrid {
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
22
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
23 public MeasurementStationListGrid(FLYS flys) {
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
24 super(flys);
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
25 ListGridField nfield = new ListGridField("name", "Messtelle");
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
26 ListGridField sfield = new ListGridField("kmstart", "Start [km]", 60);
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
27 ListGridField efield = new ListGridField("kmend", "Ende [km]", 60);
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
28 ListGridField stfield = new ListGridField("station", "Station [km]");
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
29 ListGridField lfield = new ListGridField("link", "Link");
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
30 lfield.setType(ListGridFieldType.LINK);
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
31 this.setFields(nfield, sfield, efield, stfield, lfield);
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
32 }
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
33
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
34 /**
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
35 * Resets the items of the tree.
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
36 * If the list of gauges is empty or null the tree will be empty.
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
37 */
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
38 @Override
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
39 public void setRiverInfo(RiverInfo riverinfo) {
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
40 List<MeasurementStation> stations = riverinfo.getMeasurementStations();
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
41 GWT.log("MeasurmentStationListGrid - setRiverInfo " + stations);
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
42
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
43 if (stations != null && !stations.isEmpty()) {
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
44
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
45 ArrayList<MeasurementStation> emptystations =
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
46 new ArrayList<MeasurementStation>();
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
47
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
48 if (!riverinfo.isKmUp()) {
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
49 for (MeasurementStation station : stations) {
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
50 addStation(station, emptystations);
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
51 }
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
52 }
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
53 else {
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
54 for (int i = stations.size()-1; i >= 0; i--) {
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
55 MeasurementStation station = stations.get(i);
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
56 addStation(station, emptystations);
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
57 }
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
58 }
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
59
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
60 // put empty stations to the end
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
61 for (MeasurementStation station : emptystations) {
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
62 addStation(station);
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
63 }
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
64 }
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
65 }
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
66
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
67 private void addStation(MeasurementStation station,
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
68 List<MeasurementStation> empty) {
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
69 if (station.getKmStart() != null && station.getKmEnd() != null) {
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
70 addStation(station);
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
71 }
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
72 else {
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
73 empty.add(station);
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
74 }
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
75 }
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
76
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
77 private void addStation(MeasurementStation station) {
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
78 ListGridRecord record = new MeasurementStationRecord(station);
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
79 this.addData(record);
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
80 }
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
81
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
82 @Override
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
83 public void open() {
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
84 }
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
85
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
86 @Override
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
87 protected Canvas getExpandPanel(ListGridRecord record) {
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
88 MeasurementStationRecord station = (MeasurementStationRecord)record;
4962
6f6461e07854 Move classes to its own java file
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4957
diff changeset
89 return new WidgetCanvas(new MeasurementStationInfoPanel(station));
4956
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
90 }
f46a07c11324 Refactor Pegel- and Messtelleninfo in client ui
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
91 }

http://dive4elements.wald.intevation.org