comparison flys-client/src/main/java/de/intevation/flys/client/client/ui/SelectProvider.java @ 30:5709bd8f4d7c

Added a new widget that combines the module and the river selection. Users can now choose the desired plugin and river in one step. flys-client/trunk@1433 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Wed, 09 Mar 2011 09:41:45 +0000
parents c128d675386b
children d692e2ff95e2
comparison
equal deleted inserted replaced
29:44c63e7fd0d0 30:5709bd8f4d7c
4 import java.util.LinkedHashMap; 4 import java.util.LinkedHashMap;
5 import java.util.List; 5 import java.util.List;
6 6
7 import com.google.gwt.core.client.GWT; 7 import com.google.gwt.core.client.GWT;
8 8
9 import com.smartgwt.client.types.VerticalAlignment;
9 import com.smartgwt.client.widgets.Canvas; 10 import com.smartgwt.client.widgets.Canvas;
10 import com.smartgwt.client.widgets.IButton; 11 import com.smartgwt.client.widgets.IButton;
12 import com.smartgwt.client.widgets.Label;
11 import com.smartgwt.client.widgets.events.ClickEvent; 13 import com.smartgwt.client.widgets.events.ClickEvent;
12 import com.smartgwt.client.widgets.events.ClickHandler; 14 import com.smartgwt.client.widgets.events.ClickHandler;
13 import com.smartgwt.client.widgets.form.DynamicForm; 15 import com.smartgwt.client.widgets.form.DynamicForm;
14 import com.smartgwt.client.widgets.form.fields.ComboBoxItem; 16 import com.smartgwt.client.widgets.form.fields.ComboBoxItem;
17 import com.smartgwt.client.widgets.layout.HLayout;
15 import com.smartgwt.client.widgets.layout.VLayout; 18 import com.smartgwt.client.widgets.layout.VLayout;
16 19
17 import de.intevation.flys.client.shared.model.Data; 20 import de.intevation.flys.client.shared.model.Data;
18 import de.intevation.flys.client.shared.model.DataItem; 21 import de.intevation.flys.client.shared.model.DataItem;
19 import de.intevation.flys.client.shared.model.DefaultData; 22 import de.intevation.flys.client.shared.model.DefaultData;
51 } 54 }
52 55
53 56
54 public void addStepForwardHandler(StepForwardHandler handler) { 57 public void addStepForwardHandler(StepForwardHandler handler) {
55 if (handler != null) { 58 if (handler != null) {
56 GWT.log("SelectProvider - addStepForwardHandler()");
57 forwardHandlers.add(handler); 59 forwardHandlers.add(handler);
58 } 60 }
59
60 GWT.log("Handlers now: " + forwardHandlers.size());
61 } 61 }
62 62
63 63
64 /** 64 /**
65 * This method is called after the user has clicked on the 'next' button to 65 * This method is called after the user has clicked on the 'next' button to
68 * @param e The StepForwardEvent. 68 * @param e The StepForwardEvent.
69 */ 69 */
70 protected void fireStepForwardEvent(StepForwardEvent e) { 70 protected void fireStepForwardEvent(StepForwardEvent e) {
71 GWT.log("SelectProvider - fireStepForwardEvent() handlers: " + forwardHandlers.size()); 71 GWT.log("SelectProvider - fireStepForwardEvent() handlers: " + forwardHandlers.size());
72 for (StepForwardHandler handler: forwardHandlers) { 72 for (StepForwardHandler handler: forwardHandlers) {
73 GWT.log("SelectProvider - fireStepForwardEvent()");
74 handler.onStepForward(e); 73 handler.onStepForward(e);
75 } 74 }
76 } 75 }
77 76
78 public void onClick(ClickEvent e) { 77 public void onClick(ClickEvent e) {
79 GWT.log("SelectProvider - feed and advance...");
80 Data[] data = getData(); 78 Data[] data = getData();
81 79
82 GWT.log("GO ON...");
83 SelectProvider.this.fireStepForwardEvent(new StepForwardEvent(data)); 80 SelectProvider.this.fireStepForwardEvent(new StepForwardEvent(data));
84 } 81 }
85 82
86 /** 83 /**
87 * This method currently returns a 84 * This method currently returns a
96 VLayout v = new VLayout(); 93 VLayout v = new VLayout();
97 94
98 Canvas content = createWidget(data); 95 Canvas content = createWidget(data);
99 96
100 IButton button = new IButton(messages.next(), this); 97 IButton button = new IButton(messages.next(), this);
101 //IButton button = new IButton(messages.next(), new ClickHandler() {
102 // public void onClick(ClickEvent e) {
103 // GWT.log("SelectProvider - feed and advance...");
104 // Data[] data = getData();
105
106 // GWT.log("GO ON...");
107 // SelectProvider.this.fireStepForwardEvent(new StepForwardEvent(data));
108 // }
109 //});
110 98
111 v.addMember(content); 99 v.addMember(content);
112 v.addMember(button); 100 v.addMember(button);
113 101
114 return v; 102 return v;
123 * @return a combobox. 111 * @return a combobox.
124 */ 112 */
125 protected Canvas createWidget(Data data) { 113 protected Canvas createWidget(Data data) {
126 GWT.log("SelectProvider - create()"); 114 GWT.log("SelectProvider - create()");
127 115
128 DynamicForm form = new DynamicForm(); 116 HLayout layout = new HLayout();
129 combobox = new ComboBoxItem("river"); 117 Label label = new Label(messages.river_selection());
118 DynamicForm form = new DynamicForm();
119 combobox = new ComboBoxItem("river");
130 120
131 LinkedHashMap<String, String> it = new LinkedHashMap<String, String>(); 121 LinkedHashMap<String, String> it = new LinkedHashMap<String, String>();
132 122
133 for (DataItem item: data.getItems()) { 123 for (DataItem item: data.getItems()) {
134 GWT.log("Add item: " + item.getLabel()); 124 GWT.log("Add item: " + item.getLabel());
135 it.put(item.getStringValue(), item.getLabel()); 125 it.put(item.getStringValue(), item.getLabel());
136 } 126 }
137 127
128 label.setWidth(50);
138 combobox.setValueMap(it); 129 combobox.setValueMap(it);
130 combobox.setShowTitle(false);
139 form.setItems(combobox); 131 form.setItems(combobox);
140 132
141 return form; 133 layout.addMember(label);
134 layout.addMember(form);
135
136 label.setValign(VerticalAlignment.TOP);
137 layout.setAlign(VerticalAlignment.TOP);
138
139 return layout;
142 } 140 }
143 141
144 142
145 protected Data[] getData() { 143 protected Data[] getData() {
146 String selection = combobox.getValueAsString(); 144 String selection = combobox.getValueAsString();
147 145 DataItem item = new DefaultDataItem("river", null, selection);
148 GWT.log("SelectProvider - getData() Selected value = " + selection);
149 DataItem item = new DefaultDataItem("river", null, selection);
150 146
151 return new Data[] { new DefaultData( 147 return new Data[] { new DefaultData(
152 "river", null, null, new DataItem[] { item }, null) }; 148 "river", null, null, new DataItem[] { item }, null) };
153 } 149 }
154 } 150 }

http://dive4elements.wald.intevation.org