Statistics
| Revision:

svn-gvsig-desktop / branches / v10 / extensions / extGeoProcessing / src / com / iver / cit / gvsig / geoprocess / impl / dissolve / gui / GeoProcessingDissolvePanel.java @ 7307

History | View | Annotate | Download (18.5 KB)

1
/*
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.impl.dissolve.gui;
45

    
46
import java.awt.Component;
47
import java.awt.GridBagConstraints;
48
import java.awt.GridBagLayout;
49
import java.awt.event.ActionEvent;
50
import java.awt.event.ActionListener;
51
import java.io.File;
52
import java.util.ArrayList;
53
import java.util.HashMap;
54
import java.util.Map;
55
import java.util.Set;
56

    
57
import javax.swing.DefaultComboBoxModel;
58
import javax.swing.JButton;
59
import javax.swing.JCheckBox;
60
import javax.swing.JComboBox;
61
import javax.swing.JFileChooser;
62
import javax.swing.JLabel;
63
import javax.swing.JList;
64
import javax.swing.JPanel;
65
import javax.swing.JScrollPane;
66

    
67
import com.hardcode.gdbms.engine.data.DataSource;
68
import com.iver.andami.PluginServices;
69
import com.iver.andami.ui.mdiManager.IWindow;
70
import com.iver.andami.ui.mdiManager.WindowInfo;
71
import com.iver.cit.gvsig.fmap.DriverException;
72
import com.iver.cit.gvsig.fmap.layers.FBitSet;
73
import com.iver.cit.gvsig.fmap.layers.FLayers;
74
import com.iver.cit.gvsig.fmap.layers.FLyrVect;
75
import com.iver.cit.gvsig.fmap.layers.SelectableDataSource;
76
import com.iver.cit.gvsig.fmap.layers.layerOperations.AlphanumericData;
77
import com.iver.cit.gvsig.geoprocess.core.fmap.SummarizationFunction;
78
import com.iver.cit.gvsig.geoprocess.core.fmap.XTypes;
79
import com.iver.cit.gvsig.geoprocess.core.gui.AbstractGeoprocessPanel;
80
import com.iver.cit.gvsig.geoprocess.core.gui.NumericFieldListModel;
81
import com.iver.cit.gvsig.geoprocess.core.gui.SumFuncListModel;
82
import com.iver.cit.gvsig.geoprocess.core.gui.SumarizeFunctionsDialog;
83
import com.iver.cit.gvsig.geoprocess.core.gui.NumericFieldListModel.NumericFieldListEntry;
84
import com.iver.utiles.GenericFileFilter;
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, IWindow {
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 JButton outputCoverJButton = null;
121

    
122
        private File outputFile = null;
123

    
124
        private JScrollPane sumarizationFunctionScrollPane = null;
125

    
126
        private JList sumarizeFunctionsJList;
127

    
128
        private JButton sumFunctionSelectionJButton = null;
129

    
130
        private SumarizeFunctionsDialog sumarizeFuncDialog = null;
131

    
132
        /**
133
         * Relates a numeric field with its sumarize functions
134
         */
135
        private Map nField_sumFuntionList = null;
136
        
137
        private WindowInfo viewInfo;
138

    
139
        private JPanel resultLayerPanel = null;
140

    
141
        private JLabel jLabel = null;
142

    
143
        private JPanel sumarizeAttributesPanel = null;
144

    
145
        private JLabel jLabel1 = null;
146

    
147
        private JLabel jLabel2 = null;
148

    
149
        private JCheckBox adjacencyCheckbox = null;
150
        /**
151
         * This constructor initializes the set of layers
152
         * 
153
         * TODO PRECONDITION: check for only FLyrVect layers
154
         * 
155
         * 
156
         */
157
        public GeoProcessingDissolvePanel(FLayers layers) {
158
                super();
159
                this.layers = layers;
160
                initialize();
161
        }
162

    
163
        /**
164
         * This method initializes this
165
         * 
166
         * @return void
167
         */
