Class SubstanceTitlePane
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- org.pushingpixels.substance.internal.utils.SubstanceTitlePane
-
- All Implemented Interfaces:
ImageObserver
,MenuContainer
,Serializable
public class SubstanceTitlePane extends JComponent
Title pane for Substance look and feel.- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
SubstanceTitlePane.ExtraComponentKind
Enumerates the types of children components.static class
SubstanceTitlePane.HeapStatusPanel
Panel that shows heap status and allows running the garbage collector.static class
SubstanceTitlePane.HeapStatusThread
Thread for heap status panel.class
SubstanceTitlePane.SubstanceMenuBar
Class responsible for drawing the system menu.protected class
SubstanceTitlePane.TitlePaneLayout
Layout manager for the title pane.-
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 Image
appIcon
The application icon to be displayed.protected JButton
closeButton
Button used to close the frame.protected static String
EXTRA_COMPONENT_KIND
Client property to mark every child to be either leading or trailing.protected JCheckBoxMenuItem
heapStatusMenuItem
The heap status toggle menu item ofthis
title pane.protected SubstanceTitlePane.HeapStatusPanel
heapStatusPanel
The heap status panel ofthis
title pane.protected JMenuBar
menuBar
JMenuBar, typically renders the system menu items.protected JButton
minimizeButton
Button used to minimize the frameprotected PropertyChangeListener
propertyListener
Listens on changes tocomponentOrientation
andSubstanceLookAndFeel.WINDOW_MODIFIED
properties.protected JRootPane
rootPane
JRootPane rendering for.protected JButton
toggleButton
Button used to maximize or restore the frame.protected Window
window
Window we're currently in.-
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 SubstanceTitlePane(JRootPane root, SubstanceRootPaneUI ui)
Creates a new title pane.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addNotify()
protected LayoutManager
createLayout()
Returns theLayoutManager
that should be installed on theSubstanceTitlePane
.protected JMenuBar
createMenuBar()
Returns theJMenuBar
displaying the appropriate system menu items.AbstractButton
getCloseButton()
JRootPane
getRootPane()
Returns theJRootPane
this was created for.DecorationAreaType
getThisDecorationType()
protected Rectangle
getTitleTextRectangle(int preferredWidth)
Computes the rectangle of the title text.protected int
getWindowDecorationStyle()
Returns the decoration style of theJRootPane
.protected void
markExtraComponent(JComponent comp, SubstanceTitlePane.ExtraComponentKind kind)
Marks the specified child component with the specified extra component kind.void
paintComponent(Graphics g)
void
removeNotify()
static void
setHeapStatusLogfileName(String heapStatusLogfileName)
Sets location for heap status logfile.protected void
syncCloseButtonTooltip()
Synchronizes the tooltip of the close button.void
uninstall()
Uninstalls the necessary state.-
Methods inherited from class javax.swing.JComponent
addAncestorListener, 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, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUI, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, 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, updateUI
-
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, getAccessibleContext, 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
-
menuBar
protected JMenuBar menuBar
JMenuBar, typically renders the system menu items.
-
toggleButton
protected JButton toggleButton
Button used to maximize or restore the frame.
-
minimizeButton
protected JButton minimizeButton
Button used to minimize the frame
-
closeButton
protected JButton closeButton
Button used to close the frame.
-
window
protected Window window
Window we're currently in.
-
rootPane
protected JRootPane rootPane
JRootPane rendering for.
-
heapStatusPanel
protected SubstanceTitlePane.HeapStatusPanel heapStatusPanel
The heap status panel ofthis
title pane.
-
heapStatusMenuItem
protected JCheckBoxMenuItem heapStatusMenuItem
The heap status toggle menu item ofthis
title pane.
-
propertyListener
protected PropertyChangeListener propertyListener
Listens on changes tocomponentOrientation
andSubstanceLookAndFeel.WINDOW_MODIFIED
properties.
-
EXTRA_COMPONENT_KIND
protected static final String EXTRA_COMPONENT_KIND
Client property to mark every child to be either leading or trailing. The value must be one ofSubstanceTitlePane.ExtraComponentKind
.
-
appIcon
protected Image appIcon
The application icon to be displayed.
-
-
Constructor Detail
-
SubstanceTitlePane
public SubstanceTitlePane(JRootPane root, SubstanceRootPaneUI ui)
Creates a new title pane.- Parameters:
root
- Root pane.ui
- Root pane UI.
-
-
Method Detail
-
uninstall
public void uninstall()
Uninstalls the necessary state.
-
getRootPane
public JRootPane getRootPane()
Returns theJRootPane
this was created for.- Overrides:
getRootPane
in classJComponent
-
getWindowDecorationStyle
protected int getWindowDecorationStyle()
Returns the decoration style of theJRootPane
.- Returns:
- Decoration style of the
JRootPane
.
-
addNotify
public void addNotify()
- Overrides:
addNotify
in classJComponent
-
removeNotify
public void removeNotify()
- Overrides:
removeNotify
in classJComponent
-
createMenuBar
protected JMenuBar createMenuBar()
Returns theJMenuBar
displaying the appropriate system menu items.- Returns:
JMenuBar
displaying the appropriate system menu items.
-
createLayout
protected LayoutManager createLayout()
Returns theLayoutManager
that should be installed on theSubstanceTitlePane
.- Returns:
- Layout manager.
-
getThisDecorationType
public DecorationAreaType getThisDecorationType()
-
paintComponent
public void paintComponent(Graphics g)
- Overrides:
paintComponent
in classJComponent
-
getTitleTextRectangle
protected Rectangle getTitleTextRectangle(int preferredWidth)
Computes the rectangle of the title text. This method looks at all the children components of the title pane, grouping them by leading and trailing (based onEXTRA_COMPONENT_KIND
client property). The title text rectangle is the space between the leading group and the trailing group.- Returns:
- Rectangle of the title text.
- Throws:
IllegalStateException
- If at least one child component of this title pane is not marked with theEXTRA_COMPONENT_KIND
client property.- See Also:
markExtraComponent(JComponent, ExtraComponentKind)
,EXTRA_COMPONENT_KIND
-
setHeapStatusLogfileName
public static void setHeapStatusLogfileName(String heapStatusLogfileName)
Sets location for heap status logfile.- Parameters:
heapStatusLogfileName
- Logfile for the heap status panel.
-
syncCloseButtonTooltip
protected void syncCloseButtonTooltip()
Synchronizes the tooltip of the close button.
-
markExtraComponent
protected void markExtraComponent(JComponent comp, SubstanceTitlePane.ExtraComponentKind kind)
Marks the specified child component with the specified extra component kind.- Parameters:
comp
- Child component.kind
- Extra kind.- See Also:
getTitleTextRectangle(int)
,EXTRA_COMPONENT_KIND
-
getCloseButton
public AbstractButton getCloseButton()
-
-