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_ShowTruncateButton=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 @@ -52,6 +52,7 @@ import java.awt.event.FocusEvent; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; +import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.beans.PropertyChangeEvent; @@ -64,7 +65,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; @@ -77,6 +80,7 @@ import org.netbeans.modules.db.dataview.table.ResultSetJXTable; import static org.netbeans.modules.db.dataview.table.SuperPatternFilter.MODE.LITERAL_FIND; import org.openide.util.NbBundle; +import org.openide.util.NbPreferences; /** * DataViewUI hosting display of design-level SQL test output. @@ -85,6 +89,8 @@ */ class DataViewUI extends JXPanel { + private static final String SHOW_TRUNCATE_BUTTON = "showTruncateButton"; + private JXButton commit; private JXButton refreshButton; private JXButton truncateButton; @@ -550,6 +556,7 @@ truncateButton.setMnemonic('T'); truncateButton.addActionListener(outputListener); truncateButton.setEnabled(false); + truncateButton.setVisible(NbPreferences.forModule(DataViewUI.class).getBoolean(SHOW_TRUNCATE_BUTTON, true)); processButton(truncateButton); editButtons[4] = truncateButton; } @@ -563,10 +570,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 +585,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 +594,29 @@ return panel; } + private MouseListener createToolbarMouseListener() { + final JPopupMenu popupMenu = new JPopupMenu(); + final JCheckBoxMenuItem showTruncateButton = new JCheckBoxMenuItem(NbBundle.getMessage(DataViewTableUI.class, "DataViewUI_ShowTruncateButton")); + showTruncateButton.setSelected(truncateButton.isVisible()); + showTruncateButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + truncateButton.setVisible(showTruncateButton.isSelected()); + NbPreferences.forModule(DataViewUI.class).putBoolean(SHOW_TRUNCATE_BUTTON, showTruncateButton.isSelected()); + } + }); + popupMenu.add(showTruncateButton); + + return new MouseAdapter() { + @Override + public void mouseReleased(MouseEvent e) { + if (e.getButton() == MouseEvent.BUTTON3) { + popupMenu.show(DataViewUI.this, e.getX(), e.getY()); + } + } + }; + } + public void enableDeleteBtn(boolean value) { deleteRow.setEnabled(value); }