Revision 44644 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/searchpanel/DefaultSearchPanel.java

View differences:

DefaultSearchPanel.java
46 46
import org.gvsig.fmap.dal.exception.DataException;
47 47
import org.gvsig.fmap.dal.feature.Feature;
48 48
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
49
import org.gvsig.fmap.dal.feature.FeatureQueryOrder;
49 50
import org.gvsig.fmap.dal.feature.FeatureStore;
50 51
import org.gvsig.fmap.dal.feature.FeatureType;
51 52
import org.gvsig.fmap.dal.swing.AbstractDALActionFactory.AbstractDALActionContext;
52 53
import org.gvsig.fmap.dal.swing.DALActionFactory;
53 54
import org.gvsig.fmap.dal.swing.DALSwingLocator;
54 55
import org.gvsig.fmap.dal.swing.impl.featuretable.SimpleFeaturesTableModel;
56
import org.gvsig.fmap.dal.swing.orderpanel.FeatureStoreOrderPanel;
55 57
import org.gvsig.fmap.dal.swing.searchpanel.FeatureStoreSearchPanel;
56 58
import org.gvsig.tools.ToolsLocator;
57 59
import org.gvsig.tools.dynobject.Tags;
......
59 61
import org.gvsig.tools.swing.api.ActionListenerSupport;
60 62
import org.gvsig.tools.swing.api.ToolsSwingLocator;
61 63
import org.gvsig.tools.swing.api.ToolsSwingManager;
64
import org.gvsig.tools.swing.api.windowmanager.Dialog;
65
import org.gvsig.tools.swing.api.windowmanager.WindowManager;
66
import org.gvsig.tools.swing.api.windowmanager.WindowManager_v2;
62 67
import org.gvsig.tools.swing.icontheme.IconTheme;
63 68
import org.gvsig.tools.util.ToolsUtilLocator;
64 69
import org.slf4j.Logger;
......
74 79
        implements FeatureStoreSearchPanel {
75 80

  
76 81
    private static final Logger LOGGER = LoggerFactory.getLogger(DefaultSearchPanel.class);
77
    private Expression currentSearch;
78 82
    
79 83
    static /* friend */ Integer useLabels = null;
80 84
    
81 85
    public static class UseLabelsYesAction extends AbstractAction {
82 86

  
87
        @SuppressWarnings("OverridableMethodCallInConstructor")
83 88
        public UseLabelsYesAction() {
84 89
            I18nManager i18n = ToolsLocator.getI18nManager();
85 90

  
......
105 110
    
106 111
    public static class UseLabelsNoAction extends AbstractAction {
107 112

  
113
        @SuppressWarnings("OverridableMethodCallInConstructor")
108 114
        public UseLabelsNoAction() {
109 115
            I18nManager i18n = ToolsLocator.getI18nManager();
110 116
            this.putValue(NAME, i18n.getTranslation("_Use_names"));
......
129 135
    
130 136
    public static class UseLabelsBothAction extends AbstractAction {
131 137

  
138
        @SuppressWarnings("OverridableMethodCallInConstructor")
132 139
        public UseLabelsBothAction() {
133 140
            I18nManager i18n = ToolsLocator.getI18nManager();
134 141

  
......
153 160
    }
154 161
    
155 162
    
163
    public static class SelectOrderAction extends AbstractAction {
164

  
165
        @SuppressWarnings("OverridableMethodCallInConstructor")
166
        public SelectOrderAction() {
167
            I18nManager i18n = ToolsLocator.getI18nManager();
168

  
169
            this.putValue(NAME, i18n.getTranslation("_Select_order"));
170
            this.putValue(ACTION_COMMAND_KEY, "SelectOrder");
171
        }
172

  
173
        @Override
174
        public Object getValue(String key) {
175
            if( NAME.equals(key) ) {
176
                // Cuando se registra la accion aun no se han cargado las traducciones
177
                I18nManager i18n = ToolsLocator.getI18nManager();
178
                return i18n.getTranslation("_Select_order");
179
            }
180
            return super.getValue(key);
181
        }
182

  
183
        @Override
184
        public void actionPerformed(ActionEvent ae) {
185
            DefaultSearchPanel panel = (DefaultSearchPanel) ae.getSource();
186
            panel.doSelectOrder();
187
        }
188
    }
189
    
190
    
156 191
    private class ActionButtons {
157 192
        
158 193
        private final DALActionFactory factory;
......
186 221
        }
187 222

  
188 223
        @Override
224
        public FeatureQueryOrder getOrder() {
225
            return this.panel.getOrder();
226
        }
227

  
228
        @Override
189 229
        public JComponent getActionButton(String actionName) {
190 230
            return this.panel.getActionButton(actionName);
191 231
        }
......
209 249
    private boolean showActions = true;
210 250
    private int maxSearhFields = 4;
211 251
    private final I18nManager i18n = ToolsLocator.getI18nManager();
252
    private Expression currentSearch;
253
    private FeatureQueryOrder order;
212 254

  
213 255
    public DefaultSearchPanel(FeatureStore store) {
214 256
        this.store = store;
......
386 428
        addActions();
387 429
        this.setPreferredSize(new Dimension(DEFAULT_WIDTH, DEFAULT_HEIGHT));
388 430

  
389
        doSearch(null);
431
        doSearch(null,null);
390 432
    }
391 433

  
392 434
    @Override
......
422 464
    }
423 465

  
424 466
    @Override
467
    public FeatureQueryOrder getOrder() {
468
        return this.order;
469
    }
470

  
471
    @Override
425 472
    public Expression getFilter() {
426 473
        Expression filter;
427 474
        int searchMode = this.tabSearchMode.getSelectedIndex();
......
461 508
    
462 509
    private void doSearch() {
463 510
        Expression filter = this.getFilter();
464
        doSearch(filter);
511
        FeatureQueryOrder theOrder = this.getOrder();
512
        if( theOrder!=null ) {
513
            doSearch(filter,theOrder.toString());
514
        } else {
515
            doSearch(filter,null);
516
        }
465 517
    }
466 518

  
467
    private void doSearch(final Expression exp) {
519
    private void doSearch(final Expression exp, String order) {
468 520
        final MutableObject model = new MutableObject(null);
469 521
        
470 522
        lblMsg.setText("Searching...");
......
474 526
            public void run() {
475 527
                try {
476 528
                    final List<Feature> features;
477
                    if (exp == null) {
478
                        features = store.getFeatures();
479
                    } else {
480
                        features = store.getFeatures(exp);
481
                    }
529
                    features = store.getFeatures(exp,order);
482 530
                    currentSearch = exp;
483 531
                    model.setValue( new SimpleFeaturesTableModel(
484 532
                            store.getDefaultFeatureType(),
......
590 638
    public FeatureStore getStore() {
591 639
        return store;
592 640
    }
641

  
642
    private void doSelectOrder() {
643
        WindowManager_v2 windowManager = (WindowManager_v2) ToolsSwingLocator.getWindowManager();
644
        FeatureStoreOrderPanel orderPanel = DALSwingLocator.getDataSwingManager().createFeatureStoreOrderPanel();
645
        orderPanel.setStore(store);
646
        orderPanel.setOrder(order);
647
        Dialog dialog = windowManager.createDialog(
648
                orderPanel.asJComponent(),
649
                i18n.getTranslation("_Select_order"),
650
                null, 
651
                WindowManager_v2.BUTTONS_OK_CANCEL
652
        );
653
        dialog.addActionListener(new ActionListener() {
654
            @Override
655
            public void actionPerformed(ActionEvent e) {
656
                if( dialog.getAction()==WindowManager_v2.BUTTON_OK ) {
657
                    order = orderPanel.getOrder();
658
                    doSearch();
659
                }
660
            }
661
        });
662
        dialog.show(WindowManager.MODE.DIALOG);
663
        
664
    }
593 665
    
594 666
    @Override
595 667
    public ImageIcon loadImage(String imageName) {
......
625 697
        cfgActionsManager.addConfigurableAction(CONFIGURABLE_PANEL_ID, new UseLabelsYesAction());
626 698
        cfgActionsManager.addConfigurableAction(CONFIGURABLE_PANEL_ID, new UseLabelsNoAction());
627 699
        cfgActionsManager.addConfigurableAction(CONFIGURABLE_PANEL_ID, new UseLabelsBothAction());
628
        
700
        cfgActionsManager.addConfigurableAction(CONFIGURABLE_PANEL_ID, new SelectOrderAction());
629 701
    }
630 702

  
631 703
    @Override

Also available in: Unified diff