diff --git a/db.dataview/src/org/netbeans/modules/db/dataview/options/Bundle.properties b/db.dataview/src/org/netbeans/modules/db/dataview/options/Bundle.properties --- a/db.dataview/src/org/netbeans/modules/db/dataview/options/Bundle.properties +++ b/db.dataview/src/org/netbeans/modules/db/dataview/options/Bundle.properties @@ -1,8 +1,8 @@ -DataViewSettingsPanel.chkPackColumns.text=Pack columns +DataViewSettingsPanel.chkPackColumns.text=Always pack columns DataViewSettingsPanel.chkShowAbsoluteRowNumbers.text=Show absolute row numbers DataViewSettingsPanel.rbRememberPageSize.text=Remember and use previous -DataViewSettingsPanel.lblPageSize.text=Default page size: DataViewSettingsPanel.rbShowAllRows.text=Show all rows DataViewSettingsPanel.rbFixedPageSize.text= DataViewSettingsPanel.chkShowTruncateTableButton.text=Show truncate table button DataViewSettingsPanel.chkCopyRowValuesWithHeaders.text=Copy row values with headers (keyboard) +DataViewSettingsPanel.pnlPageSize.border.title=Default page size diff --git a/db.dataview/src/org/netbeans/modules/db/dataview/options/DataViewSettingsPanel.form b/db.dataview/src/org/netbeans/modules/db/dataview/options/DataViewSettingsPanel.form --- a/db.dataview/src/org/netbeans/modules/db/dataview/options/DataViewSettingsPanel.form +++ b/db.dataview/src/org/netbeans/modules/db/dataview/options/DataViewSettingsPanel.form @@ -23,22 +23,13 @@ + + - - - - - - - - - - - - + @@ -46,25 +37,16 @@ - - - - - - - - - - - + + - + - + @@ -99,39 +81,81 @@ - + - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/db.dataview/src/org/netbeans/modules/db/dataview/options/DataViewSettingsPanel.java b/db.dataview/src/org/netbeans/modules/db/dataview/options/DataViewSettingsPanel.java --- a/db.dataview/src/org/netbeans/modules/db/dataview/options/DataViewSettingsPanel.java +++ b/db.dataview/src/org/netbeans/modules/db/dataview/options/DataViewSettingsPanel.java @@ -68,11 +68,11 @@ chkShowAbsoluteRowNumbers = new javax.swing.JCheckBox(); chkPackColumns = new javax.swing.JCheckBox(); chkCopyRowValuesWithHeaders = new javax.swing.JCheckBox(); + pnlPageSize = new javax.swing.JPanel(); rbRememberPageSize = new javax.swing.JRadioButton(); + rbShowAllRows = new javax.swing.JRadioButton(); rbFixedPageSize = new javax.swing.JRadioButton(); spnFixedPageSize = new javax.swing.JSpinner(); - lblPageSize = new javax.swing.JLabel(); - rbShowAllRows = new javax.swing.JRadioButton(); chkShowTruncateTableButton.setSelected(true); org.openide.awt.Mnemonics.setLocalizedText(chkShowTruncateTableButton, org.openide.util.NbBundle.getMessage(DataViewSettingsPanel.class, "DataViewSettingsPanel.chkShowTruncateTableButton.text")); // NOI18N @@ -83,17 +83,46 @@ org.openide.awt.Mnemonics.setLocalizedText(chkCopyRowValuesWithHeaders, org.openide.util.NbBundle.getMessage(DataViewSettingsPanel.class, "DataViewSettingsPanel.chkCopyRowValuesWithHeaders.text")); // NOI18N + pnlPageSize.setBorder(javax.swing.BorderFactory.createTitledBorder(org.openide.util.NbBundle.getMessage(DataViewSettingsPanel.class, "DataViewSettingsPanel.pnlPageSize.border.title"))); // NOI18N + rbRememberPageSize.setSelected(true); org.openide.awt.Mnemonics.setLocalizedText(rbRememberPageSize, org.openide.util.NbBundle.getMessage(DataViewSettingsPanel.class, "DataViewSettingsPanel.rbRememberPageSize.text")); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(rbShowAllRows, org.openide.util.NbBundle.getMessage(DataViewSettingsPanel.class, "DataViewSettingsPanel.rbShowAllRows.text")); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(rbFixedPageSize, org.openide.util.NbBundle.getMessage(DataViewSettingsPanel.class, "DataViewSettingsPanel.rbFixedPageSize.text")); // NOI18N org.jdesktop.beansbinding.Binding binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, rbFixedPageSize, org.jdesktop.beansbinding.ELProperty.create("${selected}"), spnFixedPageSize, org.jdesktop.beansbinding.BeanProperty.create("enabled")); bindingGroup.addBinding(binding); - org.openide.awt.Mnemonics.setLocalizedText(lblPageSize, org.openide.util.NbBundle.getMessage(DataViewSettingsPanel.class, "DataViewSettingsPanel.lblPageSize.text")); // NOI18N - - org.openide.awt.Mnemonics.setLocalizedText(rbShowAllRows, org.openide.util.NbBundle.getMessage(DataViewSettingsPanel.class, "DataViewSettingsPanel.rbShowAllRows.text")); // NOI18N + javax.swing.GroupLayout pnlPageSizeLayout = new javax.swing.GroupLayout(pnlPageSize); + pnlPageSize.setLayout(pnlPageSizeLayout); + pnlPageSizeLayout.setHorizontalGroup( + pnlPageSizeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(pnlPageSizeLayout.createSequentialGroup() + .addContainerGap() + .addGroup(pnlPageSizeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(rbRememberPageSize) + .addGroup(pnlPageSizeLayout.createSequentialGroup() + .addComponent(rbFixedPageSize) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(spnFixedPageSize, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(rbShowAllRows)) + .addContainerGap(162, Short.MAX_VALUE)) + ); + pnlPageSizeLayout.setVerticalGroup( + pnlPageSizeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(pnlPageSizeLayout.createSequentialGroup() + .addContainerGap() + .addComponent(rbRememberPageSize) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(rbShowAllRows) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(pnlPageSizeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(rbFixedPageSize) + .addComponent(spnFixedPageSize, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + ); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); @@ -102,42 +131,27 @@ .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(pnlPageSize, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(chkShowAbsoluteRowNumbers) + .addComponent(chkCopyRowValuesWithHeaders) .addComponent(chkShowTruncateTableButton) - .addComponent(chkCopyRowValuesWithHeaders) - .addComponent(chkPackColumns) - .addComponent(lblPageSize) - .addComponent(rbRememberPageSize) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) - .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() - .addComponent(rbFixedPageSize) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(spnFixedPageSize, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addComponent(rbShowAllRows, javax.swing.GroupLayout.Alignment.LEADING))) - .addContainerGap(251, Short.MAX_VALUE)) + .addComponent(chkPackColumns)) + .addContainerGap(329, Short.MAX_VALUE)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() - .addComponent(lblPageSize) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(rbRememberPageSize) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(rbShowAllRows) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(rbFixedPageSize) - .addComponent(spnFixedPageSize, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(18, 18, 18) + .addComponent(pnlPageSize, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(24, 24, 24) .addComponent(chkPackColumns) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGap(9, 9, 9) .addComponent(chkShowTruncateTableButton) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(chkShowAbsoluteRowNumbers) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(chkCopyRowValuesWithHeaders) - .addContainerGap(129, Short.MAX_VALUE)) + .addContainerGap(91, Short.MAX_VALUE)) ); bindingGroup.bind(); @@ -184,8 +198,8 @@ private javax.swing.JCheckBox chkPackColumns; private javax.swing.JCheckBox chkShowAbsoluteRowNumbers; private javax.swing.JCheckBox chkShowTruncateTableButton; - private javax.swing.JLabel lblPageSize; private javax.swing.ButtonGroup pageSizeButtonGroup; + private javax.swing.JPanel pnlPageSize; private javax.swing.JRadioButton rbFixedPageSize; private javax.swing.JRadioButton rbRememberPageSize; private javax.swing.JRadioButton rbShowAllRows; diff --git a/db.dataview/src/org/netbeans/modules/db/dataview/output/DataViewUI.java b/db.dataview/src/org/netbeans/modules/db/dataview/output/DataViewUI.java --- a/db.dataview/src/org/netbeans/modules/db/dataview/output/DataViewUI.java +++ b/db.dataview/src/org/netbeans/modules/db/dataview/output/DataViewUI.java @@ -71,6 +71,8 @@ import javax.swing.JTextField; import javax.swing.JToolBar; import javax.swing.SwingUtilities; +import javax.swing.event.TableModelEvent; +import javax.swing.event.TableModelListener; import org.jdesktop.swingx.JXButton; import org.jdesktop.swingx.JXLabel; import org.jdesktop.swingx.JXPanel; @@ -120,6 +122,13 @@ @Override public void propertyChange(PropertyChangeEvent evt) { updateTotalCountLabel(); + } + }; + + private final TableModelListener tableModelListener = + new TableModelListener() { + @Override + public void tableChanged(TableModelEvent e) { updateRowOffset(); } }; @@ -189,6 +198,7 @@ dataPanel.setModel(pageContext.getModel()); pageContext.addPropertyChangeListener(pageContextListener); + pageContext.getModel().addTableModelListener(tableModelListener); updateTotalCountLabel(); updateRowOffset(); }