comparison flys-client/src/main/java/de/intevation/flys/client/client/ui/TextProvider.java @ 791:9b1499a65aaa

Finished the panel that allows integers and the string 'auto'. flys-client/trunk@2298 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Thu, 07 Jul 2011 10:33:29 +0000
parents 4e0b73b7113b
children 40269a176cd2
comparison
equal deleted inserted replaced
790:3fa8583434b2 791:9b1499a65aaa
1 package de.intevation.flys.client.client.ui; 1 package de.intevation.flys.client.client.ui;
2
3 import java.util.ArrayList;
4 import java.util.List;
2 5
3 import com.google.gwt.core.client.GWT; 6 import com.google.gwt.core.client.GWT;
4 7
8 import com.smartgwt.client.data.DataSource;
9 import com.smartgwt.client.data.DataSourceField;
10 import com.smartgwt.client.types.Alignment;
11 import com.smartgwt.client.types.FieldType;
12 import com.smartgwt.client.types.TitleOrientation;
5 import com.smartgwt.client.widgets.Canvas; 13 import com.smartgwt.client.widgets.Canvas;
6 import com.smartgwt.client.widgets.Label; 14 import com.smartgwt.client.widgets.Label;
7 import com.smartgwt.client.widgets.form.DynamicForm; 15 import com.smartgwt.client.widgets.form.DynamicForm;
8 import com.smartgwt.client.widgets.form.fields.TextItem; 16 import com.smartgwt.client.widgets.form.events.ItemChangedEvent;
17 import com.smartgwt.client.widgets.form.events.ItemChangedHandler;
18 import com.smartgwt.client.widgets.form.validator.Validator;
9 import com.smartgwt.client.widgets.layout.HLayout; 19 import com.smartgwt.client.widgets.layout.HLayout;
10 20
11 import de.intevation.flys.client.shared.model.Data; 21 import de.intevation.flys.client.shared.model.Data;
12 import de.intevation.flys.client.shared.model.DataItem; 22 import de.intevation.flys.client.shared.model.DataItem;
13 import de.intevation.flys.client.shared.model.DataList; 23 import de.intevation.flys.client.shared.model.DataList;
24 import de.intevation.flys.client.shared.model.DefaultData;
25 import de.intevation.flys.client.shared.model.DefaultDataItem;
26
27 import de.intevation.flys.client.client.FLYSConstants;
14 28
15 29
16 /** 30 /**
17 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> 31 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
18 */ 32 */
19 public class TextProvider extends AbstractUIProvider { 33 public class TextProvider
34 extends AbstractUIProvider
35 implements ItemChangedHandler
36 {
20 37
21 public static final String FIELD_NAME = "textprovider_inputfield"; 38 public static final String FIELD_NAME = "textprovider_inputfield";
39 public static final int FORM_WIDTH = 400;
40 public static final int TITLE_WIDTH = 75;
41
42
43 protected static FLYSConstants MSG = GWT.create(FLYSConstants.class);
22 44
23 protected DynamicForm form; 45 protected DynamicForm form;
24 46
25 47
26 @Override 48 @Override
27 public Canvas create(DataList dataList) { 49 public Canvas create(DataList dataList) {
28 GWT.log("CREATE NEW TEXTPROVIDER PANEL");
29
30 return createForm(); 50 return createForm();
31 } 51 }
32 52
33 53
34 protected Canvas createForm() { 54 protected Canvas createForm() {
35 return createForm(null); 55 return createForm(null);
36 } 56 }
37 57
38 58
39 protected Canvas createForm(String title) { 59 protected Canvas createForm(String title) {
40 HLayout layout = new HLayout(); 60 form = new DynamicForm();
61 form.addItemChangedHandler(this);
62 form.setTitlePrefix("");
63 form.setTitleSuffix(": ");
64 form.setTitleAlign(Alignment.LEFT);
65 form.setTitleOrientation(TitleOrientation.LEFT);
66 form.setTitleWidth(getTitleWidth());
67 form.setWidth(getFormWidth());
41 68
42 if (title != null && title.length() > 0) { 69 DataSourceField item = createField();
43 Label label = new Label(title); 70 item.setTitle(title);
44 label.setHeight(25); 71
45 layout.addMember(label); 72 Validator validator = getValidator();
73 if (validator != null) {
74 item.setValidators(validator);
46 } 75 }
47 76
48 form = new DynamicForm(); 77 DataSource source = new DataSource();
49 layout.addMember(form); 78 source.setFields(item);
50 79
51 TextItem item = new TextItem(FIELD_NAME); 80 form.setDataSource(source);
52 item.setShowTitle(false);
53 81
54 form.setFields(item); 82 return form;
83 }
55 84
56 return layout; 85
86 protected DataSourceField createField() {
87 return new DataSourceField(getFieldName(), getFieldType());
88 }
89
90
91 protected String getFieldName() {
92 return FIELD_NAME;
93 }
94
95
96 protected FieldType getFieldType() {
97 return FieldType.TEXT;
98 }
99
100
101 protected Validator getValidator() {
102 return null;
103 }
104
105
106 protected int getFormWidth() {
107 return FORM_WIDTH;
108 }
109
110
111 protected int getTitleWidth() {
112 return TITLE_WIDTH;
113 }
114
115
116 protected String getDataName() {
117 return null;
118 }
119
120
121 protected String getValueAsString() {
122 return (String) form.getValue(getFieldName());
57 } 123 }
58 124
59 125
60 @Override 126 @Override
61 public Canvas createOld(DataList dataList) { 127 public Canvas createOld(DataList dataList) {
77 return layout; 143 return layout;
78 } 144 }
79 145
80 146
81 @Override 147 @Override
148 public List<String> validate() {
149 List<String> errors = new ArrayList<String>();
150
151 if (!form.validate()) {
152 errors.add(MSG.wrongFormat());
153 }
154
155 return errors;
156 }
157
158
159 @Override
82 protected Data[] getData() { 160 protected Data[] getData() {
83 return new Data[0]; 161 String value = getValueAsString();
162 String name = getDataName();
163
164 DataItem item = new DefaultDataItem(name, name, value);
165 return new Data[] { new DefaultData(
166 name, null, null, new DataItem[] { item }) };
167 }
168
169
170 @Override
171 public void onItemChanged(ItemChangedEvent event) {
172 form.validate();
84 } 173 }
85 } 174 }
86 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : 175 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org