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 DelayedActionRunnablem_NotifyingSelectionAwareTabsRunnablethe runnable for notifying selection aware tabs.protected Threadm_NotifyingSelectionAwareTabsThreadthe thread for notifying selection aware tabs.protected DelayedActionRunnablem_NotifyingTabChangeListenersRunnablethe runnable for notifying tab change listeners.protected Threadm_NotifyingTabChangeListenersThreadthe thread for notifying tab change listeners.protected FlowEditorPanelm_Ownerthe flow editor that the tab manager belongs to.protected static Propertiesm_Propertiesthe properties.protected List<AbstractEditorTab>m_TabListall the available tabs.static StringMENUITEM_TABSthe default menu item text.static StringSESSION_FILEthe file to store the tab setup in.static StringSUFFIX_VISIBLEthe 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 voidaddTabsSubmenu(JMenu menu)Adds all the available tabs.voidcleanUp()Cleans up data structures, frees up memory.protected StringcreatePropertyKey(Class cls)Creates the key for the property.FlowEditorPanelgetOwner()Returns the editor panel that owns this tab manager.static PropertiesgetProperties()Returns the properties that define the editor.AbstractEditorTabgetTab(Class cls)Returns the tab instance of the given class.protected voidinitGUI()Performs further initializations of widgets.protected voidinitialize()Initializes the widget.booleanisVisible(Class cls)Returns whether a tab should be visible or not.voidnotifyTabs(FlowPanel panel)Notifies all the tab change aware tabs that a different flow panel was selected.voidnotifyTabs(TreePath[] paths, Actor[] actors)Notifies all the selection aware tabs that the selection of actors has changed.voidrefresh(Tree tree)Notifies all the tabs.voidsetAllVisible(boolean value)Sets whether all tabs should be visible or not (excluding runtime tabs).voidsetVisible(Class cls, boolean value)Sets whether a tab should be visible or not.voidsetVisible(Class cls, boolean value, boolean update)Sets whether a tab should be visible or not.protected voidtabClicked(MouseEvent e)Gets called when the user clicks on a tab.protected voidupdateMenu(JMenu menu)Updates the specified menu with the current enabled/disabled state of the tabs.protected booleanupdateProperties()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:
initializein classBaseTabbedPaneWithTabHiding
-
initGUI
protected void initGUI()
Performs further initializations of widgets.- Overrides:
initGUIin 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:
tabClickedin 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
RuntimeTabtab)
-
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:
cleanUpin interfaceCleanUpHandler
-
-