Mercurial > dive4elements > river
diff gwt-client/src/main/java/org/dive4elements/river/client/client/ui/ModuleSelection.java @ 5928:34392dc16546
Implemented interaction design in project startup page.
author | Raimund Renkert <rrenkert@intevation.de> |
---|---|
date | Wed, 08 May 2013 16:34:45 +0200 |
parents | 172338b1407f |
children | 59afa245549b |
line wrap: on
line diff
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/ModuleSelection.java Wed May 08 16:32:23 2013 +0200 +++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/ModuleSelection.java Wed May 08 16:34:45 2013 +0200 @@ -16,7 +16,10 @@ import com.smartgwt.client.widgets.Canvas; import com.smartgwt.client.widgets.Label; import com.smartgwt.client.widgets.form.DynamicForm; +import com.smartgwt.client.widgets.form.fields.LinkItem; import com.smartgwt.client.widgets.form.fields.RadioGroupItem; +import com.smartgwt.client.widgets.form.fields.events.ChangeEvent; +import com.smartgwt.client.widgets.form.fields.events.ChangeHandler; import com.smartgwt.client.widgets.layout.HLayout; import com.smartgwt.client.widgets.layout.VLayout; @@ -31,7 +34,10 @@ import org.dive4elements.river.client.shared.model.DefaultDataItem; import org.dive4elements.river.client.shared.model.Module; +import java.util.ArrayList; import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; /** * The ModuleSelection combines the river selection and the module selection in @@ -57,11 +63,26 @@ /** The ModuleService used to retrieve the available modules of a user.*/ protected ModuleServiceAsync moduleService = GWT.create(ModuleService.class); + private List<String> fixRivers; + private List<String> minfoRivers; + protected Map<String, LinkItem> rivers; /** * The default constructor. */ public ModuleSelection() { + rivers = null; + //TODO: put all the rivers into a config file, or something. + fixRivers = new ArrayList<String>(); + fixRivers.add("Rhein"); + fixRivers.add("Elbe"); + fixRivers.add("Donau"); + + minfoRivers = new ArrayList<String>(); + minfoRivers.add("Elbe"); + minfoRivers.add("Rhein"); + minfoRivers.add("Oder"); + readModules(); } @@ -141,6 +162,27 @@ DynamicForm form = new DynamicForm(); radio = new RadioGroupItem("plugin"); + radio.addChangeHandler(new ChangeHandler() { + @Override + public void onChange(ChangeEvent event) { + String selected = (String)event.getValue(); + if (!rivers.isEmpty()) { + for (Map.Entry<String, LinkItem> s: rivers.entrySet()) { + if (selected.equals("minfo") && !minfoRivers.contains(s.getKey())) { + s.getValue().hide(); + } + else if (selected.equals("fixanalysis") && !fixRivers.contains(s.getKey())) { + s.getValue().hide(); + } + else { + s.getValue().show(); + s.getValue().setCellStyle("formCell"); + } + callUnHighlightRiver(s.getKey()); + } + } + } + }); label.setWidth(50); label.setHeight(25); @@ -180,5 +222,13 @@ return new Data[] {data}; } + + public void setRivers(Map<String, LinkItem> rivers) { + this.rivers = rivers; + } + + private native void callUnHighlightRiver(String name) /*-{ + $wnd.unHighlight(name); + }-*/; } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :