Mercurial > dive4elements > river
view flys-client/src/main/java/de/intevation/flys/client/client/ui/chart/ChartPropertiesEditor.java @ 1474:0ba23e6fef0c
Refactored, set collectionview in Themepanels constructors.
flys-client/trunk@3519 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Thu, 22 Dec 2011 08:58:33 +0000 |
parents | d0bcf5ba7adf |
children | 237e7450ae2e |
line wrap: on
line source
package de.intevation.flys.client.client.ui.chart; import java.util.List; import com.google.gwt.core.client.GWT; import com.smartgwt.client.widgets.Window; import com.smartgwt.client.widgets.tab.TabSet; import com.smartgwt.client.widgets.tab.Tab; import com.smartgwt.client.widgets.layout.VLayout; import com.smartgwt.client.widgets.layout.HLayout; import com.smartgwt.client.widgets.Button; import com.smartgwt.client.widgets.Label; import com.smartgwt.client.widgets.Canvas; import com.smartgwt.client.widgets.form.DynamicForm; import com.smartgwt.client.widgets.form.fields.FormItem; import com.smartgwt.client.widgets.form.fields.CheckboxItem; import com.smartgwt.client.widgets.form.fields.TextItem; import com.smartgwt.client.widgets.events.ClickEvent; import com.smartgwt.client.widgets.events.ClickHandler; import com.smartgwt.client.widgets.form.fields.events.ChangedHandler; import com.smartgwt.client.widgets.form.fields.events.ChangedEvent; import com.smartgwt.client.types.Alignment; import de.intevation.flys.client.client.FLYSConstants; import de.intevation.flys.client.client.ui.OutputTab; import de.intevation.flys.client.shared.model.Property; import de.intevation.flys.client.shared.model.PropertyGroup; import de.intevation.flys.client.shared.model.PropertySetting; import de.intevation.flys.client.shared.model.BooleanProperty; import de.intevation.flys.client.shared.model.DoubleProperty; import de.intevation.flys.client.shared.model.IntegerProperty; import de.intevation.flys.client.shared.model.StringProperty; import de.intevation.flys.client.shared.model.Settings; import de.intevation.flys.client.shared.model.Collection; /** * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a> */ public class ChartPropertiesEditor extends Window implements ClickHandler { /** The interface that provides i18n messages. */ protected FLYSConstants MSG = GWT.create(FLYSConstants.class); /** The tab called the editor window. */ protected OutputTab tab; /** The tabset for chart properties */ protected TabSet tabs; /** * Setup editor dialog. * @param callerTab The tab called the editor window. */ public ChartPropertiesEditor(OutputTab callerTab) { this.tab = callerTab; this.tabs = new TabSet(); init(); } /** * Initialize the editor window and its components. */ protected void init() { setTitle(MSG.properties()); setCanDragReposition(true); setCanDragResize(true); Collection c = tab.getCollectionView().getCollection(); String outputName = tab.getOutputName(); Settings settings = c.getSettings(outputName); if (settings == null) { return; } List<String> list = settings.getCategories(); for (int i = 0; i < list.size(); i++) { Tab t = new Tab(MSG.getString(list.get(i))); List<Property> props = settings.getSettings(list.get(i)); VLayout layout = new VLayout(); for (int j = 0; j < props.size(); j++) { if (props.get(j) instanceof PropertyGroup) { layout.addMember(generatePropertyGroup(props.get(j))); } else if (props.get(j) instanceof PropertySetting) { PropertySetting p = (PropertySetting)props.get(j); if (p.getAttribute("display").equals("false")) { continue; } layout.addMember(generatePropertySetting(props.get(j))); } } t.setPane(layout); tabs.addTab(t); } Button accept = new Button(MSG.label_ok()); Button cancel = new Button(MSG.label_cancel()); cancel.addClickHandler(this); accept.addClickHandler(new ClickHandler() { public void onClick(ClickEvent e) { } }); HLayout buttons = new HLayout(); buttons.addMember(accept); buttons.addMember(cancel); buttons.setAlign(Alignment.CENTER); buttons.setHeight(30); addItem(tabs); addItem(buttons); setWidth(340); setHeight(470); centerInPage(); } /** * This method is called when the user aborts theming. * @param event The event. */ public void onClick(ClickEvent event) { this.hide(); } /** * */ protected Canvas generatePropertyGroup(Property group) { PropertyGroup pg = (PropertyGroup)group; List<Property> list = pg.getProperties(); if (pg.getName().equals("axis")) { Label scale = new Label(MSG.scale() + " :"); scale.setHeight(25); scale.setMargin(2); DynamicForm form1 = new DynamicForm(); DynamicForm form2 = new DynamicForm(); form2.setNumCols(6); StringProperty label = (StringProperty)pg.getPropertyByName("label"); FormItem title = createStringProperty(label); title.setValue(label.getValue()); IntegerProperty fontsize = (IntegerProperty)pg.getPropertyByName("font-size"); FormItem fs = createIntegerProperty(fontsize); fs.setValue(fontsize.getValue()); DoubleProperty upper = (DoubleProperty)pg.getPropertyByName("upper"); final FormItem range1 = createDoubleProperty(upper); range1.setValue(upper.getValue()); range1.setWidth(50); DoubleProperty lower = (DoubleProperty)pg.getPropertyByName("lower"); final FormItem range2 = createDoubleProperty(lower); range2.setValue(lower.getValue()); range2.setWidth(50); BooleanProperty fixation = (BooleanProperty)pg.getPropertyByName("fixation"); FormItem fix = createBooleanProperty(fixation); fix.addChangedHandler(new ChangedHandler() { public void onChanged(ChangedEvent e) { if ((Boolean)e.getValue()) { range1.enable(); range2.enable(); } else { range1.disable(); range2.disable(); } } }); if (fixation.getValue().equals("true")) { fix.setValue(true); range1.enable(); range2.enable(); } else { fix.setValue(false); range1.disable(); range2.disable(); } form1.setFields(title, fs); form2.setFields(fix, range1, range2); HLayout scaleLayout = new HLayout(); scaleLayout.setHeight(30); scaleLayout.addMember(scale); scaleLayout.addMember(form2); scaleLayout.addStyleName("property-dialog-axis"); VLayout root = new VLayout(); root.addMember(form1); root.addMember(scaleLayout); root.setHeight(90); return root; } return null; } /** * */ protected DynamicForm generatePropertySetting(Property setting) { DynamicForm form = new DynamicForm(); if (setting instanceof BooleanProperty) { form.setFields(createBooleanProperty((BooleanProperty)setting)); } else if (setting instanceof DoubleProperty) { form.setFields(createDoubleProperty((DoubleProperty)setting)); } else if (setting instanceof IntegerProperty) { form.setFields(createIntegerProperty((IntegerProperty)setting)); } else if (setting instanceof StringProperty) { form.setFields(createStringProperty((StringProperty)setting)); } return form; } /** * */ protected FormItem createStringProperty(StringProperty sp) { String name = sp.getName(); if (name.contains("-")) { name = name.replace("-", "_"); } TextItem item = new TextItem(); item.setTitle(MSG.getString(name)); item.setTitleAlign(Alignment.LEFT); return item; } /** * */ protected FormItem createBooleanProperty(BooleanProperty bp) { String name = bp.getName(); if (name.contains("-")) { name = name.replace("-", "_"); } CheckboxItem item = new CheckboxItem("item", MSG.getString(name)); item.setLabelAsTitle(true); item.setTitleStyle("color:#000;"); item.setTitleAlign(Alignment.LEFT); return item; } /** * */ protected FormItem createDoubleProperty(DoubleProperty dp) { String name = dp.getName(); if (name.contains("-")) { name = name.replace("-", "_"); } TextItem item = new TextItem(); item.setTitle(MSG.getString(name)); item.setTitleAlign(Alignment.LEFT); return item; } /** * */ protected FormItem createIntegerProperty(IntegerProperty ip) { String name = ip.getName(); if (name.contains("-")) { name = name.replace("-", "_"); } TextItem item = new TextItem(); item.setTitle(MSG.getString(name)); item.setTitleAlign(Alignment.LEFT); return item; } }