package net.sourceforge.squirrel_sql.client.gui.desktopcontainer.docktabdesktop; import net.sourceforge.squirrel_sql.client.IApplication; import javax.swing.*; import java.awt.event.ActionEvent; public class ScrollableTabHandler { private DesktopTabbedPane _tabbedPane; private boolean _useScrollableTabbedPanesForSessionTabs; public ScrollableTabHandler(IApplication app, DesktopTabbedPane tabbedPane) { _useScrollableTabbedPanesForSessionTabs = app.getSquirrelPreferences().getUseScrollableTabbedPanesForSessionTabs(); if(false == _useScrollableTabbedPanesForSessionTabs) { return; } _tabbedPane = tabbedPane; _tabbedPane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT); } public void tabAdded() { if(false == _useScrollableTabbedPanesForSessionTabs) { return; } SwingUtilities.invokeLater( new Runnable() { public void run() { Action action = _tabbedPane.getActionMap().get("scrollTabsForwardAction"); action.actionPerformed(new ActionEvent(_tabbedPane, ActionEvent.ACTION_PERFORMED, "")); } }); } public void tabRemoved() { if(false == _useScrollableTabbedPanesForSessionTabs) { return; } SwingUtilities.invokeLater( new Runnable() { public void run() { Action action = _tabbedPane.getActionMap().get("scrollTabsBackwardAction"); action.actionPerformed(new ActionEvent(_tabbedPane, ActionEvent.ACTION_PERFORMED, "")); } }); } }