Disable the Delete button when not applicable.
Also selected row is compared to the total number of rows, because
it may happen that selected row is '0', while the total number of rows is '0' !!!
This is a fix of issue #33176.
1.1 --- a/vcs.advanced/src/org/netbeans/modules/vcs/advanced/VcsCustomizer.java Tue Sep 23 00:11:02 2003 +0000
1.2 +++ b/vcs.advanced/src/org/netbeans/modules/vcs/advanced/VcsCustomizer.java Tue Sep 23 16:13:44 2003 +0000
1.3 @@ -962,7 +962,7 @@
1.4 private void deleteEnvButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_deleteEnvButtonActionPerformed
1.5 // Add your handling code here:
1.6 int row = envTable.getSelectedRow();
1.7 - if (row < 0) return ;
1.8 + if (row < 0 || row >= envTable.getRowCount()) return ; // Sometimes the row can be == row count !!! (see issue #33176)
1.9 String name = (String) envTableModel.getValueAt(row, 0);
1.10 NotifyDescriptor nd = new NotifyDescriptor.Confirmation(NbBundle.getMessage(VcsCustomizer.class, "DLG_EnvVarDeleteConfirm", name));
1.11 if (NotifyDescriptor.OK_OPTION.equals(DialogDisplayer.getDefault().notify(nd))) {
1.12 @@ -1499,6 +1499,17 @@
1.13 envTableModel = new TableSorter(envTable.getModel());
1.14 envTableModel.sortByColumn(0, true);
1.15 envTable.setModel(envTableModel);
1.16 + deleteEnvButton.setEnabled(false);
1.17 + envTable.getSelectionModel().addListSelectionListener(new javax.swing.event.ListSelectionListener() {
1.18 + public void valueChanged(javax.swing.event.ListSelectionEvent lsev) {
1.19 + //lsev.getFirstIndex();
1.20 + int row = envTable.getSelectedRow();
1.21 + int numRows = envTable.getRowCount();
1.22 + // There can be row == 0 & numRows == 0 !!!
1.23 + //System.out.println("Table selected row: "+row+", numRows = "+numRows);
1.24 + deleteEnvButton.setEnabled(row >= 0 && row < numRows);
1.25 + }
1.26 + });
1.27 ((javax.swing.table.DefaultTableModel) envTableModel.getModel()).setColumnIdentifiers(new String[] { NbBundle.getMessage(VcsCustomizer.class, "LBL_VarNames"), NbBundle.getMessage(VcsCustomizer.class, "LBL_VarValues") });
1.28 envTableModel.addMouseListenerToHeaderInTable(envTable);
1.29 systemEnvTableModel = new TableSorter(systemEnvTable.getModel());