Revision 44205

View differences:

trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.api/src/main/java/org/gvsig/expressionevaluator/spi/AbstractSymbolTable.java
238 238
        return other;
239 239
    }
240 240

  
241
    @Override
242
    public boolean isSQLCompatible(String name) {
243
        Function f = function(name);
244
        if( f!=null ) {
245
            return f.isSQLCompatible();
246
        }
247
        return true;
248
    }
249

  
241 250
}
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.api/src/main/java/org/gvsig/expressionevaluator/SymbolTable.java
16 16
    public boolean exists(String name);
17 17

  
18 18
    public Object value(String name);
19
    
20
    public boolean isSQLCompatible(String name);
19 21

  
20 22
    public Collection<String> variables();
21 23

  
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/DefaultOptimizer.java
61 61
        }
62 62

  
63 63
        @Override
64
        public boolean isSQLCompatible(String name) {
65
            return false;
66
        }
67

  
68
        @Override
64 69
        public Collection<String> variables() {
65 70
            return Collections.EMPTY_LIST;
66 71
        }
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.swing/org.gvsig.expressionevaluator.swing.impl/src/main/java/org/gvsig/expressionevaluator/swing/impl/DefaultJExpressionBuilder.java
397 397
                        label.setIcon(element.getIcon());
398 398
                    }
399 399
                    label.setText(element.getName());
400
                    label.setEnabled(element.isEnabled());
400 401
                } else {
401 402
                    label.setIcon(null);
402 403
                    label.setText(Objects.toString(value, ""));
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/expressionevaluator/DefaultFeatureSymbolTable.java
10 10
import org.gvsig.fmap.dal.DataManager;
11 11
import org.gvsig.fmap.dal.expressionevaluator.FeatureSymbolTable;
12 12
import org.gvsig.fmap.dal.feature.Feature;
13
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
13 14
import org.gvsig.fmap.dal.feature.FeatureSelection;
14 15
import org.gvsig.fmap.dal.feature.FeatureStore;
15 16
import org.gvsig.fmap.dal.feature.FeatureType;
......
144 145
    }
145 146

  
146 147
    @Override
148
    public boolean isSQLCompatible(String name) {
149
        if( this.type == null ) {
150
            return super.isSQLCompatible(name);
151
        }
152
        FeatureAttributeDescriptor attrdesc = this.type.getAttributeDescriptor(name);
153
        if( attrdesc == null ) {
154
            return true;
155
        }
156
        if( attrdesc.isComputed() ) {
157
            return false;
158
        }
159
        return true;
160
    }
161

  
162
    @Override
147 163
    public void setFeature(Feature feature) {
148 164
        this.feature = feature;
149 165
        this.type = feature.getType();
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
5 5
import java.util.List;
6 6
import org.apache.commons.lang3.StringUtils;
7 7
import org.gvsig.expressionevaluator.Function;
8
import org.gvsig.expressionevaluator.SymbolTable;
8 9
import org.gvsig.expressionevaluator.swing.Element;
9 10
import org.gvsig.expressionevaluator.swing.Element.GroupElement;
10 11
import org.gvsig.expressionevaluator.swing.Element.SimpleElement;
......
38 39
    final FeatureStore store;
39 40
    final FeatureAttributeDescriptor attrdesc;
40 41
    List<Element> elements;
41
    final ExpressionBuilderConfig configPanel;
42
    final ExpressionBuilderConfig config;
42 43
    boolean hasMoreElements; 
43 44
    
44 45
    FeatureAttributeElement(ExpressionBuilderConfig configPanel, FeatureStore store, FeatureAttributeDescriptor attrdesc) {
45 46
        super(attrdesc.getName(), "expressionbuilder-element-table-field");
46
        this.configPanel = configPanel;
47
        this.config = configPanel;
47 48
        this.store = store;
48 49
        this.attrdesc = attrdesc;
49 50
        this.elements = null;
......
59 60
    public Element get(int index) {
60 61
        return this.getElements().get(index);
61 62
    }
63
    
64
    @Override
65
    public boolean isEnabled() {
66
        if( this.config.isSQLCompatible() ) {
67
            if( this.attrdesc.isComputed() ) {
68
                return false;
69
            }
70
        }
71
        return true;
72
    }
62 73

  
63 74
    @Override
64 75
    public int size() {
......
92 103
            hasMoreElements = false;
93 104
            ExpressionEvaluatorSwingManager manager = ExpressionEvaluatorSwingLocator.getManager();
94 105
            final List<Object> values = new ArrayList<>();
95
            final int limit = this.configPanel==null? 60 : this.configPanel.getSimpleElementsLimit();
106
            final int limit = this.config==null? 60 : this.config.getSimpleElementsLimit();
96 107
            final long timeLimit = System.currentTimeMillis() + limit*1000;
97 108
            try {
98 109
                FeatureSet set = this.store.getFeatureSet();
......
116 127
            }
117 128
            this.elements = new ArrayList<>();
118 129
            for (Object value : values) {
119
                this.elements.add(manager.createConstantElement(this.configPanel, value));
130
                this.elements.add(manager.createConstantElement(this.config, value));
120 131
            }
121 132
        }
122 133
        return this.elements;

Also available in: Unified diff