svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.library / org.gvsig.exportto / org.gvsig.exportto.swing / org.gvsig.exportto.swing.impl / src / main / java / org / gvsig / export / swing / impl / panels / SelectFilterPanel.java @ 44539
History | View | Annotate | Download (6.79 KB)
1 |
package org.gvsig.export.swing.impl.panels; |
---|---|
2 |
|
3 |
import java.awt.event.ActionEvent; |
4 |
import java.awt.event.ActionListener; |
5 |
import java.util.List; |
6 |
import javax.swing.DefaultListModel; |
7 |
import javax.swing.JComponent; |
8 |
import org.gvsig.export.ExportLocator; |
9 |
import org.gvsig.export.ExportManager; |
10 |
import org.gvsig.export.ExportManager.ExportFilter; |
11 |
import org.gvsig.export.ExportParameters; |
12 |
import org.gvsig.export.swing.JExportProcessPanel; |
13 |
import org.gvsig.export.swing.spi.ExportPanel; |
14 |
import org.gvsig.export.swing.spi.ExportPanelValidationException; |
15 |
import org.gvsig.export.swing.spi.ExportPanelsManager; |
16 |
import org.gvsig.expressionevaluator.Expression; |
17 |
import org.gvsig.expressionevaluator.swing.ExpressionEvaluatorSwingLocator; |
18 |
import org.gvsig.expressionevaluator.swing.ExpressionEvaluatorSwingManager; |
19 |
import org.gvsig.expressionevaluator.swing.ExpressionPickerController; |
20 |
import org.gvsig.fmap.dal.feature.FeatureStore; |
21 |
import org.gvsig.fmap.dal.swing.DALSwingLocator; |
22 |
import org.gvsig.fmap.dal.swing.DataSwingManager; |
23 |
import org.gvsig.fmap.dal.swing.expressionevaluator.FeatureStoreElement; |
24 |
import org.gvsig.tools.ToolsLocator; |
25 |
import org.gvsig.tools.i18n.I18nManager; |
26 |
import org.gvsig.tools.swing.api.ListElement; |
27 |
import org.slf4j.Logger; |
28 |
import org.slf4j.LoggerFactory; |
29 |
|
30 |
/**
|
31 |
*
|
32 |
* @author jjdelcerro
|
33 |
*/
|
34 |
public class SelectFilterPanel |
35 |
extends SelectFilterPanelView
|
36 |
implements ExportPanel {
|
37 |
|
38 |
private static final Logger LOG = LoggerFactory.getLogger(SelectFilterPanel.class); |
39 |
|
40 |
private final ExportParameters parameters; |
41 |
private final JExportProcessPanel processPanel; |
42 |
private ExpressionPickerController pickerExpression;
|
43 |
|
44 |
public SelectFilterPanel(
|
45 |
JExportProcessPanel processPanel, |
46 |
ExportParameters parameters |
47 |
) { |
48 |
this.processPanel = processPanel;
|
49 |
this.parameters = parameters;
|
50 |
this.initComponents();
|
51 |
} |
52 |
|
53 |
@Override
|
54 |
public String getIdPanel() { |
55 |
return ExportPanelsManager.PANEL_SELECT_FILTER;
|
56 |
} |
57 |
|
58 |
@Override
|
59 |
public String getTitlePanel() { |
60 |
I18nManager i18n = ToolsLocator.getI18nManager(); |
61 |
return i18n.getTranslation("_Filter"); |
62 |
} |
63 |
|
64 |
@Override
|
65 |
public boolean validatePanel() throws ExportPanelValidationException { |
66 |
checkPanel(true);
|
67 |
return true; |
68 |
} |
69 |
|
70 |
@Override
|
71 |
public void enterPanel() { |
72 |
if (this.parameters.getFilterExpresion()!=null) { |
73 |
this.pickerExpression.set(this.parameters.getFilterExpresion()); |
74 |
} |
75 |
switch(this.parameters.getFeaturesToUse()) { |
76 |
case ExportParameters.USE_FILTERED_FEATURES:
|
77 |
this.rdbFilteredRows.setSelected(true); |
78 |
break;
|
79 |
case ExportParameters.USE_SELECTED_FEATURES:
|
80 |
this.rdbSelectedRows.setSelected(true); |
81 |
break;
|
82 |
case ExportParameters.USE_ALL_FEATURES:
|
83 |
default:
|
84 |
this.rdbAllRows.setSelected(true); |
85 |
break;
|
86 |
} |
87 |
doChangeOption(); |
88 |
} |
89 |
|
90 |
@Override
|
91 |
public void previousPanel() { |
92 |
|
93 |
} |
94 |
|
95 |
@Override
|
96 |
public void nextPanel() { |
97 |
this.parameters.setFilterExpresion(this.getFilterExpresion()); |
98 |
if (this.isFullLayerSelected()) { |
99 |
this.parameters.setFeaturesToUse(ExportParameters.USE_ALL_FEATURES);
|
100 |
} else if (this.isPersonalizedFilterSelected()) { |
101 |
this.parameters.setFeaturesToUse(ExportParameters.USE_FILTERED_FEATURES);
|
102 |
} else {
|
103 |
this.parameters.setFeaturesToUse(ExportParameters.USE_SELECTED_FEATURES);
|
104 |
} |
105 |
} |
106 |
|
107 |
@Override
|
108 |
public JComponent asJComponent() { |
109 |
return this; |
110 |
} |
111 |
|
112 |
private void initComponents() { |
113 |
|
114 |
ExportManager manager = ExportLocator.getManager(); |
115 |
|
116 |
DefaultListModel model = new DefaultListModel(); |
117 |
List<ExportManager.ExportFilter> filters = manager.getFilters();
|
118 |
for (ExportFilter filter : filters) {
|
119 |
model.addElement(new ListElement(filter.getName(), filter.getExpression()));
|
120 |
} |
121 |
|
122 |
ActionListener changeOptionAction = new ActionListener() { |
123 |
@Override
|
124 |
public void actionPerformed(ActionEvent e) { |
125 |
doChangeOption(); |
126 |
} |
127 |
}; |
128 |
this.rdbAllRows.addActionListener(changeOptionAction);
|
129 |
this.rdbFilteredRows.addActionListener(changeOptionAction);
|
130 |
this.rdbSelectedRows.addActionListener(changeOptionAction);
|
131 |
this.rdbAllRows.setSelected(true); |
132 |
doChangeOption(); |
133 |
ExpressionEvaluatorSwingManager expManager = ExpressionEvaluatorSwingLocator.getManager(); |
134 |
this.pickerExpression = expManager.createExpressionPickerController(txtPicker, btnPickerExp, btnPickerBook, btnPickerHis);
|
135 |
FeatureStore store = this.parameters.getSourceFeatureStore();
|
136 |
if (store != null) { |
137 |
DataSwingManager swm = DALSwingLocator.getSwingManager(); |
138 |
FeatureStoreElement expStore = swm.createFeatureStoreElement(store); |
139 |
this.pickerExpression.addElement(expStore);
|
140 |
} |
141 |
this.translate();
|
142 |
} |
143 |
|
144 |
private void translate() { |
145 |
I18nManager i18nManager = ToolsLocator.getI18nManager(); |
146 |
|
147 |
this.rdbAllRows.setText(i18nManager.getTranslation("_Todos_los_registros")); |
148 |
this.rdbSelectedRows.setText(i18nManager.getTranslation("_Los_registros_seleccionados")); |
149 |
this.rdbFilteredRows.setText(i18nManager.getTranslation("_Los_registros_que_cumplan_el_critrio_seleccionado")); |
150 |
this.lblHeader.setText(i18nManager.getTranslation("_Indique_que_registros_desea_exportar")); |
151 |
} |
152 |
|
153 |
protected void doChangeOption() { |
154 |
} |
155 |
|
156 |
public boolean isFullLayerSelected() { |
157 |
return this.rdbAllRows.isSelected(); |
158 |
} |
159 |
|
160 |
public boolean isSelectedFeaturesSelected() { |
161 |
return this.rdbSelectedRows.isSelected(); |
162 |
} |
163 |
|
164 |
public boolean isPersonalizedFilterSelected() { |
165 |
return this.rdbFilteredRows.isSelected(); |
166 |
} |
167 |
|
168 |
public void checkPanel(boolean save) throws ExportPanelValidationException { |
169 |
if (this.rdbFilteredRows.isSelected()) { |
170 |
I18nManager i18nManager = ToolsLocator.getI18nManager(); |
171 |
|
172 |
if (this.pickerExpression.isEmpty()) { |
173 |
throw new ExportPanelValidationException( |
174 |
i18nManager.getTranslation("_The_expresion_is_empty_Check_other_option_or_enter_a_expresion")
|
175 |
); |
176 |
} |
177 |
|
178 |
if (!this.pickerExpression.isValid()) { |
179 |
throw new ExportPanelValidationException( |
180 |
i18nManager.getTranslation("_Problems_compiling_the_expesion_Check_the_sintax_Remember_use_SQL_expresion_sintax")
|
181 |
); |
182 |
} |
183 |
} |
184 |
} |
185 |
|
186 |
|
187 |
public Expression getFilterExpresion() { |
188 |
if (this.pickerExpression.isValid()) { |
189 |
Expression exp = this.pickerExpression.get(); |
190 |
return exp;
|
191 |
} else {
|
192 |
return null; |
193 |
} |
194 |
} |
195 |
|
196 |
} |