T - the type of the tabsM - the type of the menusI - the type of the additional info panelpublic abstract class CombinedStackDockComponent<T extends CombinedTab,M extends CombinedMenu,I extends CombinedInfoComponent> extends AbstractTabPane<T,M,I> implements StackDockComponent
StackDockComponent which is a combination of other components.TabPane and thus supports the
TabLayoutManager.| Modifier and Type | Class and Description |
|---|---|
protected class |
CombinedStackDockComponent.Meta
Meta information about a
Dockable that is shown on this
CombinedStackDockComponent. |
LAYOUT_MANAGER, USE_SMALL_MINIMUM_SIZE| Constructor and Description |
|---|
CombinedStackDockComponent()
Constructs a new component.
|
| Modifier and Type | Method and Description |
|---|---|
void |
addStackDockComponentListener(StackDockComponentListener listener)
Adds a listener to this component, it will be called if the selection changes.
|
void |
addTab(String title,
Icon icon,
Component comp,
Dockable dockable)
Adds a new child at an unspecified location.
|
protected void |
addToMenu(M menu,
Dockable dockable)
Adds
dockable somewhere to menu |
protected void |
clearTabs()
Removes all tabs from the internal data structure.
Subclasses may override this method to be informed about the exact time when a tab changes, but the overridden method must call the original method. |
protected BackgroundAlgorithm |
createBackground(CombinedStackDockComponent<T,M,I> self)
Creates the background algorithm that is used for
this component. |
protected BorderForwarder |
createContentBorderModifier(Dockable dockable,
JComponent component)
Creates a
BorderForwarder for the content component for the tab of dockable |
protected CombinedStackDockContentPane |
createContentPane(CombinedStackDockComponent<T,M,I> self)
Creates the content pane for
this component. |
DockElementRepresentative |
createDefaultRepresentation(DockElement target)
Creates and returns a new
DockElementRepresentative representing target,
the new representation is to be used to cover all the empty areas on this StackDockComponent. |
protected Component |
createLayerAt(Component component,
Dockable dockable)
Creates a layer between
component and this panel. |
protected void |
fireTabChanged(Dockable dockable)
Calls
StackDockComponentListener.tabChanged(StackDockComponent, Dockable) on all listeners that
are currently registered. |
Rectangle |
getAvailableArea()
Gets the area in which all the
Tabs, TabMenus and
the visible Dockable (TabPane.setSelectedBounds(Rectangle))
must find their place. |
Rectangle |
getBoundsAt(int index)
Gets the location and size of the graphical element that allows
the user to select the
index'th child. |
JComponent |
getComponent()
Gets a
Component on which the children of this
StackDockComponent will be displayed. |
TabConfiguration |
getConfiguration(Dockable child)
|
protected CombinedStackDockComponent.Meta |
getContentAt(int index)
Gets the meta information about the components at location
index |
Dockable |
getDockableAt(int index)
Gets the
Dockable which was placed at the index'th position. |
int |
getIndexOfTabAt(Point mouseLocation)
Gets the index of the tab that is beneath
mouseLocation. |
CombinedHandler<AbstractTabPaneComponent> |
getInfoHandler()
Gets a handler for info components.
|
Component |
getLayerAt(int index)
Gets the index'th
Component on this tab. |
CombinedHandler<CombinedMenu> |
getMenuHandler()
Gets a handler for menus.
|
Dimension |
getMinimumSize()
Gets the minimal size required to have a big enough
TabPane.getAvailableArea() to show
all content. |
Dimension |
getMinimumSize(Dockable dockable)
Gets the minimum size that is required to show the child
dockable. |
T |
getOnTab(Dockable dockable)
Gets the tab-button for
dockable, if no tab-button
for dockable exists a new button should be created. |
Dimension |
getPreferredSize()
Gets the preferred size required to have a big enough
TabPane.getAvailableArea() to show
all content. |
Dimension |
getPreferredSize(Dockable dockable)
Gets the preferred size that is required to show the child
dockable. |
Rectangle |
getSelectedBounds()
Gets the boundaries the
selected Dockable
has (independent of whether such a Dockable exists). |
int |
getSelectedIndex()
Gets the index of the currently selected dockable
|
DockElementRepresentative |
getTabAt(int index)
Gets an element representing the tab of the
Dockable at index. |
int |
getTabCount()
Gets the number of children that are added to this StackDockComponent.
|
CombinedHandler<CombinedTab> |
getTabHandler()
Gets a handler for tabs.
|
protected int |
getZOrder(Component component)
Gets the z order of
component. |
void |
insertTab(String title,
Icon icon,
Component comp,
Dockable dockable,
int index)
Adds a new child at the location
index. |
void |
moveTab(int source,
int destination)
Moves the tab at
source to location destination. |
T |
putOnTab(Dockable dockable)
Informs this pane that its child
dockable should have a
tab-button. |
protected T |
putTab(Dockable dockable,
T tab)
Associates
tab with dockable. |
void |
remove(int index)
Removes the
index'th element of this pane. |
void |
removeAll()
Removes all elements from this pane.
|
protected void |
removeFromMenu(M menu,
Dockable dockable)
Removes
dockable from menu. |
void |
removeStackDockComponentListener(StackDockComponentListener listener)
Removes
listener from this component. |
protected T |
removeTab(Dockable dockable)
Removes the tab of
dockable from the internal data structure. |
void |
repaint()
Repaints the contents of this component.
|
void |
revalidate()
Called when the layout of this pane has become invalid, the default
behavior is to call
AbstractTabPane.doLayout(). |
void |
setComponentAt(int index,
Component component)
Sets the component which should be shown at tab
index. |
void |
setController(DockController controller)
Connects this pane with
controller. |
protected void |
setEnabledAt(Dockable dockable,
boolean enabled)
Changes the enabled state of the item
dockable. |
void |
setIconAt(int index,
Icon newIcon)
Sets the icon of the child at location
index. |
void |
setSelectedBounds(Rectangle bounds)
Sets the boundaries of the
selected Dockable. |
void |
setSelectedDockable(Dockable dockable)
Selects the child
dockable of this pane as the one visible
element. |
void |
setSelectedIndex(int index)
Selects the component at location
index. |
void |
setTitleAt(int index,
String newTitle)
Sets the title of the child at location
index. |
void |
setTooltipAt(int index,
String newTooltip)
Sets the tooltip of the child at location
index. |
protected void |
setZOrder(Component component,
int order)
Sets the z order of
component, as higher the z order
as later the component is painted, as more components it can overlap. |
addTabPaneListener, createMenu, destroyMenu, discardComponentsAndRebuild, doLayout, fireAdded, fireControllerChanged, fireInfoComponentChanged, fireRemoved, fireSelectionChanged, getController, getDockable, getDockableCount, getDockables, getDockTabPlacement, getInfoComponent, getLayoutManager, getMenu, getMenuList, getMenus, getSelectedDockable, getTab, getTabs, getTabsList, getVisibleTab, getVisibleTabCount, indexOf, indexOfVisible, insert, listeners, menuRemoved, move, newMenu, newTab, putInMenu, removeTabPaneListener, setDockTabPlacement, setInfoComponent, setLayoutManager, tabRemovedclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetDockTabPlacement, hasBorder, isSingleTabComponent, setDockTabPlacementpublic CombinedStackDockComponent()
protected CombinedStackDockContentPane createContentPane(CombinedStackDockComponent<T,M,I> self)
this component. This method
may be called by the constructor.self - thisnullprotected BackgroundAlgorithm createBackground(CombinedStackDockComponent<T,M,I> self)
this component. This method
may be called by the constructor.self - thisnullpublic void revalidate()
AbstractTabPaneAbstractTabPane.doLayout(). Subclasses may override to
update the layout lazily.revalidate in class AbstractTabPane<T extends CombinedTab,M extends CombinedMenu,I extends CombinedInfoComponent>public void repaint()
public void addStackDockComponentListener(StackDockComponentListener listener)
StackDockComponentaddStackDockComponentListener in interface StackDockComponentlistener - the new listener, not nullpublic void removeStackDockComponentListener(StackDockComponentListener listener)
StackDockComponentlistener from this component.removeStackDockComponentListener in interface StackDockComponentlistener - the listener to removeprotected void fireTabChanged(Dockable dockable)
StackDockComponentListener.tabChanged(StackDockComponent, Dockable) on all listeners that
are currently registered.dockable - the element whose tab changedpublic void setController(DockController controller)
AbstractTabPanecontroller.setController in interface StackDockComponentsetController in class AbstractTabPane<T extends CombinedTab,M extends CombinedMenu,I extends CombinedInfoComponent>controller - the realm in which this pane works, may be nullpublic TabConfiguration getConfiguration(Dockable child)
child - some child of this StackDockComponentTabConfiguration that should be used for its tabpublic CombinedHandler<CombinedTab> getTabHandler()
CombinedTabs from this component in order to change
their visibility.public CombinedHandler<CombinedMenu> getMenuHandler()
CombinedMenus from this component in order to change
their visibility.public CombinedHandler<AbstractTabPaneComponent> getInfoHandler()
AbstractTabPaneComponents from this component in order to change
their visibility.public Rectangle getAvailableArea()
TabPaneTabs, TabMenus and
the visible Dockable (TabPane.setSelectedBounds(Rectangle))
must find their place.getAvailableArea in interface TabPanewidth and
height 1.public Dimension getMinimumSize()
AbstractTabPaneTabPane.getAvailableArea() to show
all content.getMinimumSize in class AbstractTabPane<T extends CombinedTab,M extends CombinedMenu,I extends CombinedInfoComponent>public Dimension getPreferredSize()
AbstractTabPaneTabPane.getAvailableArea() to show
all content.getPreferredSize in class AbstractTabPane<T extends CombinedTab,M extends CombinedMenu,I extends CombinedInfoComponent>public Rectangle getSelectedBounds()
TabPaneselected Dockable
has (independent of whether such a Dockable exists).getSelectedBounds in interface TabPanenullpublic void setSelectedBounds(Rectangle bounds)
TabPaneselected Dockable.setSelectedBounds in interface TabPanebounds - the boundaries of the selected childpublic int getSelectedIndex()
StackDockComponentgetSelectedIndex in interface StackDockComponentpublic void setSelectedIndex(int index)
StackDockComponentindex.setSelectedIndex in interface StackDockComponentindex - the index of the selected componentpublic void setSelectedDockable(Dockable dockable)
AbstractTabPanedockable of this pane as the one visible
element.setSelectedDockable in interface TabPanesetSelectedDockable in class AbstractTabPane<T extends CombinedTab,M extends CombinedMenu,I extends CombinedInfoComponent>dockable - the newly selected element, can be nullpublic Rectangle getBoundsAt(int index)
StackDockComponentindex'th child.getBoundsAt in interface StackDockComponentindex - the index of the childnull
if the element is not directly visiblepublic int getIndexOfTabAt(Point mouseLocation)
StackDockComponentmouseLocation.getIndexOfTabAt in interface StackDockComponentmouseLocation - the location of the mouse on the component-1public int getTabCount()
StackDockComponentgetTabCount in interface StackDockComponentpublic void addTab(String title, Icon icon, Component comp, Dockable dockable)
StackDockComponentaddTab in interface StackDockComponenttitle - the title of the childicon - an icon to display for the child or nullcomp - the new child to displaydockable - the Dockable for which the tab is usedpublic void insertTab(String title, Icon icon, Component comp, Dockable dockable, int index)
StackDockComponentindex.insertTab in interface StackDockComponenttitle - the title of the childicon - an icon to display for the child or nullcomp - the new child to displaydockable - the Dockable for which the tab is usedindex - the index that the new child should havepublic Dimension getMinimumSize(Dockable dockable)
TabPanedockable.getMinimumSize in interface TabPanedockable - one of the children of this panedockablepublic Dimension getPreferredSize(Dockable dockable)
TabPanedockable.getPreferredSize in interface TabPanedockable - one of the children of this panedockablepublic Dockable getDockableAt(int index)
StackDockComponentDockable which was placed at the index'th position.getDockableAt in interface StackDockComponentindex - the position of the elementpublic DockElementRepresentative getTabAt(int index)
StackDockComponentDockable at index.getTabAt in interface StackDockComponentindex - the index of some child of this stacknull if no tab exists or tabs cannot be used as DockElementRepresentativespublic void moveTab(int source,
int destination)
StackDockComponentsource to location destination.moveTab in interface StackDockComponentsource - the item to movedestination - the target destinationpublic void remove(int index)
AbstractTabPaneindex'th element of this pane.remove in interface StackDockComponentremove in class AbstractTabPane<T extends CombinedTab,M extends CombinedMenu,I extends CombinedInfoComponent>index - the index of the element to removepublic void removeAll()
AbstractTabPaneremoveAll in interface StackDockComponentremoveAll in class AbstractTabPane<T extends CombinedTab,M extends CombinedMenu,I extends CombinedInfoComponent>public T putOnTab(Dockable dockable)
TabPanedockable should have a
tab-button. This TabPane may create a new Tab
or reuse an existing Tab. Reusing an existing tab is
recommended. If dockable was part of a TabMenu,
then it should be removed from that menu.dockable already is on a tab then this tab should be reused.putOnTab in interface TabPaneputOnTab in class AbstractTabPane<T extends CombinedTab,M extends CombinedMenu,I extends CombinedInfoComponent>dockable - the element which needs a tab-buttonTab that is only used for dockablepublic T getOnTab(Dockable dockable)
TabPanedockable, if no tab-button
for dockable exists a new button should be created. Reusing
existing tabs is recommended. Other than TabPane.putOnTab(Dockable) this
method must not affect any TabMenu showing Dockable.getOnTab in interface TabPanegetOnTab in class AbstractTabPane<T extends CombinedTab,M extends CombinedMenu,I extends CombinedInfoComponent>dockable - the element whose tab is requesteddockableprotected T putTab(Dockable dockable, T tab)
AbstractTabPanetab with dockable. this method
modifies the internal data structure in order to store the change.putTab in class AbstractTabPane<T extends CombinedTab,M extends CombinedMenu,I extends CombinedInfoComponent>dockable - the key for the tab-maptab - the value for the tab-mapdockableprotected T removeTab(Dockable dockable)
AbstractTabPanedockable from the internal data structure.removeTab in class AbstractTabPane<T extends CombinedTab,M extends CombinedMenu,I extends CombinedInfoComponent>dockable - the key of the element to be removed from the tab-mapprotected void clearTabs()
AbstractTabPaneclearTabs in class AbstractTabPane<T extends CombinedTab,M extends CombinedMenu,I extends CombinedInfoComponent>protected void addToMenu(M menu, Dockable dockable)
AbstractTabPanedockable somewhere to menuaddToMenu in class AbstractTabPane<T extends CombinedTab,M extends CombinedMenu,I extends CombinedInfoComponent>menu - a menu of this panedockable - a new child of menuprotected void removeFromMenu(M menu, Dockable dockable)
AbstractTabPanedockable from menu.removeFromMenu in class AbstractTabPane<T extends CombinedTab,M extends CombinedMenu,I extends CombinedInfoComponent>menu - some menu of this panedockable - a child of menuprotected Component createLayerAt(Component component, Dockable dockable)
component and this panel. The
object component is a representation of dockable
but not necessarily dockable itself. The default
behavior of this method is to return component.component - the representation of dockabledockable - the element for which a new layer is createdcomponent
or componentpublic Component getLayerAt(int index)
Component on this tab. This Component
is not a Dockable but a layer between dockable and this panel.index - the index of a tab.protected CombinedStackDockComponent.Meta getContentAt(int index)
indexindex - the index of a tabpublic void setTitleAt(int index,
String newTitle)
StackDockComponentindex.setTitleAt in interface StackDockComponentindex - the index of the childnewTitle - the new titlepublic void setTooltipAt(int index,
String newTooltip)
StackDockComponentindex.setTooltipAt in interface StackDockComponentindex - the index of the childnewTooltip - the new tooltip, can be nullpublic void setIconAt(int index,
Icon newIcon)
StackDockComponentindex.setIconAt in interface StackDockComponentindex - the index of the childnewIcon - the new icon, null if no icon
should be displayedpublic void setComponentAt(int index,
Component component)
StackDockComponentindex.setComponentAt in interface StackDockComponentindex - the index where to show componentcomponent - the new content, not nullprotected void setEnabledAt(Dockable dockable, boolean enabled)
dockable.dockable - the tab whose state is to be changedenabled - the new enabled statepublic JComponent getComponent()
StackDockComponentComponent on which the children of this
StackDockComponent will be displayed.getComponent in interface StackDockComponentComponentprotected void setZOrder(Component component, int order)
component, as higher the z order
as later the component is painted, as more components it can overlap.component - some child of this paneorder - the orderprotected int getZOrder(Component component)
component.component - some child of this panepublic DockElementRepresentative createDefaultRepresentation(DockElement target)
StackDockComponentDockElementRepresentative representing target,
the new representation is to be used to cover all the empty areas on this StackDockComponent.createDefaultRepresentation in interface StackDockComponenttarget - the target for the new representative, may or may not be a child of this component, not nullnull if this StackDockComponent does not allow to
use its free spacesprotected BorderForwarder createContentBorderModifier(Dockable dockable, JComponent component)
BorderForwarder for the content component for the tab of dockabledockable - the item that is showncomponent - the component which is influencedCopyright © 2017 Docking Frames. All rights reserved.