Mercurial > dive4elements > river
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 } |