This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

View | Details | Raw Unified | Return to bug 231218
Collapse All | Expand All

(-)db.dataview/src/org/netbeans/modules/db/dataview/output/DataViewTableUI.java (-10 / +28 lines)
Lines 96-101 Link Here
96
    private DataViewActionHandler handler;
96
    private DataViewActionHandler handler;
97
    private int selectedRow = -1;
97
    private int selectedRow = -1;
98
    private int selectedColumn = -1;
98
    private int selectedColumn = -1;
99
    private int[] selectedRows = new int[0];
99
    private TableModelListener dataChangedListener = new TableModelListener() {
100
    private TableModelListener dataChangedListener = new TableModelListener() {
100
        @Override
101
        @Override
101
        public void tableChanged(TableModelEvent e) {
102
        public void tableChanged(TableModelEvent e) {
Lines 307-313 Link Here
307
            }
308
            }
308
309
309
            if (e.getSource() == table.getSelectionModel() && table.getRowSelectionAllowed()) {
310
            if (e.getSource() == table.getSelectionModel() && table.getRowSelectionAllowed()) {
310
                boolean rowSelected = table.getSelectedRows().length > 0;
311
                boolean rowSelected = selectedRows.length > 0;
311
                if (rowSelected && getModel().isEditable()) {
312
                if (rowSelected && getModel().isEditable()) {
312
                    dataviewUI.enableDeleteBtn(true);
313
                    dataviewUI.enableDeleteBtn(true);
313
                } else {
314
                } else {
Lines 438-447 Link Here
438
            @Override
439
            @Override
439
            public void actionPerformed(ActionEvent e) {
440
            public void actionPerformed(ActionEvent e) {
440
                try {
441
                try {
441
                    int[] rows = getSelectedRows();
442
                    String insertSQL = "";
442
                    String insertSQL = "";
443
                    for (int j = 0; j < rows.length; j++) {
443
                    for (int j = 0; j < selectedRows.length; j++) {
444
                        int modelIndex = convertRowIndexToModel(rows[j]);
444
                        int modelIndex = convertRowIndexToModel(selectedRows[j]);
445
                        Object[] insertRow = getModel().getRowData(modelIndex);
445
                        Object[] insertRow = getModel().getRowData(modelIndex);
446
                        // @todo make table configurable
446
                        // @todo make table configurable
447
                        DBTable table = pageContext.getTableMetaData().getTable(0);
447
                        DBTable table = pageContext.getTableMetaData().getTable(0);
Lines 466-476 Link Here
466
466
467
            @Override
467
            @Override
468
            public void actionPerformed(ActionEvent e) {
468
            public void actionPerformed(ActionEvent e) {
469
                int[] rows = getSelectedRows();
470
                String rawDeleteStmt = "";
469
                String rawDeleteStmt = "";
471
                for (int j = 0; j < rows.length; j++) {
470
                for (int j = 0; j < selectedRows.length; j++) {
472
                    SQLStatementGenerator generator = dataView.getSQLStatementGenerator();
471
                    SQLStatementGenerator generator = dataView.getSQLStatementGenerator();
473
                    int modelIndex = convertRowIndexToModel(rows[j]);
472
                    int modelIndex = convertRowIndexToModel(selectedRows[j]);
474
                    // @todo make table configurable
473
                    // @todo make table configurable
475
                    DBTable table = pageContext.getTableMetaData().getTable(0);
474
                    DBTable table = pageContext.getTableMetaData().getTable(0);
476
                    final String deleteStmt = generator.generateDeleteStatement(table, modelIndex, getModel());
475
                    final String deleteStmt = generator.generateDeleteStatement(table, modelIndex, getModel());
Lines 549-557 Link Here
549
                    selectedRow = rowAtPoint(e.getPoint());
548
                    selectedRow = rowAtPoint(e.getPoint());
550
                    selectedColumn = columnAtPoint(e.getPoint());
549
                    selectedColumn = columnAtPoint(e.getPoint());
551
                    boolean inSelection = false;
550
                    boolean inSelection = false;
552
                    int[] rows = getSelectedRows();
551
                    selectedRows = getSelectedRows();
553
                    for (int a = 0; a < rows.length; a++) {
552
                    for (int a = 0; a < selectedRows.length; a++) {
554
                        if (rows[a] == selectedRow) {
553
                        if (selectedRows[a] == selectedRow) {
555
                            inSelection = true;
554
                            inSelection = true;
556
                            break;
555
                            break;
557
                        }
556
                        }
Lines 568-573 Link Here
568
                    }
567
                    }
569
                    if (!inSelection) {
568
                    if (!inSelection) {
570
                        changeSelection(selectedRow, selectedColumn, false, false);
569
                        changeSelection(selectedRow, selectedColumn, false, false);
570
                        selectedRows = getSelectedRows();
571
                    }
571
                    }
572
                    if (! getModel().isEditable()) {
572
                    if (! getModel().isEditable()) {
573
                        miInsertAction.setEnabled(false);
573
                        miInsertAction.setEnabled(false);
Lines 587-592 Link Here
587
                        miCancelEdits.setEnabled(true);
587
                        miCancelEdits.setEnabled(true);
588
                        miCommitSQLScript.setEnabled(true);
588
                        miCommitSQLScript.setEnabled(true);
589
                    }
589
                    }
590
                    if(selectedRows.length > 0) {
591
                        miCopyRowValues.setEnabled(true);
592
                        miCopyRowValuesH.setEnabled(true);
593
                        miInsertSQLScript.setEnabled(true);
594
                        miDeleteSQLScript.setEnabled(true);
595
                        miDeleteAction.setEnabled(true);
596
                    } else {
597
                        miCopyRowValues.setEnabled(false);
598
                        miCopyRowValuesH.setEnabled(false);
599
                        miInsertSQLScript.setEnabled(false);
600
                        miDeleteSQLScript.setEnabled(false);
601
                        miDeleteAction.setEnabled(false);
602
                    }
603
                    if(selectedColumn >= 0 && selectedRow >= 0) {
604
                        miCopyValue.setEnabled(true);
605
                    } else {
606
                        miCopyValue.setEnabled(false);
607
                    }
590
                    tablePopupMenu.show(DataViewTableUI.this, e.getX(), e.getY());
608
                    tablePopupMenu.show(DataViewTableUI.this, e.getX(), e.getY());
591
                }
609
                }
592
            }
610
            }

Return to bug 231218