root / trunk / extensions / extGeoProcessing / src / com / iver / cit / gvsig / geoprocess / dissolve / gui / GeoProcessingDissolvePanel.java @ 5412
History | View | Annotate | Download (18.6 KB)
1 | 5412 | azabala | /*
|
---|---|---|---|
2 | * Created on 14-jul-2005
|
||
3 | *
|
||
4 | * gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
|
||
5 | *
|
||
6 | * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
|
||
7 | *
|
||
8 | * This program is free software; you can redistribute it and/or
|
||
9 | * modify it under the terms of the GNU General Public License
|
||
10 | * as published by the Free Software Foundation; either version 2
|
||
11 | * of the License, or (at your option) any later version.
|
||
12 | *
|
||
13 | * This program is distributed in the hope that it will be useful,
|
||
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
16 | * GNU General Public License for more details.
|
||
17 | *
|
||
18 | * You should have received a copy of the GNU General Public License
|
||
19 | * along with this program; if not, write to the Free Software
|
||
20 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,USA.
|
||
21 | *
|
||
22 | * For more information, contact:
|
||
23 | *
|
||
24 | * Generalitat Valenciana
|
||
25 | * Conselleria d'Infraestructures i Transport
|
||
26 | * Av. Blasco Ib??ez, 50
|
||
27 | * 46010 VALENCIA
|
||
28 | * SPAIN
|
||
29 | *
|
||
30 | * +34 963862235
|
||
31 | * gvsig@gva.es
|
||
32 | * www.gvsig.gva.es
|
||
33 | *
|
||
34 | * or
|
||
35 | *
|
||
36 | * IVER T.I. S.A
|
||
37 | * Salamanca 50
|
||
38 | * 46005 Valencia
|
||
39 | * Spain
|
||
40 | *
|
||
41 | * +34 963163400
|
||
42 | * dac@iver.es
|
||
43 | */
|
||
44 | package com.iver.cit.gvsig.geoprocess.dissolve.gui; |
||
45 | |||
46 | import java.awt.Component; |
||
47 | import java.awt.event.ActionEvent; |
||
48 | import java.awt.event.ActionListener; |
||
49 | import java.io.File; |
||
50 | import java.util.ArrayList; |
||
51 | import java.util.HashMap; |
||
52 | import java.util.Map; |
||
53 | import java.util.Set; |
||
54 | |||
55 | import javax.swing.DefaultComboBoxModel; |
||
56 | import javax.swing.JButton; |
||
57 | import javax.swing.JCheckBox; |
||
58 | import javax.swing.JComboBox; |
||
59 | import javax.swing.JFileChooser; |
||
60 | import javax.swing.JLabel; |
||
61 | import javax.swing.JList; |
||
62 | import javax.swing.JScrollPane; |
||
63 | import javax.swing.JTextField; |
||
64 | |||
65 | import com.hardcode.gdbms.engine.data.DataSource; |
||
66 | import com.iver.andami.PluginServices; |
||
67 | import com.iver.andami.ui.mdiManager.View; |
||
68 | import com.iver.andami.ui.mdiManager.ViewInfo; |
||
69 | import com.iver.cit.gvsig.fmap.DriverException; |
||
70 | import com.iver.cit.gvsig.fmap.layers.FBitSet; |
||
71 | import com.iver.cit.gvsig.fmap.layers.FLayers; |
||
72 | import com.iver.cit.gvsig.fmap.layers.FLyrVect; |
||
73 | import com.iver.cit.gvsig.fmap.layers.SelectableDataSource; |
||
74 | import com.iver.cit.gvsig.fmap.layers.layerOperations.AlphanumericData; |
||
75 | import com.iver.cit.gvsig.geoprocess.core.fmap.SummarizationFunction; |
||
76 | import com.iver.cit.gvsig.geoprocess.core.fmap.XTypes; |
||
77 | import com.iver.cit.gvsig.geoprocess.core.gui.AbstractGeoprocessPanel; |
||
78 | import com.iver.cit.gvsig.geoprocess.core.gui.NumericFieldListModel; |
||
79 | import com.iver.cit.gvsig.geoprocess.core.gui.SumFuncListModel; |
||
80 | import com.iver.cit.gvsig.geoprocess.core.gui.SumarizeFunctionsDialog; |
||
81 | import com.iver.utiles.GenericFileFilter; |
||
82 | import javax.swing.JPanel; |
||
83 | import java.awt.GridBagLayout; |
||
84 | import java.awt.GridBagConstraints; |
||
85 | |||
86 | /**
|
||
87 | * Panel to work with DissolveGeoprocess in Geoprocessing Wizard.
|
||
88 | *
|
||
89 | * Precondition: all inputs layer of constructor must be FLyrVect
|
||
90 | *
|
||
91 | * @author azabala
|
||
92 | *
|
||
93 | */
|
||
94 | public class GeoProcessingDissolvePanel extends AbstractGeoprocessPanel implements |
||
95 | DissolvePanelIF, View {
|
||
96 | |||
97 | private static final long serialVersionUID = 1L; |
||
98 | |||
99 | private JLabel titleJLabel = null; |
||
100 | |||
101 | private JLabel inputCoverJLabel = null; |
||
102 | /**
|
||
103 | * Allows user to specify if a dissolve precondition
|
||
104 | * in two polygons with the same dissolve field value must
|
||
105 | * be spatial adjacency
|
||
106 | */
|
||
107 | private JCheckBox onlySelectedItemsJCheckBox = null; |
||
108 | |||
109 | |||
110 | private JLabel dissolveFieldJLabel = null; |
||
111 | /**
|
||
112 | * Allows user to specify dissolve field
|
||
113 | */
|
||
114 | private JComboBox dissolveFieldJComboBox = null; |
||
115 | |||
116 | private JScrollPane additionalOperationsJScrollPane = null; |
||
117 | |||
118 | private JList numericFieldJList = null; |
||
119 | |||
120 | private JTextField outputCoverJTextField = null; |
||
121 | |||
122 | private JButton outputCoverJButton = null; |
||
123 | |||
124 | private File outputFile = null; |
||
125 | |||
126 | private JScrollPane sumarizationFunctionScrollPane = null; |
||
127 | |||
128 | private JList sumarizeFunctionsJList; |
||
129 | |||
130 | private JButton sumFunctionSelectionJButton = null; |
||
131 | |||
132 | private SumarizeFunctionsDialog sumarizeFuncDialog = null; |
||
133 | |||
134 | /**
|
||
135 | * Relates a numeric field with its sumarize functions
|
||
136 | */
|
||
137 | private Map nField_sumFuntionList = null; |
||
138 | |||
139 | private ViewInfo viewInfo;
|
||
140 | |||
141 | private JPanel resultLayerPanel = null; |
||
142 | |||
143 | private JLabel jLabel = null; |
||
144 | |||
145 | private JPanel sumarizeAttributesPanel = null; |
||
146 | |||
147 | private JLabel jLabel1 = null; |
||
148 | |||
149 | private JLabel jLabel2 = null; |
||
150 | |||
151 | private JCheckBox adjacencyCheckbox = null; |
||
152 | /**
|
||
153 | * This constructor initializes the set of layers
|
||
154 | *
|
||
155 | * TODO PRECONDITION: check for only FLyrVect layers
|
||
156 | *
|
||
157 | *
|
||
158 | */
|
||
159 | public GeoProcessingDissolvePanel(FLayers layers) {
|
||
160 | super();
|
||
161 | this.layers = layers;
|
||
162 | initialize(); |
||
163 | } |
||
164 | |||
165 | /**
|
||
166 | * This method initializes this
|
||
167 | *
|
||
168 | * @return void
|
||
169 | */
|
||
170 | private void initialize() { |
||
171 | dissolveFieldJLabel = new JLabel(); |
||
172 | dissolveFieldJLabel.setBounds(5, 93, 180, 22); |
||
173 | dissolveFieldJLabel.setText(PluginServices.getText(this,
|
||
174 | "Campo_para_disolver")
|
||
175 | + ":");
|
||
176 | inputCoverJLabel = new JLabel(); |
||
177 | inputCoverJLabel.setBounds(5, 36, 191, 22); |
||
178 | inputCoverJLabel.setText(PluginServices.getText(this,
|
||
179 | "Cobertura_de_entrada")
|
||
180 | + ":");
|
||
181 | titleJLabel = new JLabel(); |
||
182 | titleJLabel.setBounds(5, 5, 208, 22); |
||
183 | titleJLabel.setText(PluginServices.getText(this,
|
||
184 | "Disolver._Introduccion_de_datos")
|
||
185 | + ":");
|
||
186 | this.setLayout(null); |
||
187 | this.setBounds(new java.awt.Rectangle(0,0,486,377)); |
||
188 | this.add(titleJLabel, null); |
||
189 | this.add(inputCoverJLabel, null); |
||
190 | this.add(getInputCoverJComboBox(), null); |
||
191 | this.add(getOnlySelectedItemsJCheckBox(), null); |
||
192 | this.add(dissolveFieldJLabel, null); |
||
193 | this.add(getDissolveFieldJComboBox(), null); |
||
194 | this.add(getResultLayerPanel(), null); |
||
195 | this.add(getSumarizeAttributesPanel(), null); |
||
196 | this.add(getAdjacencyCheckbox(), null); |
||
197 | this.nField_sumFuntionList = new HashMap(); |
||
198 | layersComboBox.setSelectedIndex(0);
|
||
199 | inputLayerSelectedChange(); |
||
200 | // initSelectedItemsJCheckBox();
|
||
201 | } |
||
202 | |||
203 | private String[] getFieldNames() { |
||
204 | AlphanumericData lyr = (AlphanumericData) getInputLayer(); |
||
205 | DataSource ds;
|
||
206 | String[] fieldNames = null; |
||
207 | try {
|
||
208 | ds = lyr.getRecordset(); |
||
209 | fieldNames = new String[ds.getFieldCount()]; |
||
210 | for (int i = 0; i < ds.getFieldCount(); i++) { |
||
211 | fieldNames[i] = ds.getFieldName(i); |
||
212 | } |
||
213 | } catch (DriverException e) {
|
||
214 | e.printStackTrace(); |
||
215 | } catch (com.hardcode.gdbms.engine.data.driver.DriverException e) {
|
||
216 | e.printStackTrace(); |
||
217 | } |
||
218 | return fieldNames;
|
||
219 | } |
||
220 | |||
221 | /**
|
||
222 | * Says if adjacency checkbox has been checked by
|
||
223 | * user
|
||
224 | * @return
|
||
225 | */
|
||
226 | public boolean onlyAdjacentSelected(){ |
||
227 | return adjacencyCheckbox.isSelected();
|
||
228 | } |
||
229 | |||
230 | private void initSelectedItemsJCheckBox() { |
||
231 | FLyrVect inputSelectable = (FLyrVect) getInputLayer(); |
||
232 | FBitSet fBitSet = null;
|
||
233 | try {
|
||
234 | fBitSet = inputSelectable.getRecordset().getSelection(); |
||
235 | } catch (DriverException e) {
|
||
236 | // TODO Auto-generated catch block
|
||
237 | e.printStackTrace(); |
||
238 | } |
||
239 | if (fBitSet.cardinality() == 0) { |
||
240 | onlySelectedItemsJCheckBox.setEnabled(false);
|
||
241 | } else {
|
||
242 | onlySelectedItemsJCheckBox.setEnabled(true);
|
||
243 | } |
||
244 | onlySelectedItemsJCheckBox.setSelected(false);
|
||
245 | } |
||
246 | |||
247 | /**
|
||
248 | * This method initializes inputCoverJComboBox
|
||
249 | *
|
||
250 | * @return javax.swing.JComboBox
|
||
251 | */
|
||
252 | private JComboBox getInputCoverJComboBox() { |
||
253 | if (layersComboBox == null) { |
||
254 | layersComboBox = new JComboBox(); |
||
255 | DefaultComboBoxModel defaultModel = new DefaultComboBoxModel( |
||
256 | getLayerNames()); |
||
257 | layersComboBox.setModel(defaultModel); |
||
258 | layersComboBox.setBounds(144, 36, 241, 22); |
||
259 | layersComboBox |
||
260 | .addItemListener(new java.awt.event.ItemListener() {
|
||
261 | public void itemStateChanged(java.awt.event.ItemEvent e) { |
||
262 | inputLayerSelectedChange(); |
||
263 | } |
||
264 | }); |
||
265 | } |
||
266 | return layersComboBox;
|
||
267 | } |
||
268 | |||
269 | /**
|
||
270 | * This method initializes onlySelectedItemsJCheckBox
|
||
271 | *
|
||
272 | * @return javax.swing.JCheckBox
|
||
273 | */
|
||
274 | private JCheckBox getOnlySelectedItemsJCheckBox() { |
||
275 | if (onlySelectedItemsJCheckBox == null) { |
||
276 | onlySelectedItemsJCheckBox = new JCheckBox(); |
||
277 | onlySelectedItemsJCheckBox.setBounds(5, 64, 351, 22); |
||
278 | onlySelectedItemsJCheckBox.setText(PluginServices.getText(this,
|
||
279 | "Usar_solamente_los_elementos_seleccionados"));
|
||
280 | } |
||
281 | return onlySelectedItemsJCheckBox;
|
||
282 | } |
||
283 | |||
284 | /**
|
||
285 | * This method initializes dissolveFieldJComboBox
|
||
286 | *
|
||
287 | * @return javax.swing.JComboBox
|
||
288 | */
|
||
289 | private JComboBox getDissolveFieldJComboBox() { |
||
290 | if (dissolveFieldJComboBox == null) { |
||
291 | dissolveFieldJComboBox = new JComboBox(); |
||
292 | DefaultComboBoxModel defaultModel = new DefaultComboBoxModel( |
||
293 | getFieldNames()); |
||
294 | dissolveFieldJComboBox.setModel(defaultModel); |
||
295 | dissolveFieldJComboBox.setBounds(227, 93, 241, 22); |
||
296 | } |
||
297 | return dissolveFieldJComboBox;
|
||
298 | } |
||
299 | |||
300 | /**
|
||
301 | * This method initializes additionalOperationsJScrollPane
|
||
302 | *
|
||
303 | * @return javax.swing.JScrollPane
|
||
304 | */
|
||
305 | private JScrollPane getAdditionalOperationsJScrollPane() { |
||
306 | if (additionalOperationsJScrollPane == null) { |
||
307 | additionalOperationsJScrollPane = new JScrollPane(); |
||
308 | additionalOperationsJScrollPane |
||
309 | .setViewportView(getNumericFieldJList()); |
||
310 | additionalOperationsJScrollPane.setEnabled(false);
|
||
311 | additionalOperationsJScrollPane.setBounds(new java.awt.Rectangle(14,36,139,112)); |
||
312 | } |
||
313 | return additionalOperationsJScrollPane;
|
||
314 | } |
||
315 | |||
316 | /**
|
||
317 | * This method initializes numericFieldJList
|
||
318 | *
|
||
319 | * @return javax.swing.JList
|
||
320 | */
|
||
321 | private JList getNumericFieldJList() { |
||
322 | if (numericFieldJList == null) { |
||
323 | numericFieldJList = new JList(); |
||
324 | } |
||
325 | return numericFieldJList;
|
||
326 | } |
||
327 | |||
328 | /**
|
||
329 | * This method initializes outputCoverJTextField
|
||
330 | *
|
||
331 | * @return javax.swing.JTextField
|
||
332 | */
|
||
333 | private JTextField getOutputCoverJTextField() { |
||
334 | if (outputCoverJTextField == null) { |
||
335 | outputCoverJTextField = new JTextField(); |
||
336 | } |
||
337 | return outputCoverJTextField;
|
||
338 | } |
||
339 | |||
340 | /**
|
||
341 | * This method initializes outputCoverJButton
|
||
342 | *
|
||
343 | * @return javax.swing.JButton
|
||
344 | */
|
||
345 | private JButton getOutputCoverJButton() { |
||
346 | if (outputCoverJButton == null) { |
||
347 | outputCoverJButton = new JButton(); |
||
348 | outputCoverJButton |
||
349 | .addActionListener(new java.awt.event.ActionListener() {
|
||
350 | public void actionPerformed(java.awt.event.ActionEvent e) { |
||
351 | openResultFile(); |
||
352 | } |
||
353 | }); |
||
354 | outputCoverJButton.setText(PluginServices.getText(this, "Abrir")); |
||
355 | } |
||
356 | return outputCoverJButton;
|
||
357 | } |
||
358 | |||
359 | /**
|
||
360 | * @return Returns the outputFile.
|
||
361 | */
|
||
362 | public File getOutputFile() { |
||
363 | return outputFile;
|
||
364 | } |
||
365 | |||
366 | public void openResultFile() { |
||
367 | // FIXME This code is similar in all GeoProcessingXXXPanels.
|
||
368 | // Create an utility class
|
||
369 | JFileChooser jfc = new JFileChooser(); |
||
370 | // FIXME Internationalize "Ficheros SHP" String
|
||
371 | jfc |
||
372 | .addChoosableFileFilter(new GenericFileFilter("shp", |
||
373 | "Ficheros SHP"));
|
||
374 | if (jfc.showSaveDialog((Component) PluginServices.getMainFrame()) == JFileChooser.APPROVE_OPTION) { |
||
375 | File file = jfc.getSelectedFile();
|
||
376 | if (!(file.getPath().endsWith(".shp") || file.getPath().endsWith( |
||
377 | ".SHP"))) {
|
||
378 | file = new File(file.getPath() + ".shp"); |
||
379 | } |
||
380 | outputFile = file; |
||
381 | } |
||
382 | if (jfc.getSelectedFile() != null) { |
||
383 | getOutputCoverJTextField().setText( |
||
384 | jfc.getSelectedFile().getAbsolutePath()); |
||
385 | } |
||
386 | |||
387 | } |
||
388 | |||
389 | public boolean isDissolveOnlySelected() { |
||
390 | return onlySelectedItemsJCheckBox.isSelected();
|
||
391 | } |
||
392 | |||
393 | public String getDissolveFieldName() { |
||
394 | return (String) dissolveFieldJComboBox.getSelectedItem(); |
||
395 | } |
||
396 | |||
397 | /**
|
||
398 | * Returns numeric fields' names of the selected input layer.
|
||
399 | * Needed to say user where he could apply sumarization functions.
|
||
400 | */
|
||
401 | public String[] getInputLayerNumericFields() { |
||
402 | String[] solution; |
||
403 | FLyrVect layer = getInputLayer(); |
||
404 | ArrayList list = new ArrayList(); |
||
405 | |||
406 | try {
|
||
407 | SelectableDataSource recordset = layer.getRecordset(); |
||
408 | int numFields = recordset.getFieldCount();
|
||
409 | for (int i = 0; i < numFields; i++) { |
||
410 | if (XTypes.isNumeric(recordset.getFieldType(i))) {
|
||
411 | list.add(recordset.getFieldName(i)); |
||
412 | } |
||
413 | }// for
|
||
414 | } catch (com.hardcode.gdbms.engine.data.driver.DriverException e) {
|
||
415 | return null; |
||
416 | } catch (DriverException e) {
|
||
417 | return null; |
||
418 | } |
||
419 | solution = new String[list.size()]; |
||
420 | list.toArray(solution); |
||
421 | return solution;
|
||
422 | |||
423 | } |
||
424 | |||
425 | /**
|
||
426 | * This method initializes sumarizationFunctionScrollPane
|
||
427 | *
|
||
428 | * @return javax.swing.JScrollPane
|
||
429 | */
|
||
430 | private JScrollPane getSumarizationFunctionScrollPane() { |
||
431 | if (sumarizationFunctionScrollPane == null) { |
||
432 | sumarizationFunctionScrollPane = new JScrollPane(); |
||
433 | sumarizationFunctionScrollPane.setBounds(new java.awt.Rectangle(314,36,139,112)); |
||
434 | sumarizationFunctionScrollPane |
||
435 | .setViewportView(getSumarizeFunctionsJList()); |
||
436 | |||
437 | } |
||
438 | return sumarizationFunctionScrollPane;
|
||
439 | } |
||
440 | |||
441 | /**
|
||
442 | * Returns a list with SumarizationFunctions for each numerical field of
|
||
443 | * field lists (in the same order).
|
||
444 | *
|
||
445 | * @return
|
||
446 | */
|
||
447 | private JList getSumarizeFunctionsJList() { |
||
448 | if (sumarizeFunctionsJList == null) { |
||
449 | sumarizeFunctionsJList = new JList(); |
||
450 | } |
||
451 | return sumarizeFunctionsJList;
|
||
452 | } |
||
453 | |||
454 | /**
|
||
455 | * This method initializes sumFunctionSelectionJButton
|
||
456 | *
|
||
457 | * @return javax.swing.JButton
|
||
458 | */
|
||
459 | private JButton getSumFunctionSelectionJButton() { |
||
460 | if (sumFunctionSelectionJButton == null) { |
||
461 | sumFunctionSelectionJButton = new JButton(); |
||
462 | sumFunctionSelectionJButton.setText(PluginServices.getText(this,
|
||
463 | "Escoger_Fun_Resumen"));
|
||
464 | sumFunctionSelectionJButton.setBounds(new java.awt.Rectangle(171,69,116,22)); |
||
465 | sumFunctionSelectionJButton.addActionListener(new ActionListener() { |
||
466 | public void actionPerformed(ActionEvent arg0) { |
||
467 | openSumarizeFunction(); |
||
468 | } |
||
469 | |||
470 | }); |
||
471 | } |
||
472 | return sumFunctionSelectionJButton;
|
||
473 | } |
||
474 | |||
475 | /**
|
||
476 | * Process change selection events of input layer combo box
|
||
477 | */
|
||
478 | public void inputLayerSelectedChange() { |
||
479 | // Cambiar el estado del CheckBox
|
||
480 | initSelectedItemsJCheckBox(); |
||
481 | // Cambiar el estado del jComboBox1
|
||
482 | DefaultComboBoxModel defaultModel = new DefaultComboBoxModel( |
||
483 | getFieldNames()); |
||
484 | dissolveFieldJComboBox.setModel(defaultModel); |
||
485 | String[] numericFields = getInputLayerNumericFields(); |
||
486 | NumericFieldListModel numericListModel = new NumericFieldListModel(
|
||
487 | numericFields); |
||
488 | this.numericFieldJList.setModel(numericListModel);
|
||
489 | |||
490 | this.nField_sumFuntionList = new HashMap(); |
||
491 | SumFuncListModel functionListModel = new SumFuncListModel(
|
||
492 | this.nField_sumFuntionList, numericFields);
|
||
493 | this.sumarizeFunctionsJList.setModel(functionListModel);
|
||
494 | this.sumarizeFunctionsJList.setSelectedIndex(0); |
||
495 | |||
496 | } |
||
497 | |||
498 | public void openSumarizeFunction() { |
||
499 | if (sumarizeFuncDialog == null) { |
||
500 | sumarizeFuncDialog = new SumarizeFunctionsDialog();
|
||
501 | sumarizeFuncDialog.pack(); |
||
502 | |||
503 | } |
||
504 | sumarizeFuncDialog.setSize(205, 181); |
||
505 | sumarizeFuncDialog.resetCheckbox(); |
||
506 | sumarizeFuncDialog.setVisible(true);
|
||
507 | SummarizationFunction[] functions = sumarizeFuncDialog.getFunctions();
|
||
508 | |||
509 | String fieldName = (String) this.numericFieldJList.getSelectedValue(); |
||
510 | this.nField_sumFuntionList.put(fieldName, functions);
|
||
511 | |||
512 | // Hay que refrescar la lista y el listModel
|
||
513 | String[] numericFields = getInputLayerNumericFields(); |
||
514 | SumFuncListModel functionListModel = new SumFuncListModel(
|
||
515 | this.nField_sumFuntionList, numericFields);
|
||
516 | this.sumarizeFunctionsJList.setModel(functionListModel);
|
||
517 | this.sumarizeFunctionsJList.setSelectedIndex(0); |
||
518 | |||
519 | } |
||
520 | |||
521 | public String[] getFieldsToSummarize() { |
||
522 | String[] solution = null; |
||
523 | Set keySet = nField_sumFuntionList.keySet();
|
||
524 | solution = new String[keySet.size()]; |
||
525 | keySet.toArray(solution); |
||
526 | return solution;
|
||
527 | |||
528 | } |
||
529 | |||
530 | public Map getFieldFunctionMap() { |
||
531 | return this.nField_sumFuntionList; |
||
532 | } |
||
533 | |||
534 | public SummarizationFunction[] getSumarizationFunctinFor( |
||
535 | String numericFieldName) {
|
||
536 | return (SummarizationFunction[]) nField_sumFuntionList |
||
537 | .get(numericFieldName); |
||
538 | } |
||
539 | |||
540 | public ViewInfo getViewInfo() {
|
||
541 | if (viewInfo == null) { |
||
542 | viewInfo = new ViewInfo(ViewInfo.MODALDIALOG);
|
||
543 | viewInfo.setTitle(PluginServices.getText(this,
|
||
544 | "Disolver"));
|
||
545 | } |
||
546 | return viewInfo;
|
||
547 | } |
||
548 | |||
549 | /**
|
||
550 | * This method initializes resultLayerPanel
|
||
551 | *
|
||
552 | * @return javax.swing.JPanel
|
||
553 | */
|
||
554 | private JPanel getResultLayerPanel() { |
||
555 | if (resultLayerPanel == null) { |
||
556 | GridBagConstraints gridBagConstraints3 = new GridBagConstraints(); |
||
557 | gridBagConstraints3.insets = new java.awt.Insets(14,3,9,4); |
||
558 | gridBagConstraints3.gridy = 0;
|
||
559 | gridBagConstraints3.ipadx = 47;
|
||
560 | gridBagConstraints3.ipady = 6;
|
||
561 | gridBagConstraints3.gridx = 0;
|
||
562 | GridBagConstraints gridBagConstraints2 = new GridBagConstraints(); |
||
563 | gridBagConstraints2.fill = java.awt.GridBagConstraints.HORIZONTAL; |
||
564 | gridBagConstraints2.gridx = 1;
|
||
565 | gridBagConstraints2.gridy = 0;
|
||
566 | gridBagConstraints2.ipadx = 173;
|
||
567 | gridBagConstraints2.ipady = 2;
|
||
568 | gridBagConstraints2.weightx = 1.0;
|
||
569 | gridBagConstraints2.insets = new java.awt.Insets(14,4,9,7); |
||
570 | GridBagConstraints gridBagConstraints1 = new GridBagConstraints(); |
||
571 | gridBagConstraints1.insets = new java.awt.Insets(14,7,9,21); |
||
572 | gridBagConstraints1.gridy = 0;
|
||
573 | gridBagConstraints1.ipadx = 11;
|
||
574 | gridBagConstraints1.ipady = -4;
|
||
575 | gridBagConstraints1.gridx = 2;
|
||
576 | jLabel = new JLabel(); |
||
577 | jLabel.setText(PluginServices.getText(this, "Cobertura_de_salida") + ":"); |
||
578 | resultLayerPanel = new JPanel(); |
||
579 | resultLayerPanel.setLayout(new GridBagLayout()); |
||
580 | resultLayerPanel.setBounds(new java.awt.Rectangle(4,296,465,45)); |
||
581 | resultLayerPanel.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.RAISED)); |
||
582 | resultLayerPanel.add(getOutputCoverJButton(), gridBagConstraints1); |
||
583 | resultLayerPanel.add(getOutputCoverJTextField(), gridBagConstraints2); |
||
584 | resultLayerPanel.add(jLabel, gridBagConstraints3); |
||
585 | } |
||
586 | return resultLayerPanel;
|
||
587 | } |
||
588 | |||
589 | /**
|
||
590 | * This method initializes sumarizeAttributesPanel
|
||
591 | *
|
||
592 | * @return javax.swing.JPanel
|
||
593 | */
|
||
594 | private JPanel getSumarizeAttributesPanel() { |
||
595 | if (sumarizeAttributesPanel == null) { |
||
596 | jLabel2 = new JLabel(); |
||
597 | jLabel2.setText(PluginServices.getText(this, "Funciones_Sumarizacion")); |
||
598 | jLabel2.setBounds(new java.awt.Rectangle(294,9,159,18)); |
||
599 | jLabel1 = new JLabel(); |
||
600 | jLabel1.setText(PluginServices.getText(this, "Atributos_Numericos")); |
||
601 | jLabel1.setBounds(new java.awt.Rectangle(13,9,171,18)); |
||
602 | sumarizeAttributesPanel = new JPanel(); |
||
603 | sumarizeAttributesPanel.setLayout(null);
|
||
604 | sumarizeAttributesPanel.setBounds(new java.awt.Rectangle(5,142,465,151)); |
||
605 | sumarizeAttributesPanel.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.RAISED)); |
||
606 | sumarizeAttributesPanel.add(getAdditionalOperationsJScrollPane(), null);
|
||
607 | sumarizeAttributesPanel.add(getSumFunctionSelectionJButton(), null);
|
||
608 | sumarizeAttributesPanel.add(getSumarizationFunctionScrollPane(), null);
|
||
609 | sumarizeAttributesPanel.add(jLabel1, null);
|
||
610 | sumarizeAttributesPanel.add(jLabel2, null);
|
||
611 | } |
||
612 | return sumarizeAttributesPanel;
|
||
613 | } |
||
614 | |||
615 | /**
|
||
616 | * This method initializes adjacencyCheckbox
|
||
617 | *
|
||
618 | * @return javax.swing.JCheckBox
|
||
619 | */
|
||
620 | private JCheckBox getAdjacencyCheckbox() { |
||
621 | if (adjacencyCheckbox == null) { |
||
622 | adjacencyCheckbox = new JCheckBox(); |
||
623 | adjacencyCheckbox.setBounds(new java.awt.Rectangle(7,121,263,18)); |
||
624 | adjacencyCheckbox.setText(PluginServices.getText(this, "Solo_disolver_adyacentes")); |
||
625 | } |
||
626 | return adjacencyCheckbox;
|
||
627 | } |
||
628 | |||
629 | } // @jve:decl-index=0:visual-constraint="13,12" |