Mercurial > dive4elements > river
view flys-client/src/main/java/de/intevation/flys/client/client/ui/LinkSelection.java @ 2441:f4001430754f
#557 Fixed wrong i18n string for tooltip in map controls.
flys-client/trunk@4109 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Thu, 01 Mar 2012 15:33:29 +0000 |
parents | be842e36ce1c |
children | 12245d1386bb |
line wrap: on
line source
package de.intevation.flys.client.client.ui; import com.google.gwt.core.client.GWT; import com.smartgwt.client.types.VerticalAlignment; 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.layout.HLayout; import com.smartgwt.client.widgets.layout.VLayout; import com.smartgwt.client.widgets.form.fields.events.ClickHandler; import com.smartgwt.client.widgets.form.fields.events.ClickEvent; import de.intevation.flys.client.shared.model.Data; import de.intevation.flys.client.shared.model.DataItem; import de.intevation.flys.client.shared.model.DataList; import de.intevation.flys.client.shared.model.DefaultData; import de.intevation.flys.client.shared.model.DefaultDataItem; import de.intevation.flys.client.client.event.StepForwardEvent; import de.intevation.flys.client.client.FLYSConstants; /** * This UIProvider displays the DataItems of the Data object in a list of links. * * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a> */ public class LinkSelection extends MapSelection { /** The message class that provides i18n strings.*/ protected FLYSConstants messages = GWT.create(FLYSConstants.class); /** The combobox.*/ protected DynamicForm form; /** The selected river*/ protected Data river; /** * This method currently returns a * {@link com.smartgwt.client.widgets.form.DynamicForm} that contains all * data items in a list of links stored in <i>data</i>. * * @param data The {@link Data} object. * * @return a combobox. */ public Canvas create(DataList data) { VLayout v = new VLayout(); v.setMembersMargin(10); v.setAlign(VerticalAlignment.TOP); if (data.getState() == null) { Canvas module = super.createWidget(data); v.addMember(module); } Canvas content = createWidget(data); v.addMember(content); return v; } public Canvas createOld(DataList dataList) { HLayout layout = new HLayout(); VLayout vLayout = new VLayout(); layout.setWidth("400px"); Label label = new Label(dataList.getLabel()); label.setWidth("200px"); int size = dataList.size(); for (int i = 0; i < size; i++) { Data data = dataList.get(i); DataItem[] items = data.getItems(); for (DataItem item: items) { HLayout hLayout = new HLayout(); hLayout.addMember(label); hLayout.addMember(new Label(item.getLabel())); vLayout.addMember(hLayout); vLayout.setWidth("130px"); } } Canvas back = getBackButton(dataList.getState()); layout.addMember(label); layout.addMember(vLayout); layout.addMember(back); return layout; } /** * This method creates the content of the widget. * * @param data The {@link Data} object. * * @return a list of links */ protected Canvas createWidget(DataList data) { GWT.log("LinkSelection - create()"); VLayout layout = new VLayout(); layout.setAlign(VerticalAlignment.TOP); layout.setHeight(25); form = new DynamicForm(); VLayout formLayout = new VLayout(); formLayout.setLayoutLeftMargin(60); int size = data.size(); for (int i = 0; i < size; i++) { Data d = data.get(i); Label label = new Label(d.getDescription()); label.setValign(VerticalAlignment.TOP); label.setHeight(20); for (DataItem item: d.getItems()) { LinkItem link = new LinkItem("river"); link.setLinkTitle(item.getLabel()); link.setTarget(item.getStringValue()); link.setShowTitle(false); DynamicForm f = new DynamicForm(); f.setItems(link); formLayout.addMember(f); link.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { DataItem item = new DefaultDataItem( ((LinkItem)event.getItem()).getLinkTitle(), null, ((LinkItem)event.getItem()).getLinkTitle()); river = new DefaultData( "river", null, null, new DataItem [] {item}); fireStepForwardEvent (new StepForwardEvent (getData())); } }); } label.setWidth(50); layout.addMember(label); layout.addMember(formLayout); } layout.setAlign(VerticalAlignment.TOP); return layout; } protected Data[] getData() { Data[] module = super.getData(); if (module != null) { return new Data[] {module[0], river}; } else { return new Data[] {river}; } } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :