Package adams.gui.flow
Class FlowMultiPagePane
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- adams.gui.core.BasePanel
-
- adams.gui.core.MultiPagePane
-
- adams.gui.flow.FlowMultiPagePane
-
- All Implemented Interfaces:
CleanUpHandler
,UISettingsSupporter
,ImageObserver
,MenuContainer
,Serializable
,Accessible
public class FlowMultiPagePane extends MultiPagePane
Specialized tabbed pane for Flow panels.- Author:
- fracpete (fracpete at waikato dot ac dot nz)
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
FlowMultiPagePane.FlowPanelFilter
For filtering panels.static class
FlowMultiPagePane.FlowTitleRenderer
The cell renderer.-
Nested classes/interfaces inherited from class adams.gui.core.MultiPagePane
MultiPagePane.DetachablePage, MultiPagePane.PageCloseApprover, MultiPagePane.PageContainer, MultiPagePane.PageUndo, MultiPagePane.PopupCustomizer, MultiPagePane.TitleRenderer, MultiPagePane.ToolTipCustomizer
-
Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
-
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 FlowPanel
m_ActiveFlow
the active flow.protected Class
m_FlowPanelClass
the flowpanel class to use.protected List<AbstractMultiPageMenuItem>
m_MenuItems
the menu items.protected FlowEditorPanel
m_Owner
the owning editor.-
Fields inherited from class adams.gui.core.MultiPagePane
m_ButtonAction, m_ButtonDown, m_ButtonRemove, m_ButtonRemoveAll, m_ButtonUndo, m_ButtonUp, m_ChangeListeners, m_IgnoreUpdates, m_LeftPanel, m_MaxPageCloseUndo, m_PageCloseApprover, m_PageList, m_PageListModel, m_PageUndoList, m_PanelContent, m_PanelListButtons, m_PopupCustomizer, m_ReadOnly, m_SkipPageUndo, m_SplitPane, m_ToolTipCustomizer
-
Fields inherited from class adams.gui.core.BasePanel
m_FileChooser
-
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
-
-
Constructor Summary
Constructors Constructor Description FlowMultiPagePane(FlowEditorPanel owner)
Initializes the tabbed pane.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected boolean
checkForModified()
Returns whether we can proceed with the operation or not, depending on whether the user saved the flow or discarded the changes.protected boolean
checkForModified(FlowPanel panel)
Returns whether we can proceed with the operation or not, depending on whether the user saved the flow or discarded the changes.protected BasePopupMenu
createPopup(MouseEvent e)
Generates the right-click menu for the JList.FlowPanel
getActiveFlow()
Returns the active flow panel (if any).FlowPanel
getCurrentPanel()
Returns the currently selected panel.Tree
getCurrentTree()
Returns the currently selected tree.int[]
getIndices(Map<FlowMultiPagePane.FlowPanelFilter,Boolean> filters)
Returns the indices of the flow panels that match the filter.FlowEditorPanel
getOwner()
Returns the owning editor.FlowPanel
getPanelAt(int index)
Returns the panel at the specified position.int
getPanelCount()
Returns the number of panels in the tabbed pane.int[]
getSelectedIndices(Map<FlowMultiPagePane.FlowPanelFilter,Boolean> filters)
Returns the indices of the selected flow panels that match the filter.Tree
getTreeAt(int index)
Returns the tree at the specified position.boolean
hasActiveFlow()
Checks whether an active flow is set.boolean
hasCurrentPanel()
Returns if a panel is available.boolean
hasCurrentTree()
Returns whether a tree is currently selected.boolean
hasPanel(String title)
Returns whether a panel with the specified title exists.int
indexOfPanel(String title)
Returns the index of the panel with the specified title.protected void
initialize()
For initializing members.boolean
isActiveFlowAt(int index)
Checks whether the flow at the given position is the active one.FlowPanel
newPanel()
Adds a new tab with an empty panel.protected MultiPagePane.TitleRenderer
newRenderer()
Returns the renderer to use.protected void
pageSelected(ChangeEvent e)
Gets called when a tab gets selected.MultiPagePane.PageContainer
removePageAt(int index)
Removes the tab atindex
.void
setActiveFlowAt(int index)
Sets the flow at the given position as the new active one.void
unsetActiveFlow()
Unsets the active flow.void
updateCurrentDirectory()
Updates the current working directory of the owner's file chooser to the one represented by this flow.protected void
updateOwnerTitle()
Updates the owner's title.void
updateTitle(FlowPanel panel, String title)
Updates the title.-
Methods inherited from class adams.gui.core.MultiPagePane
addAction, addAction, addChangeListener, addPage, addPage, addPage, addPage, addPageUndo, addRemoveItemsListener, canMoveDown, canMoveUp, canRemovePageAt, canRemoveSelectedPages, canUndoPageClose, checkedRemoveAllPages, checkedRemovePageAt, checkedRemoveSelectedPage, checkedRemoveSelectedPages, cleanUp, clearPageUndo, clearUISettingsParameters, finishInit, generateToolTip, getDetachablePageAt, getDividerLocation, getIconAt, getMaxPageCloseUndo, getPageAt, getPageCloseApprover, getPageContainerAt, getPageCount, getPageUndoList, getPopupCustomizer, getSelectedDetachablePage, getSelectedIcon, getSelectedIndex, getSelectedIndices, getSelectedPage, getSelectedPageContainer, getSelectedTitle, getTitleAt, getTitleRenderer, getToolTipCustomizer, indexOfPage, indexOfPage, initGUI, isPageClosingApproved, isPageClosingApproved, isReadOnly, moveBottom, moveDown, moveTop, moveUp, notifyChangeListeners, processListKey, removeAllPages, removeChangeListener, removeRemoveItemsListener, removeSelectedPage, removeSelectedPages, setDividerLocation, setIconAt, setMaxPageCloseUndo, setPageAt, setPageAt, setPageCloseApprover, setPopupCustomizer, setReadOnly, setSelectedIndex, setSelectedIndices, setSelectedPage, setTitleAt, setTitleRenderer, setToolTipCustomizer, setUISettingsParameters, showPopup, undoPageClose, update, updateButtons, updateTitle
-
Methods inherited from class adams.gui.core.BasePanel
afterHide, afterShow, beforeHide, beforeShow, closeParent, getParentChild, getParentDialog, getParentFrame, getParentInternalFrame, getParentTitle, initFileChooser, main, printErrorMessage, printException, saveComponent, setEnabledCascade, setEnabledCascade, setParentTitle, setVisible
-
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, 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, 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, unregisterKeyboardAction, update
-
Methods inherited from class java.awt.Container
add, add, add, add, add, 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, remove, remove, removeAll, 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
-
m_Owner
protected FlowEditorPanel m_Owner
the owning editor.
-
m_FlowPanelClass
protected Class m_FlowPanelClass
the flowpanel class to use.
-
m_MenuItems
protected List<AbstractMultiPageMenuItem> m_MenuItems
the menu items.
-
m_ActiveFlow
protected FlowPanel m_ActiveFlow
the active flow.
-
-
Constructor Detail
-
FlowMultiPagePane
public FlowMultiPagePane(FlowEditorPanel owner)
Initializes the tabbed pane.- Parameters:
owner
- the owning editor
-
-
Method Detail
-
initialize
protected void initialize()
For initializing members.- Overrides:
initialize
in classMultiPagePane
-
getOwner
public FlowEditorPanel getOwner()
Returns the owning editor.- Returns:
- the owning editor
-
newRenderer
protected MultiPagePane.TitleRenderer newRenderer()
Returns the renderer to use.- Overrides:
newRenderer
in classMultiPagePane
- Returns:
- the renderer
-
newPanel
public FlowPanel newPanel()
Adds a new tab with an empty panel.- Returns:
- the new flow panel
-
getPanelCount
public int getPanelCount()
Returns the number of panels in the tabbed pane.- Returns:
- the number of panels
-
getIndices
public int[] getIndices(Map<FlowMultiPagePane.FlowPanelFilter,Boolean> filters)
Returns the indices of the flow panels that match the filter.- Parameters:
filters
- the filters to apply- Returns:
- the indices of the panels that matched
-
getSelectedIndices
public int[] getSelectedIndices(Map<FlowMultiPagePane.FlowPanelFilter,Boolean> filters)
Returns the indices of the selected flow panels that match the filter.- Parameters:
filters
- the filters to apply- Returns:
- the indices of the panels that matched
-
getPanelAt
public FlowPanel getPanelAt(int index)
Returns the panel at the specified position.- Parameters:
index
- the tab index- Returns:
- the requested panel
-
indexOfPanel
public int indexOfPanel(String title)
Returns the index of the panel with the specified title.- Parameters:
title
- the title to check- Returns:
- the panel, -1 if not found
-
hasPanel
public boolean hasPanel(String title)
Returns whether a panel with the specified title exists.- Parameters:
title
- the title to look for- Returns:
- true if it exists
-
hasCurrentPanel
public boolean hasCurrentPanel()
Returns if a panel is available.- Returns:
- true if a panel available
-
getCurrentPanel
public FlowPanel getCurrentPanel()
Returns the currently selected panel.- Returns:
- the current panel, null if not available
-
getTreeAt
public Tree getTreeAt(int index)
Returns the tree at the specified position.- Parameters:
index
- the tab index- Returns:
- the requested tree
-
hasCurrentTree
public boolean hasCurrentTree()
Returns whether a tree is currently selected.- Returns:
- true if a tree available
-
getCurrentTree
public Tree getCurrentTree()
Returns the currently selected tree.- Returns:
- the currently selected tree, null if not available
-
checkForModified
protected boolean checkForModified()
Returns whether we can proceed with the operation or not, depending on whether the user saved the flow or discarded the changes.- Returns:
- true if safe to proceed
-
checkForModified
protected boolean checkForModified(FlowPanel panel)
Returns whether we can proceed with the operation or not, depending on whether the user saved the flow or discarded the changes.- Parameters:
panel
- the panel to check- Returns:
- true if safe to proceed
-
pageSelected
protected void pageSelected(ChangeEvent e)
Gets called when a tab gets selected.- Parameters:
e
- the event that triggered the action
-
updateOwnerTitle
protected void updateOwnerTitle()
Updates the owner's title.
-
updateTitle
public void updateTitle(FlowPanel panel, String title)
Updates the title.- Parameters:
panel
- the panel to update the title fortitle
- the new title
-
updateCurrentDirectory
public void updateCurrentDirectory()
Updates the current working directory of the owner's file chooser to the one represented by this flow.
-
removePageAt
public MultiPagePane.PageContainer removePageAt(int index)
Removes the tab atindex
. After the component associated withindex
is removed, its visibility is reset to true to ensure it will be visible if added to other containers.- Overrides:
removePageAt
in classMultiPagePane
- Parameters:
index
- the index of the tab to be removed- Returns:
- the removed container
-
hasActiveFlow
public boolean hasActiveFlow()
Checks whether an active flow is set.- Returns:
- true if active flow set
-
unsetActiveFlow
public void unsetActiveFlow()
Unsets the active flow.
-
getActiveFlow
public FlowPanel getActiveFlow()
Returns the active flow panel (if any).- Returns:
- the panel, null if no active one set
-
isActiveFlowAt
public boolean isActiveFlowAt(int index)
Checks whether the flow at the given position is the active one.- Parameters:
index
- the page index- Returns:
- true if it is the active one
-
setActiveFlowAt
public void setActiveFlowAt(int index)
Sets the flow at the given position as the new active one.- Parameters:
index
- the flow to use as active one
-
createPopup
protected BasePopupMenu createPopup(MouseEvent e)
Generates the right-click menu for the JList.- Overrides:
createPopup
in classMultiPagePane
- Parameters:
e
- the event that triggered the popup- Returns:
- the generated menu
- See Also:
MultiPagePane.showPopup(MouseEvent)
-
-