private void replaceKdtRangeRemoveMethod() throws Exception { DetailPanel detailPanel = TrainClientUtil .getTableDetailPanel(kdtEntrys); if (detailPanel != null) { KDWorkButton removeButton = detailPanel.getRemoveLinesButton(); ActionListener listeners[] = removeButton.getActionListeners(); if (listeners != null && listeners.length > 0) { for (int j = 0; j < listeners.length; j++) removeButton.removeActionListener(listeners[j]); } removeButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { if (kdtEntrys == null) return; if (kdtEntrys.getSelectManager().size() == 0 || isTableColumnSelected(kdtEntrys)) return; int selectRowsIndex[] = TrainHelper .getSelectedRows(kdtEntrys); Arrays.sort(selectRowsIndex); for(int i = selectRowsIndex.length - 1; i >= 0; i--){ TrainUtils.removeRow(kdtEntrys, selectRowsIndex[i]); } if (selectRowsIndex.length > 0) { int selectedColumnIndexs[] = TrainHelper .getSelectedColumns(kdtEntrys); Arrays.sort(selectRowsIndex); if (kdtEntrys.getRowCount() > 0) { Arrays.sort(selectedColumnIndexs); int columnIndex = 0; if (selectedColumnIndexs.length > 0) columnIndex = selectedColumnIndexs[0]; kdtEntrys.getSelectManager().select( selectRowsIndex[0], columnIndex); } } } }); } }