Revision 43088
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.file/org.gvsig.fmap.dal.file.csv/src/main/java/org/gvsig/fmap/dal/store/csv/CSVStoreParameters.java | ||
---|---|---|
31 | 31 |
import org.apache.commons.lang3.StringUtils; |
32 | 32 |
import org.cresques.cts.IProjection; |
33 | 33 |
import org.gvsig.fmap.dal.FileHelper; |
34 |
import org.gvsig.fmap.dal.OpenDataStoreParameters;
|
|
34 |
import org.gvsig.fmap.dal.feature.OpenFeatureStoreParameters;
|
|
35 | 35 |
import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemStoreParameters; |
36 | 36 |
import org.gvsig.fmap.dal.spi.AbstractDataParameters; |
37 | 37 |
import org.gvsig.fmap.dal.spi.DataStoreProviderServices; |
... | ... | |
45 | 45 |
import org.supercsv.quote.QuoteMode; |
46 | 46 |
|
47 | 47 |
public class CSVStoreParameters extends AbstractDataParameters implements |
48 |
OpenDataStoreParameters, FilesystemStoreParameters {
|
|
48 |
OpenFeatureStoreParameters, FilesystemStoreParameters {
|
|
49 | 49 |
|
50 | 50 |
private static final Logger logger = LoggerFactory.getLogger(CSVStoreParameters.class); |
51 | 51 |
|
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/fmap/dal/impl/DefaultDataManager.java | ||
---|---|---|
1 | 1 |
package org.gvsig.fmap.dal.impl; |
2 | 2 |
|
3 |
import org.gvsig.fmap.dal.feature.spi.ExpressionEvaluatorBase; |
|
3 | 4 |
import java.io.File; |
4 | 5 |
import java.io.InputStream; |
5 | 6 |
import java.net.URL; |
... | ... | |
21 | 22 |
import org.gvsig.fmap.dal.DataStoreProviderFactory; |
22 | 23 |
import org.gvsig.fmap.dal.DataTypes; |
23 | 24 |
import org.gvsig.fmap.dal.ExpressionBuilder; |
25 |
import org.gvsig.fmap.dal.ExpressionEvaluator; |
|
24 | 26 |
import org.gvsig.fmap.dal.NewDataStoreParameters; |
25 | 27 |
import org.gvsig.fmap.dal.OpenErrorHandler; |
26 | 28 |
import org.gvsig.fmap.dal.Register; |
... | ... | |
342 | 344 |
throw new UnauthorizedException(READ_STORE_AUTHORIZATION, parameters, providerName); |
343 | 345 |
} |
344 | 346 |
|
347 |
parameters.validate(); |
|
348 |
|
|
345 | 349 |
String storeName = this.getStoreName(parameters); |
346 | 350 |
|
347 | 351 |
DataStoreFactory_v2_4 storeFactory = (DataStoreFactory_v2_4) this.getStoreRegister().getFactory(storeName); |
... | ... | |
570 | 574 |
} |
571 | 575 |
|
572 | 576 |
@Override |
577 |
public ExpressionEvaluator createExpresion() { |
|
578 |
return new ExpressionEvaluatorBase(); |
|
579 |
} |
|
580 |
|
|
581 |
@Override |
|
573 | 582 |
public FeaturePagingHelper createFeaturePagingHelper( |
574 | 583 |
FeatureStore featureStore, int pageSize) throws BaseException { |
575 | 584 |
return new FeaturePagingHelperImpl(featureStore, pageSize); |
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/fmap/dal/feature/impl/DefaultFeatureStore.java | ||
---|---|---|
46 | 46 |
import org.gvsig.fmap.dal.DataStoreNotification; |
47 | 47 |
import org.gvsig.fmap.dal.DataStoreParameters; |
48 | 48 |
import org.gvsig.fmap.dal.ExpressionBuilder; |
49 |
import org.gvsig.fmap.dal.ExpressionEvaluator; |
|
49 | 50 |
import org.gvsig.fmap.dal.exception.CloneException; |
50 | 51 |
import org.gvsig.fmap.dal.exception.CloseException; |
51 | 52 |
import org.gvsig.fmap.dal.exception.CreateException; |
... | ... | |
2255 | 2256 |
} |
2256 | 2257 |
|
2257 | 2258 |
@Override |
2258 |
public ExpressionBuilder createExpressionBuilder() {
|
|
2259 |
public ExpressionEvaluator createExpression() {
|
|
2259 | 2260 |
if( this.provider instanceof FeatureStoreProvider_v2 ) { |
2260 |
return ((FeatureStoreProvider_v2)this.provider).createExpressionBuilder();
|
|
2261 |
return ((FeatureStoreProvider_v2)this.provider).createExpression(); |
|
2261 | 2262 |
} |
2262 | 2263 |
return new SQLBuilderBase(); |
2263 | 2264 |
} |
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/fmap/dal/feature/impl/DefaultFeatureSelection.java | ||
---|---|---|
44 | 44 |
import org.gvsig.fmap.dal.feature.impl.dynobjectutils.DynObjectSetFeatureSetFacade; |
45 | 45 |
import org.gvsig.tools.ToolsLocator; |
46 | 46 |
import org.gvsig.tools.dispose.DisposableIterator; |
47 |
import org.gvsig.tools.dispose.DisposeUtils; |
|
47 | 48 |
import org.gvsig.tools.dynobject.DynObjectSet; |
48 | 49 |
import org.gvsig.tools.dynobject.DynStruct; |
49 | 50 |
import org.gvsig.tools.exception.BaseException; |
... | ... | |
317 | 318 |
public DisposableIterator fastIterator() { |
318 | 319 |
return fastIterator(0); |
319 | 320 |
} |
321 |
|
|
322 |
@Override |
|
323 |
public Feature first() { |
|
324 |
DisposableIterator it = null; |
|
325 |
try { |
|
326 |
it = this.iterator(); |
|
327 |
if( it == null ) { |
|
328 |
return null; |
|
329 |
} |
|
330 |
Feature f = (Feature) it.next(); |
|
331 |
return f; |
|
332 |
} finally { |
|
333 |
DisposeUtils.disposeQuietly(it); |
|
334 |
} |
|
335 |
} |
|
320 | 336 |
|
321 | 337 |
/** |
322 | 338 |
* Returns the list of selected values, or the deselected ones if the |
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/fmap/dal/feature/impl/featureset/DefaultFeatureSet.java | ||
---|---|---|
48 | 48 |
import org.gvsig.fmap.dal.feature.impl.DefaultFeatureStoreTransforms; |
49 | 49 |
import org.gvsig.fmap.dal.feature.spi.FeatureSetProvider; |
50 | 50 |
import org.gvsig.tools.dispose.DisposableIterator; |
51 |
import org.gvsig.tools.dispose.DisposeUtils; |
|
51 | 52 |
import org.gvsig.tools.dynobject.DynObjectSet; |
52 | 53 |
import org.gvsig.tools.evaluator.Evaluator; |
53 | 54 |
import org.gvsig.tools.exception.BaseException; |
... | ... | |
349 | 350 |
return this.getSize() == 0; |
350 | 351 |
} |
351 | 352 |
|
353 |
@Override |
|
354 |
public Feature first() { |
|
355 |
DisposableIterator it = null; |
|
356 |
try { |
|
357 |
it = this.iterator(); |
|
358 |
if( it == null ) { |
|
359 |
return null; |
|
360 |
} |
|
361 |
Feature f = (Feature) it.next(); |
|
362 |
return f; |
|
363 |
} finally { |
|
364 |
DisposeUtils.disposeQuietly(it); |
|
365 |
} |
|
366 |
} |
|
367 |
|
|
368 |
|
|
352 | 369 |
public DisposableIterator fastIterator() throws DataException { |
353 | 370 |
return this.fastIterator(0); |
354 | 371 |
} |
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/fmap/dal/feature/impl/FeatureStoreFactory.java | ||
---|---|---|
10 | 10 |
import org.gvsig.fmap.dal.impl.DefaultDataManager; |
11 | 11 |
import org.gvsig.fmap.dal.spi.DataStoreInitializer2; |
12 | 12 |
import org.gvsig.fmap.dal.DataStoreProvider; |
13 |
import org.gvsig.fmap.dal.OpenDataStoreParameters;
|
|
13 |
import org.gvsig.fmap.dal.feature.OpenFeatureStoreParameters;
|
|
14 | 14 |
import org.gvsig.tools.dynobject.DynObject; |
15 | 15 |
import org.gvsig.tools.service.spi.Services; |
16 | 16 |
|
... | ... | |
49 | 49 |
|
50 | 50 |
@Override |
51 | 51 |
public boolean canUse(DataParameters parameters) { |
52 |
boolean use = parameters instanceof OpenDataStoreParameters;
|
|
52 |
boolean use = parameters instanceof OpenFeatureStoreParameters;
|
|
53 | 53 |
return use; |
54 | 54 |
} |
55 | 55 |
|
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/pom.xml | ||
---|---|---|
11 | 11 |
<version>2.0.169-SNAPSHOT</version> |
12 | 12 |
</parent> |
13 | 13 |
|
14 |
<dependencies> |
|
14 |
<dependencies>
|
|
15 | 15 |
<dependency> |
16 | 16 |
<groupId>org.apache.commons</groupId> |
17 | 17 |
<artifactId>commons-lang3</artifactId> |
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/JDBCStoreProviderBase.java | ||
---|---|---|
191 | 191 |
|
192 | 192 |
|
193 | 193 |
@Override |
194 |
public JDBCSQLBuilderBase createExpressionBuilder() {
|
|
194 |
public JDBCSQLBuilderBase createExpression() { |
|
195 | 195 |
return this.getHelper().createSQLBuilder(); |
196 | 196 |
} |
197 | 197 |
|
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/CalculateEnvelopeOfColumnOperation.java | ||
---|---|---|
75 | 75 |
IProjection crs |
76 | 76 |
) throws DataException { |
77 | 77 |
|
78 |
// |
|
79 |
// Parece ser que en versiones anteriores a SQL Server 2012 no esta |
|
80 |
// disponible la funcion ST_ExtentAggregate. |
|
81 |
// Habria que determinar si es necesario implementar una alternativa |
|
82 |
// para estos casos. |
|
83 |
// |
|
84 |
// https://alastaira.wordpress.com/2011/07/26/determining-the-geographic-extent-of-spatial-features-in-a-sql-server-table/ |
|
85 |
// |
|
78 | 86 |
JDBCSQLBuilderBase sqlbuilder = this.createSQLBuilder(); |
79 | 87 |
sqlbuilder.select().column().value( |
80 | 88 |
sqlbuilder.getAsGeometry( |
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.api/src/test/java/org/gvsig/fmap/dal/feature/DummyFetureStore.java | ||
---|---|---|
11 | 11 |
import org.gvsig.fmap.dal.DataSet; |
12 | 12 |
import org.gvsig.fmap.dal.DataStoreParameters; |
13 | 13 |
import org.gvsig.fmap.dal.ExpressionBuilder; |
14 |
import org.gvsig.fmap.dal.ExpressionEvaluator; |
|
14 | 15 |
import org.gvsig.fmap.dal.exception.DataException; |
15 | 16 |
import org.gvsig.fmap.dal.exception.ValidateDataParametersException; |
16 | 17 |
import org.gvsig.fmap.dal.feature.exception.NeedEditingModeException; |
... | ... | |
574 | 575 |
} |
575 | 576 |
|
576 | 577 |
@Override |
577 |
public ExpressionBuilder createExpressionBuilder() {
|
|
578 |
public ExpressionEvaluator createExpression() {
|
|
578 | 579 |
return null; |
579 | 580 |
} |
580 | 581 |
|
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.api/src/main/java/org/gvsig/fmap/dal/DataManager.java | ||
---|---|---|
281 | 281 |
*/ |
282 | 282 |
public Evaluator createExpresion(String expression) |
283 | 283 |
throws InitializeException; |
284 |
|
|
284 |
|
|
285 |
/** |
|
286 |
* Creates an instance of Evaluator to evaluate a expression. |
|
287 |
* |
|
288 |
* @return instance of ExpressionEvaluator representing the given expression. |
|
289 |
*/ |
|
290 |
public ExpressionEvaluator createExpresion(); |
|
291 |
|
|
285 | 292 |
/* |
286 | 293 |
* ==================================================================== |
287 | 294 |
* |
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.api/src/main/java/org/gvsig/fmap/dal/ExpressionEvaluator.java | ||
---|---|---|
1 |
|
|
2 |
package org.gvsig.fmap.dal; |
|
3 |
|
|
4 |
import org.gvsig.tools.evaluator.Evaluator; |
|
5 |
|
|
6 |
|
|
7 |
public interface ExpressionEvaluator extends ExpressionBuilder, Evaluator { |
|
8 |
|
|
9 |
} |
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.api/src/main/java/org/gvsig/fmap/dal/feature/FeatureSet.java | ||
---|---|---|
228 | 228 |
*/ |
229 | 229 |
boolean isEmpty() throws DataException; |
230 | 230 |
|
231 |
/** |
|
232 |
* Return the first feature of the set. |
|
233 |
* If the set is empty return null. |
|
234 |
* |
|
235 |
* This not is a good method to determine if the set is empty. |
|
236 |
* Use isEmpty instead. |
|
237 |
* |
|
238 |
* This is a utility method that call iterator and retrieve the |
|
239 |
* first feature of the iterator. |
|
240 |
* |
|
241 |
* @return the first fearure of the set or null. |
|
242 |
*/ |
|
243 |
public Feature first(); |
|
244 |
|
|
231 | 245 |
/** |
232 | 246 |
* Updates a {@link Feature} with the given {@link EditableFeature}.<br> |
233 | 247 |
* |
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.api/src/main/java/org/gvsig/fmap/dal/feature/FeatureStore.java | ||
---|---|---|
32 | 32 |
import org.gvsig.fmap.dal.DataStore; |
33 | 33 |
import org.gvsig.fmap.dal.DataStoreParameters; |
34 | 34 |
import org.gvsig.fmap.dal.ExpressionBuilder; |
35 |
import org.gvsig.fmap.dal.ExpressionEvaluator; |
|
35 | 36 |
import org.gvsig.fmap.dal.exception.CreateException; |
36 | 37 |
import org.gvsig.fmap.dal.exception.DataException; |
37 | 38 |
import org.gvsig.fmap.dal.exception.ReadException; |
... | ... | |
845 | 846 |
|
846 | 847 |
public Iterator iterator(); |
847 | 848 |
|
848 |
public ExpressionBuilder createExpressionBuilder();
|
|
849 |
public ExpressionEvaluator createExpression();
|
|
849 | 850 |
|
850 | 851 |
public void createCache(String name, DynObject parameters) |
851 | 852 |
throws DataException; |
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.spi/src/main/java/org/gvsig/fmap/dal/feature/spi/SQLBuilderBase.java | ||
---|---|---|
33 | 33 |
import org.slf4j.Logger; |
34 | 34 |
import org.slf4j.LoggerFactory; |
35 | 35 |
|
36 |
public class SQLBuilderBase extends ExpressionBuilderBase implements SQLBuilder {
|
|
36 |
public class SQLBuilderBase extends ExpressionEvaluatorBase implements SQLBuilder {
|
|
37 | 37 |
|
38 | 38 |
protected static final Logger logger = LoggerFactory.getLogger(SQLBuilderBase.class); |
39 | 39 |
|
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.spi/src/main/java/org/gvsig/fmap/dal/feature/spi/AbstractFeatureStoreProvider.java | ||
---|---|---|
38 | 38 |
import org.gvsig.fmap.dal.DALLocator; |
39 | 39 |
import org.gvsig.fmap.dal.DataServerExplorer; |
40 | 40 |
import org.gvsig.fmap.dal.DataStoreParameters; |
41 |
import org.gvsig.fmap.dal.ExpressionBuilder;
|
|
41 |
import org.gvsig.fmap.dal.ExpressionEvaluator;
|
|
42 | 42 |
import org.gvsig.fmap.dal.exception.CloseException; |
43 | 43 |
import org.gvsig.fmap.dal.exception.DataException; |
44 | 44 |
import org.gvsig.fmap.dal.exception.InitializeException; |
... | ... | |
552 | 552 |
} |
553 | 553 |
|
554 | 554 |
@Override |
555 |
public ExpressionBuilder createExpressionBuilder() {
|
|
555 |
public ExpressionEvaluator createExpression() {
|
|
556 | 556 |
return new SQLBuilderBase(); |
557 | 557 |
} |
558 | 558 |
|
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.spi/src/main/java/org/gvsig/fmap/dal/feature/spi/ExpressionEvaluatorBase.java | ||
---|---|---|
1 |
|
|
2 |
package org.gvsig.fmap.dal.feature.spi; |
|
3 |
|
|
4 |
import gnu.jel.CompilationException; |
|
5 |
import gnu.jel.CompiledExpression; |
|
6 |
import gnu.jel.DVMap; |
|
7 |
import java.util.ArrayList; |
|
8 |
import java.util.Date; |
|
9 |
import java.util.List; |
|
10 |
import java.util.regex.Matcher; |
|
11 |
import java.util.regex.Pattern; |
|
12 |
import org.cresques.cts.IProjection; |
|
13 |
import static org.gvsig.fmap.dal.ExpressionBuilder.Config.Find_SRID; |
|
14 |
import static org.gvsig.fmap.dal.ExpressionBuilder.Config.ST_AsBinary; |
|
15 |
import static org.gvsig.fmap.dal.ExpressionBuilder.Config.ST_AsEWKB; |
|
16 |
import static org.gvsig.fmap.dal.ExpressionBuilder.Config.ST_AsText; |
|
17 |
import static org.gvsig.fmap.dal.ExpressionBuilder.Config.ST_Contains; |
|
18 |
import static org.gvsig.fmap.dal.ExpressionBuilder.Config.ST_Crosses; |
|
19 |
import static org.gvsig.fmap.dal.ExpressionBuilder.Config.ST_Disjoint; |
|
20 |
import static org.gvsig.fmap.dal.ExpressionBuilder.Config.ST_Envelope; |
|
21 |
import static org.gvsig.fmap.dal.ExpressionBuilder.Config.ST_Equals; |
|
22 |
import static org.gvsig.fmap.dal.ExpressionBuilder.Config.ST_GeomFromEWKB; |
|
23 |
import static org.gvsig.fmap.dal.ExpressionBuilder.Config.ST_GeomFromText; |
|
24 |
import static org.gvsig.fmap.dal.ExpressionBuilder.Config.ST_GeomFromWKB; |
|
25 |
import static org.gvsig.fmap.dal.ExpressionBuilder.Config.ST_Intersects; |
|
26 |
import static org.gvsig.fmap.dal.ExpressionBuilder.Config.ST_IsClosed; |
|
27 |
import static org.gvsig.fmap.dal.ExpressionBuilder.Config.ST_Overlaps; |
|
28 |
import static org.gvsig.fmap.dal.ExpressionBuilder.Config.ST_SRID; |
|
29 |
import static org.gvsig.fmap.dal.ExpressionBuilder.Config.ST_Touches; |
|
30 |
import static org.gvsig.fmap.dal.ExpressionBuilder.Config.ST_Within; |
|
31 |
import static org.gvsig.fmap.dal.ExpressionBuilder.Config.isNull; |
|
32 |
import static org.gvsig.fmap.dal.ExpressionBuilder.Config.lcase; |
|
33 |
import static org.gvsig.fmap.dal.ExpressionBuilder.Config.notIsNull; |
|
34 |
import static org.gvsig.fmap.dal.ExpressionBuilder.Config.operator_AND; |
|
35 |
import static org.gvsig.fmap.dal.ExpressionBuilder.Config.operator_EQ; |
|
36 |
import static org.gvsig.fmap.dal.ExpressionBuilder.Config.operator_GE; |
|
37 |
import static org.gvsig.fmap.dal.ExpressionBuilder.Config.operator_GT; |
|
38 |
import static org.gvsig.fmap.dal.ExpressionBuilder.Config.operator_ILIKE; |
|
39 |
import static org.gvsig.fmap.dal.ExpressionBuilder.Config.operator_LE; |
|
40 |
import static org.gvsig.fmap.dal.ExpressionBuilder.Config.operator_LIKE; |
|
41 |
import static org.gvsig.fmap.dal.ExpressionBuilder.Config.operator_LT; |
|
42 |
import static org.gvsig.fmap.dal.ExpressionBuilder.Config.operator_NE; |
|
43 |
import static org.gvsig.fmap.dal.ExpressionBuilder.Config.operator_OR; |
|
44 |
import static org.gvsig.fmap.dal.ExpressionBuilder.Config.operator_not; |
|
45 |
import static org.gvsig.fmap.dal.ExpressionBuilder.Config.ucase; |
|
46 |
import org.gvsig.fmap.dal.ExpressionEvaluator; |
|
47 |
import org.gvsig.fmap.geom.Geometry; |
|
48 |
import org.gvsig.fmap.geom.GeometryException; |
|
49 |
import org.gvsig.fmap.geom.GeometryLocator; |
|
50 |
import org.gvsig.fmap.geom.GeometryManager; |
|
51 |
import org.gvsig.fmap.geom.operation.GeometryOperationException; |
|
52 |
import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException; |
|
53 |
import org.gvsig.fmap.geom.primitive.Envelope; |
|
54 |
import org.gvsig.tools.evaluator.EvaluatorData; |
|
55 |
import org.gvsig.tools.evaluator.EvaluatorException; |
|
56 |
import org.gvsig.tools.evaluator.EvaluatorFieldsInfo; |
|
57 |
|
|
58 |
|
|
59 |
public class ExpressionEvaluatorBase extends ExpressionBuilderBase implements ExpressionEvaluator { |
|
60 |
|
|
61 |
public class JELConfig extends ConfigBase { |
|
62 |
|
|
63 |
public JELConfig() { |
|
64 |
super(); |
|
65 |
|
|
66 |
this.set(has_spatial_functions,true); |
|
67 |
this.set(constant_true, "true"); |
|
68 |
this.set(constant_false, "false"); |
|
69 |
this.set(quote_for_identifiers, ""); |
|
70 |
this.set(quote_for_strings, "\""); |
|
71 |
this.set(geometry_type_support, GeometrySupportType.WKT); |
|
72 |
this.set(group, "( {0} )"); |
|
73 |
|
|
74 |
this.set(Find_SRID , "Find_SRID(({0}), ({1}), ({2}))"); |
|
75 |
this.set(ST_SRID , "ST_SRID({0})"); |
|
76 |
this.set(ST_AsText , "ST_AsText({0})"); |
|
77 |
this.set(ST_AsBinary, "ST_AsBinary({0})"); |
|
78 |
this.set(ST_AsEWKB, "ST_AsWKB({0})"); |
|
79 |
this.set(ST_Contains, "ST_Contains(({0}), ({1}))"); |
|
80 |
this.set(ST_Crosses, "ST_Crosses(({0}), ({1}))"); |
|
81 |
this.set(ST_Disjoint , "ST_Disjoint(({0}), ({1}))"); |
|
82 |
this.set(ST_Equals , "ST_Equals(({0}), ({1}))"); |
|
83 |
this.set(ST_IsClosed, "ST_IsClosed({0})"); |
|
84 |
this.set(ST_Overlaps, "ST_Overlaps(({0}), ({1}))"); |
|
85 |
this.set(ST_Touches, "ST_Touches(({0}), ({1}))"); |
|
86 |
this.set(ST_Within, "ST_Within(({0}), ({1}))"); |
|
87 |
this.set(ST_Envelope, "ST_Envelope({0})"); |
|
88 |
this.set(ST_Intersects, "ST_Intersects(({0}), ({1}))"); |
|
89 |
this.set(ST_GeomFromText, "ST_GeomFromText({0}, ({1}))"); |
|
90 |
this.set(ST_GeomFromWKB, "ST_GeomFromWKB(({0}), ({1}))"); |
|
91 |
this.set(ST_GeomFromEWKB, "ST_GeomFromEWKB(({0}), ({1}))"); |
|
92 |
this.set(lcase, "LCASE({0})"); |
|
93 |
this.set(ucase, "UCASE({0})"); |
|
94 |
this.set(isNull, "( ({0}) == null )"); |
|
95 |
this.set(notIsNull, "( ! (({0}) == null) )"); |
|
96 |
this.set(operator_not, "( ! ({0}) )"); |
|
97 |
|
|
98 |
this.set(operator_AND, "{0} && {1}"); |
|
99 |
this.set(operator_OR, "{0} || {1}"); |
|
100 |
this.set(operator_EQ, "( ({0}) == ({1}) )"); |
|
101 |
this.set(operator_NE, "( ({0}) != ({1}) )"); |
|
102 |
this.set(operator_GT, "( ({0}) > ({1}) )"); |
|
103 |
this.set(operator_GE, "( ({0}) >= ({1}) )"); |
|
104 |
this.set(operator_LT, "( ({0}) < ({1}) )"); |
|
105 |
this.set(operator_LE, "( ({0}) <= ({1}) )"); |
|
106 |
this.set(operator_LIKE, "LIKE( ({0}), ({1}) )"); |
|
107 |
this.set(operator_ILIKE, "ILIKE( ({0}), ({1}) )"); |
|
108 |
|
|
109 |
this.set(operator_add, "{0} + {1}"); |
|
110 |
this.set(operator_subst, "{0} - {1}"); |
|
111 |
this.set(operator_mult, "{0} * {1}"); |
|
112 |
this.set(operator_div, "{0} / {1}"); |
|
113 |
this.set(operator_concat, "{0} + {1}"); |
|
114 |
} |
|
115 |
} |
|
116 |
|
|
117 |
public static class JELFunctions { |
|
118 |
public static String Find_SRID(Object a, Object b, Object c) { |
|
119 |
return null; |
|
120 |
} |
|
121 |
|
|
122 |
public static String ST_SRID(Geometry geom) { |
|
123 |
return null; |
|
124 |
} |
|
125 |
|
|
126 |
public static String ST_AsText(Geometry geom) throws GeometryOperationException, GeometryOperationNotSupportedException { |
|
127 |
return geom.convertToWKT(); |
|
128 |
} |
|
129 |
|
|
130 |
public static byte[] ST_AsBinary(Geometry geom) throws GeometryOperationException, GeometryOperationNotSupportedException { |
|
131 |
return geom.convertToWKB(); |
|
132 |
} |
|
133 |
|
|
134 |
public static byte[] ST_AsEWKB(Geometry geom) throws GeometryOperationException, GeometryOperationNotSupportedException { |
|
135 |
return geom.convertToEWKB(); |
|
136 |
} |
|
137 |
|
|
138 |
public static Envelope ST_Envelope(Geometry geom) throws GeometryOperationException, GeometryOperationNotSupportedException { |
|
139 |
return geom.getEnvelope(); |
|
140 |
} |
|
141 |
|
|
142 |
public static boolean ST_Contains(Geometry geom1, Geometry geom2) throws GeometryOperationException, GeometryOperationNotSupportedException { |
|
143 |
return geom1.contains(geom2); |
|
144 |
} |
|
145 |
|
|
146 |
public static boolean ST_Crosses(Geometry geom1, Geometry geom2) throws GeometryOperationException, GeometryOperationNotSupportedException { |
|
147 |
return geom1.crosses(geom2); |
|
148 |
} |
|
149 |
|
|
150 |
public static boolean ST_Disjoint(Geometry geom1, Geometry geom2) throws GeometryOperationException, GeometryOperationNotSupportedException { |
|
151 |
return geom1.disjoint(geom2); |
|
152 |
} |
|
153 |
|
|
154 |
public static boolean ST_Overlaps(Geometry geom1, Geometry geom2) throws GeometryOperationException, GeometryOperationNotSupportedException { |
|
155 |
return geom1.overlaps(geom2); |
|
156 |
} |
|
157 |
|
|
158 |
public static boolean ST_Touches(Geometry geom1, Geometry geom2) throws GeometryOperationException, GeometryOperationNotSupportedException { |
|
159 |
return geom1.touches(geom2); |
|
160 |
} |
|
161 |
|
|
162 |
public static boolean ST_Within(Geometry geom1, Geometry geom2) throws GeometryOperationException, GeometryOperationNotSupportedException { |
|
163 |
return geom1.within(geom2); |
|
164 |
} |
|
165 |
|
|
166 |
public static boolean ST_Intersects(Geometry geom1, Geometry geom2) throws GeometryOperationException, GeometryOperationNotSupportedException { |
|
167 |
return geom1.intersects(geom2); |
|
168 |
} |
|
169 |
|
|
170 |
public static boolean ST_Equals(Geometry geom1, Geometry geom2) { |
|
171 |
return geom1.equals(geom2); |
|
172 |
} |
|
173 |
|
|
174 |
public static boolean ST_IsClosed(Geometry geom1) throws GeometryOperationException, GeometryOperationNotSupportedException { |
|
175 |
return geom1.isClossed(); |
|
176 |
} |
|
177 |
|
|
178 |
public static Geometry ST_GeomFromText(String geom, IProjection srs) throws GeometryException { |
|
179 |
GeometryManager manager = GeometryLocator.getGeometryManager(); |
|
180 |
return manager.createFrom(geom,srs); |
|
181 |
} |
|
182 |
|
|
183 |
public static Geometry ST_GeomFromWKB(byte[] geom, IProjection srs) throws GeometryException { |
|
184 |
GeometryManager manager = GeometryLocator.getGeometryManager(); |
|
185 |
return manager.createFrom(geom,srs); |
|
186 |
} |
|
187 |
|
|
188 |
public static Geometry ST_GeomFromEWKB(byte[] geom, IProjection srs) throws GeometryException { |
|
189 |
GeometryManager manager = GeometryLocator.getGeometryManager(); |
|
190 |
return manager.createFrom(geom,srs); |
|
191 |
} |
|
192 |
|
|
193 |
public static String LCASE(Object x) { |
|
194 |
if( x == null ) { |
|
195 |
return null; |
|
196 |
} |
|
197 |
return x.toString().toLowerCase(); |
|
198 |
} |
|
199 |
|
|
200 |
public static String UCASE(Object x) { |
|
201 |
if( x == null ) { |
|
202 |
return null; |
|
203 |
} |
|
204 |
return x.toString().toLowerCase(); |
|
205 |
} |
|
206 |
|
|
207 |
private static final Integer ZERO_OR_MORE_CHARS = 0; |
|
208 |
private static final Integer ONE_CHAR = 1; |
|
209 |
|
|
210 |
public static boolean LIKE(Object x1, Object x2) { |
|
211 |
if (x1 == null || x2 == null) { |
|
212 |
return false; |
|
213 |
} |
|
214 |
String source = x1.toString(); |
|
215 |
String match = x2.toString(); |
|
216 |
|
|
217 |
List<Object> format = new ArrayList<>(); |
|
218 |
StringBuilder fill = new StringBuilder(); |
|
219 |
final int plen = match.length(); |
|
220 |
Character lastSymbol = null; |
|
221 |
for (int i = 0; i < plen; i++) { |
|
222 |
boolean f = false; |
|
223 |
char c = match.charAt(i); |
|
224 |
if (lastSymbol == '\\') { |
|
225 |
lastSymbol = null; |
|
226 |
fill.append(c); |
|
227 |
} else { |
|
228 |
if (c == '%') { |
|
229 |
if (fill.length() > 0) { |
|
230 |
format.add(fill.toString()); |
|
231 |
fill.setLength(0); |
|
232 |
} |
|
233 |
format.add(ZERO_OR_MORE_CHARS); |
|
234 |
} else if (c == '_') { |
|
235 |
if (fill.length() > 0) { |
|
236 |
format.add(fill.toString()); |
|
237 |
fill.setLength(0); |
|
238 |
} |
|
239 |
format.add(ONE_CHAR); |
|
240 |
} else { |
|
241 |
fill.append(c); |
|
242 |
} |
|
243 |
lastSymbol = c; |
|
244 |
} |
|
245 |
if (fill.length() > 0) { |
|
246 |
format.add(fill.toString()); |
|
247 |
} |
|
248 |
} |
|
249 |
|
|
250 |
StringBuilder repattern = new StringBuilder("^"); |
|
251 |
for (Object o : format) { |
|
252 |
if (o == ZERO_OR_MORE_CHARS) { |
|
253 |
repattern.append(".*?"); |
|
254 |
} else if (o == ONE_CHAR) { |
|
255 |
repattern.append(".?"); |
|
256 |
} else { |
|
257 |
repattern.append((String) o); |
|
258 |
} |
|
259 |
} |
|
260 |
|
|
261 |
Pattern pattern = Pattern.compile(repattern.toString()); |
|
262 |
Matcher m = pattern.matcher(source); |
|
263 |
return m.find(); |
|
264 |
} |
|
265 |
|
|
266 |
public static boolean ILIKE(Object x1, Object x2) { |
|
267 |
if (x1 == null || x2 == null) { |
|
268 |
return false; |
|
269 |
} |
|
270 |
x1 = x1.toString().toLowerCase(); |
|
271 |
x2 = x2.toString().toLowerCase(); |
|
272 |
return LIKE(x1, x2); |
|
273 |
} |
|
274 |
|
|
275 |
} |
|
276 |
|
|
277 |
protected class VariableProvider extends DVMap { |
|
278 |
private EvaluatorData data; |
|
279 |
|
|
280 |
public VariableProvider() { |
|
281 |
} |
|
282 |
|
|
283 |
public void setValues(EvaluatorData data) { |
|
284 |
this.data = data; |
|
285 |
} |
|
286 |
|
|
287 |
@Override |
|
288 |
public String getTypeName(String name) { |
|
289 |
Object value = this.data.getDataValue(name); |
|
290 |
return value.getClass().getSimpleName(); |
|
291 |
} |
|
292 |
|
|
293 |
public double getDoubleProperty(String name) { |
|
294 |
Object value = this.data.getDataValue(name); |
|
295 |
return (double) value; |
|
296 |
} |
|
297 |
|
|
298 |
public float getFloatProperty(String name) { |
|
299 |
Object value = this.data.getDataValue(name); |
|
300 |
return (float) (double) value; |
|
301 |
} |
|
302 |
|
|
303 |
public int getIntegerProperty(String name) { |
|
304 |
Object value = this.data.getDataValue(name); |
|
305 |
return (int) (double) value; |
|
306 |
} |
|
307 |
|
|
308 |
public long getLongProperty(String name) { |
|
309 |
Object value = this.data.getDataValue(name); |
|
310 |
return (long) (double) value; |
|
311 |
} |
|
312 |
|
|
313 |
public String getStringProperty(String name) { |
|
314 |
Object value = this.data.getDataValue(name); |
|
315 |
return (String) value; |
|
316 |
} |
|
317 |
|
|
318 |
public Date getDateProperty(String name) { |
|
319 |
Object value = this.data.getDataValue(name); |
|
320 |
return (Date) value; |
|
321 |
} |
|
322 |
} |
|
323 |
|
|
324 |
protected VariableProvider jel_variables = null; |
|
325 |
protected Object[] jel_context = null; |
|
326 |
protected CompiledExpression jel_expression = null; |
|
327 |
protected Config jel_config = new JELConfig(); |
|
328 |
protected EvaluatorFieldsInfo fieldsInfo = null; // For compatibility |
|
329 |
|
|
330 |
public ExpressionEvaluatorBase() { |
|
331 |
super(); |
|
332 |
} |
|
333 |
|
|
334 |
public void compile() { |
|
335 |
jel_variables = new VariableProvider(); |
|
336 |
gnu.jel.Library lib = new gnu.jel.Library( |
|
337 |
new Class[]{ Math.class, JELFunctions.class }, |
|
338 |
new Class[]{ jel_variables.getClass() }, |
|
339 |
new Class[0], |
|
340 |
jel_variables, |
|
341 |
null |
|
342 |
); |
|
343 |
jel_context = new Object[] { jel_variables }; |
|
344 |
Config config = this.config; |
|
345 |
try { |
|
346 |
this.config = jel_config; |
|
347 |
String expr = this.value.toString(); |
|
348 |
jel_expression = gnu.jel.Evaluator.compile(expr, lib); |
|
349 |
} catch (CompilationException ex) { |
|
350 |
throw new RuntimeException("Can't compile expression.", ex); |
|
351 |
} finally { |
|
352 |
this.config = config; |
|
353 |
} |
|
354 |
} |
|
355 |
|
|
356 |
public void clear() { |
|
357 |
this.set(null); |
|
358 |
this.jel_expression = null; |
|
359 |
} |
|
360 |
|
|
361 |
@Override |
|
362 |
public Object evaluate(EvaluatorData data) throws EvaluatorException { |
|
363 |
try { |
|
364 |
if( jel_variables == null ) { |
|
365 |
this.compile(); |
|
366 |
} |
|
367 |
jel_variables.setValues(data); |
|
368 |
return jel_expression.evaluate(jel_context); |
|
369 |
} catch (Throwable th) { |
|
370 |
throw new EvaluatorException( |
|
371 |
"Can't evaluate expression", |
|
372 |
th, |
|
373 |
"ExpressionEvaluatorBase_evaluate_error", |
|
374 |
0 |
|
375 |
); |
|
376 |
} |
|
377 |
} |
|
378 |
|
|
379 |
@Override |
|
380 |
public String getName() { |
|
381 |
return "Generic expression evaluator"; |
|
382 |
} |
|
383 |
|
|
384 |
@Override |
|
385 |
public String getDescription() { |
|
386 |
return ""; |
|
387 |
} |
|
388 |
|
|
389 |
@Override |
|
390 |
public String getSQL() { |
|
391 |
return this.value.toString(); |
|
392 |
} |
|
393 |
|
|
394 |
@Override |
|
395 |
public EvaluatorFieldsInfo getFieldsInfo() { |
|
396 |
if( this.fieldsInfo==null ) { |
|
397 |
this.fieldsInfo = new EvaluatorFieldsInfo(); |
|
398 |
for( Variable var : this.getVariables() ) { |
|
399 |
this.fieldsInfo.addFieldValue(var.getName()); |
|
400 |
} |
|
401 |
} |
|
402 |
return this.fieldsInfo; |
|
403 |
} |
|
404 |
|
|
405 |
|
|
406 |
|
|
407 |
} |
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.spi/src/main/java/org/gvsig/fmap/dal/feature/spi/FeatureStoreProvider_v2.java | ||
---|---|---|
1 | 1 |
|
2 | 2 |
package org.gvsig.fmap.dal.feature.spi; |
3 | 3 |
|
4 |
import org.gvsig.fmap.dal.ExpressionBuilder;
|
|
4 |
import org.gvsig.fmap.dal.ExpressionEvaluator;
|
|
5 | 5 |
|
6 | 6 |
|
7 | 7 |
public interface FeatureStoreProvider_v2 extends FeatureStoreProvider { |
8 | 8 |
|
9 |
public ExpressionBuilder createExpressionBuilder();
|
|
9 |
public ExpressionEvaluator createExpression();
|
|
10 | 10 |
} |
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.spi/pom.xml | ||
---|---|---|
29 | 29 |
<artifactId>org.gvsig.fmap.dal.api</artifactId> |
30 | 30 |
<scope>compile</scope> |
31 | 31 |
</dependency> |
32 |
<dependency> |
|
33 |
<groupId>org.gnu</groupId> |
|
34 |
<artifactId>jel</artifactId> |
|
35 |
<scope>compile</scope> |
|
36 |
</dependency> |
|
32 | 37 |
</dependencies> |
33 | 38 |
|
34 | 39 |
<description>This project contains the SPI of the Data Access Library used to implement providers of data.</description> |
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.api/src/main/java/org/gvsig/fmap/mapcontext/layers/vectorial/SpatialEvaluatorsFactory.java | ||
---|---|---|
57 | 57 |
try { |
58 | 58 |
FeatureType featureType = store.getDefaultFeatureType(); |
59 | 59 |
String geomName = featureType.getDefaultGeometryAttributeName(); |
60 |
ExpressionBuilder builder = store.createExpressionBuilder();
|
|
60 |
ExpressionBuilder builder = store.createExpression(); |
|
61 | 61 |
return intersects(geometry, projection, featureType, geomName,builder); |
62 | 62 |
} catch (DataException ex) { |
63 | 63 |
throw new RuntimeException("Can't create intersects evaluator.",ex); |
... | ... | |
72 | 72 |
try { |
73 | 73 |
FeatureType featureType = store.getDefaultFeatureType(); |
74 | 74 |
String geomName = featureType.getDefaultGeometryAttributeName(); |
75 |
ExpressionBuilder builder = store.createExpressionBuilder();
|
|
75 |
ExpressionBuilder builder = store.createExpression(); |
|
76 | 76 |
return intersects(envelope, projection, featureType, geomName,builder); |
77 | 77 |
} catch (DataException ex) { |
78 | 78 |
throw new RuntimeException("Can't create intersects evaluator.",ex); |
... | ... | |
107 | 107 |
try { |
108 | 108 |
FeatureType featureType = store.getDefaultFeatureType(); |
109 | 109 |
String geomName = featureType.getDefaultGeometryAttributeName(); |
110 |
ExpressionBuilder builder = store.createExpressionBuilder();
|
|
110 |
ExpressionBuilder builder = store.createExpression(); |
|
111 | 111 |
return this.contains(geometry, projection, featureType, geomName,builder); |
112 | 112 |
} catch (DataException ex) { |
113 | 113 |
throw new RuntimeException("Can't create contains evaluator.",ex); |
... | ... | |
122 | 122 |
try { |
123 | 123 |
FeatureType featureType = store.getDefaultFeatureType(); |
124 | 124 |
String geomName = featureType.getDefaultGeometryAttributeName(); |
125 |
ExpressionBuilder builder = store.createExpressionBuilder();
|
|
125 |
ExpressionBuilder builder = store.createExpression(); |
|
126 | 126 |
return this.contains(envelope, projection, featureType, geomName,builder); |
127 | 127 |
} catch (DataException ex) { |
128 | 128 |
throw new RuntimeException("Can't create contains evaluator.",ex); |
... | ... | |
147 | 147 |
try { |
148 | 148 |
FeatureType featureType = store.getDefaultFeatureType(); |
149 | 149 |
String geomName = featureType.getDefaultGeometryAttributeName(); |
150 |
ExpressionBuilder builder = store.createExpressionBuilder();
|
|
150 |
ExpressionBuilder builder = store.createExpression(); |
|
151 | 151 |
return this.not_contains(geometry, projection, featureType, geomName,builder); |
152 | 152 |
} catch (DataException ex) { |
153 | 153 |
throw new RuntimeException("Can't create not_contains evaluator.",ex); |
... | ... | |
182 | 182 |
try { |
183 | 183 |
FeatureType featureType = store.getDefaultFeatureType(); |
184 | 184 |
String geomName = featureType.getDefaultGeometryAttributeName(); |
185 |
ExpressionBuilder builder = store.createExpressionBuilder();
|
|
185 |
ExpressionBuilder builder = store.createExpression(); |
|
186 | 186 |
return this.crosses(geometry, projection, featureType, geomName,builder); |
187 | 187 |
} catch (DataException ex) { |
188 | 188 |
throw new RuntimeException("Can't create crosses evaluator.",ex); |
... | ... | |
197 | 197 |
try { |
198 | 198 |
FeatureType featureType = store.getDefaultFeatureType(); |
199 | 199 |
String geomName = featureType.getDefaultGeometryAttributeName(); |
200 |
ExpressionBuilder builder = store.createExpressionBuilder();
|
|
200 |
ExpressionBuilder builder = store.createExpression(); |
|
201 | 201 |
return this.crosses(envelope, projection, featureType, geomName,builder); |
202 | 202 |
} catch (DataException ex) { |
203 | 203 |
throw new RuntimeException("Can't create crosses evaluator.",ex); |
... | ... | |
222 | 222 |
try { |
223 | 223 |
FeatureType featureType = store.getDefaultFeatureType(); |
224 | 224 |
String geomName = featureType.getDefaultGeometryAttributeName(); |
225 |
ExpressionBuilder builder = store.createExpressionBuilder();
|
|
225 |
ExpressionBuilder builder = store.createExpression(); |
|
226 | 226 |
return this.disjoint(geometry, projection, featureType, geomName,builder); |
227 | 227 |
} catch (DataException ex) { |
228 | 228 |
throw new RuntimeException("Can't create disjoint evaluator.",ex); |
... | ... | |
247 | 247 |
try { |
248 | 248 |
FeatureType featureType = store.getDefaultFeatureType(); |
249 | 249 |
String geomName = featureType.getDefaultGeometryAttributeName(); |
250 |
ExpressionBuilder builder = store.createExpressionBuilder();
|
|
250 |
ExpressionBuilder builder = store.createExpression(); |
|
251 | 251 |
return this.overlaps(geometry, projection, featureType, geomName,builder); |
252 | 252 |
} catch (DataException ex) { |
253 | 253 |
throw new RuntimeException("Can't create overlaps evaluator.",ex); |
... | ... | |
272 | 272 |
try { |
273 | 273 |
FeatureType featureType = store.getDefaultFeatureType(); |
274 | 274 |
String geomName = featureType.getDefaultGeometryAttributeName(); |
275 |
ExpressionBuilder builder = store.createExpressionBuilder();
|
|
275 |
ExpressionBuilder builder = store.createExpression(); |
|
276 | 276 |
return this.touches(geometry, projection, featureType, geomName,builder); |
277 | 277 |
} catch (DataException ex) { |
278 | 278 |
throw new RuntimeException("Can't create touches evaluator.",ex); |
... | ... | |
297 | 297 |
try { |
298 | 298 |
FeatureType featureType = store.getDefaultFeatureType(); |
299 | 299 |
String geomName = featureType.getDefaultGeometryAttributeName(); |
300 |
ExpressionBuilder builder = store.createExpressionBuilder();
|
|
300 |
ExpressionBuilder builder = store.createExpression(); |
|
301 | 301 |
return this.within(geometry, projection, featureType, geomName,builder); |
302 | 302 |
} catch (DataException ex) { |
303 | 303 |
throw new RuntimeException("Can't create within evaluator.",ex); |
... | ... | |
322 | 322 |
try { |
323 | 323 |
FeatureType featureType = store.getDefaultFeatureType(); |
324 | 324 |
String geomName = featureType.getDefaultGeometryAttributeName(); |
325 |
ExpressionBuilder builder = store.createExpressionBuilder();
|
|
325 |
ExpressionBuilder builder = store.createExpression(); |
|
326 | 326 |
return this.equals(geometry, projection, featureType, geomName,builder); |
327 | 327 |
} catch (DataException ex) { |
328 | 328 |
throw new RuntimeException("Can't create equals evaluator.",ex); |
trunk/org.gvsig.desktop/org.gvsig.desktop.framework/org.gvsig.andami/pom.xml | ||
---|---|---|
124 | 124 |
<scope>compile</scope> |
125 | 125 |
</dependency> |
126 | 126 |
<dependency> |
127 |
<groupId>commons-collections</groupId> |
|
128 |
<artifactId>commons-collections</artifactId> |
|
129 |
<scope>compile</scope> |
|
130 |
</dependency> |
|
131 |
<dependency> |
|
132 |
<groupId>org.gnu</groupId> |
|
133 |
<artifactId>jel</artifactId> |
|
134 |
<scope>compile</scope> |
|
135 |
</dependency> |
|
136 |
<dependency> |
|
127 | 137 |
<groupId>jwizardcomponent</groupId> |
128 | 138 |
<artifactId>jwizardcomponent</artifactId> |
129 | 139 |
<scope>compile</scope> |
trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/pom.xml | ||
---|---|---|
13 | 13 |
</parent> |
14 | 14 |
|
15 | 15 |
<properties> |
16 |
<gvsig.package.info.state>final</gvsig.package.info.state>
|
|
16 |
<gvsig.package.info.state>devel</gvsig.package.info.state>
|
|
17 | 17 |
<!-- |
18 | 18 |
<gvsig.package.info.state>devel</gvsig.package.info.state> |
19 | 19 |
<gvsig.package.info.state>testing</gvsig.package.info.state> |
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.installer/org.gvsig.installer.swing/org.gvsig.installer.swing.impl/src/main/resources/org/gvsig/installer/swing/impl/pkg_description_en.html | ||
---|---|---|
1 |
<h1>${gvsig.package.info.name}</h1> |
|
2 |
<pre>${gvsig.package.info.description}</pre> |
|
3 |
<ul> |
|
4 |
<li>Package <i>${gvsig.package.info.official.label}</i></li> |
|
5 |
<li>Organization:<br> |
|
6 |
<i>${gvsig.package.info.owner}</i><br> |
|
7 |
<i>${gvsig.package.info.webURL}</i> |
|
8 |
</li> |
|
9 |
<li>Categories: <i>${gvsig.package.info.categories}</i></li> |
|
10 |
<li>Sources: <i>${gvsig.package.info.sourcesURL}</i></li> |
|
11 |
<li>Code: <i>${gvsig.package.info.code}</i></li> |
|
12 |
<li>Dependencies: <i>${gvsig.package.info.dependencies}</i></li> |
|
13 |
<li>Version: <i>${gvsig.package.info.version}</i></li> |
|
14 |
<li>State: <i>${gvsig.package.info.state}</i></li> |
|
15 |
<li>Operating system: <i>${gvsig.package.info.operatingSystem}</i></li> |
|
16 |
<li>Architecture: <i>${gvsig.package.info.architecture}</i></li> |
|
17 |
<li>Required JVM: <i>${gvsig.package.info.javaVM}</i></li> |
|
18 |
</ul> |
|
19 |
<br> |
|
20 |
<br> |
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.installer/org.gvsig.installer.swing/org.gvsig.installer.swing.impl/src/main/resources/org/gvsig/installer/swing/impl/pkg_description_es.html | ||
---|---|---|
1 |
<h1>${gvsig.package.info.name}</h1> |
|
2 |
<pre>${gvsig.package.info.description}</pre> |
|
3 |
<ul> |
|
4 |
<li>Paquete <i>${gvsig.package.info.official.label}</i></li> |
|
5 |
<li>Organización:<br> |
|
6 |
<i>${gvsig.package.info.owner}</i><br> |
|
7 |
<i>${gvsig.package.info.webURL}</i> |
|
8 |
</li> |
|
9 |
<li>Categorias: <i>${gvsig.package.info.categories}</i></li> |
|
10 |
<li>Fuentes: <i>${gvsig.package.info.sourcesURL}</i></li> |
|
11 |
<li>Codigo: <i>${gvsig.package.info.code}</i></li> |
|
12 |
<li>Dependencias: <i>${gvsig.package.info.dependencies}</i></li> |
|
13 |
<li>Versión: <i>${gvsig.package.info.version}</i></li> |
|
14 |
<li>Estado: <i>${gvsig.package.info.state}</i></li> |
|
15 |
<li>Sistema operativo: <i>${gvsig.package.info.operatingSystem}</i></li> |
|
16 |
<li>Arquitectura: <i>${gvsig.package.info.architecture}</i></li> |
|
17 |
<li>Java requerida: <i>${gvsig.package.info.javaVM}</i></li> |
|
18 |
</ul> |
|
19 |
<br> |
|
20 |
<br> |
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.installer/org.gvsig.installer.swing/org.gvsig.installer.swing.impl/src/main/resources/org/gvsig/installer/swing/impl/text.properties | ||
---|---|---|
1 | 1 |
# Resource bundle texts for the Spanish language locale (es) |
2 |
_select_the_folder_to_create_the_package_with=Selecciona el directorio con el que se crear? el paquete
|
|
2 |
_select_the_folder_to_create_the_package_with=Selecciona el directorio con el que se crear\u00e1 el paquete
|
|
3 | 3 |
_output_options=Opciones de salida |
4 | 4 |
_the_package_file_folder_does_not_exist=La carpeta del paquete no existe |
5 |
_the_package_index_file_folder_does_not_exist=La carpeta del paquete de ?ndices no existe
|
|
6 |
_package_description=Descripci?n del paquete
|
|
5 |
_the_package_index_file_folder_does_not_exist=La carpeta del paquete de \u00edndices no existe
|
|
6 |
_package_description=Descripci\u00f3n del paquete
|
|
7 | 7 |
_installer_progress=Progreso del instalador |
8 | 8 |
_Compressing=Comprimiendo |
9 |
_Creating_index=Creando ?ndice
|
|
9 |
_Creating_index=Creando \u00edndice
|
|
10 | 10 |
_Finished=Finalizado |
11 | 11 |
_cant_create_the_package=No se pudo crear el paquete |
12 |
_create_package=Creaci?n del paquete
|
|
13 |
_select_symbol_folder=Selecciona carpeta de s?mbolos
|
|
12 |
_create_package=Creaci\u00f3n del paquete
|
|
13 |
_select_symbol_folder=Selecciona carpeta de s\u00edmbolos
|
|
14 | 14 |
_Create_package_symbols=Crear paquete de simbolos |
15 |
_typical_installation=Instalaci?n t?pica
|
|
16 |
_advanced_installation=Instalaci?n avanzada
|
|
17 |
_fast_filter=Filtro r?pido
|
|
15 |
_typical_installation=Instalaci\u00f3n t\u00edpica
|
|
16 |
_advanced_installation=Instalaci\u00f3n avanzada
|
|
17 |
_fast_filter=Filtro r\u00e1pido
|
|
18 | 18 |
_search=Buscar |
19 | 19 |
_reset_filters=Restaurar filtros |
20 |
_categories=Categor?as
|
|
20 |
_categories=Categor\u00edas
|
|
21 | 21 |
_types=Tipos |
22 |
_standard_installation=Instalaci?n est?ndar
|
|
23 |
_installation_from_file=Instalaci?n desde archivo
|
|
24 |
_installation_from_url=Instalaci?n desde URL
|
|
22 |
_standard_installation=Instalaci\u00f3n est\u00e1ndar
|
|
23 |
_installation_from_file=Instalaci\u00f3n desde archivo
|
|
24 |
_installation_from_url=Instalaci\u00f3n desde URL
|
|
25 | 25 |
_name=Nombre |
26 |
_version=Versi?n
|
|
26 |
_version=Versi\u00f3n
|
|
27 | 27 |
_type=Tipo |
28 | 28 |
_already_installed,_check_to_reinstall=Ya instalado, marca para reinstalar. |
29 | 29 |
_checked_to_reinstall=Marcado para reinstalar. |
... | ... | |
32 | 32 |
_already_installed_but_not_installable=Ya instalado pero no instalable. |
33 | 33 |
_official_recommended=Official y recomendado |
34 | 34 |
_official=Oficial |
35 |
_not_official_recommended=No oficial, recomendado
|
|
36 |
_not_official=No oficial
|
|
35 |
_community_recommended=Comunidad, recomendado
|
|
36 |
_community=Comunidad
|
|
37 | 37 |
_downloading=Descargando |
38 | 38 |
_start_download=Comenzar descarga |
39 | 39 |
_download_progress=Progreso de la descarga |
40 | 40 |
_Cant_download_package_files=No se han podido descargar los ficheros del paquete |
41 |
_do_you_want_to_continue=?Desea continuar?
|
|
41 |
_do_you_want_to_continue=\u00bfDesea continuar?
|
|
42 | 42 |
_Download_error=Error en la descarga |
43 | 43 |
_finished=Terminado |
44 | 44 |
_the_selected_file_does_not_exist=El archivo seleccionado no existe. |
45 |
_execute_adding_error=Error al a?adir
|
|
45 |
_execute_adding_error=Error al a\u00f1adir
|
|
46 | 46 |
_progress=Progreso |
47 | 47 |
_select_plugins=Selecciona paquetes |
48 |
_There_are_no_packages_in_typical_installation_to_select=No hay paquetes en la instalaci?n t?pica para seleccionar
|
|
49 |
_do_you_want_to_continue=?Desea continuar?
|
|
50 |
_do_you_want_to_continue_anyway=?Desea continuar de todas formas?
|
|
48 |
_There_are_no_packages_in_typical_installation_to_select=No hay paquetes en la instalaci\u00f3n t\u00edpica para seleccionar
|
|
49 |
_do_you_want_to_continue=\u00bfDesea continuar?
|
|
50 |
_do_you_want_to_continue_anyway=\u00bfDesea continuar de todas formas?
|
|
51 | 51 |
_Some_of_the_selected_addons_should_not_be_installed_simultaneously=Algunos de los complementos seleccionados no deben ser instalados simultaneamente. |
52 | 52 |
_Installing_these_addons_may_cause_errors=La instalacion de estos complementos puede causar errores |
53 | 53 |
_you_have_selected_in_development_or_not_official_versions=Ha seleccionado versiones de desarrollo o no oficiales |
... | ... | |
55 | 55 |
_the_selected_packages_require_to_install_or_update_the_following_packages=Los complementos seleccionados requieren instalar o actualizar los siguientes complementos |
56 | 56 |
_an_error_has_occurred_when_calculating_the_dependecies_of_the_packages_to_install=Se ha producido un error calculando las dependencias de los paquetes a instalar. |
57 | 57 |
_an_error_has_occurred_when_calculating_the_dependecies_of_the_selected_packages=Se ha producido un error calculando las dependencias de los paquetes seleccionados. |
58 |
_it_is_not_possible_to_verify_if_any_additional_package_is_needed_to_install_the_selected_packages=No es posible verificar si precisa alg?n paquete adicional para instalar los paquetes que ha seleccionado.
|
|
58 |
_it_is_not_possible_to_verify_if_any_additional_package_is_needed_to_install_the_selected_packages=No es posible verificar si precisa alg\u00fan paquete adicional para instalar los paquetes que ha seleccionado.
|
|
59 | 59 |
_a_problem_has_occurred_when_calculating_the_dependencies=Ha ocurrido un problema calculando las dependencias. |
60 | 60 |
_if_you_want_you_can_select_again_manually_the_packets_that_might_be_necessary=Si lo desea puede volver a seleccionar manualmente los paquetes que estime pueden ser necesarios. |
61 |
_do_you_want_to_continue_and_install_the_packages_you_already_have_selected=?Desea continuar instalando los paquetes que ya ha seleccionado?
|
|
61 |
_do_you_want_to_continue_and_install_the_packages_you_already_have_selected=\u00bfDesea continuar instalando los paquetes que ya ha seleccionado?
|
|
62 | 62 |
_cancel=Cancelar |
63 | 63 |
_continue=Continuar |
64 | 64 |
_error_creating_the_wizard=Error creando el asistente. |
65 |
_malformed_url=Direcci?n URL incorrecta.
|
|
66 |
_the_package_source_files_url_is_malformed._Please_review_it=La URL de los archivos fuente del paquete es incorrecta. Por favor, rev?sala.
|
|
67 |
_the_owners_url_is_malformed._Please_review_it=La URL del propietario es incorrecta. Por favor, rev?sala.
|
|
65 |
_malformed_url=Direcci\u00f3n URL incorrecta.
|
|
66 |
_the_package_source_files_url_is_malformed._Please_review_it=La URL de los archivos fuente del paquete es incorrecta. Por favor, rev\u00edsala.
|
|
67 |
_the_owners_url_is_malformed._Please_review_it=La URL del propietario es incorrecta. Por favor, rev\u00edsala.
|
|
68 | 68 |
_advanced_options=Opciones avanzadas |
69 | 69 |
_select_an_option=Selecciona una opcion. |
70 | 70 |
_the_folder_install_already_exists._do_you_want_to_delete_it_before_proceeding?=El directorio install ya existe. Quieres borrarlo antes de continuar? |
71 | 71 |
_Couldn't_delete_the_directory=No se pudo borrar el directorio. |
72 |
_advanced_mode=El modo avanzado permite copiar recursos que est?n alojados fuera del directorio del plugin. No se recomienda usar esta opci?n.
|
|
72 |
_advanced_mode=El modo avanzado permite copiar recursos que est\u00e1n alojados fuera del directorio del plugin. No se recomienda usar esta opci\u00f3n.
|
|
73 | 73 |
_name=Nombre |
74 |
_description=Descripci?n
|
|
75 |
_version=Versi?n
|
|
74 |
_description=Descripci\u00f3n
|
|
75 |
_version=Versi\u00f3n
|
|
76 | 76 |
_build=Build |
77 | 77 |
_is_official=Es oficial? |
78 | 78 |
_status=Estado |
79 |
_code=C?digo
|
|
79 |
_code=C\u00f3digo
|
|
80 | 80 |
_operating_system=Sistema operativo |
81 | 81 |
_architecture=Arquitectura |
82 |
_java_version=Versi?n java
|
|
83 |
_gvSIG_desktop_version=Versi?n gvSIG desktop
|
|
82 |
_java_version=Versi\u00f3n java
|
|
83 |
_gvSIG_desktop_version=Versi\u00f3n gvSIG desktop
|
|
84 | 84 |
_package_owner=Propietario del paquete |
85 | 85 |
_package_URL_owner=URL del propietario del paquete |
86 |
_sources_url=URL del c?digo fuente
|
|
86 |
_sources_url=URL del c\u00f3digo fuente
|
|
87 | 87 |
_dependencies=Dependencias |
88 | 88 |
_plugin_description=Description del plugin |
89 | 89 |
_plugin_to_install=Plugin a instalar |
90 | 90 |
_enable_advanced_mode=Habilitar modo avanzado. |
91 | 91 |
_package_file=Archivo del paquete |
92 |
_package_index_file=Archivo del ?ndice del paquete
|
|
92 |
_package_index_file=Archivo del \u00edndice del paquete
|
|
93 | 93 |
_download_url=URL de descarga |
94 |
_create_package_index=Crear ?ndice del paquete
|
|
94 |
_create_package_index=Crear \u00edndice del paquete
|
|
95 | 95 |
_output_options=Opciones de salida |
96 | 96 |
_invalid_download_url=URL de descarga incorrecta. |
97 | 97 |
_files_to_copy=Archivos a copiar |
98 | 98 |
_the_folder_install/files_already_exists_do_you_want_to_delete_it_before_proceeding?=El directorio install/files ya existe. Desea borrarlo antes de continuar? |
99 | 99 |
_ant_script=Script de ant |
100 |
_select_installation_source=Selecciona fuente de instalaci?n
|
|
101 |
_select_installation_mode=Selecciona modo de instalaci?n
|
|
102 |
_gvSIG_packages_and_packages_and_index_sets=Paquetes gvSIG y sets de paquetes e ?ndices
|
|
100 |
_select_installation_source=Selecciona fuente de instalaci\u00f3n
|
|
101 |
_select_installation_mode=Selecciona modo de instalaci\u00f3n
|
|
102 |
_gvSIG_packages_and_packages_and_index_sets=Paquetes gvSIG y sets de paquetes e \u00edndices
|
|
103 | 103 |
_broken_package=Paquete roto |
104 |
_install_addons_in_gvsig_standard_dist=instalar complementos incluidos en la distribuci?n gvSIG standard
|
|
104 |
_install_addons_in_gvsig_standard_dist=instalar complementos incluidos en la distribuci\u00f3n gvSIG standard
|
|
105 | 105 |
_install_addons_in_gvspki_or_gvspks_file=instalar complementos contenidos en un archivo .gvspki o .gvspks |
106 | 106 |
_install_addons_from_remote_repo=instalar complementos desde un repositorio remoto |
107 | 107 |
_These_packages_not_downloaded=No se han podido descargar estos paquetes |
... | ... | |
110 | 110 |
_Install_package=Instalar paquetes |
111 | 111 |
_finished_Some_files_not_downloaded=Terminado. Algunos archivos no se pudieron descargar. |
112 | 112 |
_downloading_files=Descargar archivos |
113 |
_Installing_devel_addons_may_cause_errors=Instalar complementos en desarrollo puede provocar errores de funcionamiento en la aplicaci?n
|
|
113 |
_Installing_devel_addons_may_cause_errors=Instalar complementos en desarrollo puede provocar errores de funcionamiento en la aplicaci\u00f3n
|
|
114 | 114 |
_This_may_cause_issues_in_gvSIG=Esto puede provocar un mal funcionamiento de gvSIG |
115 | 115 |
|
116 | 116 |
select_package_location=Indique la ubicacion en la que se generara el paquete |
117 |
create_package_index=?Desea crear el indice para este paquete?
|
|
117 |
create_package_index=\u00bfDesea crear el indice para este paquete?
|
|
118 | 118 |
create_index_for_package=Crear indice para el paquete |
119 | 119 |
select_package_index_location=Indique la ubicacion en la que se generara el indice |
120 | 120 |
destination_package_url=Para crear un indice debera indicar la url desde la que se podra descargar su paquete una vez generado. |
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.installer/org.gvsig.installer.swing/org.gvsig.installer.swing.impl/src/main/resources/org/gvsig/installer/swing/impl/text_en.properties | ||
---|---|---|
6 | 6 |
_package_description=Package description |
7 | 7 |
_installer_progress=Installer progress |
8 | 8 |
_Compressing=Compressing |
9 |
_Creating_index=Creating ?ndex
|
|
9 |
_Creating_index=Creating \u00edndex
|
|
10 | 10 |
_Finished=Finished |
11 | 11 |
_cant_create_the_package=Can't create the package |
12 | 12 |
_create_package=Create package |
... | ... | |
32 | 32 |
_already_installed_but_not_installable=Already installed but not installable |
33 | 33 |
_official_recommended=Official and recommended |
34 | 34 |
_official=Official |
35 |
_not_official_recommended=Not official, recommended
|
|
36 |
_not_official=Not official
|
|
35 |
_community_recommended=Community, recommended
|
|
36 |
_community=Community
|
|
37 | 37 |
_downloading=Downloading |
38 | 38 |
_start_download=Start download |
39 | 39 |
_progress=Progress |
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.installer/org.gvsig.installer.swing/org.gvsig.installer.swing.impl/src/main/resources/org/gvsig/installer/swing/impl/creation/panel/formPackageinfo.xml | ||
---|---|---|
67 | 67 |
<field name="state" label="State" type="string" mandatory="false" defaultValue="testing" group="General"> |
68 | 68 |
<description>State of the package</description> |
69 | 69 |
<availableValues> |
70 |
<value label="devel">devel</value>
|
|
70 |
<value label="devel">devel</value>
|
|
71 | 71 |
<value label="testing">testing</value> |
72 | 72 |
<value label="pilot">pilot</value> |
73 | 73 |
<value label="prototype">prototype</value> |
... | ... | |
85 | 85 |
</field> |
86 | 86 |
|
87 | 87 |
<field name="official" label="Official" type="boolean" group="General"> |
88 |
<description>Check if the package is a official package of gvSIG project</description> |
|
88 |
<availableValues> |
|
89 |
<value label="Official">true</value> |
|
90 |
<value label="Community">false</value> |
|
91 |
</availableValues> |
|
92 |
<description>The package is a community or an official package of gvSIG project</description> |
|
89 | 93 |
</field> |
90 | 94 |
|
91 | 95 |
<field name="sources-url" label="Source code URL" type="URL" mandatory="false" group="General"> |
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.installer/org.gvsig.installer.swing/org.gvsig.installer.swing.impl/src/main/java/org/gvsig/installer/swing/impl/execution/panel/renderers/OfficialRecommendedCellRenderer.java | ||
---|---|---|
82 | 82 |
|
83 | 83 |
return check; |
84 | 84 |
|
85 |
case NOT_OFFICIAL_RECOMMENDED:
|
|
85 |
case COMMUNITY_RECOMMENDED:
|
|
86 | 86 |
resource = this.getClass().getResource( |
87 | 87 |
"/images/notOfficialRecommended.png"); |
88 | 88 |
icon = new ImageIcon(resource); |
89 | 89 |
check.setIcon(icon); |
90 | 90 |
check.setToolTipText(swingInstallerManager |
91 |
.getText("_not_official_recommended"));
|
|
91 |
.getText("_community_recommended"));
|
|
92 | 92 |
return check; |
93 | 93 |
|
94 |
case NOT_OFFICIAL_NOT_RECOMMENDED:
|
|
94 |
case COMMUNITY_NOT_RECOMMENDED:
|
|
95 | 95 |
resource = this.getClass().getResource("/images/notOfficial.png"); |
96 | 96 |
icon = new ImageIcon(resource); |
97 | 97 |
check.setIcon(icon); |
98 | 98 |
check |
99 | 99 |
.setToolTipText(swingInstallerManager |
100 |
.getText("_not_official"));
|
|
100 |
.getText("_community"));
|
|
101 | 101 |
return check; |
102 | 102 |
|
103 | 103 |
default: |
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.installer/org.gvsig.installer.swing/org.gvsig.installer.swing.impl/src/main/java/org/gvsig/installer/swing/impl/execution/panel/model/PackagesTableModel.java | ||
---|---|---|
64 | 64 |
} |
65 | 65 |
|
66 | 66 |
public enum PackageOfficialRecommended { |
67 |
OFFICIAL_NOT_RECOMMENDED, OFFICIAL_RECOMMENDED, NOT_OFFICIAL_RECOMMENDED, NOT_OFFICIAL_NOT_RECOMMENDED
|
|
67 |
OFFICIAL_NOT_RECOMMENDED, OFFICIAL_RECOMMENDED, COMMUNITY_RECOMMENDED, COMMUNITY_NOT_RECOMMENDED
|
|
68 | 68 |
} |
69 | 69 |
|
70 | 70 |
public class PackageOsAndArchitecture { |
... | ... | |
437 | 437 |
} |
438 | 438 |
} else { |
439 | 439 |
if (currentlyVisiblePackages[rowIndex].isDefault()) { |
440 |
return PackageOfficialRecommended.NOT_OFFICIAL_RECOMMENDED;
|
|
440 |
return PackageOfficialRecommended.COMMUNITY_RECOMMENDED;
|
|
441 | 441 |
} else { |
442 |
return PackageOfficialRecommended.NOT_OFFICIAL_NOT_RECOMMENDED;
|
|
442 |
return PackageOfficialRecommended.COMMUNITY_NOT_RECOMMENDED;
|
|
443 | 443 |
} |
444 | 444 |
} |
445 | 445 |
} |
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.installer/org.gvsig.installer.swing/org.gvsig.installer.swing.impl/src/main/java/org/gvsig/installer/swing/impl/execution/panel/PackagesTablePanel.java | ||
---|---|---|
34 | 34 |
import java.awt.Insets; |
35 | 35 |
import java.awt.event.MouseEvent; |
36 | 36 |
import java.awt.event.MouseListener; |
37 |
import java.io.IOException; |
|
38 |
import java.io.InputStream; |
|
37 | 39 |
import java.net.URL; |
38 | 40 |
import java.util.List; |
41 |
import java.util.Locale; |
|
42 |
import java.util.logging.Level; |
|
43 |
import java.util.logging.Logger; |
|
39 | 44 |
|
40 | 45 |
import javax.swing.JEditorPane; |
41 | 46 |
import javax.swing.JPanel; |
... | ... | |
44 | 49 |
import javax.swing.event.ListSelectionEvent; |
45 | 50 |
import javax.swing.event.ListSelectionListener; |
46 | 51 |
import javax.swing.table.TableColumnModel; |
52 |
import org.apache.commons.io.FileUtils; |
|
53 |
import org.apache.commons.io.IOUtils; |
|
54 |
import org.apache.commons.lang3.StringUtils; |
|
47 | 55 |
|
48 | 56 |
import org.gvsig.installer.lib.api.PackageInfo; |
49 | 57 |
import org.gvsig.installer.swing.api.SwingInstallerLocator; |
... | ... | |
271 | 279 |
return; |
272 | 280 |
} |
273 | 281 |
|
274 |
PackageInfo pkginfo = ((PackagesTableModel) pluginsTable.getModel()) |
|
275 |
.getPackageInfoAt(row);
|
|
282 |
PackageInfo pkginfo = ((PackagesTableModel) pluginsTable.getModel()).getPackageInfoAt(row);
|
|
283 |
descriptionTextEditor.setText(getFullDescriptionAsHTML(pkginfo));
|
|
276 | 284 |
|
277 |
HTMLCoder html = new HTMLCoder(); |
|
278 |
html.addTitle(pkginfo.getName()); |
|
279 |
html.addParagraph(pkginfo.getDescription()); |
|
280 |
html.addBeginList(); |
|
281 |
html.addListItem("code", pkginfo.getCode()); |
|
282 |
html.addListItem("Organization", pkginfo.getOwner()); |
|
283 |
html.addListItem("Organization URL", pkginfo.getOwnerURL()); |
|
284 |
html.addListItem("Sources", pkginfo.getSourcesURL()); |
|
285 |
html.addListItem("Dependencies", pkginfo.getDependencies()); |
|
286 |
html.addListItem("Categories", pkginfo.getCategoriesAsString()); |
|
287 |
html.addListItem("Official", pkginfo.isOfficial()); |
|
288 |
html.addListItem("Signed", pkginfo.isSigned()); |
|
289 |
html.addEndList(); |
|
290 |
|
|
291 |
descriptionTextEditor.setText(html.toString()); |
|
292 |
|
|
293 | 285 |
// get the view area to the top-left corner |
294 | 286 |
descriptionTextEditor.setCaretPosition(0); |
295 | 287 |
|
296 | 288 |
} |
289 |
|
|
290 |
public String getFullDescriptionAsHTML(PackageInfo pkginfo) { |
|
291 |
String html = null; |
|
292 |
String lang = Locale.getDefault().getLanguage(); |
|
293 |
InputStream res = this.getClass().getClassLoader().getResourceAsStream("org/gvsig/installer/swing/impl/pkg_description_"+lang+".html"); |
|
294 |
if( res == null ) { |
|
295 |
res = this.getClass().getClassLoader().getResourceAsStream("org/gvsig/installer/swing/impl/pkg_description_en.html"); |
|
296 |
} |
|
297 |
if( res != null ) { |
|
298 |
try { |
|
299 |
List<String> lines = IOUtils.readLines(res); |
|
300 |
html = StringUtils.join(lines,null); |
|
301 |
res.close(); |
|
302 |
} catch (Exception ex) { |
|
303 |
// Do nothing |
|
304 |
} |
|
305 |
} |
|
306 |
if( html == null ) { |
|
307 |
HTMLCoder coder = new HTMLCoder(); |
|
308 |
coder.addTitle(pkginfo.getName()); |
|
309 |
coder.addParagraph(pkginfo.getDescription()); |
|
310 |
coder.addBeginList(); |
|
311 |
coder.addListItem("code", pkginfo.getCode()); |
|
312 |
coder.addListItem("Organization", pkginfo.getOwner()); |
|
313 |
coder.addListItem("Organization URL", pkginfo.getOwnerURL()); |
|
314 |
coder.addListItem("Sources", pkginfo.getSourcesURL()); |
|
315 |
coder.addListItem("Dependencies", pkginfo.getDependencies()); |
|
316 |
coder.addListItem("Categories", pkginfo.getCategoriesAsString()); |
|
317 |
coder.addListItem("Official", pkginfo.isOfficial()); |
|
318 |
coder.addEndList(); |
|
319 |
return coder.toString(); |
|
320 |
} |
|
321 |
|
|
322 |
html = html.replace("${gvsig.package.info.name}",pkginfo.getName()); |
|
323 |
html = html.replace("${gvsig.package.info.description}",pkginfo.getDescription()); |
|
324 |
html = html.replace("${gvsig.package.info.official}",pkginfo.isOfficial()?"true":"false"); |
|
325 |
html = html.replace("${gvsig.package.info.official.label}",pkginfo.isOfficial()?"official":"community"); |
|
326 |
html = html.replace("${gvsig.package.info.owner}",pkginfo.getOwner()); |
|
327 |
html = html.replace("${gvsig.package.info.webURL}",pkginfo.getWebURL()==null? "":pkginfo.getWebURL().toString()); |
|
328 |
html = html.replace("${gvsig.package.info.categories}",pkginfo.getCategoriesAsString()); |
|
329 |
html = html.replace("${gvsig.package.info.sourcesURL}",pkginfo.getSourcesURL()==null?"":pkginfo.getSourcesURL().toString()); |
|
330 |
html = html.replace("${gvsig.package.info.code}",pkginfo.getCode()); |
|
331 |
html = html.replace("${gvsig.package.info.dependencies}",pkginfo.getDependencies()==null?"":pkginfo.getDependencies().toString()); |
|
332 |
html = html.replace("${gvsig.package.info.version}",pkginfo.getVersion()==null?"":pkginfo.getVersion().toString()); |
|
333 |
html = html.replace("${gvsig.package.info.state}",pkginfo.getState()); |
|
334 |
html = html.replace("${gvsig.package.info.operatingSystem}",pkginfo.getOperatingSystem()); |
|
335 |
html = html.replace("${gvsig.package.info.architecture}",pkginfo.getArchitecture()); |
|
336 |
html = html.replace("${gvsig.package.info.javaVM}",pkginfo.getJavaVM()); |
|
337 |
return html; |
|
338 |
} |
|
297 | 339 |
|
298 | 340 |
public void setFilter(PackageFilter filter) { |
299 | 341 |
PackagesTableModel pluginsTableModel = (PackagesTableModel) pluginsTable |
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.installer/org.gvsig.installer.swing/org.gvsig.installer.swing.impl/src/main/java/org/gvsig/installer/swing/impl/DefaultJShowPackageStatusAndAskContinuePanel.java | ||
---|---|---|
60 | 60 |
this.createUI(manager, message); |
61 | 61 |
} |
62 | 62 |
|
63 |
private void buildPackageList(List<PackageInfo> packages) {
|
|
64 |
this.packages = new ArrayList<String>();
|
|
65 |
for (int i = 0; i < packages.size(); i++) {
|
|
66 |
PackageInfo pkg = packages.get(i);
|
|
67 |
if (!pkg.isOfficial()) {
|
|
68 |
this.packages.add(pkg.getName() + " ("
|
|
69 |
+ swingInstallerManager.getText("_not_official") + ")");
|
|
70 |
} else {
|
|
71 |
|
|
72 |
if (InstallerManager.STATE.FINAL.equalsIgnoreCase(pkg.getState())) {
|
|
73 |
continue;
|
|
74 |
} else if (InstallerManager.STATE.TESTING.equalsIgnoreCase(pkg.getState())) {
|
|
75 |
continue;
|
|
63 |
private void buildPackageList(List<PackageInfo> packages) {
|
|
64 |
this.packages = new ArrayList<>();
|
|
65 |
for (int i = 0; i < packages.size(); i++) {
|
|
66 |
PackageInfo pkg = packages.get(i);
|
|
67 |
if (!pkg.isOfficial()) {
|
|
68 |
this.packages.add(pkg.getName() + " ("
|
|
69 |
+ swingInstallerManager.getText("_community") + ")");
|
|
70 |
} else {
|
|
71 |
|
|
72 |
if (InstallerManager.STATE.FINAL.equalsIgnoreCase(pkg.getState())) {
|
|
73 |
continue;
|
|
74 |
} else if (InstallerManager.STATE.TESTING.equalsIgnoreCase(pkg.getState())) {
|
|
75 |
continue;
|
|
76 | 76 |
} else if (pkg.getState().toLowerCase().startsWith(InstallerManager.STATE.RC.toLowerCase())) { |
77 | 77 |
continue; |
78 | 78 |
} else if (pkg.getState().toLowerCase().startsWith(InstallerManager.STATE.BETA.toLowerCase())) { |
... | ... | |
80 | 80 |
} else { |
81 | 81 |
this.packages.add(pkg.getName() + " (" + pkg.getState() + ")"); |
82 | 82 |
} |
83 |
}
|
|
84 |
}
|
|
85 |
}
|
|
83 |
}
|
|
84 |
}
|
|
85 |
}
|
|
86 | 86 |
|
87 | 87 |
private void createUI(SwingInstallerManager manager, String message) { |
88 | 88 |
this.setLayout(new BorderLayout()); |
Also available in: Unified diff