168
        private void initialize() {
169
                dissolveFieldJLabel = new JLabel();
170
                dissolveFieldJLabel.setBounds(5, 93, 180, 22);
171
                dissolveFieldJLabel.setText(PluginServices.getText(this,
172
                                "Campo_para_disolver")
173
                                + ":");
174
                inputCoverJLabel = new JLabel();
175
                inputCoverJLabel.setBounds(5, 36, 191, 22);
176
                inputCoverJLabel.setText(PluginServices.getText(this,
177
                                "Cobertura_de_entrada")
178
                                + ":");
179
                titleJLabel = new JLabel();
180
                titleJLabel.setBounds(5, 5, 208, 22);
181
                titleJLabel.setText(PluginServices.getText(this,
182
                                "Disolver._Introduccion_de_datos")
183
                                + ":");
184
                this.setLayout(null);
185
                this.setBounds(new java.awt.Rectangle(0,0,486,377));
186
                this.add(titleJLabel, null);
187
                this.add(inputCoverJLabel, null);
188
                this.add(getInputCoverJComboBox(), null);
189
                this.add(getOnlySelectedItemsJCheckBox(), null);
190
                this.add(dissolveFieldJLabel, null);
191
                this.add(getDissolveFieldJComboBox(), null);
192
                this.add(getResultLayerPanel(), null);
193
                this.add(getSumarizeAttributesPanel(), null);
194
                this.add(getAdjacencyCheckbox(), null);
195
                this.nField_sumFuntionList = new HashMap();
196
                layersComboBox.setSelectedIndex(0);
197
                inputLayerSelectedChange();
198
                // initSelectedItemsJCheckBox();
199
        }
200

    
201
        private String[] getFieldNames() {
202
                AlphanumericData lyr = (AlphanumericData) getInputLayer();
203
                DataSource ds;
204
                String[] fieldNames = null;
205
                try {
206
                        ds = lyr.getRecordset();
207
                        fieldNames = new String[ds.getFieldCount()];
208
                        for (int i = 0; i < ds.getFieldCount(); i++) {
209
                                fieldNames[i] = ds.getFieldName(i);
210
                        }
211
                } catch (DriverException e) {
212
                        e.printStackTrace();
213
                } catch (com.hardcode.gdbms.engine.data.driver.DriverException e) {
214
                        e.printStackTrace();
215
                }
216
                return fieldNames;
217
        }
218
        
219
        /**
220
         * Says if adjacency checkbox has been checked by
221
         * user
222
         * @return
223
         */
224
        public boolean onlyAdjacentSelected(){
225
                return adjacencyCheckbox.isSelected();
226
        }
227

    
228
        private void initSelectedItemsJCheckBox() {
229
                FLyrVect inputSelectable = (FLyrVect) getInputLayer();
230
                FBitSet fBitSet = null;
231
                try {
232
                        fBitSet = inputSelectable.getRecordset().getSelection();
233
                } catch (DriverException e) {
234
                        // TODO Auto-generated catch block
235
                        e.printStackTrace();
236
                }
237
                if (fBitSet.cardinality() == 0) {
238
                        onlySelectedItemsJCheckBox.setEnabled(false);
239
                } else {
240
                        onlySelectedItemsJCheckBox.setEnabled(true);
241
                }
242
                onlySelectedItemsJCheckBox.setSelected(false);
243
        }
244

    
245
        /**
246
         * This method initializes inputCoverJComboBox
247
         * 
248
         * @return javax.swing.JComboBox
249
         */
250
        private JComboBox getInputCoverJComboBox() {
251
                if (layersComboBox == null) {
252
                        layersComboBox = new JComboBox();
253
                        DefaultComboBoxModel defaultModel = new DefaultComboBoxModel(
254
                                        getLayerNames());
255
                        layersComboBox.setModel(defaultModel);
256
                        layersComboBox.setBounds(144, 36, 241, 22);
257
                        layersComboBox
258
                                        .addItemListener(new java.awt.event.ItemListener() {
259
                                                public void itemStateChanged(java.awt.event.ItemEvent e) {
260
                                                        inputLayerSelectedChange();
261
                                                }
262
                                        });
263
                }
264
                return layersComboBox;
265
        }
