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 246175
Collapse All | Expand All

(-)a/db.dataview/src/org/netbeans/modules/db/dataview/output/Bundle.properties (+1 lines)
Lines 190-192 Link Here
190
190
191
DataViewUI_TrimmedTabName={0}...
191
DataViewUI_TrimmedTabName={0}...
192
DataViewUI_ShowTruncateTableButton=Show Truncate Table
192
DataViewUI_ShowTruncateTableButton=Show Truncate Table
193
DataViewUI_ShowAbsoluteRowNumbers=Show absolute row numbers
(-)a/db.dataview/src/org/netbeans/modules/db/dataview/output/DataViewUI.java (-1 / +33 lines)
Lines 104-115 Link Here
104
    private JXLabel limitRow;
104
    private JXLabel limitRow;
105
    private JXButton[] editButtons = new JXButton[5];
105
    private JXButton[] editButtons = new JXButton[5];
106
    private DataViewTableUI dataPanel;
106
    private DataViewTableUI dataPanel;
107
    private JXTableRowHeader rowHeader;
107
    private JScrollPane dataPanelScrollPane;
108
    private JScrollPane dataPanelScrollPane;
108
    private final DataViewPageContext pageContext;
109
    private final DataViewPageContext pageContext;
109
    private JXButton cancel;
110
    private JXButton cancel;
110
    private DataViewActionHandler actionHandler;
111
    private DataViewActionHandler actionHandler;
111
    private String imgPrefix = "/org/netbeans/modules/db/dataview/images/"; // NOI18N
112
    private String imgPrefix = "/org/netbeans/modules/db/dataview/images/"; // NOI18N
112
113
114
    private boolean showAbsoluteRowNumbers = DataViewSettings.getShowAbsoluteRowNumbers();
115
113
    private static final int MAX_TAB_LENGTH = 25;
116
    private static final int MAX_TAB_LENGTH = 25;
114
117
115
    private final PropertyChangeListener pageContextListener =
118
    private final PropertyChangeListener pageContextListener =
Lines 117-122 Link Here
117
                @Override
120
                @Override
118
                public void propertyChange(PropertyChangeEvent evt) {
121
                public void propertyChange(PropertyChangeEvent evt) {
119
                    updateTotalCountLabel();
122
                    updateTotalCountLabel();
123
                    updateRowOffset();
120
                }
124
                }
121
            };
125
            };
122
126
Lines 174-180 Link Here
174
        //add resultset data panel
178
        //add resultset data panel
175
        dataPanel = new DataViewTableUI(this, actionHandler, dataView, pageContext);
179
        dataPanel = new DataViewTableUI(this, actionHandler, dataView, pageContext);
176
        dataPanelScrollPane = new JScrollPane(dataPanel);
180
        dataPanelScrollPane = new JScrollPane(dataPanel);
177
        JXTableRowHeader rowHeader = new JXTableRowHeader(dataPanel);
181
        rowHeader = new JXTableRowHeader(dataPanel);
182
        rowHeader.getHeaderTable().addMouseListener(createRowHeaderMouseListener());
178
        dataPanelScrollPane.setRowHeaderView(rowHeader);
183
        dataPanelScrollPane.setRowHeaderView(rowHeader);
179
        dataPanelScrollPane.setCorner(JScrollPane.UPPER_LEFT_CORNER, rowHeader.getTableHeader());
184
        dataPanelScrollPane.setCorner(JScrollPane.UPPER_LEFT_CORNER, rowHeader.getTableHeader());
180
185
Lines 185-190 Link Here
185
        dataPanel.setModel(pageContext.getModel());
190
        dataPanel.setModel(pageContext.getModel());
186
        pageContext.addPropertyChangeListener(pageContextListener);
191
        pageContext.addPropertyChangeListener(pageContextListener);
187
        updateTotalCountLabel();
192
        updateTotalCountLabel();
193
        updateRowOffset();
188
    }
194
    }
189
195
190
    void handleColumnUpdated() {
196
    void handleColumnUpdated() {
Lines 213-218 Link Here
213
        }
219
        }
214
    }
220
    }
215
221
222
    final void updateRowOffset() {
223
        rowHeader.updateRowOffset(showAbsoluteRowNumbers ? pageContext.getCurrentPos() - 1 : 0);
224
    }
