Package adams.gui.flow.tab
Class FlowTabManager
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JTabbedPane
-
- adams.gui.core.BaseTabbedPane
-
- adams.gui.core.BaseTabbedPaneWithTabHiding
-
- adams.gui.flow.tab.FlowTabManager
-
- All Implemented Interfaces:
CleanUpHandler
,ImageObserver
,MenuContainer
,Serializable
,Accessible
,SwingConstants
public class FlowTabManager extends BaseTabbedPaneWithTabHiding implements CleanUpHandler
Specialized JTabbedPane for managing tabs in the flow editor.- Author:
- fracpete (fracpete at waikato dot ac dot nz)
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class adams.gui.core.BaseTabbedPaneWithTabHiding
BaseTabbedPaneWithTabHiding.PageBackup<T>
-
Nested classes/interfaces inherited from class adams.gui.core.BaseTabbedPane
BaseTabbedPane.MiddleMouseButtonCloseApprover, BaseTabbedPane.TabUndo, BaseTabbedPane.TabUndoList
-
Nested classes/interfaces inherited from class javax.swing.JTabbedPane
JTabbedPane.AccessibleJTabbedPane, JTabbedPane.ModelListener
-
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
-
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
-
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
-
-
Field Summary
Fields Modifier and Type Field Description protected DelayedActionRunnable
m_NotifyingSelectionAwareTabsRunnable
the runnable for notifying selection aware tabs.protected Thread
m_NotifyingSelectionAwareTabsThread
the thread for notifying selection aware tabs.protected DelayedActionRunnable
m_NotifyingTabChangeListenersRunnable
the runnable for notifying tab change listeners.protected Thread
m_NotifyingTabChangeListenersThread
the thread for notifying tab change listeners.protected FlowEditorPanel
m_Owner
the flow editor that the tab manager belongs to.protected static Properties
m_Properties
the properties.protected List<AbstractEditorTab>
m_TabList
all the available tabs.static String
MENUITEM_TABS
the default menu item text.static String
SESSION_FILE
the file to store the tab setup in.static String
SUFFIX_VISIBLE
the sufix for the session file.-
Fields inherited from class adams.gui.core.BaseTabbedPaneWithTabHiding
m_HiddenPages, m_TabVisibilityChangeListeners
-
Fields inherited from class adams.gui.core.BaseTabbedPane
m_CloseTabsWithMiddleMouseButton, m_DetachableTabs, m_MaxTabCloseUndo, m_MaxTitleLength, m_MiddleMouseButtonCloseApprover, m_PromptUserWhenClosingTab, m_ShowCloseTabButton, m_SkipTabUndo, m_TabChangeListeners, m_TabClosedListeners, m_TabUndoList
-
Fields inherited from class javax.swing.JTabbedPane
changeEvent, changeListener, model, SCROLL_TAB_LAYOUT, tabPlacement, WRAP_TAB_LAYOUT
-
Fields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
-
Fields inherited from class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
-
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
-
Fields inherited from interface javax.swing.SwingConstants
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
-
-
Constructor Summary
Constructors Constructor Description FlowTabManager(FlowEditorPanel owner)
Initializes the tab manager.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addTabsSubmenu(JMenu menu)
Adds all the available tabs.void
cleanUp()
Cleans up data structures, frees up memory.protected String
createPropertyKey(Class cls)
Creates the key for the property.FlowEditorPanel
getOwner()
Returns the editor panel that owns this tab manager.static Properties
getProperties()
Returns the properties that define the editor.AbstractEditorTab
getTab(Class cls)
Returns the tab instance of the given class.protected void
initGUI()
Performs further initializations of widgets.protected void
initialize()
Initializes the widget.boolean
isVisible(Class cls)
Returns whether a tab should be visible or not.void
notifyTabs(FlowPanel panel)
Notifies all the tab change aware tabs that a different flow panel was selected.void
notifyTabs(TreePath[] paths, Actor[] actors)
Notifies all the selection aware tabs that the selection of actors has changed.void
refresh(Tree tree)
Notifies all the tabs.void
setAllVisible(boolean value)
Sets whether all tabs should be visible or not (excluding runtime tabs).void
setVisible(Class cls, boolean value)
Sets whether a tab should be visible or not.void
setVisible(Class cls, boolean value, boolean update)
Sets whether a tab should be visible or not.protected void
tabClicked(MouseEvent e)
Gets called when the user clicks on a tab.protected void
updateMenu(JMenu menu)
Updates the specified menu with the current enabled/disabled state of the tabs.protected boolean
updateProperties()
Saves the current properties.-
Methods inherited from class adams.gui.core.BaseTabbedPaneWithTabHiding
addHiddenTab, addHiddenTab, addHiddenTab, addTabVisibilityChangeListener, displayTab, displayTab, getHiddenComponent, hideTab, hideTab, hideTab, isHidden, isHidden, notifyTabVisibiltiyChangeListeners, removeAll, removeHidden, removeHidden, remvoeTabVisibilityChangeListener
-
Methods inherited from class adams.gui.core.BaseTabbedPane
addTabChangeListener, addTabClosedListeners, addTabUndo, afterTabClosedWithMiddleMouseButton, canCloseTab, canCloseTabWithMiddleMouseButton, canMoveTabTo, canMoveTabToEnd, canMoveTabToLeft, canMoveTabToRight, canMoveTabToStart, canUndoTabClose, clearTabChangeListeners, clearTabClosedListeners, finishInit, generateTabUndo, getCloseTabsWithMiddelMouseButton, getDetachableTabs, getMaxTabCloseUndo, getMaxTitleLength, getMiddleMouseButtonCloseApprover, getPromptUserWhenClosingTab, getShowCloseTabButton, getTabMoveSubMenu, getTabUndoList, insertTab, moveTabTo, moveTabToEnd, moveTabToLeft, moveTabToRight, moveTabToStart, notifyTabChangeListeners, notifyTabClosedListeners, removeSelectedTab, removeTabAt, removeTabChangeListener, removeTabClosedListeners, setCloseTabsWithMiddleMouseButton, setDetachableTabs, setMaxTabCloseUndo, setMaxTitleLength, setMiddleMouseButtonCloseApprover, setPromptUserWhenClosingTab, setShortenedTitleAt, setShowCloseTabButton, setTitleAt, undoTabClose, updateTabComponents
-
Methods inherited from class javax.swing.JTabbedPane
add, add, add, add, add, addChangeListener, addTab, addTab, addTab, createChangeListener, fireStateChanged, getAccessibleContext, getBackgroundAt, getBoundsAt, getChangeListeners, getComponentAt, getDisabledIconAt, getDisplayedMnemonicIndexAt, getForegroundAt, getIconAt, getMnemonicAt, getModel, getSelectedComponent, getSelectedIndex, getTabComponentAt, getTabCount, getTabLayoutPolicy, getTabPlacement, getTabRunCount, getTitleAt, getToolTipText, getToolTipTextAt, getUI, getUIClassID, indexAtLocation, indexOfComponent, indexOfTab, indexOfTab, indexOfTabComponent, isEnabledAt, paramString, remove, remove, removeChangeListener, setBackgroundAt, setComponentAt, setDisabledIconAt, setDisplayedMnemonicIndexAt, setEnabledAt, setForegroundAt, setIconAt, setMnemonicAt, setModel, setSelectedComponent, setSelectedIndex, setTabComponentAt, setTabLayoutPolicy, setTabPlacement, setToolTipTextAt, setUI, updateUI
-
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
-
Methods inherited from class java.awt.Container
addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
-
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
Field Detail
-
SESSION_FILE
public static final String SESSION_FILE
the file to store the tab setup in.- See Also:
- Constant Field Values
-
MENUITEM_TABS
public static final String MENUITEM_TABS
the default menu item text.- See Also:
- Constant Field Values
-
SUFFIX_VISIBLE
public static final String SUFFIX_VISIBLE
the sufix for the session file.- See Also:
- Constant Field Values
-
m_Owner
protected FlowEditorPanel m_Owner
the flow editor that the tab manager belongs to.
-
m_Properties
protected static Properties m_Properties
the properties.
-
m_TabList
protected List<AbstractEditorTab> m_TabList
all the available tabs.
-
m_NotifyingSelectionAwareTabsThread
protected transient Thread m_NotifyingSelectionAwareTabsThread
the thread for notifying selection aware tabs.
-
m_NotifyingSelectionAwareTabsRunnable
protected transient DelayedActionRunnable m_NotifyingSelectionAwareTabsRunnable
the runnable for notifying selection aware tabs.
-
m_NotifyingTabChangeListenersThread
protected transient Thread m_NotifyingTabChangeListenersThread
the thread for notifying tab change listeners.
-
m_NotifyingTabChangeListenersRunnable
protected transient DelayedActionRunnable m_NotifyingTabChangeListenersRunnable
the runnable for notifying tab change listeners.
-
-
Constructor Detail
-
FlowTabManager
public FlowTabManager(FlowEditorPanel owner)
Initializes the tab manager.- Parameters:
owner
- the editor panel tha the manager belongs to
-
-
Method Detail
-
initialize
protected void initialize()
Initializes the widget.- Overrides:
initialize
in classBaseTabbedPaneWithTabHiding
-
initGUI
protected void initGUI()
Performs further initializations of widgets.- Overrides:
initGUI
in classBaseTabbedPane
-
getOwner
public FlowEditorPanel getOwner()
Returns the editor panel that owns this tab manager.- Returns:
- the owner
-
tabClicked
protected void tabClicked(MouseEvent e)
Gets called when the user clicks on a tab.- Overrides:
tabClicked
in classBaseTabbedPane
- See Also:
BaseTabbedPane.getCloseTabsWithMiddelMouseButton()
,BaseTabbedPane.canCloseTabWithMiddleMouseButton(int)
-
notifyTabs
public void notifyTabs(TreePath[] paths, Actor[] actors)
Notifies all the selection aware tabs that the selection of actors has changed.- Parameters:
paths
- the selected pathsactors
- the selected actors
-
notifyTabs
public void notifyTabs(FlowPanel panel)
Notifies all the tab change aware tabs that a different flow panel was selected.- Parameters:
panel
- the current panel
-
refresh
public void refresh(Tree tree)
Notifies all the tabs.- Parameters:
tree
- the tree to use as basis
-
addTabsSubmenu
public void addTabsSubmenu(JMenu menu)
Adds all the available tabs.- Parameters:
menu
- the menu to add the "Send to" submenu to if available
-
updateMenu
protected void updateMenu(JMenu menu)
Updates the specified menu with the current enabled/disabled state of the tabs.- Parameters:
menu
- the menu to update
-
createPropertyKey
protected String createPropertyKey(Class cls)
Creates the key for the property.- Parameters:
cls
- the tab class- Returns:
- the property key
- See Also:
SUFFIX_VISIBLE
-
isVisible
public boolean isVisible(Class cls)
Returns whether a tab should be visible or not.- Parameters:
cls
- the tab class- Returns:
- true if the tab is visible by default (if not a
RuntimeTab
tab)
-
setVisible
public void setVisible(Class cls, boolean value)
Sets whether a tab should be visible or not.- Parameters:
cls
- the tab classvalue
- if true then the tab is made visible by default
-
setVisible
public void setVisible(Class cls, boolean value, boolean update)
Sets whether a tab should be visible or not.- Parameters:
cls
- the tab classvalue
- if true then the tab is made visible by defaultupdate
- whether to update the properties
-
setAllVisible
public void setAllVisible(boolean value)
Sets whether all tabs should be visible or not (excluding runtime tabs).- Parameters:
value
- if true then the tab is made visible by default
-
getTab
public AbstractEditorTab getTab(Class cls)
Returns the tab instance of the given class.- Parameters:
cls
- the class of tab to get the instance for- Returns:
- the tab instance
-
updateProperties
protected boolean updateProperties()
Saves the current properties.- Returns:
- true if successfully updated
-
getProperties
public static Properties getProperties()
Returns the properties that define the editor.- Returns:
- the properties
-
cleanUp
public void cleanUp()
Cleans up data structures, frees up memory.- Specified by:
cleanUp
in interfaceCleanUpHandler
-
-