266

    
267
        /**
268
         * This method initializes onlySelectedItemsJCheckBox
269
         * 
270
         * @return javax.swing.JCheckBox
271
         */
272
        private JCheckBox getOnlySelectedItemsJCheckBox() {
273
                if (onlySelectedItemsJCheckBox == null) {
274
                        onlySelectedItemsJCheckBox = new JCheckBox();
275
                        onlySelectedItemsJCheckBox.setBounds(5, 64, 351, 22);
276
                        onlySelectedItemsJCheckBox.setText(PluginServices.getText(this,
277
                                        "Usar_solamente_los_elementos_seleccionados"));
278
                }
279
                return onlySelectedItemsJCheckBox;
280
        }
281

    
282
        /**
283
         * This method initializes dissolveFieldJComboBox
284
         * 
285
         * @return javax.swing.JComboBox
286
         */
287
        private JComboBox getDissolveFieldJComboBox() {
288
                if (dissolveFieldJComboBox == null) {
289
                        dissolveFieldJComboBox = new JComboBox();
290
                        DefaultComboBoxModel defaultModel = new DefaultComboBoxModel(
291
                                        getFieldNames());
292
                        dissolveFieldJComboBox.setModel(defaultModel);
293
                        dissolveFieldJComboBox.setBounds(227, 93, 241, 22);
294
                }
295
                return dissolveFieldJComboBox;
296
        }
297

    
298
        /**
299
         * This method initializes additionalOperationsJScrollPane
300
         * 
301
         * @return javax.swing.JScrollPane
302
         */
303
        private JScrollPane getAdditionalOperationsJScrollPane() {
304
                if (additionalOperationsJScrollPane == null) {
305
                        additionalOperationsJScrollPane = new JScrollPane();
306
                        additionalOperationsJScrollPane
307
                                        .setViewportView(getNumericFieldJList());
308
                        additionalOperationsJScrollPane.setEnabled(false);
309
                        additionalOperationsJScrollPane.setBounds(new java.awt.Rectangle(14,36,139,112));
310
                }
311
                return additionalOperationsJScrollPane;
312
        }
313

    
314
        /**
315
         * This method initializes numericFieldJList
316
         * 
317
         * @return javax.swing.JList
318
         */
319
        private JList getNumericFieldJList() {
320
                if (numericFieldJList == null) {
321
                        numericFieldJList = new JList();
322
                }
323
                return numericFieldJList;
324
        }
325

    
326
        
327
        /**
328
         * This method initializes outputCoverJButton
329
         * 
330
         * @return javax.swing.JButton
331
         */
332
        private JButton getOutputCoverJButton() {
333
                if (outputCoverJButton == null) {
334
                        outputCoverJButton = new JButton();
335
                        outputCoverJButton
336
                                        .addActionListener(new java.awt.event.ActionListener() {
337
                                                public void actionPerformed(java.awt.event.ActionEvent e) {
338
                                                        openResultFile();
339
                                                }
340
                                        });
341
                        outputCoverJButton.setText(PluginServices.getText(this, "Abrir"));
342
                }
343
                return outputCoverJButton;
344
        }
