Mercurial > dive4elements > river
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 : |