Revision 44750 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/SearchConditionPanelSimplified.java
SearchConditionPanelSimplified.java | ||
---|---|---|
7 | 7 |
import javax.swing.JComboBox; |
8 | 8 |
import javax.swing.JComponent; |
9 | 9 |
import javax.swing.JLabel; |
10 |
import javax.swing.event.ChangeListener; |
|
10 | 11 |
import org.apache.commons.lang3.StringUtils; |
11 | 12 |
import org.gvsig.expressionevaluator.Code; |
12 | 13 |
import org.gvsig.expressionevaluator.Expression; |
... | ... | |
23 | 24 |
import org.gvsig.fmap.dal.swing.searchpanel.SearchConditionPanel; |
24 | 25 |
import org.gvsig.tools.ToolsLocator; |
25 | 26 |
import org.gvsig.tools.i18n.I18nManager; |
27 |
import org.gvsig.tools.swing.api.ChangeListenerHelper; |
|
26 | 28 |
import org.gvsig.tools.swing.api.ToolsSwingLocator; |
27 | 29 |
import org.gvsig.tools.swing.api.windowmanager.Dialog; |
28 | 30 |
import org.gvsig.tools.swing.api.windowmanager.WindowManager; |
... | ... | |
75 | 77 |
private final JButton btnViewAccumulatedFilter; |
76 | 78 |
private final String baseToolTip; |
77 | 79 |
private SearchConditionPanelFactory factory; |
80 |
private final ChangeListenerHelper changeListenerHelper; |
|
78 | 81 |
|
79 | 82 |
public SearchConditionPanelSimplified( |
80 | 83 |
FeatureStore store, |
... | ... | |
102 | 105 |
JComboBox cboValue4, |
103 | 106 |
JLabel lblLogicalOperators4 |
104 | 107 |
) { |
108 |
this.changeListenerHelper = ToolsSwingLocator.getToolsSwingManager().createChangeListenerHelper(); |
|
105 | 109 |
this.store = store; |
106 | 110 |
this.searchFields = new ArrayList<>(); |
107 | 111 |
SearchConditionFieldController controller = new SearchConditionFieldController( |
... | ... | |
202 | 206 |
this.accumulatedFilter = filter; |
203 | 207 |
this.btnRemoveAccumulatedFilter.setEnabled(true); |
204 | 208 |
this.btnViewAccumulatedFilter.setEnabled(true); |
209 |
this.changeListenerHelper.fireEvent(); |
|
205 | 210 |
} |
206 | 211 |
|
207 | 212 |
public void clearAccumulatedFilter() { |
... | ... | |
209 | 214 |
this.btnRemoveAccumulatedFilter.setEnabled(false); |
210 | 215 |
this.btnViewAccumulatedFilter.setEnabled(false); |
211 | 216 |
this.btnAddAccumulatedFilter.setToolTipText(this.baseToolTip); |
217 |
this.changeListenerHelper.fireEvent(); |
|
212 | 218 |
} |
213 | 219 |
|
214 | 220 |
public void showAccumulatedFilter() { |
... | ... | |
301 | 307 |
|
302 | 308 |
@Override |
303 | 309 |
public boolean set(Expression filter) { |
304 |
Code code = filter.getCode(); |
|
305 |
if (code.code() == Code.CALLER) { |
|
306 |
SearchConditionFieldController searchField = this.searchFields.get(0); |
|
307 |
Code.Caller caller = (Code.Caller) code; |
|
308 |
if (searchField.isAValidRelationOperator(caller.name())) { |
|
309 |
Code op1 = caller.parameters().get(0); |
|
310 |
Code op2 = caller.parameters().get(1); |
|
311 |
if (op1.code() == Code.IDENTIFIER && op2.code() == Code.CONSTANT) { |
|
312 |
if (searchField.setAttribute(((Code.Identifier) op1).name()) >= 0) { |
|
313 |
searchField.setRelationalOperator(caller.name()); |
|
314 |
searchField.setValue(((Code.Constant) op2).value()); |
|
315 |
return true; |
|
310 |
try { |
|
311 |
Code code = filter.getCode(); |
|
312 |
if (code.code() == Code.CALLER) { |
|
313 |
SearchConditionFieldController searchField = this.searchFields.get(0); |
|
314 |
Code.Caller caller = (Code.Caller) code; |
|
315 |
if (searchField.isAValidRelationOperator(caller.name())) { |
|
316 |
Code op1 = caller.parameters().get(0); |
|
317 |
Code op2 = caller.parameters().get(1); |
|
318 |
if (op1.code() == Code.IDENTIFIER && op2.code() == Code.CONSTANT) { |
|
319 |
if (searchField.setAttribute(((Code.Identifier) op1).name()) >= 0) { |
|
320 |
searchField.setRelationalOperator(caller.name()); |
|
321 |
searchField.setValue(((Code.Constant) op2).value()); |
|
322 |
return true; |
|
323 |
} |
|
316 | 324 |
} |
317 | 325 |
} |
318 | 326 |
} |
327 |
return false; |
|
328 |
} finally { |
|
329 |
this.changeListenerHelper.fireEvent(); |
|
319 | 330 |
} |
320 |
return false; |
|
321 | 331 |
} |
332 |
|
|
333 |
@Override |
|
334 |
public void addChangeListener(ChangeListener listener) { |
|
335 |
this.changeListenerHelper.addChangeListener(listener); |
|
336 |
} |
|
337 |
|
|
338 |
@Override |
|
339 |
public ChangeListener[] getChangeListeners() { |
|
340 |
return this.changeListenerHelper.getChangeListeners(); |
|
341 |
} |
|
342 |
|
|
343 |
@Override |
|
344 |
public void removeChangeListener(ChangeListener listener) { |
|
345 |
this.changeListenerHelper.removeChangeListener(listener); |
|
346 |
} |
|
347 |
|
|
348 |
@Override |
|
349 |
public void removeAllChangeListener() { |
|
350 |
this.changeListenerHelper.removeAllChangeListener(); |
|
351 |
} |
|
352 |
|
|
353 |
@Override |
|
354 |
public boolean hasChangeListeners() { |
|
355 |
return this.changeListenerHelper.hasChangeListeners(); |
|
356 |
} |
|
322 | 357 |
} |
Also available in: Unified diff