345

    
346
        public void openResultFile() {
347
                // FIXME This code is similar in all GeoProcessingXXXPanels.
348
                // Create an utility class
349
                JFileChooser jfc = new JFileChooser();
350
                // FIXME Internationalize "Ficheros SHP" String
351
                jfc
352
                                .addChoosableFileFilter(new GenericFileFilter("shp",
353
                                                "Ficheros SHP"));
354
                if (jfc.showSaveDialog((Component) PluginServices.getMainFrame()) == JFileChooser.APPROVE_OPTION) {
355
                        File file = jfc.getSelectedFile();
356
                        if (!(file.getPath().endsWith(".shp") || file.getPath().endsWith(
357
                                        ".SHP"))) {
358
                                file = new File(file.getPath() + ".shp");
359
                        }
360
                        outputFile = file;
361
                }
362
                if (jfc.getSelectedFile() != null) {
363
                        getFileNameResultTextField().setText(
364
                                        jfc.getSelectedFile().getAbsolutePath());
365
                }
366

    
367
        }
368

    
369
        public boolean isDissolveOnlySelected() {
370
                return onlySelectedItemsJCheckBox.isSelected();
371
        }
372

    
373
        public String getDissolveFieldName() {
374
                return (String) dissolveFieldJComboBox.getSelectedItem();
375
        }
376
        
377
        /**
378
         * Returns numeric fields' names of the selected input layer.
379
         * Needed to say user where he could apply sumarization functions.
380
         */
381
        public String[] getInputLayerNumericFields() {
382
                String[] solution;
383
                FLyrVect layer = getInputLayer();
384
                ArrayList list = new ArrayList();
385
                
386
                try {
387
                        SelectableDataSource recordset = layer.getRecordset();
388
                        int numFields = recordset.getFieldCount();
389
                        for (int i = 0; i < numFields; i++) {
390
                                if (XTypes.isNumeric(recordset.getFieldType(i))) {
391
                                        list.add(recordset.getFieldName(i));
392
                                }
393
                        }// for
394
                } catch (com.hardcode.gdbms.engine.data.driver.DriverException e) {
395
                        return null;
396
                } catch (DriverException e) {
397
                        return null;
398
                }
399
                solution = new String[list.size()];
400
                list.toArray(solution);
401
                return solution;
402

    
403
        }
404

    
405
        /**
406
         * This method initializes sumarizationFunctionScrollPane
407
         * 
408
         * @return javax.swing.JScrollPane
409
         */
410
        private JScrollPane getSumarizationFunctionScrollPane() {
411
                if (sumarizationFunctionScrollPane == null) {
412
                        sumarizationFunctionScrollPane = new JScrollPane();
413
                        sumarizationFunctionScrollPane.setBounds(new java.awt.Rectangle(314,36,139,112));
414
                        sumarizationFunctionScrollPane
415
                                        .setViewportView(getSumarizeFunctionsJList());
416

    
417
                }
418
                return sumarizationFunctionScrollPane;
419
        }
420

    
421
        /**
422
         * Returns a list with SumarizationFunctions for each numerical field of
423
         * field lists (in the same order).
424
         * 
425
         * @return
426
         */
427
        private JList getSumarizeFunctionsJList() {
428
                if (sumarizeFunctionsJList == null) {
429
                        sumarizeFunctionsJList = new JList();
430
                }
431
                return sumarizeFunctionsJList;
432
        }
433

    
434
        /**
435
         * This method initializes sumFunctionSelectionJButton
436
         * 
437
         * @return javax.swing.JButton
438
         */
439
        private JButton getSumFunctionSelectionJButton() {
440
                if (sumFunctionSelectionJButton == null) {
441
                        sumFunctionSelectionJButton = new JButton();
442
                        sumFunctionSelectionJButton.setText(PluginServices.getText(this,
443
                                        "Escoger_Fun_Resumen"));
444
                        sumFunctionSelectionJButton.setBounds(new java.awt.Rectangle(171,69,116,22));
445
                        sumFunctionSelectionJButton.addActionListener(new ActionListener() {
446
                                public void actionPerformed(ActionEvent arg0) {
447
                                        openSumarizeFunction();
448
                                }
449

    
450
                        });
451
                }
452
                return sumFunctionSelectionJButton;
453
        }
454

    
455
        /**
456
         * Process change selection events of input layer combo box
457
         */