225
216
    boolean isCommitEnabled() {
226
    boolean isCommitEnabled() {
217
        return commit.isEnabled();
227
        return commit.isEnabled();
218
    }
228
    }
Lines 369-374 Link Here
369
379
370
        return outputListener;
380
        return outputListener;
371
    }
381
    }
382
383
    private MouseListener createRowHeaderMouseListener() {
384
        final JPopupMenu popupMenu = new JPopupMenu();
385
        final JCheckBoxMenuItem absoluteRowNumbers = new JCheckBoxMenuItem(NbBundle.getMessage(DataViewTableUI.class, "DataViewUI_ShowAbsoluteRowNumbers"));
386
        absoluteRowNumbers.setSelected(showAbsoluteRowNumbers);
387
        absoluteRowNumbers.addActionListener(new ActionListener() {
388
            @Override
389
            public void actionPerformed(ActionEvent e) {
390
                showAbsoluteRowNumbers = !showAbsoluteRowNumbers;
391
                updateRowOffset();
392
            }
393
        });
394
        popupMenu.add(absoluteRowNumbers);
395
396
        return new MouseUtils.PopupMouseAdapter() {
397
            @Override
398
            protected void showPopup(MouseEvent e) {
399
                popupMenu.show(rowHeader, e.getX(), e.getY());
400
            }
401
        };
402
    }
403
372
    private static final Insets BUTTON_INSETS = new Insets(2, 1, 0, 1);
404
    private static final Insets BUTTON_INSETS = new Insets(2, 1, 0, 1);
373
405
374
    private void processButton(AbstractButton button) {
406
    private void processButton(AbstractButton button) {
(-)a/db.dataview/src/org/netbeans/modules/db/dataview/table/JXTableRowHeader.java (-1 / +22 lines)
Lines 93-98 Link Here
93
93
94
    private static class CountingTableModel implements TableModel {
94
    private static class CountingTableModel implements TableModel {
95
        private int count;
95
        private int count;
96
        private int rowOffset;
96
        
97
        
97
        Set<TableModelListener> listeners = new HashSet<TableModelListener>();
98
        Set<TableModelListener> listeners = new HashSet<TableModelListener>();
98
99
Lines 106-111 Link Here
106
                }
107
                }
107
            }
108
            }
108
        }
109
        }
110
111
        public int getRowOffset() {
112
            return rowOffset;
113
        }
114
115
        public void setRowOffset(int rowOffset) {
116
            this.rowOffset = rowOffset;
117
        }
109
        
118
        
110
        @Override
119
        @Override
111
        public void addTableModelListener(TableModelListener tl) {
120
        public void addTableModelListener(TableModelListener tl) {
Lines 134-140 Link Here
134
143
135
        @Override
144
        @Override
136
        public Object getValueAt(int row, int col) {
145
        public Object getValueAt(int row, int col) {
137
            return Integer.toString(row + 1);
146
            return Integer.toString(rowOffset + row + 1);
138
        }
147
        }
139
148
140
        @Override
149
        @Override
Lines 252-257 Link Here
252
                comp.setBackground(UIManager.getColor("Table.selectionBackground"));
261
                comp.setBackground(UIManager.getColor("Table.selectionBackground"));
253
                comp.setForeground(UIManager.getColor("Table.selectionForeground"));
262
                comp.setForeground(UIManager.getColor("Table.selectionForeground"));
254
            }
263
            }
264
            ((JComponent) comp).setToolTipText((String) value);
255
            return comp;
265
            return comp;
256
        }
266
        }
257
    }
267
    }
Lines 333-336 Link Here
333
    public String getToolTipText(MouseEvent event) {
343
    public String getToolTipText(MouseEvent event) {
334
        return headerTable.getToolTipText(event);
344
        return headerTable.getToolTipText(event);
335
    }
345
    }
346
347
    public JXTable getHeaderTable() {
348
        return headerTable;
349
    }
350
351
    public void updateRowOffset(int rowOffset) {
352
        if (rowOffset != ctm.getRowOffset()) {
353
            ctm.setRowOffset(rowOffset);
354
            headerTable.repaint();
355
        }
356
    }
336
}
357
}

Return to bug 246175