diff --git a/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/Bundle.properties b/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/Bundle.properties --- a/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/Bundle.properties +++ b/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/Bundle.properties @@ -45,4 +45,6 @@ ACS_TabbedContainer=Tab Control -ACSD_TabbedContainer=Tab control to switch between tabs. \ No newline at end of file +ACSD_TabbedContainer=Tab control to switch between tabs. + +TT_TabDisplayer_Close=Shift + click to close all documents, Alt + click to close other documents. \ No newline at end of file diff --git a/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/TabDisplayer.java b/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/TabDisplayer.java --- a/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/TabDisplayer.java +++ b/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/TabDisplayer.java @@ -62,6 +62,9 @@ import javax.accessibility.AccessibleContext; import javax.accessibility.AccessibleSelection; import javax.swing.event.ChangeListener; +import org.netbeans.swing.tabcontrol.plaf.AbstractTabCellRenderer; +import org.netbeans.swing.tabcontrol.plaf.BasicScrollingTabDisplayerUI; +import org.netbeans.swing.tabcontrol.plaf.BasicTabDisplayerUI; import org.netbeans.swing.tabcontrol.plaf.ToolbarTabDisplayerUI; import org.netbeans.swing.tabcontrol.plaf.WinXPEditorTabDisplayerUI; import org.netbeans.swing.tabcontrol.plaf.WinXPViewTabDisplayerUI; @@ -460,7 +463,7 @@ * Gets tooltip for the tab corresponding to the mouse event, or if no * tab, delegates to the default implementation. */ - public final String getToolTipText(MouseEvent event) { + public final String getToolTipText(MouseEvent event) { if (ui != null) { Point p = event.getPoint(); if (event.getSource() != this) { @@ -468,7 +471,17 @@ p = SwingUtilities.convertPoint(c, p, this); } int index = getUI().tabForCoordinate(p); - if (index != -1) { + if (index != -1) { + if( TYPE_EDITOR == getType() ) { + TabDisplayerUI tabDisplayerUI = getUI(); + BasicTabDisplayerUI basicUI = + (BasicScrollingTabDisplayerUI)tabDisplayerUI; + AbstractTabCellRenderer cellRenderer = + (AbstractTabCellRenderer) basicUI.getTabCellRenderer(index); + if( cellRenderer.inCloseButton() ) { + return org.openide.util.NbBundle.getMessage(TabDisplayer.class, "TT_TabDisplayer_Close"); + } + } return getModel().getTab(index).tip; } } diff --git a/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/AbstractTabCellRenderer.java b/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/AbstractTabCellRenderer.java --- a/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/AbstractTabCellRenderer.java +++ b/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/AbstractTabCellRenderer.java @@ -632,7 +632,7 @@ return UIManager.getColor("TabRenderer.selectedForeground"); } - protected boolean inCloseButton() { + public boolean inCloseButton() { return (state & TabState.CLOSE_BUTTON_ARMED) != 0; } diff --git a/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/BasicTabDisplayerUI.java b/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/BasicTabDisplayerUI.java --- a/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/BasicTabDisplayerUI.java +++ b/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/BasicTabDisplayerUI.java @@ -204,7 +204,7 @@ * Get the cell renderer for a given tab. The default implementation simply * returns the renderer created by createDefaultRenderer(). */ - protected TabCellRenderer getTabCellRenderer(int tab) { + public TabCellRenderer getTabCellRenderer(int tab) { return defaultRenderer; }