Statistics
| Revision:

gvsig-tools / org.gvsig.tools / library / trunk / org.gvsig.tools / org.gvsig.tools.main / src / main / java / org / gvsig / tools / main / dynobject / TestDynObject.java @ 270

History | View | Annotate | Download (9.85 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.tools.main.dynobject;
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.DynObject;
44
import org.gvsig.tools.dynobject.DynObjectManager;
45
import org.gvsig.tools.dynobject.DynObjectValueItem;
46
import org.gvsig.tools.dynobject.impl.DefaultDynClass;
47
import org.gvsig.tools.service.ServiceException;
48
import org.gvsig.tools.swing.api.ToolsSwingLocator;
49
import org.gvsig.tools.swing.api.dynobject.DynObjectModel;
50
import org.gvsig.tools.swing.api.dynobject.DynObjectSwingManager;
51

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

    
58
    private static DynObjectSwingManager swingManager =
59
        ToolsSwingLocator.getDynObjectSwingManager();
60

    
61
    private static DynObjectManager dynManager =
62
        ToolsLocator.getDynObjectManager();
63

    
64
    // 
65
    /**
66
     * @param manager
67
     * @param name
68
     * @param description
69
     */
70
    public TestDynObject(String name, String description) {
71
        super(dynManager, name, description);
72
        initDynClass();
73
    }
74

    
75
    // private DynClass createDynClass(DynClass dynClass) {
76
    // DynClass dynClass2 = createDynClass2(dynClass);
77
    // // dynClass2.addDynField("dynObject").setType(DataTypes.DYNOBJECT);
78
    // return dynClass2;
79
    // }
80

    
81
    public static void registerDynObject() {
82
        dynManager.add(new TestDynObject("Test", "test dynclass"));
83
    }
84

    
85
    /**
86
     * @return
87
     */
88
    // private JDynObjectComponent getAddressDynObjectView() {
89
    // try {
90
    // Adress testDynObject = (TestDynObject) dynManager
91
    // .get("Test");
92
    // return swingManager.createJDynObjectComponent(testDynObject
93
    // .createDynObject(), testDynObject.createDynModel());
94
    // } catch (ServiceException e) {
95
    // return null;
96
    // }
97
    // }
98

    
99
    /**
100
     * @return
101
     */
102
    private void initDynClass() {
103

    
104
        this.addDynFieldList("Address-list").setMandatory(true)
105
            .setElementsType(DataTypes.DYNOBJECT);
106

    
107
        // TODO add all the available data types
108
        this.addDynFieldString("text");
109
        this.addDynFieldString("label").setReadOnly(true);
110

    
111
        this.addDynFieldInt("integer").setReadOnly(true).setMandatory(true);
112

    
113
        this.addDynFieldList("boolean-list").setMandatory(true)
114
            .setElementsType(DataTypes.BOOLEAN);
115
        this.addDynFieldList("integer-list").setMandatory(true)
116
            .setElementsType(DataTypes.INT);
117
        this.addDynFieldFloat("float");
118
        this.addDynFieldList("float-list").setMandatory(true).setElementsType(
119
            DataTypes.FLOAT);
120
        this.addDynFieldFloat("byte");
121
        this.addDynFieldList("byte-list").setMandatory(true).setElementsType(
122
            DataTypes.BYTE);
123

    
124
        DynObjectValueItem[] values = new DynObjectValueItem[3];
125
        values[0] = new DynObjectValueItem(0, "monday");
126
        values[1] = new DynObjectValueItem(1, "tuesday");
127
        values[2] = new DynObjectValueItem(2, "wednesday");
128
        this.addDynFieldInt("combo").setDefaultFieldValue(0)
129
            .setAvailableValues(values).setMandatory(true);
130

    
131
        this.addDynFieldList("combo-list").setMandatory(true).setElementsType(
132
            DataTypes.INT).getElementsType().setAvailableValues(values);
133

    
134
        this.addDynField("file").setMandatory(true).setType(DataTypes.FILE);
135
        this.addDynField("folder").setMandatory(true).setType(DataTypes.FOLDER);
136
        this.addDynFieldList("folders").setElementsType(DataTypes.FOLDER);
137
        this.addDynFieldList("files").setElementsType(DataTypes.FILE);
138

    
139
        this.addDynFieldDate("date").setMandatory(true).setSubtype(null);
140
        this.addDynField("date-only").setMandatory(true)
141
            .setType(DataTypes.DATE).setSubtype(DataTypes.SUBTYPE_DATE);
142
        this.addDynFieldDate("time-only").setMandatory(true).setType(
143
            DataTypes.TIME).setSubtype(null);
144
        this.addDynField("timestamp").setMandatory(true).setType(
145
            DataTypes.TIMESTAMP);
146

    
147
        this.addDynFieldBoolean("boolean");
148

    
149
        this.addDynField("Address").setType(DataTypes.DYNOBJECT);
150

    
151
        // this.addDynField("dates").setMandatory(true)
152
        // .setType(DataTypes.DATE);
153
    }
154

    
155
    /**
156
     * @return
157
     * @throws ServiceException
158
     */
159
    public DynObjectModel createDynModel() throws ServiceException {
160
        DynObjectModel model = swingManager.createEmptyDynObjectModel(this);
161
        model.add("text");
162
        model.add("label");
163
        model.add("boolean");
164
        model.add("boolean-list");
165

    
166
        // model.add("SRS", "srs");
167
        // model.add("SRS", "crs");
168
        model.add("Date", "date");
169
        model.add("Date", "date-only");
170
        model.add("Date", "time-only");
171
        model.add("Date", "timestamp");
172
        model.add("Files", "file");
173
        model.add("Files", "folder");
174
        model.add("Files", "files");
175
        model.add("Files", "folders");
176

    
177
        model.add("integers", "integer");
178
        model.add("integers", "float");
179
        model.add("list", "byte");
180
        model.add("list", "integer-list");
181
        model.add("list", "float-list");
182
        model.add("list", "byte-list");
183

    
184
        model.add("combo-list");
185
        model.add("combo");
186
        model.add("combo");
187

    
188
        model.add("DynObjects", "Address");
189
        model.add("DynObjects", "Address-list");
190
        return model;
191
    }
192

    
193
    public DynObject createDynObject() throws ServiceException {
194
        DynObject dynObject = dynManager.createDynObject(this);
195

    
196
        dynObject.setDynValue("text", "some text");
197
        dynObject.setDynValue("label", "some readonly text");
198

    
199
        // BOOLEAN LIST
200
        List<Boolean> booleanList = new ArrayList<Boolean>();
201
        dynObject.setDynValue("boolean-list", booleanList);
202

    
203
        // a?ado los valores del list
204
        booleanList.add(true);
205
        booleanList.add(false);
206
        booleanList.add(null);
207

    
208
        // INTEGER LIST
209
        List<Integer> integerList = new ArrayList<Integer>();
210
        dynObject.setDynValue("integer-list", integerList);
211

    
212
        // a?ado los valores del list
213
        integerList.add(12345);
214
        integerList.add(123456);
215
        integerList.add(12345);
216
        integerList.add(123457);
217
        integerList.add(12345);
218

    
219
        // DOUBLE LIST
220
        List<Double> floatList = new ArrayList<Double>();
221
        dynObject.setDynValue("float-list", floatList);
222

    
223
        // a?ado los valores del list
224
        floatList.add(12345.45);
225
        floatList.add(123456.3);
226
        floatList.add(12345.2);
227

    
228
        // BIT LIST
229
        List<Byte> byteList = new ArrayList<Byte>();
230
        dynObject.setDynValue("byte-list", byteList);
231

    
232
        byte a = (byte) 0xAA;
233
        byte b = (byte) 0xBB;
234
        byte c = (byte) 0xCC;
235

    
236
        // a?ado los valores del list
237
        byteList.add(a);
238
        byteList.add(b);
239
        byteList.add(c);
240

    
241
        dynObject.setDynValue("float", 12345.321f);
242
        dynObject.setDynValue("integer", 123);
243
        dynObject.setDynValue("combo", 0);
244

    
245
        dynObject.setDynValue("date", new Date());
246
        dynObject.setDynValue("time-only", new Date());
247

    
248
        dynObject.setDynValue("Address", dynManager
249
            .createDynObject(new Address("Address", "Address example")));
250

    
251
        // DYNOBJECT LIST
252
        List<DynObject> dynObjectList = new ArrayList<DynObject>();
253
        dynObjectList.add(dynManager.createDynObject(new Address(
254
            "Address-list", "Address list example")));
255

    
256
        dynObject.setDynValue("Address-list", dynObjectList);
257

    
258
        List<File> folderList = new ArrayList<File>();
259
        dynObject.setDynValue("folders", folderList);
260
        return dynObject;
261
    }
262

    
263
    // public DynObject createDynObject() {
264
    // DynObject dynObject = dynManager.createDynObject(this);
265
    //
266
    // dynObject.setDynValue("text", "some text");
267
    //
268
    // dynObject.setDynValue("label", "this is a readonly text");
269
    //
270
    // List<Integer> integerList = new ArrayList<Integer>();
271
    // dynObject.setDynValue("integer-list", integerList);
272
    //
273
    // // a?ado los valores del list
274
    // integerList.add(12345);
275
    // integerList.add(123456);
276
    // integerList.add(12345);
277
    // integerList.add(123457);
278
    // integerList.add(12345);
279
    //
280
    // // List<File> folderList = new ArrayList<File>();
281
    //
282
    // dynObject.setDynValue("float", 12345.321f);
283
    // dynObject.setDynValue("integer-readonly", 123);
284
    // dynObject.setDynValue("combo", 0);
285
    // // dynObject.setDynValue("folders", folderList);
286
    //
287
    // return dynObject;
288
    // }
289
}