svn-gvsig-desktop / 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 / SearchConditionPanelAdvanced.java @ 44855
History | View | Annotate | Download (4.75 KB)
1 |
package org.gvsig.fmap.dal.swing.impl.searchpanel; |
---|---|
2 |
|
3 |
import javax.swing.JButton; |
4 |
import javax.swing.JComponent; |
5 |
import javax.swing.event.ChangeListener; |
6 |
import javax.swing.text.JTextComponent; |
7 |
import org.gvsig.expressionevaluator.Expression; |
8 |
import org.gvsig.expressionevaluator.swing.ExpressionEvaluatorSwingLocator; |
9 |
import org.gvsig.expressionevaluator.swing.ExpressionEvaluatorSwingManager; |
10 |
import org.gvsig.expressionevaluator.swing.ExpressionPickerController; |
11 |
import org.gvsig.fmap.dal.feature.FeatureStore; |
12 |
import org.gvsig.fmap.dal.swing.DALSwingLocator; |
13 |
import org.gvsig.fmap.dal.swing.DataSwingManager; |
14 |
import org.gvsig.fmap.dal.swing.searchpanel.AbstractSearchConditionPanel; |
15 |
import org.gvsig.fmap.dal.swing.searchpanel.SearchConditionPanel; |
16 |
import org.gvsig.fmap.dal.swing.searchpanel.SearchParameters; |
17 |
import org.gvsig.tools.swing.api.ChangeListenerHelper; |
18 |
import org.gvsig.tools.swing.api.ToolsSwingLocator; |
19 |
|
20 |
/**
|
21 |
*
|
22 |
* @author jjdelcerro
|
23 |
*/
|
24 |
public class SearchConditionPanelAdvanced |
25 |
extends AbstractSearchConditionPanel
|
26 |
implements SearchConditionPanel {
|
27 |
|
28 |
@Override
|
29 |
public JComponent asJComponent() { |
30 |
return null; |
31 |
} |
32 |
|
33 |
@Override
|
34 |
public void put(SearchParameters params) { |
35 |
Expression filter = params.getQuery().getExpressionFilter();
|
36 |
this.set(filter);
|
37 |
} |
38 |
|
39 |
@Override
|
40 |
public SearchParameters fetch(SearchParameters params) {
|
41 |
if (params == null) { |
42 |
return params;
|
43 |
} |
44 |
Expression exp = this.get(); |
45 |
if (exp == null){ |
46 |
params.getQuery().setFilter((Expression) null); |
47 |
}else if (exp.isEmpty()) { |
48 |
params.getQuery().clearFilter(); |
49 |
} else {
|
50 |
params.getQuery().setFilter(exp); |
51 |
} |
52 |
return params;
|
53 |
} |
54 |
|
55 |
private static class SearchConditionPanelAdvancedFactory |
56 |
implements SearchConditionPanelFactory {
|
57 |
|
58 |
@Override
|
59 |
public boolean isApplicable(FeatureStore store) { |
60 |
return true; |
61 |
} |
62 |
|
63 |
@Override
|
64 |
public SearchConditionPanel create(Object... os) { |
65 |
return null; |
66 |
} |
67 |
|
68 |
@Override
|
69 |
public String getName() { |
70 |
return "Advanced"; |
71 |
} |
72 |
|
73 |
} |
74 |
|
75 |
private static final SearchConditionPanelFactory FACTORY = new SearchConditionPanelAdvancedFactory(); |
76 |
|
77 |
private final ExpressionPickerController advancedExpression; |
78 |
private final FeatureStore store; |
79 |
private final ChangeListenerHelper changeListenerHelper; |
80 |
|
81 |
public SearchConditionPanelAdvanced(
|
82 |
FeatureStore store, |
83 |
JTextComponent text,
|
84 |
JButton button,
|
85 |
JButton bookmarks,
|
86 |
JButton history
|
87 |
) { |
88 |
this.changeListenerHelper = ToolsSwingLocator.getToolsSwingManager().createChangeListenerHelper();
|
89 |
this.store = store;
|
90 |
ExpressionEvaluatorSwingManager expressionSwingManager = ExpressionEvaluatorSwingLocator.getManager(); |
91 |
DataSwingManager dataSwingManager = DALSwingLocator.getManager(); |
92 |
this.advancedExpression = dataSwingManager.createExpressionPickerController(
|
93 |
this.store,
|
94 |
text, |
95 |
button, |
96 |
bookmarks, |
97 |
history |
98 |
); |
99 |
initComponents(); |
100 |
} |
101 |
|
102 |
@Override
|
103 |
public SearchConditionPanelFactory getFactory() {
|
104 |
return FACTORY;
|
105 |
} |
106 |
|
107 |
private void initComponents() { |
108 |
} |
109 |
|
110 |
@Override
|
111 |
public void clear() { |
112 |
this.advancedExpression.set(null); |
113 |
this.changeListenerHelper.fireEvent();
|
114 |
} |
115 |
|
116 |
@Override
|
117 |
public Expression get() { |
118 |
return this.advancedExpression.get(); |
119 |
} |
120 |
|
121 |
@Override
|
122 |
public boolean isValid(StringBuilder message) { |
123 |
if (this.advancedExpression.isValid()) { |
124 |
return true; |
125 |
} |
126 |
message.append("The expression entered is not valid.");
|
127 |
return false; |
128 |
} |
129 |
|
130 |
@Override
|
131 |
public boolean set(Expression filter) { |
132 |
this.advancedExpression.set(filter);
|
133 |
this.changeListenerHelper.fireEvent();
|
134 |
return true; |
135 |
} |
136 |
|
137 |
@Override
|
138 |
public void setEnabled(boolean enabled) { |
139 |
this.advancedExpression.setEnabled(enabled);
|
140 |
} |
141 |
|
142 |
@Override
|
143 |
public void addChangeListener(ChangeListener listener) { |
144 |
this.changeListenerHelper.addChangeListener(listener);
|
145 |
} |
146 |
|
147 |
@Override
|
148 |
public ChangeListener[] getChangeListeners() { |
149 |
return this.changeListenerHelper.getChangeListeners(); |
150 |
} |
151 |
|
152 |
@Override
|
153 |
public void removeChangeListener(ChangeListener listener) { |
154 |
this.changeListenerHelper.removeChangeListener(listener);
|
155 |
} |
156 |
|
157 |
@Override
|
158 |
public void removeAllChangeListener() { |
159 |
this.changeListenerHelper.removeAllChangeListener();
|
160 |
} |
161 |
|
162 |
@Override
|
163 |
public boolean hasChangeListeners() { |
164 |
return this.changeListenerHelper.hasChangeListeners(); |
165 |
} |
166 |
|
167 |
} |