comparison gwt-client/src/main/java/org/dive4elements/river/client/client/ui/LinkSelection.java @ 5838:5aa05a7a34b7

Rename modules to more fitting names.
author Sascha L. Teichmann <teichmann@intevation.de>
date Thu, 25 Apr 2013 15:23:37 +0200
parents flys-client/src/main/java/org/dive4elements/river/client/client/ui/LinkSelection.java@821a02bbfb4e
children 172338b1407f
comparison
equal deleted inserted replaced
5837:d9901a08d0a6 5838:5aa05a7a34b7
1 package org.dive4elements.river.client.client.ui;
2
3 import com.google.gwt.core.client.GWT;
4
5 import com.smartgwt.client.types.VerticalAlignment;
6 import com.smartgwt.client.widgets.Canvas;
7 import com.smartgwt.client.widgets.Img;
8 import com.smartgwt.client.widgets.Label;
9 import com.smartgwt.client.widgets.form.DynamicForm;
10 import com.smartgwt.client.widgets.form.fields.LinkItem;
11 import com.smartgwt.client.widgets.form.fields.events.ClickEvent;
12 import com.smartgwt.client.widgets.form.fields.events.ClickHandler;
13 import com.smartgwt.client.widgets.layout.HLayout;
14 import com.smartgwt.client.widgets.layout.VLayout;
15
16 import org.dive4elements.river.client.client.FLYSConstants;
17 import org.dive4elements.river.client.client.event.StepForwardEvent;
18 import org.dive4elements.river.client.shared.model.Data;
19 import org.dive4elements.river.client.shared.model.DataItem;
20 import org.dive4elements.river.client.shared.model.DataList;
21 import org.dive4elements.river.client.shared.model.DefaultData;
22 import org.dive4elements.river.client.shared.model.DefaultDataItem;
23
24
25 /**
26 * This UIProvider displays the DataItems of the Data object in a list of links.
27 *
28 * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a>
29 */
30 public class LinkSelection
31 extends MapSelection
32 {
33
34 private static final long serialVersionUID = -7138270638349711024L;
35
36 /** The message class that provides i18n strings.*/
37 protected FLYSConstants messages = GWT.create(FLYSConstants.class);
38
39 /** The selected river*/
40 protected Data river;
41
42 /**
43 * This method currently returns a
44 * {@link com.smartgwt.client.widgets.form.DynamicForm} that contains all
45 * data items in a list of links stored in <i>data</i>.
46 *
47 * @param data The {@link Data} object.
48 *
49 * @return a combobox.
50 */
51 @Override
52 public Canvas create(DataList data) {
53 VLayout v = new VLayout();
54 v.setMembersMargin(10);
55 v.setAlign(VerticalAlignment.TOP);
56 if (data.getState() == null) {
57 Canvas module = super.createWidget(data);
58 v.addMember(module);
59 }
60 Canvas content = createWidget(data);
61 v.addMember(content);
62
63 return v;
64 }
65
66
67 @Override
68 public Canvas createOld(DataList dataList) {
69 HLayout layout = new HLayout();
70 VLayout vLayout = new VLayout();
71 layout.setWidth("400px");
72
73 Label label = new Label(dataList.getLabel());
74 label.setWidth("200px");
75
76 int size = dataList.size();
77 for (int i = 0; i < size; i++) {
78 Data data = dataList.get(i);
79 DataItem[] items = data.getItems();
80
81 for (DataItem item: items) {
82 HLayout hLayout = new HLayout();
83
84 hLayout.addMember(label);
85 hLayout.addMember(new Label(item.getLabel()));
86
87 vLayout.addMember(hLayout);
88 vLayout.setWidth("130px");
89 }
90 }
91
92 Canvas back = getBackButton(dataList.getState());
93
94 layout.addMember(label);
95 layout.addMember(vLayout);
96 layout.addMember(back);
97
98 return layout;
99 }
100
101
102 /**
103 * This method creates the content of the widget.
104 *
105 * @param data The {@link Data} object.
106 *
107 * @return a list of links
108 */
109 @Override
110 protected Canvas createWidget(DataList data) {
111 GWT.log("LinkSelection - create()");
112
113 VLayout layout = new VLayout();
114 layout.setAlign(VerticalAlignment.TOP);
115 layout.setHeight(25);
116
117 VLayout formLayout = new VLayout();
118
119 formLayout.setLayoutLeftMargin(60);
120 int size = data.size();
121
122 for (int i = 0; i < size; i++) {
123 Data d = data.get(i);
124
125 Label label = new Label(d.getDescription());
126 label.setValign(VerticalAlignment.TOP);
127 label.setHeight(20);
128
129 for (DataItem item: d.getItems()) {
130 LinkItem link = new LinkItem("river");
131 link.setLinkTitle(item.getLabel());
132 link.setTarget(item.getStringValue());
133 link.setShowTitle(false);
134 DynamicForm f = new DynamicForm();
135 f.setItems(link);
136 formLayout.addMember(f);
137 link.addClickHandler(new ClickHandler() {
138 @Override
139 public void onClick(ClickEvent event) {
140 DataItem item = new DefaultDataItem(
141 ((LinkItem)event.getItem()).getLinkTitle(),
142 null,
143 ((LinkItem)event.getItem()).getLinkTitle());
144
145 river = new DefaultData(
146 "river",
147 null,
148 null,
149 new DataItem [] {item});
150 fireStepForwardEvent (new StepForwardEvent (getData()));
151 }
152 });
153
154 }
155 label.setWidth(50);
156
157 layout.addMember(label);
158 layout.addMember(formLayout);
159 }
160 layout.setAlign(VerticalAlignment.TOP);
161
162 String baseUrl = GWT.getHostPageBaseURL();
163 Img map = new Img(baseUrl + messages.riverMap(), 494, 582);
164 helperContainer.addMember(map);
165
166 return layout;
167 }
168
169
170 @Override
171 protected Data[] getData() {
172 Data[] module = super.getData();
173 if (module != null) {
174 return new Data[] {module[0], river};
175 }
176 else {
177 return new Data[] {river};
178 }
179 }
180 }
181 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org