Revision 43987 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/expressionevaluator/FeatureAttributeElement.java

View differences:

FeatureAttributeElement.java
3 3
import java.util.ArrayList;
4 4
import java.util.Iterator;
5 5
import java.util.List;
6
import org.apache.commons.lang.mutable.MutableInt;
7 6
import org.gvsig.expressionevaluator.Function;
8 7
import org.gvsig.expressionevaluator.swing.Element;
9 8
import org.gvsig.expressionevaluator.swing.Element.GroupElement;
......
79 78
    }
80 79

  
81 80
    @Override
81
    public void reload() {
82
        this.elements=null; 
83
        hasMoreElements = false;
84
    }
85

  
86
    @Override
82 87
    public List<Element> getElements() {
83 88
        if( this.elements==null ) {
84 89
            hasMoreElements = false;
85
            final int limit = this.configPanel==null? 1000 : this.configPanel.getSimpleElementsLimit();
86 90
            ExpressionEvaluatorSwingManager manager = ExpressionEvaluatorSwingLocator.getManager();
87 91
            final List<Object> values = new ArrayList<>();
92
            final int limit = this.configPanel==null? 60 : this.configPanel.getSimpleElementsLimit();
93
            final long timeLimit = System.currentTimeMillis() + limit*1000;
88 94
            try {
89 95
                FeatureSet set = this.store.getFeatureSet();
90
                final MutableInt count = new MutableInt(0);
91 96
                set.accept(new Visitor() {
92 97
                    @Override
93 98
                    public void visit(Object o) throws VisitCanceledException, BaseException {
......
95 100
                        if( !values.contains(value ) ) {
96 101
                            values.add(value);
97 102
                        }
98
                        count.increment();
99
                        if( count.intValue()>= limit ) {
103
                        if( System.currentTimeMillis() > timeLimit ) {
100 104
                            hasMoreElements = true;
101 105
                            throw new VisitCanceledException();
102 106
                        }

Also available in: Unified diff