From b8c94332590e8326af6bbb4b4d33d930631e944b Mon Sep 17 00:00:00 2001 From: Karl Tauber Date: Mon, 2 Nov 2020 12:13:06 +0100 Subject: [PATCH] SplitPane: added tooltips to expand/collapse buttons (issue #198) --- CHANGELOG.md | 3 ++- .../formdev/flatlaf/ui/FlatSplitPaneUI.java | 23 +++++++++++++++++++ .../flatlaf/resources/Bundle.properties | 12 ++++++++++ 3 files changed, 37 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c3a05f91..6d911aec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -36,7 +36,8 @@ FlatLaf Change Log `TitlePane.borderColor`). (issue #184) - Extras: `FlatSVGIcon` now allows specifying icon width and height in constructors. (issue #196) -- SplitPane: Hide not applicable expand/collapse buttons. (issue #198) +- SplitPane: Hide not applicable expand/collapse buttons. Added tooltips to + expand/collapse buttons. (issue #198) #### Fixed bugs diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatSplitPaneUI.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatSplitPaneUI.java index a1859c01..93608e10 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatSplitPaneUI.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatSplitPaneUI.java @@ -20,11 +20,13 @@ import java.awt.Color; import java.awt.Container; import java.awt.Cursor; import java.awt.Insets; +import java.awt.event.MouseEvent; import java.beans.PropertyChangeEvent; import javax.swing.JButton; import javax.swing.JComponent; import javax.swing.JSplitPane; import javax.swing.SwingConstants; +import javax.swing.ToolTipManager; import javax.swing.UIManager; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.basic.BasicSplitPaneDivider; @@ -152,6 +154,7 @@ public class FlatSplitPaneUI protected FlatOneTouchButton( boolean left ) { super( SwingConstants.NORTH, arrowType, oneTouchArrowColor, null, oneTouchHoverArrowColor, null ); setCursor( Cursor.getPredefinedCursor( Cursor.DEFAULT_CURSOR ) ); + ToolTipManager.sharedInstance().registerComponent( this ); this.left = left; } @@ -162,6 +165,26 @@ public class FlatSplitPaneUI ? (left ? SwingConstants.NORTH : SwingConstants.SOUTH) : (left ? SwingConstants.WEST : SwingConstants.EAST); } + + @Override + public String getToolTipText( MouseEvent e ) { + String key = (orientation == JSplitPane.VERTICAL_SPLIT) + ? (left + ? (isRightCollapsed() + ? "SplitPaneDivider.expandBottomToolTipText" + : "SplitPaneDivider.collapseTopToolTipText") + : (isLeftCollapsed() + ? "SplitPaneDivider.expandTopToolTipText" + : "SplitPaneDivider.collapseBottomToolTipText")) + : (left + ? (isRightCollapsed() + ? "SplitPaneDivider.expandRightToolTipText" + : "SplitPaneDivider.collapseLeftToolTipText") + : (isLeftCollapsed() + ? "SplitPaneDivider.expandLeftToolTipText" + : "SplitPaneDivider.collapseRightToolTipText")); + return UIManager.getString( key, getLocale() ); + } } //---- class FlatDividerLayout ---------------------------------------- diff --git a/flatlaf-core/src/main/resources/com/formdev/flatlaf/resources/Bundle.properties b/flatlaf-core/src/main/resources/com/formdev/flatlaf/resources/Bundle.properties index fa1d20fc..06caf173 100644 --- a/flatlaf-core/src/main/resources/com/formdev/flatlaf/resources/Bundle.properties +++ b/flatlaf-core/src/main/resources/com/formdev/flatlaf/resources/Bundle.properties @@ -48,6 +48,18 @@ FileChooser.listViewActionLabelText=List FileChooser.detailsViewActionLabelText=Details +#---- SplitPaneDivider ---- + +SplitPaneDivider.collapseLeftToolTipText=Collapse Left Pane +SplitPaneDivider.collapseRightToolTipText=Collapse Right Pane +SplitPaneDivider.collapseTopToolTipText=Collapse Top Pane +SplitPaneDivider.collapseBottomToolTipText=Collapse Bottom Pane +SplitPaneDivider.expandLeftToolTipText=Expand Left Pane +SplitPaneDivider.expandRightToolTipText=Expand Right Pane +SplitPaneDivider.expandTopToolTipText=Expand Top Pane +SplitPaneDivider.expandBottomToolTipText=Expand Bottom Pane + + #---- TabbedPane ---- TabbedPane.moreTabsButtonToolTipText=Show Hidden Tabs