Revision 43114
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.db/org.gvsig.fmap.dal.db.jdbc/src/test/java/org/gvsig/fmap/dal/store/jdbc2/ExpressionBuilderTest.java | ||
---|---|---|
1 |
package org.gvsig.fmap.dal.store.jdbc2; |
|
2 |
|
|
3 |
import java.util.ArrayList; |
|
4 |
import java.util.List; |
|
5 |
import org.apache.commons.lang3.ArrayUtils; |
|
6 |
import org.cresques.cts.IProjection; |
|
7 |
import org.gvsig.fmap.crs.CRSFactory; |
|
8 |
import org.gvsig.fmap.dal.ExpressionBuilder; |
|
9 |
import org.gvsig.fmap.dal.ExpressionBuilder.Config; |
|
10 |
import org.gvsig.fmap.dal.ExpressionBuilder.GeometrySupportType; |
|
11 |
import org.gvsig.fmap.dal.ExpressionBuilder.Parameter; |
|
12 |
import static org.gvsig.fmap.dal.ExpressionBuilder.ParameterType.Constant; |
|
13 |
import org.gvsig.fmap.dal.ExpressionBuilder.Variable; |
|
14 |
import org.gvsig.fmap.dal.feature.spi.ExpressionBuilderBase; |
|
15 |
import org.gvsig.fmap.geom.Geometry; |
|
16 |
import org.gvsig.fmap.geom.GeometryLocator; |
|
17 |
import org.gvsig.fmap.geom.GeometryManager; |
|
18 |
import org.gvsig.fmap.geom.exception.CreateGeometryException; |
|
19 |
import org.gvsig.fmap.geom.primitive.Point; |
|
20 |
import org.gvsig.tools.junit.AbstractLibraryAutoInitTestCase; |
|
21 |
|
|
22 |
public class ExpressionBuilderTest extends AbstractLibraryAutoInitTestCase { |
|
23 |
|
|
24 |
@Override |
|
25 |
protected void doSetUp() throws Exception { |
|
26 |
|
|
27 |
} |
|
28 |
|
|
29 |
List<String> getVariableNames(ExpressionBuilder builder) { |
|
30 |
List<String> vars = new ArrayList<>(); |
|
31 |
for (Variable var : builder.getVariables()) { |
|
32 |
vars.add(var.getName()); |
|
33 |
} |
|
34 |
return vars; |
|
35 |
} |
|
36 |
|
|
37 |
List<String> getParameterNames(ExpressionBuilder builder) { |
|
38 |
List<String> params = new ArrayList<>(); |
|
39 |
for (Parameter param : builder.getParameters()) { |
|
40 |
String s; |
|
41 |
switch(param.getType()) { |
|
42 |
case Constant: |
|
43 |
Object value = param.getValue(); |
|
44 |
if( value==null ) { |
|
45 |
s = "null"; |
|
46 |
} else if( value instanceof String ) { |
|
47 |
s = "'" + (String)value + "'"; |
|
48 |
} else { |
|
49 |
s = value.toString(); |
|
50 |
} |
|
51 |
break; |
|
52 |
case Geometry: |
|
53 |
case Variable: |
|
54 |
default: |
|
55 |
s = "\"" + param.getName() + "\""; |
|
56 |
} |
|
57 |
params.add(s); |
|
58 |
} |
|
59 |
return params; |
|
60 |
} |
|
61 |
|
|
62 |
public void test2() { |
|
63 |
ExpressionBuilder builder = new ExpressionBuilderBase(); |
|
64 |
|
|
65 |
builder.and( |
|
66 |
builder.eq( |
|
67 |
builder.lcase(builder.variable("colum_name_c")), |
|
68 |
builder.parameter("colum_name_p") |
|
69 |
) |
|
70 |
); |
|
71 |
builder.and( |
|
72 |
builder.group( |
|
73 |
builder.or( |
|
74 |
builder.like( |
|
75 |
builder.lcase( builder.variable("uno")), |
|
76 |
builder.constant("%10") |
|
77 |
), |
|
78 |
builder.lt( |
|
79 |
builder.variable("dos"), |
|
80 |
builder.constant(-3.5) |
|
81 |
) |
|
82 |
) |
|
83 |
) |
|
84 |
); |
|
85 |
builder.and( |
|
86 |
builder.ST_Intersects( |
|
87 |
builder.variable("geom1"), |
|
88 |
builder.ST_Envelope( |
|
89 |
builder.ST_GeomFromWKB( |
|
90 |
builder.parameter("geom2"), |
|
91 |
builder.parameter().value(4326).as_constant() |
|
92 |
) |
|
93 |
) |
|
94 |
) |
|
95 |
); |
|
96 |
builder.and( |
|
97 |
builder.gt( |
|
98 |
builder.variable("tres"), |
|
99 |
builder.constant(123456789) |
|
100 |
) |
|
101 |
); |
|
102 |
assertEquals( |
|
103 |
"( (LCASE(\"colum_name_c\")) = (?) ) AND ( ( (LCASE(\"uno\")) LIKE ('%10') ) OR ( (\"dos\") < (-3.5) ) ) AND ST_Intersects((\"geom1\"), (ST_Envelope(ST_GeomFromWKB((?), (?))))) AND ( (\"tres\") > (123456789) )", |
|
104 |
builder.toString() |
|
105 |
); |
|
106 |
assertEquals( |
|
107 |
"[colum_name_c, dos, geom1, tres, uno]", |
|
108 |
ArrayUtils.toString(getVariableNames(builder)) |
|
109 |
); |
|
110 |
assertEquals( |
|
111 |
"[\"colum_name_p\", \"geom2\", 4326]", |
|
112 |
ArrayUtils.toString(getParameterNames(builder)) |
|
113 |
); |
|
114 |
} |
|
115 |
|
|
116 |
public void test3() throws CreateGeometryException { |
|
117 |
ExpressionBuilder builder = new ExpressionBuilderBase(); |
|
118 |
|
|
119 |
GeometryManager geometryManager = GeometryLocator.getGeometryManager(); |
|
120 |
IProjection proj = CRSFactory.getCRS("EPSG:4326"); |
|
121 |
|
|
122 |
Point point = geometryManager.createPoint(10, 20, Geometry.SUBTYPES.GEOM2D); |
|
123 |
builder.set( |
|
124 |
builder.ST_Intersects( |
|
125 |
builder.geometry(point,proj), |
|
126 |
builder.variable("the_geom") |
|
127 |
) |
|
128 |
); |
|
129 |
builder.getConfig().set(Config.geometry_type_support, GeometrySupportType.WKT); |
|
130 |
System.out.println(builder.toString()); |
|
131 |
assertEquals( |
|
132 |
"ST_Intersects((ST_GeomFromText('POINT (10 20)', (4326))), (\"the_geom\"))", |
|
133 |
builder.toString() |
|
134 |
); |
|
135 |
builder.getConfig().set(Config.geometry_type_support, GeometrySupportType.WKB); |
|
136 |
System.out.println(builder.toString()); |
|
137 |
assertEquals( |
|
138 |
"ST_Intersects((ST_GeomFromWKB((0x000000000140240000000000004034000000000000), (4326))), (\"the_geom\"))", |
|
139 |
builder.toString() |
|
140 |
); |
|
141 |
assertEquals( |
|
142 |
"[the_geom]", |
|
143 |
ArrayUtils.toString(getVariableNames(builder)) |
|
144 |
); |
|
145 |
assertEquals( |
|
146 |
"[]", |
|
147 |
ArrayUtils.toString(getParameterNames(builder)) |
|
148 |
); |
|
149 |
} |
|
150 |
|
|
151 |
public void test4() throws CreateGeometryException { |
|
152 |
ExpressionBuilder builder = new ExpressionBuilderBase(); |
|
153 |
|
|
154 |
IProjection proj = CRSFactory.getCRS("EPSG:4326"); |
|
155 |
|
|
156 |
builder.and( |
|
157 |
builder.ST_Intersects( |
|
158 |
builder.variable("geom1"), |
|
159 |
builder.ST_Envelope( |
|
160 |
builder.ST_GeomFromWKB( |
|
161 |
builder.parameter("geom2"), |
|
162 |
builder.parameter().value(proj).as_constant() |
|
163 |
) |
|
164 |
) |
|
165 |
) |
|
166 |
); |
|
167 |
|
|
168 |
System.out.println(builder.toString()); |
|
169 |
assertEquals( |
|
170 |
"ST_Intersects((\"geom1\"), (ST_Envelope(ST_GeomFromWKB((?), (?)))))", |
|
171 |
builder.toString() |
|
172 |
); |
|
173 |
assertEquals( |
|
174 |
"[geom1]", |
|
175 |
ArrayUtils.toString(getVariableNames(builder)) |
|
176 |
); |
|
177 |
assertEquals( |
|
178 |
"[\"geom2\", 4326]", |
|
179 |
ArrayUtils.toString(getParameterNames(builder)) |
|
180 |
); |
|
181 |
} |
|
182 |
|
|
183 |
public void test5() throws CreateGeometryException { |
|
184 |
ExpressionBuilder builder = new ExpressionBuilderBase(); |
|
185 |
|
|
186 |
IProjection proj = CRSFactory.getCRS("EPSG:4326"); |
|
187 |
|
|
188 |
builder.and( |
|
189 |
builder.eq( |
|
190 |
builder.ST_SRID( builder.variable("geom") ), |
|
191 |
builder.srs(proj) |
|
192 |
) |
|
193 |
); |
|
194 |
|
|
195 |
System.out.println(builder.toString()); |
|
196 |
assertEquals( |
|
197 |
"( (ST_SRID(\"geom\")) = (4326) )", |
|
198 |
builder.toString() |
|
199 |
); |
|
200 |
assertEquals( |
|
201 |
"[geom]", |
|
202 |
ArrayUtils.toString(getVariableNames(builder)) |
|
203 |
); |
|
204 |
assertEquals( |
|
205 |
"[]", |
|
206 |
ArrayUtils.toString(getParameterNames(builder)) |
|
207 |
); |
|
208 |
} |
|
209 |
} |
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.db/org.gvsig.fmap.dal.db.jdbc/src/test/java/org/gvsig/fmap/dal/store/jdbc2/SQLBuilderTest.java | ||
---|---|---|
1 |
package org.gvsig.fmap.dal.store.jdbc2; |
|
2 |
|
|
3 |
import java.util.ArrayList; |
|
4 |
import java.util.List; |
|
5 |
import org.apache.commons.lang3.ArrayUtils; |
|
6 |
import org.cresques.cts.IProjection; |
|
7 |
import org.gvsig.fmap.crs.CRSFactory; |
|
8 |
import org.gvsig.fmap.dal.ExpressionBuilder; |
|
9 |
import org.gvsig.fmap.dal.ExpressionBuilder.Constant; |
|
10 |
import org.gvsig.fmap.dal.ExpressionBuilder.Parameter; |
|
11 |
import org.gvsig.fmap.dal.ExpressionBuilder.Variable; |
|
12 |
import org.gvsig.fmap.dal.SQLBuilder; |
|
13 |
import org.gvsig.fmap.dal.SQLBuilder.Privilege; |
|
14 |
import org.gvsig.fmap.dal.feature.spi.SQLBuilderBase; |
|
15 |
import org.gvsig.fmap.geom.DataTypes; |
|
16 |
import org.gvsig.fmap.geom.Geometry; |
|
17 |
import org.gvsig.fmap.geom.GeometryLocator; |
|
18 |
import org.gvsig.fmap.geom.GeometryManager; |
|
19 |
import org.gvsig.fmap.geom.primitive.Polygon; |
|
20 |
import org.gvsig.tools.junit.AbstractLibraryAutoInitTestCase; |
|
21 |
|
|
22 |
public class SQLBuilderTest extends AbstractLibraryAutoInitTestCase { |
|
23 |
|
|
24 |
@Override |
|
25 |
protected void doSetUp() throws Exception { |
|
26 |
|
|
27 |
} |
|
28 |
|
|
29 |
List<String> getVariableNames(ExpressionBuilder builder) { |
|
30 |
List<String> vars = new ArrayList<>(); |
|
31 |
for (Variable var : builder.getVariables()) { |
|
32 |
vars.add(var.getName()); |
|
33 |
} |
|
34 |
return vars; |
|
35 |
} |
|
36 |
|
|
37 |
List<String> getParameterNames(ExpressionBuilder builder) { |
|
38 |
List<String> params = new ArrayList<>(); |
|
39 |
for (Parameter param : builder.getParameters()) { |
|
40 |
String s; |
|
41 |
switch(param.getType()) { |
|
42 |
case Constant: |
|
43 |
Object value = param.getValue(); |
|
44 |
if( value==null ) { |
|
45 |
s = "null"; |
|
46 |
} else if( value instanceof String ) { |
|
47 |
s = "'" + (String)value + "'"; |
|
48 |
} else { |
|
49 |
s = value.toString(); |
|
50 |
} |
|
51 |
break; |
|
52 |
case Geometry: |
|
53 |
case Variable: |
|
54 |
default: |
|
55 |
s = "\"" + param.getName() + "\""; |
|
56 |
} |
|
57 |
params.add(s); |
|
58 |
} |
|
59 |
return params; |
|
60 |
} |
|
61 |
|
|
62 |
|
|
63 |
public void testCalulateEnvelope() throws Exception { |
|
64 |
GeometryManager geometryManager = GeometryLocator.getGeometryManager(); |
|
65 |
IProjection proj = CRSFactory.getCRS("EPSG:4326"); |
|
66 |
|
|
67 |
Polygon limit = geometryManager.createPolygon(Geometry.SUBTYPES.GEOM2D); |
|
68 |
limit.addVertex(0, 0); |
|
69 |
limit.addVertex(0, 100); |
|
70 |
limit.addVertex(100, 100); |
|
71 |
limit.addVertex(100, 0); |
|
72 |
limit.addVertex(0, 0); |
|
73 |
|
|
74 |
SQLBuilder builder = new SQLBuilderBase(); |
|
75 |
|
|
76 |
builder.select().column().value( |
|
77 |
builder.getAsGeometry( |
|
78 |
builder.ST_ExtentAggregate( |
|
79 |
builder.column("the_geom") |
|
80 |
) |
|
81 |
) |
|
82 |
).as("envelope"); |
|
83 |
builder.select().from().table().database("master").schema("dbo").name("test1"); |
|
84 |
builder.select().where().set( |
|
85 |
builder.ST_Intersects( |
|
86 |
builder.ST_Envelope( |
|
87 |
builder.column("the_geom") |
|
88 |
), |
|
89 |
builder.geometry(limit, proj) |
|
90 |
) |
|
91 |
); |
|
92 |
builder.select().where().and( |
|
93 |
builder.custom("x = 27") |
|
94 |
); |
|
95 |
|
|
96 |
// SELECT ST_AsBinary(ST_Extent("the_geom")) AS "envelope" FROM "master"."dbo"."test1" WHERE ST_Intersects((ST_Envelope("the_geom")), (ST_GeomFromText('POLYGON ((0 0, 0 100, 100 100, 100 0, 0 0))', (4326)))) AND x = 27 |
|
97 |
|
|
98 |
System.out.println("# Test:: testCalulateEnvelope"); |
|
99 |
System.out.println("# SQL:: " + builder.toString()); |
|
100 |
System.out.println("# Variables:: " + ArrayUtils.toString(getVariableNames(builder))); |
|
101 |
System.out.println("# Parametros:: " + ArrayUtils.toString(getParameterNames(builder))); |
|
102 |
assertEquals( |
|
103 |
"SELECT ST_AsBinary(ST_Extent(\"the_geom\")) AS \"envelope\" FROM \"master\".\"dbo\".\"test1\" WHERE ST_Intersects((ST_Envelope(\"the_geom\")), (ST_GeomFromText('POLYGON ((0 0, 0 100, 100 100, 100 0, 0 0))', (4326)))) AND x = 27", |
|
104 |
builder.toString() |
|
105 |
); |
|
106 |
assertEquals( |
|
107 |
"[the_geom]", |
|
108 |
ArrayUtils.toString(getVariableNames(builder)) |
|
109 |
); |
|
110 |
assertEquals( |
|
111 |
"[]", |
|
112 |
ArrayUtils.toString(getParameterNames(builder)) |
|
113 |
); |
|
114 |
} |
|
115 |
|
|
116 |
public void testCount() throws Exception { |
|
117 |
SQLBuilder builder = new SQLBuilderBase(); |
|
118 |
|
|
119 |
builder.select().column().value(builder.count().all()); |
|
120 |
builder.select().from().table().database("master").schema("dbo").name("test1"); |
|
121 |
builder.select().from().subquery(null); |
|
122 |
builder.select().where().set( builder.custom("pp = 200")); |
|
123 |
|
|
124 |
System.out.println("# Test:: testCount"); |
|
125 |
System.out.println("# SQL:: " + builder.toString()); |
|
126 |
System.out.println("# Variables:: " + ArrayUtils.toString(getVariableNames(builder))); |
|
127 |
System.out.println("# Parametros:: " + ArrayUtils.toString(getParameterNames(builder))); |
|
128 |
|
|
129 |
//# Test:: testCount |
|
130 |
//# SQL:: SELECT COUNT(*) FROM "master"."dbo"."test1" WHERE pp = 200 |
|
131 |
//# Variables:: [] |
|
132 |
//# Parametros:: [] |
|
133 |
|
|
134 |
assertEquals( |
|
135 |
"SELECT COUNT(*) FROM \"master\".\"dbo\".\"test1\" WHERE pp = 200", |
|
136 |
builder.toString() |
|
137 |
); |
|
138 |
assertEquals( |
|
139 |
"[]", |
|
140 |
ArrayUtils.toString(getVariableNames(builder)) |
|
141 |
); |
|
142 |
assertEquals( |
|
143 |
"[]", |
|
144 |
ArrayUtils.toString(getParameterNames(builder)) |
|
145 |
); |
|
146 |
} |
|
147 |
|
|
148 |
public void testCreateTable() throws Exception { |
|
149 |
SQLBuilder builder = new SQLBuilderBase(); |
|
150 |
|
|
151 |
builder.create_table().table().database("master").schema("dbo").name("test1"); |
|
152 |
builder.create_table().add_column( |
|
153 |
"name", |
|
154 |
DataTypes.STRING, |
|
155 |
45, |
|
156 |
0, |
|
157 |
false, |
|
158 |
true, |
|
159 |
false, |
|
160 |
null |
|
161 |
); |
|
162 |
builder.create_table().add_column( |
|
163 |
"id", |
|
164 |
DataTypes.INT, |
|
165 |
0, |
|
166 |
0, |
|
167 |
true, |
|
168 |
false, |
|
169 |
true, |
|
170 |
0 |
|
171 |
); |
|
172 |
builder.create_table().add_column( |
|
173 |
"geom", |
|
174 |
DataTypes.GEOMETRY, |
|
175 |
0, |
|
176 |
0, |
|
177 |
false, |
|
178 |
true, |
|
179 |
false, |
|
180 |
null |
|
181 |
); |
|
182 |
|
|
183 |
|
|
184 |
// CREATE TABLE "master"."dbo"."test1" ("name" VARCHAR(45) DEFAULT NULL NULL, "id" SERIAL DEFAULT '0' NOT NULL PRIMARY KEY, "geom" TEXT DEFAULT NULL NULL ) |
|
185 |
System.out.println("# Test:: testCreateTable"); |
|
186 |
System.out.println("# SQL:: " + builder.toString()); |
|
187 |
System.out.println("# Variables:: " + ArrayUtils.toString(getVariableNames(builder))); |
|
188 |
System.out.println("# Parametros:: " + ArrayUtils.toString(getParameterNames(builder))); |
|
189 |
assertEquals( |
|
190 |
"CREATE TABLE \"master\".\"dbo\".\"test1\" (\"name\" VARCHAR(45) DEFAULT NULL NULL, \"id\" SERIAL DEFAULT '0' NOT NULL PRIMARY KEY, \"geom\" TEXT DEFAULT NULL NULL )", |
|
191 |
builder.toString() |
|
192 |
); |
|
193 |
assertEquals( |
|
194 |
"[]", |
|
195 |
ArrayUtils.toString(getVariableNames(builder)) |
|
196 |
); |
|
197 |
assertEquals( |
|
198 |
"[]", |
|
199 |
ArrayUtils.toString(getParameterNames(builder)) |
|
200 |
); |
|
201 |
} |
|
202 |
|
|
203 |
public void testDropTable() throws Exception { |
|
204 |
SQLBuilder builder = new SQLBuilderBase(); |
|
205 |
|
|
206 |
builder.drop_table().table().database("master").schema("dbo").name("test1"); |
|
207 |
|
|
208 |
// DROP TABLE "master"."dbo"."test1"; DELETE FROM GEOMETRY_COLUMNS WHERE f_table_schema = 'dbo' AND f_table_name = 'test1' |
|
209 |
|
|
210 |
System.out.println("# Test:: testDropTable"); |
|
211 |
System.out.println("# SQL:: " + builder.toString()); |
|
212 |
System.out.println("# Variables:: " + ArrayUtils.toString(getVariableNames(builder))); |
|
213 |
System.out.println("# Parametros:: " + ArrayUtils.toString(getParameterNames(builder))); |
|
214 |
assertEquals( |
|
215 |
"DROP TABLE \"master\".\"dbo\".\"test1\"; DELETE FROM GEOMETRY_COLUMNS WHERE f_table_schema = 'dbo' AND f_table_name = 'test1'", |
|
216 |
builder.toString() |
|
217 |
); |
|
218 |
assertEquals( |
|
219 |
"[]", |
|
220 |
ArrayUtils.toString(getVariableNames(builder)) |
|
221 |
); |
|
222 |
assertEquals( |
|
223 |
"[]", |
|
224 |
ArrayUtils.toString(getParameterNames(builder)) |
|
225 |
); |
|
226 |
} |
|
227 |
|
|
228 |
public void testFetchFeatureProviderByReference() throws Exception { |
|
229 |
SQLBuilder builder = new SQLBuilderBase(); |
|
230 |
|
|
231 |
String value = "yoyo"; |
|
232 |
builder.select().column().name("name"); |
|
233 |
builder.select().column().name("id"); |
|
234 |
builder.select().column().name("geom").as_geometry(); |
|
235 |
builder.select().from().table().database("master").schema("dbo").name("test1"); |
|
236 |
builder.select().where().set( |
|
237 |
builder.eq( |
|
238 |
builder.column("name"), |
|
239 |
builder.parameter(value).as_constant() |
|
240 |
) |
|
241 |
); |
|
242 |
builder.select().limit(1); |
|
243 |
|
|
244 |
// SELECT "name", "id", ST_AsBinary("geom") FROM "master"."dbo"."test1" WHERE ( ("name") = (?) ) LIMIT 1 |
|
245 |
|
|
246 |
System.out.println("# Test:: testFetchFeatureProviderByReference"); |
|
247 |
System.out.println("# SQL:: " + builder.toString()); |
|
248 |
System.out.println("# Variables:: " + ArrayUtils.toString(getVariableNames(builder))); |
|
249 |
System.out.println("# Parametros:: " + ArrayUtils.toString(getParameterNames(builder))); |
|
250 |
assertEquals( |
|
251 |
"SELECT \"name\", \"id\", ST_AsBinary(\"geom\") FROM \"master\".\"dbo\".\"test1\" WHERE ( (\"name\") = (?) ) LIMIT 1", |
|
252 |
builder.toString() |
|
253 |
); |
|
254 |
assertEquals( |
|
255 |
"[geom, id, name]", |
|
256 |
ArrayUtils.toString(getVariableNames(builder)) |
|
257 |
); |
|
258 |
assertEquals( |
|
259 |
"['yoyo']", |
|
260 |
ArrayUtils.toString(getParameterNames(builder)) |
|
261 |
); |
|
262 |
} |
|
263 |
|
|
264 |
public void testFetchFeatureType() throws Exception { |
|
265 |
SQLBuilder builder = new SQLBuilderBase(); |
|
266 |
|
|
267 |
builder.select().column().all(); |
|
268 |
builder.select().from().table().database("master").schema("dbo").name("test1"); |
|
269 |
builder.select().limit(1); |
|
270 |
|
|
271 |
System.out.println("# Test:: testFetchFeatureType"); |
|
272 |
System.out.println("# SQL:: " + builder.toString()); |
|
273 |
System.out.println("# Variables:: " + ArrayUtils.toString(getVariableNames(builder))); |
|
274 |
System.out.println("# Parametros:: " + ArrayUtils.toString(getParameterNames(builder))); |
|
275 |
|
|
276 |
//# Test:: testFetchFeatureType |
|
277 |
//# SQL:: SELECT * FROM [master].[dbo].[test1] LIMMIT 1 |
|
278 |
//# Variables:: [] |
|
279 |
//# Parametros:: [] |
|
280 |
|
|
281 |
assertEquals( |
|
282 |
"SELECT * FROM \"master\".\"dbo\".\"test1\" LIMIT 1", |
|
283 |
builder.toString() |
|
284 |
); |
|
285 |
assertEquals( |
|
286 |
"[]", |
|
287 |
ArrayUtils.toString(getVariableNames(builder)) |
|
288 |
); |
|
289 |
assertEquals( |
|
290 |
"[]", |
|
291 |
ArrayUtils.toString(getParameterNames(builder)) |
|
292 |
); |
|
293 |
} |
|
294 |
|
|
295 |
public void testPerformDeletes() throws Exception { |
|
296 |
SQLBuilder builder = new SQLBuilderBase(); |
|
297 |
|
|
298 |
builder.delete().table().database("master").schema("dbo").name("test1"); |
|
299 |
builder.delete().where().and( |
|
300 |
builder.eq( |
|
301 |
builder.column("id1"), |
|
302 |
builder.parameter("id1").as_variable() |
|
303 |
) |
|
304 |
); |
|
305 |
builder.delete().where().and( |
|
306 |
builder.eq( |
|
307 |
builder.column("id2"), |
|
308 |
builder.parameter("id2").as_variable() |
|
309 |
) |
|
310 |
); |
|
311 |
|
|
312 |
// DELETE FROM "master"."dbo"."test1" WHERE ( ("id1") = (?) ) AND ( ("id2") = (?) ) |
|
313 |
|
|
314 |
System.out.println("# Test:: testPerformDeletes"); |
|
315 |
System.out.println("# SQL:: " + builder.toString()); |
|
316 |
System.out.println("# Variables:: " + ArrayUtils.toString(getVariableNames(builder))); |
|
317 |
System.out.println("# Parametros:: " + ArrayUtils.toString(getParameterNames(builder))); |
|
318 |
assertEquals( |
|
319 |
"DELETE FROM \"master\".\"dbo\".\"test1\" WHERE ( (\"id1\") = (?) ) AND ( (\"id2\") = (?) )", |
|
320 |
builder.toString() |
|
321 |
); |
|
322 |
assertEquals( |
|
323 |
"[id1, id2]", |
|
324 |
ArrayUtils.toString(getVariableNames(builder)) |
|
325 |
); |
|
326 |
assertEquals( |
|
327 |
"[\"id1\", \"id2\"]", |
|
328 |
ArrayUtils.toString(getParameterNames(builder)) |
|
329 |
); |
|
330 |
} |
|
331 |
|
|
332 |
public void testPerformInserts1() throws Exception { |
|
333 |
IProjection proj = CRSFactory.getCRS("EPSG:4326"); |
|
334 |
|
|
335 |
SQLBuilder builder = new SQLBuilderBase(); |
|
336 |
|
|
337 |
builder.insert().table().database("master").schema("dbo").name("test1"); |
|
338 |
builder.insert().column().name("id").with_value(builder.parameter("id")); |
|
339 |
builder.insert().column().name("name").with_value(builder.parameter("name")); |
|
340 |
builder.insert().column().name("geom").with_value(builder.parameter("geom").as_geometry_variable().srs(proj)); |
|
341 |
|
|
342 |
// INSERT INTO "master"."dbo"."test1" ( "id", "name", "geom" ) VALUES ( ?, ?, ST_GeomFromText(?, (4326)) ) |
|
343 |
|
|
344 |
System.out.println("# Test:: testPerformInserts1"); |
|
345 |
System.out.println("# SQL:: " + builder.toString()); |
|
346 |
System.out.println("# Variables:: " + ArrayUtils.toString(getVariableNames(builder))); |
|
347 |
System.out.println("# Parametros:: " + ArrayUtils.toString(getParameterNames(builder))); |
|
348 |
assertEquals( |
|
349 |
"INSERT INTO \"master\".\"dbo\".\"test1\" ( \"id\", \"name\", \"geom\" ) VALUES ( ?, ?, ST_GeomFromText(?, (4326)) )", |
|
350 |
builder.toString() |
|
351 |
); |
|
352 |
assertEquals( |
|
353 |
"[geom, id, name]", |
|
354 |
ArrayUtils.toString(getVariableNames(builder)) |
|
355 |
); |
|
356 |
assertEquals( |
|
357 |
"[\"id\", \"name\", \"geom\"]", |
|
358 |
ArrayUtils.toString(getParameterNames(builder)) |
|
359 |
); |
|
360 |
} |
|
361 |
|
|
362 |
public void testPerformInserts2() throws Exception { |
|
363 |
IProjection proj = CRSFactory.getCRS("EPSG:4326"); |
|
364 |
|
|
365 |
SQLBuilder builder = new SQLBuilderBase(); |
|
366 |
|
|
367 |
builder.insert().table().database("master").schema("dbo").name("test1"); |
|
368 |
builder.insert().column().name("id").with_value(builder.parameter("id")); |
|
369 |
builder.insert().column().name("name").with_value(builder.parameter("name")); |
|
370 |
builder.insert().column().name("geom").with_value(builder.parameter("geom").as_geometry_variable().srs(proj)); |
|
371 |
|
|
372 |
// INSERT INTO "master"."dbo"."test1" ( "id", "name", "geom" ) VALUES ( ?, ?, ST_GeomFromText(?, (?)) ) |
|
373 |
|
|
374 |
System.out.println("# Test:: testPerformInserts2"); |
|
375 |
System.out.println("# SQL:: " + builder.toString()); |
|
376 |
System.out.println("# Variables:: " + ArrayUtils.toString(getVariableNames(builder))); |
|
377 |
System.out.println("# Parametros:: " + ArrayUtils.toString(getParameterNames(builder))); |
|
378 |
assertEquals( |
|
379 |
"INSERT INTO \"master\".\"dbo\".\"test1\" ( \"id\", \"name\", \"geom\" ) VALUES ( ?, ?, ST_GeomFromText(?, (?)) )", |
|
380 |
builder.toString() |
|
381 |
); |
|
382 |
assertEquals( |
|
383 |
"[geom, id, name]", |
|
384 |
ArrayUtils.toString(getVariableNames(builder)) |
|
385 |
); |
|
386 |
assertEquals( |
|
387 |
"[\"id\", \"name\", \"geom\", 4326]", |
|
388 |
ArrayUtils.toString(getParameterNames(builder)) |
|
389 |
); |
|
390 |
} |
|
391 |
|
|
392 |
public void testPerformUpdates() throws Exception { |
|
393 |
IProjection proj = CRSFactory.getCRS("EPSG:4326"); |
|
394 |
|
|
395 |
SQLBuilder builder = new SQLBuilderBase(); |
|
396 |
|
|
397 |
builder.update().table().database("master").schema("dbo").name("test1"); |
|
398 |
builder.update().where().and( |
|
399 |
builder.eq( |
|
400 |
builder.column("id"), |
|
401 |
builder.parameter("id").as_variable() |
|
402 |
) |
|
403 |
); |
|
404 |
builder.update().column().name("name").with_value(builder.parameter("name")); |
|
405 |
builder.update().column().name("geom").with_value( |
|
406 |
builder.parameter("geom").as_geometry_variable().srs(proj) |
|
407 |
); |
|
408 |
|
|
409 |
// UPDATE "master"."dbo"."test1" SET "name" = ?, "geom" = ST_GeomFromText(?, (?)) WHERE ( ("id") = (?) ) |
|
410 |
|
|
411 |
System.out.println("# Test:: testPerformUpdates"); |
|
412 |
System.out.println("# SQL:: " + builder.toString()); |
|
413 |
System.out.println("# Variables:: " + ArrayUtils.toString(getVariableNames(builder))); |
|
414 |
System.out.println("# Parametros:: " + ArrayUtils.toString(getParameterNames(builder))); |
|
415 |
assertEquals( |
|
416 |
"UPDATE \"master\".\"dbo\".\"test1\" SET \"name\" = ?, \"geom\" = ST_GeomFromText(?, (?)) WHERE ( (\"id\") = (?) )", |
|
417 |
builder.toString() |
|
418 |
); |
|
419 |
assertEquals( |
|
420 |
"[geom, id, name]", |
|
421 |
ArrayUtils.toString(getVariableNames(builder)) |
|
422 |
); |
|
423 |
assertEquals( |
|
424 |
"[\"name\", \"geom\", 4326, \"id\"]", |
|
425 |
ArrayUtils.toString(getParameterNames(builder)) |
|
426 |
); |
|
427 |
} |
|
428 |
|
|
429 |
public void testGrant1() throws Exception { |
|
430 |
|
|
431 |
SQLBuilder builder = new SQLBuilderBase(); |
|
432 |
|
|
433 |
builder.grant().table().database("master").schema("dbo").name("test1"); |
|
434 |
builder.grant().role("prueba").select().insert().update(); |
|
435 |
builder.grant().role("gis").all(); |
|
436 |
|
|
437 |
|
|
438 |
System.out.println("# Test:: testGrant1"); |
|
439 |
System.out.println("# SQL:: " + builder.toString()); |
|
440 |
System.out.println("# Variables:: " + ArrayUtils.toString(getVariableNames(builder))); |
|
441 |
System.out.println("# Parametros:: " + ArrayUtils.toString(getParameterNames(builder))); |
|
442 |
assertEquals( |
|
443 |
"", |
|
444 |
builder.toString() |
|
445 |
); |
|
446 |
assertEquals( |
|
447 |
"[]", |
|
448 |
ArrayUtils.toString(getVariableNames(builder)) |
|
449 |
); |
|
450 |
assertEquals( |
|
451 |
"[]", |
|
452 |
ArrayUtils.toString(getParameterNames(builder)) |
|
453 |
); |
|
454 |
} |
|
455 |
|
|
456 |
public void testGrant2() throws Exception { |
|
457 |
|
|
458 |
SQLBuilder builder = new SQLBuilderBase(); |
|
459 |
|
|
460 |
builder.grant().table().database("master").schema("dbo").name("test1"); |
|
461 |
builder.grant().role("prueba").privilege(Privilege.SELECT) |
|
462 |
.privilege(Privilege.INSERT) |
|
463 |
.privilege(Privilege.UPDATE); |
|
464 |
builder.grant().role("gis").privilege(Privilege.ALL); |
|
465 |
|
|
466 |
|
|
467 |
System.out.println("# Test:: testGrant2"); |
|
468 |
System.out.println("# SQL:: " + builder.toString()); |
|
469 |
System.out.println("# Variables:: " + ArrayUtils.toString(getVariableNames(builder))); |
|
470 |
System.out.println("# Parametros:: " + ArrayUtils.toString(getParameterNames(builder))); |
|
471 |
assertEquals( |
|
472 |
"", |
|
473 |
builder.toString() |
|
474 |
); |
|
475 |
assertEquals( |
|
476 |
"[]", |
|
477 |
ArrayUtils.toString(getVariableNames(builder)) |
|
478 |
); |
|
479 |
assertEquals( |
|
480 |
"[]", |
|
481 |
ArrayUtils.toString(getParameterNames(builder)) |
|
482 |
); |
|
483 |
} |
|
484 |
|
|
485 |
|
|
486 |
} |
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.db/org.gvsig.fmap.dal.db.jdbc/src/main/java/org/gvsig/fmap/dal/store/jdbc2/spi/operations/AbstractConnectionOperation.java | ||
---|---|---|
17 | 17 |
final static protected Logger logger = LoggerFactory.getLogger(AbstractConnectionOperation.class); |
18 | 18 |
|
19 | 19 |
final protected JDBCHelper helper; |
20 |
|
|
21 |
private Connection conn = null; |
|
20 | 22 |
|
21 | 23 |
public AbstractConnectionOperation(JDBCHelper helper) { |
22 | 24 |
this.helper = helper; |
... | ... | |
47 | 49 |
} |
48 | 50 |
} |
49 | 51 |
|
52 |
protected Connection getConnection() { |
|
53 |
return this.conn; |
|
54 |
} |
|
55 |
|
|
50 | 56 |
public Object perform_operation() throws Exception { |
51 | 57 |
Object result = null; |
52 |
Connection conn = null; |
|
53 | 58 |
try { |
54 | 59 |
logger.debug("preparing execution of "+this.getClass().getSimpleName()+"."); |
55 | 60 |
conn = helper.getConnection(); |
... | ... | |
76 | 81 |
return result; |
77 | 82 |
} finally { |
78 | 83 |
helper.closeConnection(conn); |
84 |
conn = null; |
|
79 | 85 |
} |
80 | 86 |
} |
81 | 87 |
// |
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.db/org.gvsig.fmap.dal.db.jdbc/src/main/java/org/gvsig/fmap/dal/store/jdbc2/spi/operations/FetchFeatureTypeOperation.java | ||
---|---|---|
65 | 65 |
return true; |
66 | 66 |
} |
67 | 67 |
|
68 |
protected String getDatabase() { |
|
69 |
return this.dbname; |
|
70 |
} |
|
71 |
|
|
72 |
protected String getSchema() { |
|
73 |
return this.schema; |
|
74 |
} |
|
75 |
|
|
76 |
protected String getTablename() { |
|
77 |
return this.table; |
|
78 |
} |
|
79 |
|
|
68 | 80 |
public void fetch( |
69 | 81 |
EditableFeatureType featureType, |
70 | 82 |
Connection conn, |
... | ... | |
106 | 118 |
boolean firstGeometryAttrFound = false; |
107 | 119 |
for (i = 1; i <= rsMetadata.getColumnCount(); i++) { |
108 | 120 |
attr = getAttributeFromMetadata(featureType, conn, rsMetadata, i); |
109 |
if (pks != null && pks.contains(attr.getName())) {
|
|
121 |
if ( isInPrimaryKeys(pks,attr) ) {
|
|
110 | 122 |
attr.setIsPrimaryKey(true); |
111 | 123 |
} |
112 | 124 |
if (attr.getType() == DataTypes.GEOMETRY) { |
... | ... | |
122 | 134 |
|
123 | 135 |
} |
124 | 136 |
|
125 |
if (geometriesColumns > 0) { |
|
126 |
fetch_CRS_and_shapeType(conn, rsMetadata, featureType, schema, table); |
|
127 |
} |
|
128 |
|
|
129 | 137 |
if (defaultGeometryColumn == null && geometriesColumns == 1) { |
130 | 138 |
featureType.setDefaultGeometryAttributeName(lastGeometry); |
131 | 139 |
} |
... | ... | |
142 | 150 |
} |
143 | 151 |
} |
144 | 152 |
|
153 |
protected boolean isInPrimaryKeys(List<String> pks, EditableFeatureAttributeDescriptor attr) { |
|
154 |
return pks != null && pks.contains(attr.getName()); |
|
155 |
} |
|
156 |
|
|
145 | 157 |
protected List<String> getPrimaryKeysFromMetadata( |
146 | 158 |
Connection conn, |
147 | 159 |
String catalog, |
... | ... | |
286 | 298 |
); |
287 | 299 |
break; |
288 | 300 |
case DataTypes.GEOMETRY: |
289 |
this.fetchGeometryType(attr, rsMetadata, colIndex); |
|
301 |
this.fetchGeometryTypeAndSRS(attr, rsMetadata, colIndex);
|
|
290 | 302 |
break; |
291 | 303 |
} |
292 | 304 |
return attr; |
293 | 305 |
} |
294 | 306 |
|
295 |
protected void fetchGeometryType( |
|
296 |
EditableFeatureAttributeDescriptor attr, |
|
297 |
ResultSetMetaData rsMetadata, |
|
298 |
int colIndex |
|
299 |
) { |
|
300 |
try { |
|
301 |
GeometryType geomType = GeometryLocator.getGeometryManager().getGeometryType( |
|
302 |
Geometry.TYPES.GEOMETRY, |
|
303 |
Geometry.SUBTYPES.GEOM2D |
|
304 |
); |
|
305 |
attr.setGeometryType(geomType); |
|
306 |
} catch (Exception ex) { |
|
307 |
logger.warn("Can't get default geometry type.",ex); |
|
308 |
} |
|
309 |
} |
|
310 |
|
|
311 | 307 |
protected int getDataTypeFromMetadata( |
312 | 308 |
ResultSetMetaData rsMetadata, |
313 | 309 |
int colIndex |
... | ... | |
369 | 365 |
} |
370 | 366 |
} |
371 | 367 |
|
372 |
protected void fetch_CRS_and_shapeType( |
|
373 |
Connection conn, |
|
368 |
/** |
|
369 |
* Inicializa el tipo, subtipo y SRS del attributo de tipo geometria. |
|
370 |
* |
|
371 |
* @param attr |
|
372 |
* @param rsMetadata |
|
373 |
* @param colIndex |
|
374 |
*/ |
|
375 |
protected void fetchGeometryTypeAndSRS( |
|
376 |
EditableFeatureAttributeDescriptor attr, |
|
374 | 377 |
ResultSetMetaData rsMetadata, |
375 |
EditableFeatureType featureType, |
|
376 |
String schema, |
|
377 |
String table |
|
378 |
) throws SQLException { |
|
379 |
|
|
380 |
// Nothing to do |
|
378 |
int colIndex |
|
379 |
) { |
|
380 |
if( attr.getType()!=DataTypes.GEOMETRY ) { |
|
381 |
return; |
|
382 |
} |
|
383 |
try { |
|
384 |
GeometryType geomType = GeometryLocator.getGeometryManager().getGeometryType( |
|
385 |
Geometry.TYPES.GEOMETRY, |
|
386 |
Geometry.SUBTYPES.GEOM2D |
|
387 |
); |
|
388 |
attr.setGeometryType(geomType); |
|
389 |
attr.setSRS(null); |
|
390 |
} catch (Exception ex) { |
|
391 |
logger.warn("Can't get default geometry type.",ex); |
|
392 |
} |
|
381 | 393 |
} |
382 |
|
|
394 |
|
|
383 | 395 |
} |
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.db/org.gvsig.fmap.dal.db.jdbc/src/main/java/org/gvsig/fmap/dal/store/jdbc2/spi/operations/CreateTableOperation.java | ||
---|---|---|
13 | 13 |
import org.gvsig.fmap.dal.store.jdbc2.spi.JDBCSQLBuilderBase; |
14 | 14 |
import org.gvsig.fmap.dal.store.jdbc.exception.JDBCSQLException; |
15 | 15 |
import org.gvsig.fmap.dal.store.jdbc2.JDBCUtils; |
16 |
import org.gvsig.fmap.geom.DataTypes; |
|
16 | 17 |
|
17 | 18 |
public class CreateTableOperation extends AbstractConnectionOperation { |
18 | 19 |
|
... | ... | |
65 | 66 |
JDBCSQLBuilderBase sqlbuilder = this.createSQLBuilder(); |
66 | 67 |
sqlbuilder.create_table().table().database(dbName).schema(schemaName).name(tableName); |
67 | 68 |
for (FeatureAttributeDescriptor attr : type) { |
68 |
sqlbuilder.create_table().add_column( |
|
69 |
attr.getName(), |
|
70 |
attr.getType(), |
|
71 |
attr.getSize(), |
|
72 |
attr.getPrecision(), |
|
73 |
attr.isPrimaryKey(), |
|
74 |
attr.allowNull(), |
|
75 |
attr.isAutomatic(), |
|
76 |
attr.getDefaultValue() |
|
77 |
); |
|
69 |
if( attr.getType()==DataTypes.GEOMETRY ) { |
|
70 |
sqlbuilder.create_table().add_geometry_column( |
|
71 |
attr.getName(), |
|
72 |
attr.getGeomType().getType(), |
|
73 |
attr.getGeomType().getSubType(), |
|
74 |
attr.getSRS(), |
|
75 |
attr.allowNull() |
|
76 |
); |
|
77 |
} else { |
|
78 |
sqlbuilder.create_table().add_column( |
|
79 |
attr.getName(), |
|
80 |
attr.getType(), |
|
81 |
attr.getSize(), |
|
82 |
attr.getPrecision(), |
|
83 |
attr.isPrimaryKey(), |
|
84 |
attr.allowNull(), |
|
85 |
attr.isAutomatic(), |
|
86 |
attr.getDefaultValue() |
|
87 |
); |
|
88 |
} |
|
78 | 89 |
} |
79 | 90 |
for (Pair<String, SQLBuilder.Privilege> roleAndPrivilege : rolesAndPrivileges) { |
80 | 91 |
sqlbuilder.grant().role(roleAndPrivilege.getLeft()).privilege(roleAndPrivilege.getRight()); |
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.db/org.gvsig.fmap.dal.db.jdbc/src/main/java/org/gvsig/fmap/dal/store/jdbc2/spi/JDBCHelperBase.java | ||
---|---|---|
6 | 6 |
import java.sql.ResultSet; |
7 | 7 |
import org.apache.commons.lang3.StringUtils; |
8 | 8 |
import org.cresques.cts.IProjection; |
9 |
import org.gvsig.fmap.crs.CRSFactory; |
|
9 | 10 |
import org.gvsig.fmap.dal.DataTypes; |
10 | 11 |
import org.gvsig.fmap.dal.exception.DataException; |
11 | 12 |
import org.gvsig.fmap.dal.exception.InitializeException; |
... | ... | |
334 | 335 |
int id = Integer.parseInt(ss[1]); |
335 | 336 |
return id; |
336 | 337 |
} |
338 |
|
|
339 |
@Override |
|
340 |
public IProjection getProjectionFromSRSId(int srsid) { |
|
341 |
// Dumb implementation |
|
342 |
if( srsid < 2000 ) { |
|
343 |
return null; |
|
344 |
} |
|
345 |
IProjection proj = CRSFactory.getCRS("EPSG:"+srsid); |
|
346 |
return proj; |
|
347 |
} |
|
337 | 348 |
|
338 | 349 |
@Override |
339 | 350 |
public JDBCStoreProvider createProvider( |
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.db/org.gvsig.fmap.dal.db.jdbc/src/main/java/org/gvsig/fmap/dal/store/jdbc2/JDBCHelper.java | ||
---|---|---|
159 | 159 |
) throws InitializeException; |
160 | 160 |
|
161 | 161 |
public int getSRSCode(IProjection crs); |
162 |
|
|
163 |
public IProjection getProjectionFromSRSId(int srsid); |
|
162 | 164 |
|
163 | 165 |
public JDBCNewStoreParameters createNewStoreParameters(); |
164 | 166 |
|
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.db/org.gvsig.fmap.dal.db.jdbc/pom.xml | ||
---|---|---|
50 | 50 |
<type>test-jar</type> |
51 | 51 |
<scope>test</scope> |
52 | 52 |
</dependency> |
53 |
|
|
54 | 53 |
<dependency> |
54 |
<groupId>org.gvsig</groupId> |
|
55 |
<artifactId>org.gvsig.tools.lib</artifactId> |
|
56 |
<type>test-jar</type> |
|
57 |
<scope>test</scope> |
|
58 |
</dependency> |
|
59 |
<dependency> |
|
55 | 60 |
<groupId>mysql</groupId> |
56 | 61 |
<artifactId>mysql-connector-java</artifactId> |
57 | 62 |
<scope>test</scope> |
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/jdbc/DefaultJDBCConnectionPanelView.xml | ||
---|---|---|
24 | 24 |
</at> |
25 | 25 |
<at name="componentclass">com.jeta.forms.gui.form.FormComponent</at> |
26 | 26 |
</super> |
27 |
<at name="id">/home/jjdelcerro/datos/devel/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/jdbc/DefaultJDBCConnectionPanelView.java.xml</at>
|
|
27 |
<at name="id">/home/jjdelcerro/data/devel/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/jdbc/DefaultJDBCConnectionPanelView.xml</at>
|
|
28 | 28 |
<at name="rowspecs">CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE</at> |
29 | 29 |
<at name="colspecs">FILL:DEFAULT:NONE,FILL:DEFAULT:NONE,FILL:DEFAULT:NONE,FILL:DEFAULT:GROW(1.0),FILL:DEFAULT:NONE</at> |
30 | 30 |
<at name="components"> |
... | ... | |
53 | 53 |
<at name="classname">com.jeta.forms.components.label.JETALabel</at> |
54 | 54 |
<at name="properties"> |
55 | 55 |
<object classname="com.jeta.forms.store.support.PropertyMap"> |
56 |
<at name="text">Nombre de la conexion</at> |
|
57 |
<at name="height">14</at> |
|
58 |
<at name="width">131</at> |
|
59 |
<at name="name">lblConnectionName</at> |
|
60 |
<at name="fill"> |
|
61 |
<object classname="com.jeta.forms.store.properties.effects.PaintProperty"> |
|
62 |
<at name="name">fill</at> |
|
63 |
</object> |
|
64 |
</at> |
|
65 | 56 |
<at name="border"> |
66 | 57 |
<object classname="com.jeta.forms.store.properties.CompoundBorderProperty"> |
67 | 58 |
<super classname="com.jeta.forms.store.properties.BorderProperty"> |
... | ... | |
82 | 73 |
</at> |
83 | 74 |
</object> |
84 | 75 |
</at> |
76 |
<at name="name">lblConnectionName</at> |
|
77 |
<at name="width">131</at> |
|
78 |
<at name="text">Nombre de la conexion</at> |
|
79 |
<at name="fill"> |
|
80 |
<object classname="com.jeta.forms.store.properties.effects.PaintProperty"> |
|
81 |
<at name="name">fill</at> |
|
82 |
</object> |
|
83 |
</at> |
|
84 |
<at name="height">14</at> |
|
85 | 85 |
</object> |
86 | 86 |
</at> |
87 | 87 |
</object> |
... | ... | |
113 | 113 |
<at name="classname">com.jeta.forms.components.label.JETALabel</at> |
114 | 114 |
<at name="properties"> |
115 | 115 |
<object classname="com.jeta.forms.store.support.PropertyMap"> |
116 |
<at name="text">Conector</at> |
|
117 |
<at name="height">14</at> |
|
118 |
<at name="width">131</at> |
|
119 |
<at name="name">lblConnector</at> |
|
120 |
<at name="fill"> |
|
121 |
<object classname="com.jeta.forms.store.properties.effects.PaintProperty"> |
|
122 |
<at name="name">fill</at> |
|
123 |
</object> |
|
124 |
</at> |
|
125 | 116 |
<at name="border"> |
126 | 117 |
<object classname="com.jeta.forms.store.properties.CompoundBorderProperty"> |
127 | 118 |
<super classname="com.jeta.forms.store.properties.BorderProperty"> |
... | ... | |
142 | 133 |
</at> |
143 | 134 |
</object> |
144 | 135 |
</at> |
136 |
<at name="name">lblConnector</at> |
|
137 |
<at name="width">131</at> |
|
138 |
<at name="text">Conector</at> |
|
139 |
<at name="fill"> |
|
140 |
<object classname="com.jeta.forms.store.properties.effects.PaintProperty"> |
|
141 |
<at name="name">fill</at> |
|
142 |
</object> |
|
143 |
</at> |
|
144 |
<at name="height">14</at> |
|
145 | 145 |
</object> |
146 | 146 |
</at> |
147 | 147 |
</object> |
... | ... | |
173 | 173 |
<at name="classname">com.jeta.forms.components.label.JETALabel</at> |
174 | 174 |
<at name="properties"> |
175 | 175 |
<object classname="com.jeta.forms.store.support.PropertyMap"> |
176 |
<at name="text">Servidor</at> |
|
177 |
<at name="height">14</at> |
|
178 |
<at name="width">131</at> |
|
179 |
<at name="name">lblServer</at> |
|
180 |
<at name="fill"> |
|
181 |
<object classname="com.jeta.forms.store.properties.effects.PaintProperty"> |
|
182 |
<at name="name">fill</at> |
|
183 |
</object> |
|
184 |
</at> |
|
185 | 176 |
<at name="border"> |
186 | 177 |
<object classname="com.jeta.forms.store.properties.CompoundBorderProperty"> |
187 | 178 |
<super classname="com.jeta.forms.store.properties.BorderProperty"> |
... | ... | |
202 | 193 |
</at> |
203 | 194 |
</object> |
204 | 195 |
</at> |
196 |
<at name="name">lblServer</at> |
|
197 |
<at name="width">131</at> |
|
198 |
<at name="text">Servidor</at> |
|
199 |
<at name="fill"> |
|
200 |
<object classname="com.jeta.forms.store.properties.effects.PaintProperty"> |
|
201 |
<at name="name">fill</at> |
|
202 |
</object> |
|
203 |
</at> |
|
204 |
<at name="height">14</at> |
|
205 | 205 |
</object> |
206 | 206 |
</at> |
207 | 207 |
</object> |
... | ... | |
233 | 233 |
<at name="classname">com.jeta.forms.components.label.JETALabel</at> |
234 | 234 |
<at name="properties"> |
235 | 235 |
<object classname="com.jeta.forms.store.support.PropertyMap"> |
236 |
<at name="text">Puerto</at> |
|
237 |
<at name="height">14</at> |
|
238 |
<at name="width">131</at> |
|
239 |
<at name="name">lblPort</at> |
|
240 |
<at name="fill"> |
|
241 |
<object classname="com.jeta.forms.store.properties.effects.PaintProperty"> |
|
242 |
<at name="name">fill</at> |
|
243 |
</object> |
|
244 |
</at> |
|
245 | 236 |
<at name="border"> |
246 | 237 |
<object classname="com.jeta.forms.store.properties.CompoundBorderProperty"> |
247 | 238 |
<super classname="com.jeta.forms.store.properties.BorderProperty"> |
... | ... | |
262 | 253 |
</at> |
263 | 254 |
</object> |
264 | 255 |
</at> |
256 |
<at name="name">lblPort</at> |
|
257 |
<at name="width">131</at> |
|
258 |
<at name="text">Puerto</at> |
|
259 |
<at name="fill"> |
|
260 |
<object classname="com.jeta.forms.store.properties.effects.PaintProperty"> |
|
261 |
<at name="name">fill</at> |
|
262 |
</object> |
|
263 |
</at> |
|
264 |
<at name="height">14</at> |
|
265 | 265 |
</object> |
266 | 266 |
</at> |
267 | 267 |
</object> |
... | ... | |
293 | 293 |
<at name="classname">com.jeta.forms.components.label.JETALabel</at> |
294 | 294 |
<at name="properties"> |
295 | 295 |
<object classname="com.jeta.forms.store.support.PropertyMap"> |
296 |
<at name="text">Base de datos</at> |
|
297 |
<at name="height">14</at> |
|
298 |
<at name="width">131</at> |
|
299 |
<at name="name">lblDataBase</at> |
|
300 |
<at name="fill"> |
|
301 |
<object classname="com.jeta.forms.store.properties.effects.PaintProperty"> |
|
302 |
<at name="name">fill</at> |
|
303 |
</object> |
|
304 |
</at> |
|
305 | 296 |
<at name="border"> |
306 | 297 |
<object classname="com.jeta.forms.store.properties.CompoundBorderProperty"> |
307 | 298 |
<super classname="com.jeta.forms.store.properties.BorderProperty"> |
... | ... | |
322 | 313 |
</at> |
323 | 314 |
</object> |
324 | 315 |
</at> |
316 |
<at name="name">lblDataBase</at> |
|
317 |
<at name="width">131</at> |
|
318 |
<at name="text">Base de datos</at> |
|
319 |
<at name="fill"> |
|
320 |
<object classname="com.jeta.forms.store.properties.effects.PaintProperty"> |
|
321 |
<at name="name">fill</at> |
|
322 |
</object> |
|
323 |
</at> |
|
324 |
<at name="height">14</at> |
|
325 | 325 |
</object> |
326 | 326 |
</at> |
327 | 327 |
</object> |
... | ... | |
353 | 353 |
<at name="classname">com.jeta.forms.components.label.JETALabel</at> |
354 | 354 |
<at name="properties"> |
355 | 355 |
<object classname="com.jeta.forms.store.support.PropertyMap"> |
356 |
<at name="text">Usuario</at> |
|
357 |
<at name="height">14</at> |
|
358 |
<at name="width">131</at> |
|
359 |
<at name="name">lblUsername</at> |
|
360 |
<at name="fill"> |
|
361 |
<object classname="com.jeta.forms.store.properties.effects.PaintProperty"> |
|
362 |
<at name="name">fill</at> |
|
363 |
</object> |
|
364 |
</at> |
|
365 | 356 |
<at name="border"> |
366 | 357 |
<object classname="com.jeta.forms.store.properties.CompoundBorderProperty"> |
367 | 358 |
<super classname="com.jeta.forms.store.properties.BorderProperty"> |
... | ... | |
382 | 373 |
</at> |
383 | 374 |
</object> |
384 | 375 |
</at> |
376 |
<at name="name">lblUsername</at> |
|
377 |
<at name="width">131</at> |
|
378 |
<at name="text">Usuario</at> |
|
379 |
<at name="fill"> |
|
380 |
<object classname="com.jeta.forms.store.properties.effects.PaintProperty"> |
|
381 |
<at name="name">fill</at> |
|
382 |
</object> |
|
383 |
</at> |
|
384 |
<at name="height">14</at> |
|
385 | 385 |
</object> |
386 | 386 |
</at> |
387 | 387 |
</object> |
... | ... | |
413 | 413 |
<at name="classname">com.jeta.forms.components.label.JETALabel</at> |
414 | 414 |
<at name="properties"> |
415 | 415 |
<object classname="com.jeta.forms.store.support.PropertyMap"> |
416 |
<at name="text">Clave</at> |
|
417 |
<at name="height">14</at> |
|
418 |
<at name="width">131</at> |
|
419 |
<at name="name">lblPassword</at> |
|
420 |
<at name="fill"> |
|
421 |
<object classname="com.jeta.forms.store.properties.effects.PaintProperty"> |
|
422 |
<at name="name">fill</at> |
|
423 |
</object> |
|
424 |
</at> |
|
425 | 416 |
<at name="border"> |
426 | 417 |
<object classname="com.jeta.forms.store.properties.CompoundBorderProperty"> |
427 | 418 |
<super classname="com.jeta.forms.store.properties.BorderProperty"> |
... | ... | |
442 | 433 |
</at> |
443 | 434 |
</object> |
444 | 435 |
</at> |
436 |
<at name="name">lblPassword</at> |
|
437 |
<at name="width">131</at> |
|
438 |
<at name="text">Clave</at> |
|
439 |
<at name="fill"> |
|
440 |
<object classname="com.jeta.forms.store.properties.effects.PaintProperty"> |
|
441 |
<at name="name">fill</at> |
|
442 |
</object> |
|
443 |
</at> |
|
444 |
<at name="height">14</at> |
|
445 | 445 |
</object> |
446 | 446 |
</at> |
447 | 447 |
</object> |
... | ... | |
473 | 473 |
<at name="classname">javax.swing.JComboBox</at> |
474 | 474 |
<at name="properties"> |
475 | 475 |
<object classname="com.jeta.forms.store.support.PropertyMap"> |
476 |
<at name="height">20</at> |
|
477 |
<at name="requestFocusEnabled">false</at> |
|
478 |
<at name="items"> |
|
479 |
<object classname="com.jeta.forms.store.properties.ItemsProperty"> |
|
480 |
<at name="name">items</at> |
|
481 |
</object> |
|
482 |
</at> |
|
483 |
<at name="componentCount">3</at> |
|
484 |
<at name="width">244</at> |
|
485 |
<at name="name">cboConnections</at> |
|
486 | 476 |
<at name="border"> |
487 | 477 |
<object classname="com.jeta.forms.store.properties.CompoundBorderProperty"> |
488 | 478 |
<super classname="com.jeta.forms.store.properties.BorderProperty"> |
... | ... | |
503 | 493 |
</at> |
504 | 494 |
</object> |
505 | 495 |
</at> |
496 |
<at name="componentCount">3</at> |
|
506 | 497 |
<at name="editable">true</at> |
498 |
<at name="requestFocusEnabled">false</at> |
|
499 |
<at name="name">cboConnections</at> |
|
500 |
<at name="width">760</at> |
|
501 |
<at name="items"> |
|
502 |
<object classname="com.jeta.forms.store.properties.ItemsProperty"> |
|
503 |
<at name="name">items</at> |
|
504 |
</object> |
|
505 |
</at> |
|
506 |
<at name="height">20</at> |
|
507 | 507 |
</object> |
508 | 508 |
</at> |
509 | 509 |
</object> |
... | ... | |
535 | 535 |
<at name="classname">javax.swing.JComboBox</at> |
536 | 536 |
<at name="properties"> |
537 | 537 |
<object classname="com.jeta.forms.store.support.PropertyMap"> |
538 |
<at name="height">20</at> |
|
539 |
<at name="items"> |
|
540 |
<object classname="com.jeta.forms.store.properties.ItemsProperty"> |
|
541 |
<at name="name">items</at> |
|
542 |
</object> |
|
543 |
</at> |
|
544 |
<at name="width">244</at> |
|
545 |
<at name="name">cboConnectors</at> |
|
546 | 538 |
<at name="border"> |
547 | 539 |
<object classname="com.jeta.forms.store.properties.CompoundBorderProperty"> |
548 | 540 |
<super classname="com.jeta.forms.store.properties.BorderProperty"> |
... | ... | |
563 | 555 |
</at> |
564 | 556 |
</object> |
565 | 557 |
</at> |
558 |
<at name="name">cboConnectors</at> |
|
559 |
<at name="width">760</at> |
|
560 |
<at name="items"> |
|
561 |
<object classname="com.jeta.forms.store.properties.ItemsProperty"> |
|
562 |
<at name="name">items</at> |
|
563 |
</object> |
|
564 |
</at> |
|
565 |
<at name="height">20</at> |
|
566 | 566 |
</object> |
567 | 567 |
</at> |
568 | 568 |
</object> |
... | ... | |
594 | 594 |
<at name="classname">javax.swing.JTextField</at> |
595 | 595 |
<at name="properties"> |
596 | 596 |
<object classname="com.jeta.forms.store.support.PropertyMap"> |
597 |
<at name="height">20</at> |
|
598 |
<at name="width">244</at> |
|
599 |
<at name="name">txtServer</at> |
|
600 | 597 |
<at name="border"> |
601 | 598 |
<object classname="com.jeta.forms.store.properties.CompoundBorderProperty"> |
602 | 599 |
<super classname="com.jeta.forms.store.properties.BorderProperty"> |
... | ... | |
617 | 614 |
</at> |
618 | 615 |
</object> |
619 | 616 |
</at> |
617 |
<at name="name">txtServer</at> |
|
618 |
<at name="width">760</at> |
|
619 |
<at name="height">20</at> |
|
620 | 620 |
</object> |
621 | 621 |
</at> |
622 | 622 |
</object> |
... | ... | |
648 | 648 |
<at name="classname">javax.swing.JTextField</at> |
649 | 649 |
<at name="properties"> |
650 | 650 |
<object classname="com.jeta.forms.store.support.PropertyMap"> |
651 |
<at name="height">20</at> |
|
652 |
<at name="width">244</at> |
|
653 |
<at name="name">txtPort</at> |
|
654 | 651 |
<at name="border"> |
655 | 652 |
<object classname="com.jeta.forms.store.properties.CompoundBorderProperty"> |
656 | 653 |
<super classname="com.jeta.forms.store.properties.BorderProperty"> |
... | ... | |
671 | 668 |
</at> |
672 | 669 |
</object> |
673 | 670 |
</at> |
674 |
</object> |
|
675 |
</at> |
|
676 |
</object> |
|
677 |
</at> |
|
678 |
</object> |
|
679 |
</at> |
|
680 |
</item> |
|
681 |
<item > |
|
682 |
<at name="value"> |
|
683 |
<object classname="com.jeta.forms.store.memento.BeanMemento"> |
|
684 |
<super classname="com.jeta.forms.store.memento.ComponentMemento"> |
|
685 |
<at name="cellconstraints"> |
|
686 |
<object classname="com.jeta.forms.store.memento.CellConstraintsMemento"> |
|
687 |
<at name="column">4</at> |
|
688 |
<at name="row">10</at> |
|
689 |
<at name="colspan">1</at> |
|
690 |
<at name="rowspan">1</at> |
|
691 |
<at name="halign">default</at> |
|
692 |
<at name="valign">default</at> |
|
693 |
<at name="insets" object="insets">0,0,0,0</at> |
|
694 |
</object> |
|
695 |
</at> |
|
696 |
<at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at> |
|
697 |
</super> |
|
698 |
<at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at> |
|
699 |
<at name="beanclass">javax.swing.JTextField</at> |
|
700 |
<at name="beanproperties"> |
|
701 |
<object classname="com.jeta.forms.store.memento.PropertiesMemento"> |
|
702 |
<at name="classname">javax.swing.JTextField</at> |
|
703 |
<at name="properties"> |
|
704 |
<object classname="com.jeta.forms.store.support.PropertyMap"> |
|
671 |
<at name="name">txtPort</at> |
|
672 |
<at name="width">760</at> |
|
705 | 673 |
<at name="height">20</at> |
706 |
<at name="width">244</at> |
|
707 |
<at name="name">txtDataBase</at> |
|
708 |
<at name="border"> |
|
709 |
<object classname="com.jeta.forms.store.properties.CompoundBorderProperty"> |
|
710 |
<super classname="com.jeta.forms.store.properties.BorderProperty"> |
|
711 |
<at name="name">border</at> |
|
712 |
</super> |
|
713 |
<at name="borders"> |
|
714 |
<object classname="java.util.LinkedList"> |
|
715 |
<item > |
|
716 |
<at name="value"> |
|
717 |
<object classname="com.jeta.forms.store.properties.DefaultBorderProperty"> |
|
718 |
<super classname="com.jeta.forms.store.properties.BorderProperty"> |
|
719 |
<at name="name">border</at> |
|
720 |
</super> |
|
721 |
</object> |
|
722 |
</at> |
|
723 |
</item> |
|
724 |
</object> |
|
725 |
</at> |
|
726 |
</object> |
|
727 |
</at> |
|
728 | 674 |
</object> |
729 | 675 |
</at> |
730 | 676 |
</object> |
... | ... | |
756 | 702 |
<at name="classname">javax.swing.JTextField</at> |
757 | 703 |
<at name="properties"> |
758 | 704 |
<object classname="com.jeta.forms.store.support.PropertyMap"> |
759 |
<at name="height">20</at> |
|
760 |
<at name="width">244</at> |
|
761 |
<at name="name">txtUsername</at> |
|
762 | 705 |
<at name="border"> |
763 | 706 |
<object classname="com.jeta.forms.store.properties.CompoundBorderProperty"> |
764 | 707 |
<super classname="com.jeta.forms.store.properties.BorderProperty"> |
... | ... | |
779 | 722 |
</at> |
780 | 723 |
</object> |
781 | 724 |
</at> |
725 |
<at name="name">txtUsername</at> |
|
726 |
<at name="width">760</at> |
|
727 |
<at name="height">20</at> |
|
782 | 728 |
</object> |
783 | 729 |
</at> |
784 | 730 |
</object> |
... | ... | |
810 | 756 |
<at name="classname">javax.swing.JTextField</at> |
811 | 757 |
<at name="properties"> |
812 | 758 |
<object classname="com.jeta.forms.store.support.PropertyMap"> |
813 |
<at name="height">20</at> |
|
814 |
<at name="width">244</at> |
|
815 |
<at name="name">txtPassword</at> |
|
816 | 759 |
<at name="border"> |
817 | 760 |
<object classname="com.jeta.forms.store.properties.CompoundBorderProperty"> |
818 | 761 |
<super classname="com.jeta.forms.store.properties.BorderProperty"> |
... | ... | |
833 | 776 |
</at> |
834 | 777 |
</object> |
835 | 778 |
</at> |
779 |
<at name="name">txtPassword</at> |
|
780 |
<at name="width">760</at> |
|
781 |
<at name="height">20</at> |
|
836 | 782 |
</object> |
837 | 783 |
</at> |
838 | 784 |
</object> |
... | ... | |
857 | 803 |
</at> |
858 | 804 |
<at name="componentclass">com.jeta.forms.gui.form.FormComponent</at> |
859 | 805 |
</super> |
860 |
<at name="id">embedded.1913631561</at>
|
|
806 |
<at name="id">embedded.186663118</at>
|
|
861 | 807 |
<at name="rowspecs">CENTER:DEFAULT:NONE</at> |
862 | 808 |
<at name="colspecs">RIGHT:12DLU:GROW(1.0)</at> |
863 | 809 |
<at name="components"> |
... | ... | |
886 | 832 |
<at name="classname">com.jeta.forms.components.label.JETALabel</at> |
887 | 833 |
<at name="properties"> |
888 | 834 |
<object classname="com.jeta.forms.store.support.PropertyMap"> |
889 |
<at name="text"><html> Tenga en cuenta que el nombre de usuario y la contraseƱa deben coincidir en mayusculas y minusculas con el registrado en la base de dato. <html></at> |
|
890 |
<at name="height">42</at> |
|
891 |
<at name="width">390</at> |
|
892 |
<at name="name">lblFoother</at> |
|
893 |
<at name="fill"> |
|
894 |
<object classname="com.jeta.forms.store.properties.effects.PaintProperty"> |
|
895 |
<at name="name">fill</at> |
|
896 |
</object> |
|
897 |
</at> |
|
898 | 835 |
<at name="border"> |
899 | 836 |
<object classname="com.jeta.forms.store.properties.CompoundBorderProperty"> |
900 | 837 |
<super classname="com.jeta.forms.store.properties.BorderProperty"> |
... | ... | |
915 | 852 |
</at> |
916 | 853 |
</object> |
917 | 854 |
</at> |
855 |
<at name="name">lblFoother</at> |
|
856 |
<at name="width">814</at> |
|
857 |
<at name="text"><html> Tenga en cuenta que el nombre de usuario y la contraseƱa deben coincidir en mayusculas y minusculas con el registrado en la base de dato. <html></at> |
|
858 |
<at name="fill"> |
|
859 |
<object classname="com.jeta.forms.store.properties.effects.PaintProperty"> |
|
860 |
<at name="name">fill</at> |
|
861 |
</object> |
|
862 |
</at> |
|
863 |
<at name="height">14</at> |
|
918 | 864 |
</object> |
919 | 865 |
</at> |
920 | 866 |
</object> |
... | ... | |
929 | 875 |
<at name="classname">com.jeta.forms.gui.form.GridView</at> |
930 | 876 |
<at name="properties"> |
931 | 877 |
<object classname="com.jeta.forms.store.support.PropertyMap"> |
932 |
<at name="name"></at> |
|
878 |
<at name="border"> |
|
879 |
<object classname="com.jeta.forms.store.properties.CompoundBorderProperty"> |
|
880 |
<super classname="com.jeta.forms.store.properties.BorderProperty"> |
|
881 |
<at name="name">border</at> |
|
882 |
</super> |
|
883 |
<at name="borders"> |
|
884 |
<object classname="java.util.LinkedList"/> |
|
885 |
</at> |
|
886 |
</object> |
|
887 |
</at> |
|
888 |
<at name="name"/> |
|
933 | 889 |
<at name="fill"> |
934 | 890 |
<object classname="com.jeta.forms.store.properties.effects.PaintProperty"> |
935 | 891 |
<at name="name">fill</at> |
... | ... | |
962 | 918 |
</at> |
963 | 919 |
</object> |
964 | 920 |
</at> |
921 |
</object> |
|
922 |
</at> |
|
923 |
</object> |
|
924 |
</at> |
|
925 |
<at name="cellpainters"> |
|
926 |
<object classname="com.jeta.forms.store.support.Matrix"> |
|
927 |
<at name="rows"> |
|
928 |
<object classname="[Ljava.lang.Object;" size="1"> |
|
929 |
<at name="item" index="0"> |
|
930 |
<object classname="[Ljava.lang.Object;" size="1"/> |
|
931 |
</at> |
|
932 |
</object> |
|
933 |
</at> |
|
934 |
</object> |
|
935 |
</at> |
|
936 |
<at name="rowgroups"> |
|
937 |
<object classname="com.jeta.forms.store.memento.FormGroupSet"> |
|
938 |
<at name="groups"> |
|
939 |
<object classname="java.util.HashMap"/> |
|
940 |
</at> |
|
941 |
</object> |
|
942 |
</at> |
|
943 |
<at name="colgroups"> |
|
944 |
<object classname="com.jeta.forms.store.memento.FormGroupSet"> |
|
945 |
<at name="groups"> |
|
946 |
<object classname="java.util.HashMap"/> |
|
947 |
</at> |
Also available in: Unified diff