bibliothek.extension.gui.dock.theme.eclipse.stack.tab
Class BaseTabComponent

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by bibliothek.gui.dock.util.swing.DComponent
                  extended by bibliothek.extension.gui.dock.theme.eclipse.stack.tab.BaseTabComponent
All Implemented Interfaces:
TabComponent, DockElementRepresentative, ImageObserver, MenuContainer, Serializable
Direct Known Subclasses:
ArchGradientPainter, RectGradientPainter

@ColorCodes(value={"stack.tab.border","stack.tab.border.selected","stack.tab.border.selected.focused","stack.tab.border.selected.focuslost","stack.tab.top","stack.tab.top.selected","stack.tab.top.selected.focused","stack.tab.top.selected.focuslost","stack.tab.bottom","stack.tab.bottom.selected","stack.tab.bottom.selected.focused","stack.tab.bottom.selected.focuslost","stack.tab.text","stack.tab.text.selected","stack.tab.text.selected.focused","stack.tab.text.selected.focuslost","stack.border"})
public abstract class BaseTabComponent
extends DComponent
implements TabComponent

A base implementation of TabComponent.

Author:
Benjamin Sigg
See Also:
Serialized Form

Nested Class Summary
 
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.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
protected  TabColor colorStackBorder
           
protected  TabColor colorStackTabBorder
           
protected  TabColor colorStackTabBorderSelected
           
protected  TabColor colorStackTabBorderSelectedFocused
           
protected  TabColor colorStackTabBorderSelectedFocusLost
           
protected  TabColor colorStackTabBottom
           
protected  TabColor colorStackTabBottomSelected
           
protected  TabColor colorStackTabBottomSelectedFocused
           
protected  TabColor colorStackTabBottomSelectedFocusLost
           
protected  TabColor colorStackTabText
           
protected  TabColor colorStackTabTextSelected
           
protected  TabColor colorStackTabTextSelectedFocused
           
protected  TabColor colorStackTabTextSelectedFocusLost
           
protected  TabColor colorStackTabTop
           
protected  TabColor colorStackTabTopSelected
           
protected  TabColor colorStackTabTopSelectedFocused
           
protected  TabColor colorStackTabTopSelectedFocusLost
           
protected  TabFont fontFocused
           
protected  TabFont fontSelected
           
protected  TabFont fontUnselected
           
 
Fields inherited from class javax.swing.JComponent
accessibleContext, 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
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
BaseTabComponent(EclipseTabPane pane, Dockable dockable)
          Creates a new TabComponent
 
Method Summary
 void addMouseInputListener(MouseInputListener listener)
          Adds a listener to this representative, it is not defined what to do with that listener, but most subclasses would just add the listener to their component.
 void bind()
          Informs this tab that it will be shown soon
 boolean doPaintIconWhenInactive()
           
 ButtonPanel getButtons()
           
 Component getComponent()
          Gets the Component which represents the element.
 DockController getController()
           
 Dockable getDockable()
           
 int getDockableIndex()
          Tells which index the dockable of this tab has on the owner.
 DockElement getElement()
          Gets the element which is represented by this.
 EclipseTabPane getPane()
          Gets the parent of this component.
 Point getPopupLocation(Point click, boolean popupTrigger)
          Tells whether a popup menu should be opened when the user clicks at click with the mouse.
 DockStation getStation()
           
 int getTabIndex()
           
 boolean isBound()
          Tells whether the bind() method has been called.
 boolean isFocused()
           
protected  boolean isNextTabSelected()
          Tells whether the tab after this one is selected.
protected  boolean isPreviousTabSelected()
          Tells whether the tab before this one is selected.
 boolean isSelected()
           
 boolean isUsedAsTitle()
          Tells whether this DockElementRepresentative is used as title.
 void removeMouseInputListener(MouseInputListener listener)
          Removes a listener from this representative.
 void setFocused(boolean focused)
           
 void setPaintIconWhenInactive(boolean paintIconWhenInactive)
           
 void setSelected(boolean selected)
           
 void unbind()
          Informs this tab that it is invisible and must not have any connections to other resources
protected abstract  void updateBorder()
          Called when one of the border colors changed
protected  void updateFont()
          Called when the font of this component has to be updated
 
Methods inherited from class bibliothek.gui.dock.util.swing.DComponent
getFontModifier, setFontModifier, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, 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, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paramString, 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
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, transferFocusBackward, 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, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, 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, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface bibliothek.extension.gui.dock.theme.eclipse.stack.tab.TabComponent
addMouseListener, addMouseMotionListener, getOverlap, removeMouseListener, removeMouseMotionListener, update
 

Field Detail

colorStackTabBorder

protected final TabColor colorStackTabBorder

colorStackTabBorderSelected

protected final TabColor colorStackTabBorderSelected

colorStackTabBorderSelectedFocused

protected final TabColor colorStackTabBorderSelectedFocused

colorStackTabBorderSelectedFocusLost

protected final TabColor colorStackTabBorderSelectedFocusLost

colorStackTabTop

protected final TabColor colorStackTabTop

colorStackTabTopSelected

protected final TabColor colorStackTabTopSelected

colorStackTabTopSelectedFocused

protected final TabColor colorStackTabTopSelectedFocused

colorStackTabTopSelectedFocusLost

