Revision 44239

View differences:

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/featureform/swing/impl/DefaultJFeaturesForm.java
38 38
import javax.swing.JOptionPane;
39 39
import javax.swing.JPanel;
40 40
import org.gvsig.expressionevaluator.Expression;
41
import org.gvsig.expressionevaluator.ExpressionUtils;
41 42
import org.gvsig.expressionevaluator.swing.JExpressionBuilder;
42 43

  
43 44
import org.slf4j.Logger;
......
46 47
import org.gvsig.featureform.swing.JFeaturesForm;
47 48
import org.gvsig.fmap.dal.DALLocator;
48 49
import org.gvsig.fmap.dal.exception.DataException;
50
import org.gvsig.fmap.dal.expressionevaluator.ExpressionEvaluator;
49 51
import org.gvsig.fmap.dal.feature.Feature;
50 52
import org.gvsig.fmap.dal.feature.FacadeOfAFeature;
51 53
import org.gvsig.fmap.dal.feature.FeatureQuery;
......
65 67
import org.gvsig.tools.dynform.JDynFormSet.JDynFormSetListener;
66 68
import org.gvsig.tools.dynobject.DynClass;
67 69
import org.gvsig.tools.dynobject.DynObject;
70
import org.gvsig.tools.evaluator.Evaluator;
68 71
import org.gvsig.tools.exception.BaseException;
69 72
import org.gvsig.tools.i18n.I18nManager;
70 73
import org.gvsig.tools.observer.Observable;
......
355 358
    @Override
356 359
    public void setQuery(FeatureQuery query) {
357 360
        if (this.ph != null) {
358
            if (this.formset != null && this.formset.isAutosave() && this.formset.countValues() > 0) {
361
            if (this.formset != null && !formset.isReadOnly() && this.formset.isAutosave() && this.formset.countValues() > 0) {
359 362
                if (!store.isEditing()) {
360 363
                    try {
361 364
                        store.edit();
......
370 373
        updateForm();
371 374
    }
372 375

  
376
    private FeatureQuery getCurrentQuery() {
377
        return this.currentQuery;
378
    }
379
    
373 380
    @Override
374 381
    public void showForm(MODE mode) {
375 382
        this.panel.add(this.getFormset().asJComponent(), BorderLayout.CENTER);
......
509 516
            WindowManager_v2 winmgr = (WindowManager_v2) ToolsSwingLocator.getWindowManager();
510 517

  
511 518
            JExpressionBuilder builder = dataSwingmanager.createQueryFilterExpresion(store);
519
            FeatureQuery currentQuery = getCurrentQuery();
520
            if( currentQuery!=null ) {
521
                Evaluator filter = currentQuery.getFilter();
522
                if( filter instanceof ExpressionEvaluator ) {
523
                    Expression expression = ((ExpressionEvaluator)filter).getExpression();
524
                    builder.setExpression(expression);
525
                }
526
            }
512 527
            Dialog dialog = winmgr.createDialog(
513 528
                    builder.asJComponent(),
514 529
                    "Filtro",
......
520 535
                Expression expresion = builder.getExpression();
521 536
                try {
522 537
                    FeatureQuery query = store.createFeatureQuery();
523
                    if( !expresion.isPhraseEmpty() ) {
538
                    if( ExpressionUtils.isPhraseEmpty(expresion) ) {
539
                        query.clearFilter();
540
                    } else {
524 541
                        query.setFilter(expresion);
525 542
                    }
526 543
                    setQuery(query);

Also available in: Unified diff