458
        public void inputLayerSelectedChange() {
459
                // Cambiar el estado del CheckBox
460
                initSelectedItemsJCheckBox();
461
                // Cambiar el estado del jComboBox1
462
                DefaultComboBoxModel defaultModel = new DefaultComboBoxModel(
463
                                getFieldNames());
464
                dissolveFieldJComboBox.setModel(defaultModel);
465
                String[] numericFields = getInputLayerNumericFields();
466
                NumericFieldListModel numericListModel = new NumericFieldListModel(
467
                                numericFields);
468
                this.numericFieldJList.setModel(numericListModel);
469

    
470
                this.nField_sumFuntionList = new HashMap();
471
                SumFuncListModel functionListModel = new SumFuncListModel(
472
                                this.nField_sumFuntionList, numericFields);
473
                this.sumarizeFunctionsJList.setModel(functionListModel);
474
                this.sumarizeFunctionsJList.setSelectedIndex(0);
475

    
476
        }
477

    
478
        public void openSumarizeFunction() {
479
                if (sumarizeFuncDialog == null) {
480
                        sumarizeFuncDialog = new SumarizeFunctionsDialog();
481
                        sumarizeFuncDialog.pack();
482

    
483
                }
484
                sumarizeFuncDialog.setSize(205, 181);
485
                sumarizeFuncDialog.resetCheckbox();
486
                sumarizeFuncDialog.setVisible(true);
487
                SummarizationFunction[] functions = sumarizeFuncDialog.getFunctions();
488

    
489
                NumericFieldListEntry fieldName = (NumericFieldListEntry) this.numericFieldJList.getSelectedValue();
490
                if(fieldName.getKey() != null  ){
491
                        if(!fieldName.getKey().equals(""))
492
                                        nField_sumFuntionList.put(fieldName.getKey(), functions);
493
            }
494
                this.nField_sumFuntionList.put(fieldName.getKey(), functions);
495

    
496
                // Hay que refrescar la lista y el listModel
497
                String[] numericFields = getInputLayerNumericFields();
498
                SumFuncListModel functionListModel = new SumFuncListModel(
499
                                this.nField_sumFuntionList, numericFields);
500
                this.sumarizeFunctionsJList.setModel(functionListModel);
501
                this.sumarizeFunctionsJList.setSelectedIndex(0);
502

    
503
        }
504

    
505
        public String[] getFieldsToSummarize() {
506
                String[] solution = null;
507
                Set keySet = nField_sumFuntionList.keySet();
508
                solution = new String[keySet.size()];
509
                keySet.toArray(solution);
510
                return solution;
511

    
512
        }
513

    
514
        public Map getFieldFunctionMap() {
515
                return this.nField_sumFuntionList;
516
        }
517

    
518
        public SummarizationFunction[] getSumarizationFunctinFor(
519
                        String numericFieldName) {
520
                return (SummarizationFunction[]) nField_sumFuntionList
521
                                .get(numericFieldName);
522
        }
523
        
524
        public WindowInfo getWindowInfo() {
525
                if (viewInfo == null) {
526
                        viewInfo = new WindowInfo(WindowInfo.MODALDIALOG);
527
                        viewInfo.setTitle(PluginServices.getText(this,
528
                                        "Disolver"));
529
                }
530
                return viewInfo;
531
        }
532

    
533
        /**
534
         * This method initializes resultLayerPanel        
535
         *         
536
         * @return javax.swing.JPanel        
537
         */
