Statistics
| Revision:

root / branches / v2_0_0_prep / applications / appgvSIG / src / org / gvsig / app / tools / swing / serv / field / dynobject / test / TestDynObject.java @ 33622

History | View | Annotate | Download (10.2 KB)

1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 * 
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 * 
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 * 
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
19
 * MA  02110-1301, USA.
20
 * 
21
 */
22
/*
23
 * AUTHORS (In addition to CIT):
24
 * 2010 Institute of New Imaging Technologies (INIT): 
25
 *   http://www.init.uji.es
26
 * Geographic Information research group: 
27
 *   http://www.geoinfo.uji.es
28
 * Universitat Jaume I, Spain
29
 */
30

    
31
/**
32
 * 
33
 */
34
package org.gvsig.app.tools.swing.serv.field.dynobject.test;
35

    
36
import java.io.File;
37
import java.util.ArrayList;
38
import java.util.Date;
39
import java.util.List;
40

    
41
import org.gvsig.tools.ToolsLocator;
42
import org.gvsig.tools.dataTypes.DataTypes;
43
import org.gvsig.tools.dynobject.DynClass;
44
import org.gvsig.tools.dynobject.DynObject;
45
import org.gvsig.tools.dynobject.DynObjectManager;
46
import org.gvsig.tools.dynobject.DynObjectValueItem;
47
import org.gvsig.tools.dynobject.impl.DefaultDynClass;
48
import org.gvsig.tools.service.ServiceException;
49
import org.gvsig.tools.swing.api.ToolsSwingLocator;
50
import org.gvsig.tools.swing.api.dynobject.DynObjectModel;
51
import org.gvsig.tools.swing.api.dynobject.DynObjectSwingManager;
52

    
53
/**
54
 * @author <a href="mailto:reinhold@uji.es">cmartin</a>
55
 * 
56
 */
