diff --git a/db.dataview/src/org/netbeans/modules/db/dataview/output/Bundle.properties b/db.dataview/src/org/netbeans/modules/db/dataview/output/Bundle.properties --- a/db.dataview/src/org/netbeans/modules/db/dataview/output/Bundle.properties +++ b/db.dataview/src/org/netbeans/modules/db/dataview/output/Bundle.properties @@ -189,3 +189,4 @@ InsertRecordDialog.addBtn.text_1=&Add Row DataViewUI_TrimmedTabName={0}... +DataViewUI_ShowTruncateTableButton=Show Truncate Table 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 @@ -64,7 +64,9 @@ import javax.swing.BoxLayout; import javax.swing.ImageIcon; import javax.swing.JButton; +import javax.swing.JCheckBoxMenuItem; import javax.swing.JPanel; +import javax.swing.JPopupMenu; import javax.swing.JScrollPane; import javax.swing.JTextField; import javax.swing.JToolBar; @@ -72,10 +74,12 @@ import org.jdesktop.swingx.JXButton; import org.jdesktop.swingx.JXLabel; import org.jdesktop.swingx.JXPanel; +import org.netbeans.modules.db.dataview.options.DataViewSettings; import org.netbeans.modules.db.dataview.table.JXTableRowHeader; import org.netbeans.modules.db.dataview.table.MultiColPatternFilter; import org.netbeans.modules.db.dataview.table.ResultSetJXTable; import static org.netbeans.modules.db.dataview.table.SuperPatternFilter.MODE.LITERAL_FIND; +import org.openide.awt.MouseUtils; import org.openide.util.NbBundle; /** @@ -550,6 +554,7 @@ truncateButton.setMnemonic('T'); truncateButton.addActionListener(outputListener); truncateButton.setEnabled(false); + truncateButton.setVisible(DataViewSettings.getShowTruncateTableButton()); processButton(truncateButton); editButtons[4] = truncateButton; } @@ -563,10 +568,13 @@ ActionListener outputListener = createOutputListener(); initVerticalToolbar(outputListener); + MouseListener toolbarMouseListener = createToolbarMouseListener(); + JToolBar toolbarWest = new JToolBar(); toolbarWest.setFloatable(false); toolbarWest.setRollover(true); initToolbarWest(toolbarWest, outputListener, nbOutputComponent); + toolbarWest.addMouseListener(toolbarMouseListener); JToolBar toolbarEast = new JToolBar(); toolbarEast.setFloatable(false); @@ -575,6 +583,7 @@ toolbarEast.setMinimumSize(toolbarWest.getPreferredSize()); toolbarEast.setSize(toolbarWest.getPreferredSize()); toolbarEast.setMaximumSize(toolbarWest.getPreferredSize()); + toolbarEast.addMouseListener(toolbarMouseListener); panel.add(toolbarWest); panel.add(Box.createHorizontalGlue()); @@ -583,6 +592,26 @@ return panel; } + private MouseListener createToolbarMouseListener() { + final JPopupMenu popupMenu = new JPopupMenu(); + final JCheckBoxMenuItem showTruncateButton = new JCheckBoxMenuItem(NbBundle.getMessage(DataViewTableUI.class, "DataViewUI_ShowTruncateTableButton")); + showTruncateButton.setSelected(truncateButton.isVisible()); + showTruncateButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + truncateButton.setVisible(showTruncateButton.isSelected()); + } + }); + popupMenu.add(showTruncateButton); + + return new MouseUtils.PopupMouseAdapter() { + @Override + protected void showPopup(MouseEvent e) { + popupMenu.show(DataViewUI.this, e.getX(), e.getY()); + } + }; + } + public void enableDeleteBtn(boolean value) { deleteRow.setEnabled(value); }