538
        private JPanel getResultLayerPanel() {
539
                if (resultLayerPanel == null) {
540
                        GridBagConstraints gridBagConstraints3 = new GridBagConstraints();
541
                        gridBagConstraints3.insets = new java.awt.Insets(14,3,9,4);
542
                        gridBagConstraints3.gridy = 0;
543
                        gridBagConstraints3.ipadx = 47;
544
                        gridBagConstraints3.ipady = 6;
545
                        gridBagConstraints3.gridx = 0;
546
                        GridBagConstraints gridBagConstraints2 = new GridBagConstraints();
547
                        gridBagConstraints2.fill = java.awt.GridBagConstraints.HORIZONTAL;
548
                        gridBagConstraints2.gridx = 1;
549
                        gridBagConstraints2.gridy = 0;
550
                        gridBagConstraints2.ipadx = 173;
551
                        gridBagConstraints2.ipady = 2;
552
                        gridBagConstraints2.weightx = 1.0;
553
                        gridBagConstraints2.insets = new java.awt.Insets(14,4,9,7);
554
                        GridBagConstraints gridBagConstraints1 = new GridBagConstraints();
555
                        gridBagConstraints1.insets = new java.awt.Insets(14,7,9,21);
556
                        gridBagConstraints1.gridy = 0;
557
                        gridBagConstraints1.ipadx = 11;
558
                        gridBagConstraints1.ipady = -4;
559
                        gridBagConstraints1.gridx = 2;
560
                        jLabel = new JLabel();
561
                        jLabel.setText(PluginServices.getText(this, "Cobertura_de_salida") + ":");
562
                        resultLayerPanel = new JPanel();
563
                        resultLayerPanel.setLayout(new GridBagLayout());
564
                        resultLayerPanel.setBounds(new java.awt.Rectangle(4,296,465,45));
565
                        resultLayerPanel.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.RAISED));
566
                        resultLayerPanel.add(getOutputCoverJButton(), gridBagConstraints1);
567
                        resultLayerPanel.add(getFileNameResultTextField(), gridBagConstraints2);
568
                        resultLayerPanel.add(jLabel, gridBagConstraints3);
569
                }
570
                return resultLayerPanel;
571
        }
572

    
573
        /**
574
         * This method initializes sumarizeAttributesPanel        
575
         *         
576
         * @return javax.swing.JPanel        
577
         */
578
        private JPanel getSumarizeAttributesPanel() {
579
                if (sumarizeAttributesPanel == null) {
580
                        jLabel2 = new JLabel();
581
                        jLabel2.setText(PluginServices.getText(this, "Funciones_Sumarizacion"));
582
                        jLabel2.setBounds(new java.awt.Rectangle(294,9,159,18));
583
                        jLabel1 = new JLabel();
584
                        jLabel1.setText(PluginServices.getText(this, "Atributos_Numericos"));
585
                        jLabel1.setBounds(new java.awt.Rectangle(13,9,171,18));
586
                        sumarizeAttributesPanel = new JPanel();
587
                        sumarizeAttributesPanel.setLayout(null);
588
                        sumarizeAttributesPanel.setBounds(new java.awt.Rectangle(5,142,465,151));
589
                        sumarizeAttributesPanel.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.RAISED));
590
                        sumarizeAttributesPanel.add(getAdditionalOperationsJScrollPane(), null);
591
                        sumarizeAttributesPanel.add(getSumFunctionSelectionJButton(), null);
592
                        sumarizeAttributesPanel.add(getSumarizationFunctionScrollPane(), null);
593
                        sumarizeAttributesPanel.add(jLabel1, null);
594
                        sumarizeAttributesPanel.add(jLabel2, null);
595
                }
596
                return sumarizeAttributesPanel;
597
        }
598

    
599
        /**
600
         * This method initializes adjacencyCheckbox        
601
         *         
602
         * @return javax.swing.JCheckBox        
603
         */
604
        private JCheckBox getAdjacencyCheckbox() {
605
                if (adjacencyCheckbox == null) {
606
                        adjacencyCheckbox = new JCheckBox();
607
                        adjacencyCheckbox.setBounds(new java.awt.Rectangle(7,121,263,18));
608
                        adjacencyCheckbox.setText(PluginServices.getText(this, "Solo_disolver_adyacentes"));
609
                }
610
                return adjacencyCheckbox;
611
        }
612

    
613
}  //  @jve:decl-index=0:visual-constraint="13,12"