57
public class TestDynObject extends DefaultDynClass {
58

    
59
    private static final String DYNDESCRIPTION = "";
60

    
61
    public static final String DYNNAME = "TestDynObject";
62

    
63
    private static DynObjectSwingManager swingManager =
64
        ToolsSwingLocator.getDynObjectSwingManager();
65

    
66
    private static DynObjectManager dynManager =
67
        ToolsLocator.getDynObjectManager();
68

    
69
    // 
70
    /**
71
     * @param manager
72
     * @param name
73
     * @param description
74
     */
75
    public TestDynObject(String name, String description) {
76
        super(dynManager, name, description);
77
        initDynClass();
78
    }
79

    
80
    // private DynClass createDynClass(DynClass dynClass) {
81
    // DynClass dynClass2 = createDynClass2(dynClass);
82
    // // dynClass2.addDynField("dynObject").setType(DataTypes.DYNOBJECT);
83
    // return dynClass2;
84
    // }
85

    
86
    /**
87
     * 
88
     */
89
    public TestDynObject() {
90
        super(dynManager, DYNNAME, DYNDESCRIPTION);
91
        initDynClass();
92
    }
93

    
94
    public static void registerDynObject() {
95
        dynManager.add(new TestDynObject());
96
    }
97

    
98
    /**
99
     * @return
100
     */
101
    // private JDynObjectComponent getAddressDynObjectView() {
102
    // try {
103
    // Adress testDynObject = (TestDynObject) dynManager
104
    // .get("Test");
105
    // return swingManager.createJDynObjectComponent(testDynObject
106
    // .createDynObject(), testDynObject.createDynModel());
107
    // } catch (ServiceException e) {
108
    // return null;
109
    // }
110
    // }
111

    
112
    /**
113
     * @return
114
     */
115
    private void initDynClass() {
116

    
117
        this.addDynFieldList("Address-list").setMandatory(true)
118
            .setElementsType(DataTypes.DYNOBJECT);
119

    
120
        // TODO add all the available data types
121
        this.addDynFieldString("text");
122
        this.addDynFieldString("label").setReadOnly(true);
123

    
124
        this.addDynFieldInt("integer").setReadOnly(true).setMandatory(true);
125

    
126
        this.addDynFieldList("boolean-list").setMandatory(true)
127
            .setElementsType(DataTypes.BOOLEAN);
128
        this.addDynFieldList("integer-list").setMandatory(true)
129
            .setElementsType(DataTypes.INT);
130
        this.addDynFieldFloat("float");
131
        this.addDynFieldList("float-list").setMandatory(true).setElementsType(
132
            DataTypes.FLOAT);
133
        this.addDynFieldFloat("byte");
134
        this.addDynFieldList("byte-list").setMandatory(true).setElementsType(
135
            DataTypes.BYTE);
136

    
137
        DynObjectValueItem[] values = new DynObjectValueItem[3];
138
        values[0] = new DynObjectValueItem(0, "monday");
139
        values[1] = new DynObjectValueItem(1, "tuesday");
140
        values[2] = new DynObjectValueItem(2, "wednesday");
141
        this.addDynFieldInt("combo").setDefaultFieldValue(0)
142
            .setAvailableValues(values).setMandatory(true);
143

    
144
        this.addDynFieldList("combo-list").setMandatory(true).setElementsType(
145
            DataTypes.INT).getElementsType().setAvailableValues(values);
146

    
147
        this.addDynField("file").setMandatory(true).setType(DataTypes.FILE);
148
        this.addDynField("folder").setMandatory(true).setType(DataTypes.FOLDER);
149
        this.addDynFieldList("folders").setElementsType(DataTypes.FOLDER);
150
        this.addDynFieldList("files").setElementsType(DataTypes.FILE);
151

    
152
        this.addDynFieldDate("date").setMandatory(true).setSubtype(null);
153
        this.addDynField("date-only").setMandatory(true)
154
            .setType(DataTypes.DATE).setSubtype(DataTypes.SUBTYPE_DATE);
155
        this.addDynFieldDate("time-only").setMandatory(true).setType(
156
            DataTypes.TIME).setSubtype(null);
157
        this.addDynField("timestamp").setMandatory(true).setType(
158
            DataTypes.TIMESTAMP);
159

    
160
        this.addDynFieldBoolean("boolean");
161

    
162
        this.addDynField("Address").setType(DataTypes.DYNOBJECT);
163

    
164
        // this.addDynField("dates").setMandatory(true)
165
        // .setType(DataTypes.DATE);
166
    }
167

    
168
    /**
169
     * @return
170
     * @throws ServiceException
171
     */
172
    public static DynObjectModel createDynModel(DynClass dynClass) throws ServiceException {
173
        DynObjectModel model = swingManager.createEmptyDynObjectModel(dynClass);
174
        model.add("text");
175
        model.add("label");
176
        model.add("boolean");
177
        model.add("boolean-list");
178

    
179
        // model.add("SRS", "srs");
180
        // model.add("SRS", "crs");
181
        model.add("Date", "date");
182
        model.add("Date", "date-only");
183
        model.add("Date", "time-only");
184
        model.add("Date", "timestamp");
185
        model.add("Files", "file");
186
        model.add("Files", "folder");
187
        model.add("Files", "files");
188
        model.add("Files", "folders");
189

    
190
        model.add("integers", "integer");
191
        model.add("integers", "float");
192
        model.add("list", "byte");
193
        model.add("list", "integer-list");
194
        model.add("list", "float-list");
195
        model.add("list", "byte-list");
196

    
197
        model.add("combo-list");
198
        model.add("combo");
199
        model.add("combo");
200

    
201
        model.add("DynObjects", "Address");
202
        model.add("DynObjects", "Address-list");
203
        return model;
204
    }
205

    
206
    public static DynObject createDynObject(DynClass dynClass) throws ServiceException {
207
        DynObject dynObject = dynManager.createDynObject(dynClass);
208

    
209
        dynObject.setDynValue("text", "some text");
210
        dynObject.setDynValue("label", "some readonly text");
211

    
212
        // BOOLEAN LIST
213
        List<Boolean> booleanList = new ArrayList<Boolean>();
214
        dynObject.setDynValue("boolean-list", booleanList);
215

    
216
        // a?ado los valores del list
217
        booleanList.add(true);
218
        booleanList.add(false);
219
        booleanList.add(null);
220

    
221
        // INTEGER LIST
222
        List<Integer> integerList = new ArrayList<Integer>();
223
        dynObject.setDynValue("integer-list", integerList);
224

    
225
        // a?ado los valores del list
226
        integerList.add(12345);
227
        integerList.add(123456);
228
        integerList.add(12345);
229
        integerList.add(123457);
230
        integerList.add(12345);
231

    
232
        // DOUBLE LIST
233
        List<Double> floatList = new ArrayList<Double>();
234
        dynObject.setDynValue("float-list", floatList);
235

    
236
        // a?ado los valores del list
237
        floatList.add(12345.45);
238
        floatList.add(123456.3);
239
        floatList.add(12345.2);
240

    
241
        // BIT LIST
242
        List<Byte> byteList = new ArrayList<Byte>();
243
        dynObject.setDynValue("byte-list", byteList);
244

    
245
        byte a = (byte) 0xAA;
246
        byte b = (byte) 0xBB;
247
        byte c = (byte) 0xCC;
248

    
249
        // a?ado los valores del list
250
        byteList.add(a);
251
        byteList.add(b);
252
        byteList.add(c);
253

    
254
        dynObject.setDynValue("float", 12345.321f);
255
        dynObject.setDynValue("integer", 123);
256
        dynObject.setDynValue("combo", 0);
257

    
258
        dynObject.setDynValue("date", new Date());
259
        dynObject.setDynValue("time-only", new Date());
260

    
261
        dynObject.setDynValue("Address", dynManager
262
            .createDynObject(new AddressDynObjectTest("Address", "Address example")));
263

    
264
        // DYNOBJECT LIST
265
        List<DynObject> dynObjectList = new ArrayList<DynObject>();
266
        dynObjectList.add(dynManager.createDynObject(new AddressDynObjectTest(
267
            "Address-list", "Address list example")));
268

    
269
        dynObject.setDynValue("Address-list", dynObjectList);
270

    
271
        List<File> folderList = new ArrayList<File>();
272
        dynObject.setDynValue("folders", folderList);
273
        return dynObject;
274
    }
275

    
276
    // public DynObject createDynObject() {
277
    // DynObject dynObject = dynManager.createDynObject(this);
278
    //
279
    // dynObject.setDynValue("text", "some text");
280
    //
281
    // dynObject.setDynValue("label", "this is a readonly text");
282
    //
283
    // List<Integer> integerList = new ArrayList<Integer>();
284
    // dynObject.setDynValue("integer-list", integerList);
285
    //
286
    // // a?ado los valores del list
287
    // integerList.add(12345);
288
    // integerList.add(123456);
289
    // integerList.add(12345);
290
    // integerList.add(123457);
291
    // integerList.add(12345);
292
    //
293
    // // List<File> folderList = new ArrayList<File>();
294
    //
295
    // dynObject.setDynValue("float", 12345.321f);
296
    // dynObject.setDynValue("integer-readonly", 123);
297
    // dynObject.setDynValue("combo", 0);
298
    // // dynObject.setDynValue("folders", folderList);
299
    //
300
    // return dynObject;
301
    // }
302
}