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
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