protected final TabColor colorStackTabTopSelectedFocusLost

colorStackTabBottom

protected final TabColor colorStackTabBottom

colorStackTabBottomSelected

protected final TabColor colorStackTabBottomSelected

colorStackTabBottomSelectedFocused

protected final TabColor colorStackTabBottomSelectedFocused

colorStackTabBottomSelectedFocusLost

protected final TabColor colorStackTabBottomSelectedFocusLost

colorStackTabText

protected final TabColor colorStackTabText

colorStackTabTextSelected

protected final TabColor colorStackTabTextSelected

colorStackTabTextSelectedFocused

protected final TabColor colorStackTabTextSelectedFocused

colorStackTabTextSelectedFocusLost

protected final TabColor colorStackTabTextSelectedFocusLost

colorStackBorder

protected final TabColor colorStackBorder

fontSelected

protected final TabFont fontSelected

fontFocused

protected final TabFont fontFocused

fontUnselected

protected final TabFont fontUnselected
Constructor Detail

BaseTabComponent

public BaseTabComponent(EclipseTabPane pane,
                        Dockable dockable)
Creates a new TabComponent

Parameters:
pane - the owner of this tab, not null
dockable - the element which is represented by this component, not null
Method Detail

updateBorder

protected abstract void updateBorder()
Called when one of the border colors changed


updateFont

protected void updateFont()
Called when the font of this component has to be updated


bind

public void bind()
Description copied from interface: TabComponent
Informs this tab that it will be shown soon

Specified by:
bind in interface TabComponent

unbind

public void unbind()
Description copied from interface: TabComponent
Informs this tab that it is invisible and must not have any connections to other resources

Specified by:
unbind in interface TabComponent

isBound

public boolean isBound()
Tells whether the bind() method has been called.

Returns:
true if this tab is bound to its owner

getDockable

public Dockable getDockable()

getElement

public DockElement getElement()
Description copied from interface: DockElementRepresentative
Gets the element which is represented by this. The result of this method must not change.

Specified by:
getElement in interface DockElementRepresentative
Returns:
the element, never null

isUsedAsTitle

public boolean isUsedAsTitle()
Description copied from interface: DockElementRepresentative
Tells whether this DockElementRepresentative is used as title.
Some modules grant more rights to titles than to non-titles, i.e. a DockRelocator can allow drag & drop only for titles.
Normally a Dockable should have only one element that is a title, so if in doubt return false.

Specified by:
isUsedAsTitle in interface DockElementRepresentative
Returns:
true if this representative should be seen as title

addMouseInputListener

public void addMouseInputListener(MouseInputListener listener)
Description copied from interface: DockElementRepresentative
Adds a listener to this representative, it is not defined what to do with that listener, but most subclasses would just add the listener to their component. It is valid to do nothing.

Specified by:
addMouseInputListener in interface DockElementRepresentative
Parameters:
listener - the new listener

removeMouseInputListener

public void removeMouseInputListener(MouseInputListener listener)
Description copied from interface: DockElementRepresentative
Removes a listener from this representative.

Specified by:
removeMouseInputListener in interface DockElementRepresentative
Parameters:
listener - the listener to remove

getPopupLocation

public Point getPopupLocation(Point click,
                              boolean popupTrigger)
Description copied from interface: DockElementRepresentative
Tells whether a popup menu should be opened when the user clicks at click with the mouse. If yes, then the top left edge of the popup should be returned, otherwise null should be returned.

Specified by:
getPopupLocation in interface DockElementRepresentative
Parameters:
click - the location where the user clicked with the mouse
popupTrigger - whether the invocation is the systems popup trigger or not. Many implementations of this method will return click in case of true, and null in case of false
Returns:
the preferred location of a popup or null if no popup-menu should be opened

getController

public DockController getController()

getStation

public DockStation getStation()

getPane

public EclipseTabPane getPane()
Gets the parent of this component.

Returns:
the owner

getButtons

public ButtonPanel getButtons()

getComponent

public Component getComponent()
Description copied from interface: DockElementRepresentative
Gets the Component which represents the element. The result of this method must not change.

Specified by:
getComponent in interface TabComponent
Specified by:
getComponent in interface DockElementRepresentative
Returns:
the component, never null

setFocused

public void setFocused(boolean focused)
Specified by:
setFocused in interface TabComponent

isFocused

public boolean isFocused()

setSelected

public void setSelected(boolean selected)
Specified by:
setSelected in interface TabComponent

isSelected

public boolean isSelected()

isPreviousTabSelected

protected boolean isPreviousTabSelected()
Tells whether the tab before this one is selected. This method only checks visible tabs.

Returns:
true if the tab before is selected

isNextTabSelected

protected boolean isNextTabSelected()
Tells whether the tab after this one is selected. This method only checks visible tabs.

Returns:
true if the tab before is selected

getDockableIndex

public int getDockableIndex()
Tells which index the dockable of this tab has on the owner.

Returns:
the index of the dockable on the owner, -1 if the owner is unknown or the dockable is no longer child of the owner

getTabIndex

public int getTabIndex()

doPaintIconWhenInactive

public boolean doPaintIconWhenInactive()

setPaintIconWhenInactive

public void setPaintIconWhenInactive(boolean paintIconWhenInactive)
Specified by:
setPaintIconWhenInactive in interface TabComponent