Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.plugin / org.gvsig.labeling.app / org.gvsig.labeling.app.mainplugin / src / main / java / org / gvsig / labeling / gui / layerproperties / FeatureDependent.java @ 42981

History | View | Annotate | Download (21.3 KB)

1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2013 gvSIG Association.
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 3
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
package org.gvsig.labeling.gui.layerproperties;
25

    
26
import java.awt.BorderLayout;
27
import java.awt.Component;
28
import java.awt.Dimension;
29
import java.awt.GridLayout;
30
import java.awt.event.ActionEvent;
31
import java.awt.event.ActionListener;
32
import java.awt.event.MouseAdapter;
33
import java.awt.event.MouseEvent;
34
import java.beans.PropertyChangeEvent;
35
import java.util.Collection;
36

    
37
import javax.swing.AbstractCellEditor;
38
import javax.swing.DefaultComboBoxModel;
39
import javax.swing.JButton;
40
import javax.swing.JCheckBox;
41
import javax.swing.JComboBox;
42
import javax.swing.JComponent;
43
import javax.swing.JLabel;
44
import javax.swing.JOptionPane;
45
import javax.swing.JPanel;
46
import javax.swing.JScrollPane;
47
import javax.swing.JTable;
48
import javax.swing.ListSelectionModel;
49
import javax.swing.event.TableModelEvent;
50
import javax.swing.event.TableModelListener;
51
import javax.swing.table.DefaultTableModel;
52
import javax.swing.table.TableCellEditor;
53
import javax.swing.table.TableCellRenderer;
54
import javax.swing.table.TableColumnModel;
55

    
56
import org.gvsig.app.gui.labeling.LabelClassEditor;
57
import org.gvsig.fmap.dal.exception.ReadException;
58
import org.gvsig.fmap.dal.feature.FeatureStore;
59
import org.gvsig.fmap.dal.feature.FeatureType;
60
import org.gvsig.fmap.mapcontext.rendering.legend.styling.ILabelClass;
61
import org.gvsig.fmap.mapcontext.rendering.legend.styling.ILabelClassFactory;
62
import org.gvsig.fmap.mapcontext.rendering.legend.styling.ILabelingMethod;
63
import org.gvsig.gui.beans.swing.celleditors.BooleanTableCellEditor;
64
import org.gvsig.gui.beans.swing.cellrenderers.BooleanTableCellRenderer;
65
import org.gvsig.i18n.Messages;
66
import org.gvsig.labeling.label.FeatureDependentLabeled;
67
import org.gvsig.symbology.SymbologyLocator;
68
import org.gvsig.symbology.SymbologyManager;
69
import org.gvsig.symbology.swing.SymbologySwingLocator;
70
import org.gvsig.symbology.swing.SymbologySwingManager;
71
import org.gvsig.tools.ToolsLocator;
72
import org.gvsig.tools.i18n.I18nManager;
73
import org.slf4j.Logger;
74
import org.slf4j.LoggerFactory;
75

    
76
public class FeatureDependent extends AbstractLabelingMethodPanel implements ActionListener{
77
        private static final Logger logger = LoggerFactory.getLogger(FeatureDependent.class);
78

    
79
        private static final long serialVersionUID = 5493451803343695650L;
80
        private static int NAME_FIELD_INDEX = 0;
81
        private static int PREVIEW_FIELD_INDEX = 1;
82
        private static int FILTER_FIELD_INDEX = 2;
83
        private static int LABEL_EXPRESSION_FIELD_INDEX = 3;
84
        private static int VISIBLE_FIELD_INDEX = 4;
85
        JTable tblClasses = null;
86
        private JButton btnMoveUpClass;
87
        private JButton btnAddClass;
88
        private JCheckBox chkLabel;
89
        private JCheckBox chkDefinePriorities;
90
        private JScrollPane scrlPan;
91
        private boolean openEditor = false;
92
        private JButton btnMoveDownClass;
93
        private JButton btnDelClass;
94

    
95
    private JPanel panel;
96

    
97

    
98
        /*
99
        private String[] fieldNames;
100
        private int[] fieldTypes;
101
        */
102
        private JPanel buttonPanel;
103
    private JComboBox comboLabelClassFactoryToUse;
104

    
105
        @Override
106
        public String getName() {
107

    
108
                return Messages.getText(
109
                                "define_classes_of_features_and_label_each_differently")+".";
110
        }
111

    
112
        @Override
113
        public Class<? extends ILabelingMethod> getLabelingMethodClass() {
114
                return FeatureDependentLabeled.class;
115
        }
116

    
117

    
118
        private JCheckBox getChkDefinePriorities() {
119
                if (chkDefinePriorities == null) {
120
                        chkDefinePriorities = new JCheckBox(Messages.getText("label_priority"));
121
                        chkDefinePriorities.addActionListener(this);
122
                        chkDefinePriorities.setName("CHK_DEFINE_PRIORITIES");
123
                }
124
                return chkDefinePriorities;
125
        }
126

    
127

    
128
        private JButton getBtnDelClass() {
129
                if (btnDelClass == null) {
130
                        btnDelClass = new JButton(Messages.getText("delete"));
131
                        btnDelClass.setName("BTNDELCLASS");
132
                        btnDelClass.addActionListener(this);
133
                }
134
                return btnDelClass;
135
        }
136

    
137
        private JButton getBtnAddClass() {
138
                if (btnAddClass == null) {
139
                        btnAddClass = new JButton(Messages.getText("add"));
140
                        btnAddClass.setName("BTNADDCLASS");
141
                        btnAddClass.addActionListener(this);
142
                }
143
                return btnAddClass;
144
        }
145

    
146
        private JButton getBtnMoveUpClass() {
147
                if (btnMoveUpClass == null) {
148
                        btnMoveUpClass = new JButton(Messages.getText("move_up"));
149
                        btnMoveUpClass.setName("BTNMOVEUPCLASS");
150
                        btnMoveUpClass.addActionListener(this);
151
                }
152
                return btnMoveUpClass;
153
        }
154

    
155
        private JButton getBtnMoveDownClass() {
156
                if (btnMoveDownClass == null) {
157
                        btnMoveDownClass = new JButton(Messages.getText("move_down"));
158
                        btnMoveDownClass.setName("BTNMOVEDOWNCLASS");
159
                        btnMoveDownClass.addActionListener(this);
160
                }
161
                return btnMoveDownClass;
162
        }
163

    
164
        private JScrollPane getCenterScrl() {
165

    
166
                        scrlPan = new JScrollPane(getTblClasses());
167
                        scrlPan.setPreferredSize(new Dimension(180, 300));
168

    
169
                return scrlPan;
170
        }
171

    
172

    
173
        private JTable getTblClasses() {
174

    
175
                        tblClasses = new JTable(new LabelClassTableModel());
176
                tblClasses.setRowHeight(50);
177
                tblClasses.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
178
                tblClasses.addMouseListener(new MouseAdapter() {
179
                        int prevRow =-1;
180
                        @Override
181
                        public void mouseClicked(MouseEvent e) {
182
                                        if (!tblClasses.isEnabled()){
183
                                                return;
184
                                        }
185
                                        int col = tblClasses.getColumnModel().getColumnIndexAtX(e.getX());
186
                                        int row = (int) ((e.getY()-tblClasses.getLocation().getY()) / tblClasses.getRowHeight());
187
                                        if(!(row > tblClasses.getRowCount()-1 || col > tblClasses.getColumnCount()-1))
188
                                        {
189
                                                openEditor = (row == prevRow && e.getButton() == MouseEvent.BUTTON1 && e.getClickCount() == 2
190
                                                ) ;
191
                                                prevRow = row;
192
                                                if (openEditor)
193
                                                        tblClasses.editCellAt(row, col);
194
                                        }
195
                                }
196
                });
197

    
198
                tblClasses.getModel().addTableModelListener(new TableModelListener() {
199

    
200
                        public void tableChanged(TableModelEvent e) {
201
                                if (!tblClasses.isEnabled()){
202
                                        return;
203
                                }
204

    
205
                                if(e.getColumn() == VISIBLE_FIELD_INDEX){
206
                                        ILabelClass oldLc = (ILabelClass) tblClasses.getValueAt(e.getFirstRow(), PREVIEW_FIELD_INDEX);
207
                                        oldLc.setVisible(Boolean.valueOf(tblClasses.getValueAt(e.getFirstRow(), VISIBLE_FIELD_INDEX).toString()));
208
                                }
209
                        }
210

    
211
                });
212

    
213
                TableColumnModel cm = tblClasses.getColumnModel();
214

    
215
                tblClasses.getColumnModel().getColumn(PREVIEW_FIELD_INDEX).setCellRenderer(new TableCellRenderer() {
216

    
217
                        public Component getTableCellRendererComponent(JTable table,
218
                                        Object value, boolean isSelected, boolean hasFocus,
219
                                        int row, int column) {
220
                                LabelClassPreview lcPr = new LabelClassPreview();
221
                                lcPr.setLabelClass((ILabelClass) value);
222
                                return lcPr;
223
                        }
224

    
225
                });
226
                tblClasses.getColumnModel().getColumn(VISIBLE_FIELD_INDEX).setCellRenderer(new BooleanTableCellRenderer(false));
227
                tblClasses.getColumnModel().getColumn(LABEL_EXPRESSION_FIELD_INDEX).setCellRenderer(new TableCellRenderer() {
228
                        public Component getTableCellRendererComponent(JTable table,
229
                                        Object value, boolean isSelected, boolean hasFocus,
230
                                        int row, int column) {
231
                                String expr = null;
232
                                if (value != null)
233
                                        expr = (String) value;
234
                                if (expr == null)
235
                                        expr = "";
236
                                // LabelExpressionParser.tokenFor(LabelExpressionParser.EOEXPR);
237

    
238
//                                expr = expr.replaceAll(LabelExpressionParser.tokenFor(LabelExpressionParser.EOFIELD), " | ");
239
                                // expr = expr.substring(0, expr.length()-1);
240
                                return new JLabel("<html><p>"+expr+"</p></html>", JLabel.CENTER);
241
                        }
242
                });
243

    
244
                // the editors
245

    
246
                for (int i = 0; i < tblClasses.getColumnModel().getColumnCount(); i++) {
247
                        if (i!= VISIBLE_FIELD_INDEX) {
248
                                tblClasses.getColumnModel().getColumn(i).setCellEditor(
249
                                                new LabelClassCellEditor(this.layer.getFeatureStore()));
250
                        } else {
251
                                tblClasses.getColumnModel().getColumn(VISIBLE_FIELD_INDEX).
252
                                setCellEditor(new BooleanTableCellEditor(tblClasses));
253
                        }
254
                }
255
                ((DefaultTableModel)tblClasses.getModel()).fireTableDataChanged();
256
                repaint();
257

    
258
                return tblClasses;
259
        }
260

    
261
        private class LabelClassCellEditor extends AbstractCellEditor implements TableCellEditor {
262

    
263
            private static final long serialVersionUID = 6399823783851437400L;
264
            private FeatureStore fsto = null;
265

    
266
            public LabelClassCellEditor(FeatureStore store) {
267
                fsto = store;
268
            }
269

    
270
            public Component getTableCellEditorComponent(
271
                    JTable table, Object value, boolean isSelected, int row, int column) {
272

    
273
                if (openEditor) {
274
                    SymbologySwingManager manager = SymbologySwingLocator.getSwingManager();
275
                    ILabelClass oldLc = (ILabelClass) tblClasses.getValueAt(row, PREVIEW_FIELD_INDEX);
276
                    oldLc.setVisible(Boolean.valueOf(tblClasses.getValueAt(row, VISIBLE_FIELD_INDEX).toString()));
277
                    LabelClassEditor lcProp = manager.createLabelClassEditor(oldLc,fsto);
278
                    oldLc.setTexts(new String[]{oldLc.getName()});
279

    
280
                    lcProp.showDialog();
281
                    if( !lcProp.isAccepted() ) {
282
                        return null;
283
                    }
284
                    ILabelClass newLc = lcProp.getLabelClass();
285

    
286
                    LabelClassTableModel m = (LabelClassTableModel) tblClasses.getModel();
287
                    Boolean changeDone = false;
288

    
289
                    if (!(oldLc.getName().equals(newLc.getName()))) {
290
                        if (!checSameLablClassName(m, newLc.getName())) {
291

    
292
                            m.setValueAt(newLc.getStringLabelExpression(), row, LABEL_EXPRESSION_FIELD_INDEX);
293
                            m.setValueAt(newLc.getName(), row, NAME_FIELD_INDEX);
294
                            m.setValueAt(newLc, row, PREVIEW_FIELD_INDEX);
295
                            m.setValueAt(newLc.getSQLQuery(), row, FILTER_FIELD_INDEX);
296
                            m.setValueAt(newLc.isVisible(), row, VISIBLE_FIELD_INDEX);
297
                            fireEditingStopped(); //Make the renderer reappear.
298
                            changeDone = true;
299
                        } else {
300
                            JOptionPane.showMessageDialog(tblClasses,
301
                                    Messages.getText(
302
                                            "cannot_exist_two_label_classes_with_the_same_name")
303
                                    + "\n",
304
                                    Messages.getText("error"),
305
                                    JOptionPane.ERROR_MESSAGE);
306
                            changeDone = true;
307
                        }
308
                    }
309
                    if (!changeDone) {
310
                        m.setValueAt(newLc.getStringLabelExpression(), row, LABEL_EXPRESSION_FIELD_INDEX);
311
                        m.setValueAt(newLc.getName(), row, NAME_FIELD_INDEX);
312
                        m.setValueAt(newLc, row, PREVIEW_FIELD_INDEX);
313
                        m.setValueAt(newLc.getSQLQuery(), row, FILTER_FIELD_INDEX);
314
                        m.setValueAt(newLc.isVisible(), row, VISIBLE_FIELD_INDEX);
315
                        fireEditingStopped(); //Make the renderer reappear.
316
                        changeDone = true;
317
                    }
318
                }
319

    
320
                method.clearAllClasses();
321
                ILabelClass[] classes = ((LabelClassTableModel) tblClasses.getModel()).toLabelClassArray();
322
                for (int i = 0; i < classes.length; i++) {
323
                    method.addLabelClass(classes[i]);
324
                }
325

    
326
                openEditor = false;
327
                return null;
328
            }
329

    
330
            public Object getCellEditorValue() {
331
                return null;
332
            }
333

    
334
        }
335

    
336

    
337
        private boolean checSameLablClassName(LabelClassTableModel mod, String name) {
338
                for (int i = 0; i < mod.getRowCount(); i++) {
339
                        if(name.equals(mod.getLabelAtRow(i).getName()))
340
                                return true;
341
                }
342
                return false;
343
        }
344

    
345

    
346
        private class LabelClassTableModel extends DefaultTableModel {
347

    
348
                private static final long serialVersionUID = -9152998982339430209L;
349
                Object[][] values;
350

    
351
                private String[] classesTableFieldNames = new String[] {
352
                                Messages.getText("name"),
353
                                Messages.getText("preview"),
354
                                Messages.getText("filter"),
355
                                Messages.getText("label_expression"),
356
                                Messages.getText("visible"),
357
                };
358

    
359

    
360
                public LabelClassTableModel() {
361
                        super();
362
                        ILabelClass[] labelClasses = method.getLabelClasses();
363

    
364
                        values = new Object[labelClasses.length][classesTableFieldNames.length];
365
                        for (int i = 0; i < values.length; i++) {
366
                                values[i][PREVIEW_FIELD_INDEX] = labelClasses[i];
367
                                values[i][NAME_FIELD_INDEX] = labelClasses[i].getName();
368
                                values[i][FILTER_FIELD_INDEX] = labelClasses[i].getSQLQuery();
369
                                values[i][LABEL_EXPRESSION_FIELD_INDEX] = labelClasses[i].getStringLabelExpression();
370
                                values[i][VISIBLE_FIELD_INDEX] = labelClasses[i].isVisible();
371
                        }
372
                        setDataVector(values, classesTableFieldNames);
373
                }
374

    
375
                public String getColumnName(int col) {
376
                        return classesTableFieldNames[col];
377
                }
378

    
379
                public int getColumnCount() {
380
                        return classesTableFieldNames.length;
381
                }
382

    
383
                @Override
384
                public boolean isCellEditable(int row, int column) {
385
                        return true;
386
                }
387

    
388
                public ILabelClass getLabelAtRow(int row) {
389
                        return (ILabelClass) getValueAt(row, PREVIEW_FIELD_INDEX);
390
                }
391

    
392
                public ILabelClass[] toLabelClassArray() {
393
                        ILabelClass[] classes = new ILabelClass[getRowCount()];
394
                        for (int i = 0; i < classes.length; i++) {
395
                                classes[i] = getLabelAtRow(i);
396
                                if (getChkDefinePriorities().isSelected()) {
397
                                        classes[i].setPriority(i);
398
                                }
399
                        }
400
                        return classes;
401
                }
402

    
403
                public void setClassArray(ILabelClass[] classes) {
404
                        for (int i = 0; i < classes.length; i++) {
405
                                        setValueAt(classes[i],i,PREVIEW_FIELD_INDEX);
406
                                        setValueAt(classes[i].getName(),i,NAME_FIELD_INDEX);
407
                                        setValueAt(classes[i].getSQLQuery(),i,FILTER_FIELD_INDEX);
408
                                        setValueAt(classes[i].getStringLabelExpression(),i,LABEL_EXPRESSION_FIELD_INDEX);
409
                                        setValueAt(classes[i].isVisible(),i,VISIBLE_FIELD_INDEX);
410
                        }
411

    
412
                }
413

    
414
        }
415

    
416
        @Override
417
        protected void initializePanel() {
418
                        setLayout(new BorderLayout());
419
                        add(getPanel(),BorderLayout.CENTER);
420
                }
421

    
422
    private JPanel getPanel() {
423
        if (this.panel == null) {
424
            this.panel = new JPanel(new BorderLayout());
425

    
426
            GridLayout gl = new GridLayout(4, 1);
427
            buttonPanel = new JPanel(gl);
428
            buttonPanel.add(getBtnAddClass());
429
            buttonPanel.add(getBtnDelClass());
430
            // buttonPanel.addComponent(new JBlank(10, 10));
431
            buttonPanel.add(getBtnMoveUpClass());
432
            buttonPanel.add(getBtnMoveDownClass());
433

    
434
            JPanel auxp = new JPanel();
435
            auxp.add(buttonPanel);
436

    
437
            this.panel.add(auxp, BorderLayout.EAST);
438
            this.panel.add(getChkDefinePriorities(), BorderLayout.NORTH);
439

    
440
            JPanel centro = new JPanel(new BorderLayout());
441
            centro.add(getLabelClassSelector(), BorderLayout.NORTH);
442
            centro.add(getCenterScrl(), BorderLayout.CENTER);
443
            panel.add(centro, BorderLayout.CENTER);
444

    
445
        }
446
        return this.panel;
447

    
448
    }
449

    
450

    
451
        private JPanel getLabelClassSelector() {
452
            I18nManager i18nManager = ToolsLocator.getI18nManager();
453
            SymbologyManager symbologyMamanger = SymbologyLocator.getSymbologyManager();
454

    
455
            JPanel panel = new JPanel(new BorderLayout());
456
            panel.add(new JLabel(i18nManager.getTranslation("_Label_type_to_use_XcolonX")), BorderLayout.WEST);
457

    
458
            DefaultComboBoxModel model = new DefaultComboBoxModel();
459
            Collection<ILabelClassFactory> factories = symbologyMamanger.getLabelClassFactories();
460
            for( ILabelClassFactory factory : factories ) {
461
                model.addElement(factory);
462
            }
463
            this.comboLabelClassFactoryToUse = new JComboBox(model);
464
            panel.add(comboLabelClassFactoryToUse, BorderLayout.CENTER);
465
            if( model.getSize()>0 ) {
466
                comboLabelClassFactoryToUse.setSelectedIndex(0);
467
            }
468
            return panel;
469
        }
470

    
471
        public void fillPanel(FeatureType fty)
472
        throws ReadException {
473

    
474
                chkDefinePriorities.setSelected(this.method.definesPriorities());
475
                repaint();
476
        }
477

    
478
        private void swapClass(int classIndex, int targetPos,int numOfElements) {
479

    
480
                ILabelClass[] classes = ((LabelClassTableModel)tblClasses.getModel()).toLabelClassArray();
481
                ILabelClass aux = classes[targetPos];
482
                classes[targetPos] = classes[classIndex];
483
                classes[classIndex] = aux;
484
                ((LabelClassTableModel)tblClasses.getModel()).setClassArray(classes);
485
        }
486

    
487
        public void actionPerformed(ActionEvent e) {
488
            if (method == null) {
489
                return;
490
            }
491

    
492
            JComponent c = (JComponent) e.getSource();
493
            LabelClassTableModel mod = ((LabelClassTableModel) tblClasses.getModel());
494

    
495
            if (c.equals(btnAddClass)) {
496
                ILabelClassFactory factory = (ILabelClassFactory) this.comboLabelClassFactoryToUse.getSelectedItem();
497
                if( factory == null ) {
498
                    logger.warn("Can't acces to the defaut selected labelclassfactory.");
499
                    return;
500
                }
501
                ILabelClass newClass = factory.create();
502

    
503
                String name = Messages.getText("labeling")
504
                        + String.valueOf(1);
505

    
506
                int count = 0;
507
                while (checSameLablClassName(mod, name)) {
508
                    count++;
509
                    name = Messages.getText("labeling")
510
                            + String.valueOf(count);
511
                }
512
                newClass.setName(name);
513
                mod.addRow(new Object[]{
514
                    newClass.getName(),
515
                    newClass,
516
                    newClass.getSQLQuery(),
517
                    newClass.getStringLabelExpression(),
518
                    newClass.isVisible()});
519

    
520
            } else if (c.equals(btnDelClass)) {
521
                if (mod.getRowCount() >= 1) {
522
                    int[] sRows = tblClasses.getSelectedRows();
523

    
524
                    for (int i = sRows.length - 1; i >= 0; i--) {
525
                        mod.removeRow(sRows[i]);
526
                    }
527
                }
528
            } else if (c.equals(chkDefinePriorities)) {
529

    
530
                method.setDefinesPriorities(chkDefinePriorities.isSelected());
531

    
532
            } else if (c.equals(chkLabel)) {
533
                int[] sRows = tblClasses.getSelectedRows();
534
                for (int i = sRows.length - 1; i >= 0; i--) {
535
                    ILabelClass lc = mod.getLabelAtRow(i);
536
                    lc.setVisible(chkLabel.isSelected());
537
                }
538

    
539
            } else if (c.equals(btnMoveUpClass)) {
540
                int[] indices = tblClasses.getSelectedRows();
541
                if (indices.length > 0) {
542
                    int classIndex = indices[0];
543
                    int targetPos = Math.max(0, classIndex - 1);
544
                    swapClass(classIndex, targetPos, indices.length);
545
                }
546

    
547
            } else if (c.equals(btnMoveDownClass)) {
548
                int[] indices = tblClasses.getSelectedRows();
549
                if (indices.length > 0) {
550
                    int classIndex = indices[indices.length - 1];
551
                    int targetPos = Math.min(tblClasses.getRowCount() - 1, classIndex + 1);
552
                    swapClass(classIndex, targetPos, indices.length);
553
                }
554

    
555
            } else if (c.equals(btnDelClass)) {
556
                int[] indices = tblClasses.getSelectedRows();
557
                if (indices.length > 0) {
558
                    int classIndex = indices[0];
559
                    int targetPos = Math.min(tblClasses.getRowCount(), classIndex);
560
                    swapClass(classIndex, targetPos, indices.length);
561
                }
562
            }
563

    
564
            mod.fireTableDataChanged();
565
            method.clearAllClasses();
566
            ILabelClass[] classes = ((LabelClassTableModel) tblClasses.getModel()).toLabelClassArray();
567
            for (int i = 0; i < classes.length; i++) {
568
                method.addLabelClass(classes[i]);
569
            }
570
            repaint();
571
        }
572

    
573
        public void propertyChange(PropertyChangeEvent evt) {
574
                // TODO Auto-generated method stub
575

    
576
        }
577

    
578
        public void setEnabled(boolean enabled) {
579
                super.setEnabled(enabled);
580
                getBtnAddClass().setEnabled(enabled);
581
                getBtnDelClass().setEnabled(enabled);
582
                getBtnMoveDownClass().setEnabled(enabled);
583
                getBtnMoveUpClass().setEnabled(enabled);
584
                getChkDefinePriorities().setEnabled(enabled);
585
                scrlPan.setEnabled(enabled);
586
                tblClasses.setEnabled(enabled);
587
        }
588

    
589

    
590

    
591

    
592

    
593

    
594
}