Mercurial > dive4elements > river
comparison gwt-client/src/main/java/org/dive4elements/river/client/client/ui/ModuleSelection.java @ 8874:7ebe5d463740
Fixed some minro layout problems and initial selection.
author | gernotbelger |
---|---|
date | Wed, 07 Feb 2018 18:04:53 +0100 |
parents | 60278b5fe4d9 |
children | fe207a8699f7 |
comparison
equal
deleted
inserted
replaced
8873:b78aad3bcf70 | 8874:7ebe5d463740 |
---|---|
150 } | 150 } |
151 } | 151 } |
152 | 152 |
153 protected final void setModules(Module[] newmodules) { | 153 protected final void setModules(Module[] newmodules) { |
154 modulesRiverMap.clear(); | 154 modulesRiverMap.clear(); |
155 | 155 |
156 if( newmodules == null ) | 156 if( newmodules == null ) |
157 return; | 157 return; |
158 | 158 |
159 for(final Module module : newmodules) { | 159 for(final Module module : newmodules) { |
160 final String name = module.getName(); | 160 final String name = module.getName(); |
161 | 161 |
162 /* remember rivers per module */ | 162 /* remember rivers per module */ |
163 modulesRiverMap.put(name, module.getRivers()); | 163 modulesRiverMap.put(name, module.getRivers()); |
164 | 164 |
165 /* hash by name */ | 165 /* hash by name */ |
166 modulesByName.put(name, module); | 166 modulesByName.put(name, module); |
167 | 167 |
168 /* hash by group */ | 168 /* hash by group */ |
169 final ModuleGroup group = module.getGroup(); | 169 final ModuleGroup group = module.getGroup(); |
170 if( !modulesByGroup.containsKey( group ) ) | 170 if( !modulesByGroup.containsKey( group ) ) |
171 modulesByGroup.put(group, new LinkedList<Module>()); | 171 modulesByGroup.put(group, new LinkedList<Module>()); |
172 | 172 |
173 final List<Module> modulesGroup = modulesByGroup.get(group); | 173 final List<Module> modulesGroup = modulesByGroup.get(group); |
174 modulesGroup.add(module); | 174 modulesGroup.add(module); |
175 } | 175 } |
176 } | 176 } |
177 | 177 |
190 label.setWidth(50); | 190 label.setWidth(50); |
191 label.setHeight(25); | 191 label.setHeight(25); |
192 | 192 |
193 layout.addMember(label); | 193 layout.addMember(label); |
194 layout.addMember(radioPanel); | 194 layout.addMember(radioPanel); |
195 | 195 |
196 updateRadioPanels(); | 196 updateRadioPanels(); |
197 | 197 |
198 return layout; | 198 return layout; |
199 } | 199 } |
200 | 200 |
201 protected final void updateRadioPanels() { | 201 protected final void updateRadioPanels() { |
202 | 202 |
219 for (final Entry<ModuleGroup, List<Module>> groupEntry : modulesByGroup.entrySet()) { | 219 for (final Entry<ModuleGroup, List<Module>> groupEntry : modulesByGroup.entrySet()) { |
220 | 220 |
221 final ModuleGroup group = groupEntry.getKey(); | 221 final ModuleGroup group = groupEntry.getKey(); |
222 final List<Module> groupModule = groupEntry.getValue(); | 222 final List<Module> groupModule = groupEntry.getValue(); |
223 | 223 |
224 final HLayout groupPanel = new HLayout(); | 224 |
225 | |
226 if( group.showGroupFrame() ) | |
227 { | |
228 final LayoutSpacer spacer = new LayoutSpacer(); | |
229 spacer.setWidth(25); | |
230 groupPanel.addMember(spacer); | |
231 | |
232 final Label label = new Label(group.toString()); | |
233 label.setWidth(25); | |
234 label.setHeight(25); | |
235 groupPanel.addMember(label); | |
236 } | |
237 | |
238 final DynamicForm groupForm = new DynamicForm(); | |
239 | |
240 final RadioGroupItem moduleRadio = new RadioGroupItem("modulegroup" + count++); | 225 final RadioGroupItem moduleRadio = new RadioGroupItem("modulegroup" + count++); |
241 moduleRadio.setShowTitle(false); | 226 moduleRadio.setShowTitle(false); |
242 moduleRadio.setVertical(true); | 227 moduleRadio.setWrap(false); |
243 | 228 |
244 moduleRadio.addChangeHandler(new ChangeHandler() { | 229 moduleRadio.addChangeHandler(new ChangeHandler() { |
245 @Override | 230 @Override |
246 public void onChange(ChangeEvent event) { | 231 public void onChange(ChangeEvent event) { |
247 final String selectedModuleName = (String) event.getValue(); | 232 final String selectedModuleName = (String) event.getValue(); |
248 handleModuleSelected(selectedModuleName); | 233 handleModuleSelected(selectedModuleName); |
249 } | 234 } |
250 }); | 235 }); |
251 | 236 |
252 groupForm.setItems(moduleRadio); | 237 Module selected = null; |
253 groupPanel.addMember(groupForm); | |
254 | |
255 final LinkedHashMap<String, String> values = new LinkedHashMap<String, String>(); | 238 final LinkedHashMap<String, String> values = new LinkedHashMap<String, String>(); |
256 for(final Module module : groupModule) { | 239 for(final Module module : groupModule) { |
257 values.put(module.getName(), module.getLocalizedName()); | 240 values.put(module.getName(), module.getLocalizedName()); |
258 if (module.isSelected()) { | 241 if (module.isSelected()) { |
259 GWT.log("Module " + module.getName() + " is selected."); | 242 GWT.log("Module " + module.getName() + " is selected."); |
260 selectedModule = module; | 243 selectedModule = module; |
261 moduleRadio.setValue(module.getName()); | 244 selected = module; |
262 } | 245 } |
263 } | 246 } |
247 moduleRadio.setValueMap(values); | |
248 | |
249 final DynamicForm groupForm = new DynamicForm(); | |
250 groupForm.setItems(moduleRadio); | |
251 groupForm.setColWidths(60,"*"); | |
252 | |
253 final Canvas groupPanel; | |
254 if( group.showGroupFrame() ) | |
255 { | |
256 final HLayout layout = new HLayout(); | |
257 | |
258 final LayoutSpacer spacer = new LayoutSpacer(); | |
259 // so text is on the same level as other items (with radio-icon), lets hope 25px is always right | |
260 spacer.setWidth(25); | |
261 layout.addMember(spacer); | |
262 | |
263 final Label label = new Label(group.toString()); | |
264 layout.addMember(label); | |
265 | |
266 layout.addMember(groupForm); | |
267 | |
268 groupPanel = layout; | |
269 } | |
270 else | |
271 groupPanel = groupForm; | |
264 | 272 |
265 this.groupToRadios.put( group, moduleRadio ); | 273 this.groupToRadios.put( group, moduleRadio ); |
266 this.groupToCanvas.put( group, groupPanel ); | 274 this.groupToCanvas.put( group, groupPanel ); |
267 | 275 |
268 moduleRadio.setValueMap(values); | 276 /* selection must be done after value-map was set; and, only if the selection holds for this group */ |
269 | 277 if( selected != null ) |
278 moduleRadio.setValue(selected.getName()); | |
270 | 279 |
271 radioPanel.addMember(groupPanel); | 280 radioPanel.addMember(groupPanel); |
272 } | 281 } |
273 | 282 |
274 checkRivers(getSelectedModule()); | 283 checkRivers(getSelectedModule()); |