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

View differences:

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
}

Also available in: Unified diff