Revision 47818
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/featuretable/SimpleFeaturesTableModelImpl.java | ||
---|---|---|
25 | 25 |
import javax.swing.table.DefaultTableColumnModel; |
26 | 26 |
import javax.swing.table.TableCellRenderer; |
27 | 27 |
import javax.swing.table.TableColumn; |
28 |
import org.apache.commons.lang3.ArrayUtils; |
|
28 | 29 |
import org.apache.commons.lang3.StringUtils; |
29 | 30 |
import org.gvsig.expressionevaluator.Expression; |
31 |
import org.gvsig.expressionevaluator.ExpressionBuilder; |
|
32 |
import org.gvsig.expressionevaluator.ExpressionUtils; |
|
30 | 33 |
import org.gvsig.fmap.dal.complements.Search; |
31 | 34 |
import org.gvsig.fmap.dal.exception.DataException; |
32 | 35 |
import org.gvsig.fmap.dal.feature.DataProfile; |
... | ... | |
566 | 569 |
dynObjectManager.registerTag(TAG_FEATURETABLEMODEL_IMAGE_HEIGHT, "Height to use when images have to be represented in a table, by default 48."); |
567 | 570 |
dynObjectManager.registerTag(TAG_FEATURETABLEMODEL_IMAGE_WIDTH, "Width to use when images have to be represented in a table, by default 48."); |
568 | 571 |
} |
572 |
|
|
573 |
@Override |
|
574 |
public Expression getFeaturesFilter(int[] rows) { |
|
575 |
if( ArrayUtils.isEmpty(rows) ) { |
|
576 |
return null; |
|
577 |
} |
|
578 |
ExpressionBuilder builder = ExpressionUtils.createExpressionBuilder(); |
|
579 |
for (int row : rows) { |
|
580 |
Feature feature = this.getFeatureAt(row); |
|
581 |
if( feature == null ) { |
|
582 |
continue; |
|
583 |
} |
|
584 |
ExpressionBuilder filter = feature.createBuilderFilter(); |
|
585 |
if( filter == null ) { |
|
586 |
continue; |
|
587 |
} |
|
588 |
builder.or(filter.value()); |
|
589 |
} |
|
590 |
if( builder.value() == null ) { |
|
591 |
return null; |
|
592 |
} |
|
593 |
Expression filter = ExpressionUtils.createExpression(builder.toString()); |
|
594 |
return filter; |
|
595 |
} |
|
569 | 596 |
} |
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.api/src/main/java/org/gvsig/fmap/dal/swing/featuretable/SimpleFeaturesTableModel.java | ||
---|---|---|
26 | 26 |
import javax.swing.JTable; |
27 | 27 |
import javax.swing.table.TableCellRenderer; |
28 | 28 |
import javax.swing.table.TableModel; |
29 |
import org.gvsig.expressionevaluator.Expression; |
|
29 | 30 |
import org.gvsig.fmap.dal.feature.Feature; |
30 | 31 |
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor; |
31 | 32 |
import org.gvsig.tools.dispose.Disposable; |
... | ... | |
53 | 54 |
|
54 | 55 |
public List<String> getColumnNames(); |
55 | 56 |
|
57 |
public Expression getFeaturesFilter(int[] rows); |
|
58 |
|
|
56 | 59 |
} |
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/Feature.java | ||
---|---|---|
28 | 28 |
import java.util.List; |
29 | 29 |
import org.cresques.cts.IProjection; |
30 | 30 |
import org.gvsig.expressionevaluator.Expression; |
31 |
import org.gvsig.expressionevaluator.ExpressionBuilder; |
|
31 | 32 |
import org.gvsig.fmap.dal.exception.DataException; |
32 | 33 |
import org.gvsig.fmap.geom.Geometry; |
33 | 34 |
import org.gvsig.fmap.geom.primitive.Envelope; |
... | ... | |
496 | 497 |
|
497 | 498 |
public Expression createFilter(); |
498 | 499 |
|
500 |
public ExpressionBuilder createBuilderFilter(); |
|
501 |
|
|
499 | 502 |
public boolean isBroken(); |
500 | 503 |
|
501 | 504 |
} |
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/DefaultFeature.java | ||
---|---|---|
2017 | 2017 |
|
2018 | 2018 |
@Override |
2019 | 2019 |
public Expression createFilter() { |
2020 |
ExpressionBuilder builder = this.createBuilderFilter(); |
|
2021 |
Expression filter = ExpressionUtils.createExpression(builder.toString()); |
|
2022 |
return filter; |
|
2023 |
} |
|
2024 |
|
|
2025 |
public ExpressionBuilder createBuilderFilter() { |
|
2020 | 2026 |
FeatureType ftype = this.getType(); |
2021 | 2027 |
FeatureAttributeDescriptor[] pk = ftype.getPrimaryKey(); |
2022 | 2028 |
if( ArrayUtils.isEmpty(pk) ) { |
... | ... | |
2038 | 2044 |
); |
2039 | 2045 |
} |
2040 | 2046 |
} |
2041 |
Expression filter = ExpressionUtils.createExpression(builder.toString()); |
|
2042 |
return filter; |
|
2047 |
return builder; |
|
2043 | 2048 |
} |
2044 | 2049 |
} |
Also available in: Unified diff