public class ExpandableComposite extends Canvas
The widget can be instantiated as-is, or subclassed to modify some aspects of it. *
Since 3.1, left/right arrow keys can be used to control the expansion state. If several expandable composites are created in the same parent, up/down arrow keys can be used to traverse between them. Expandable text accepts mnemonics and mnemonic activation will toggle the expansion state.
While expandable composite recognize that different styles can be used to
render the title bar, and even defines the constants for these styles (TITLE_BAR
and SHORT_TITLE_BAR
the actual painting is done in the
subclasses.
Section
Modifier and Type | Field and Description |
---|---|
static int |
CLIENT_INDENT
If this style is used, the client origin will be vertically aligned with
the title text.
|
int |
clientVerticalSpacing
Vertical spacing between the title area and the composite client control
(default is 3).
|
static int |
COMPACT
If this style is used, computed size of the composite will take the
client width into consideration only in the expanded state.
|
int |
descriptionVerticalSpacing
Vertical spacing between the title area and the description control
(default is 0).
|
static int |
EXPANDED
If this style is used, the control will be created in the expanded state.
|
static int |
FOCUS_TITLE
If this style is used, the title text will be rendered as a hyperlink
that can individually accept focus.
|
protected int |
GAP
Deprecated.
this variable was left as protected by mistake. It will be
turned into static and hidden in the future versions. Do not
use it and do not change its value.
|
static int |
LEFT_TEXT_CLIENT_ALIGNMENT
By default, text client is right-aligned.
|
int |
marginHeight
Height of the margin that will be added around the control (default is
0).
|
int |
marginWidth
Width of the margin that will be added around the control (default is 0).
|
static int |
NO_TITLE
If this style is used, title will not be rendered.
|
static int |
NO_TITLE_FOCUS_BOX
By default, a focus box is painted around the title when it receives focus.
|
static int |
SHORT_TITLE_BAR
If this style is used, a short version of the title bar decoration will
be painted behind the text.
|
protected Control |
textLabel
The text label for the title.
|
static int |
TITLE_BAR
If this style is used, title bar decoration will be painted behind the
text.
|
int |
titleBarTextMarginWidth
Horizontal margin around the inside of the title bar area when TITLE_BAR
or SHORT_TITLE_BAR style is used.
|
protected ToggleHyperlink |
toggle
The toggle widget used to expand the composite.
|
static int |
TREE_NODE
If this style is used, a tree node with either + or - signs will be used
to render the expansion toggle.
|
static int |
TWISTIE
If this style is used, a twistie will be used to render the expansion
toggle.
|
protected int |
VGAP
Deprecated.
this variable was left as protected by mistake. It will be
turned into static and hidden in the future versions. Do not
use them and do not change its value.
|
Constructor and Description |
---|
ExpandableComposite(Composite parent,
int style)
Creates an expandable composite using a TWISTIE toggle.
|
ExpandableComposite(Composite parent,
int style,
int expansionStyle)
Creates the expandable composite in the provided parent.
|
Modifier and Type | Method and Description |
---|---|
void |
addExpansionListener(IExpansionListener listener)
Adds the listener that will be notified when the expansion state changes.
|
Point |
computeSize(int wHint,
int hHint,
boolean changed)
Computes the size of the expandable composite.
|
boolean |
forceFocus()
Forces the receiver to have the keyboard focus, causing
all keyboard events to be delivered to it.
|
Control |
getClient()
Returns the current expandable client.
|
protected Control |
getDescriptionControl()
Returns description control that will be placed under the title if
present.
|
int |
getExpansionStyle()
Returns the bitwise-ORed style bits for the expansion control.
|
protected Control |
getSeparatorControl()
Returns the separator control that will be placed between the title and
the description if present.
|
String |
getText()
Returns the title string.
|
Control |
getTextClient()
Returns the text client control.
|
int |
getTextClientHeightDifference()
Returns the difference in height between the text and the text client (if
set).
|
Color |
getTitleBarForeground()
Returns the title bar foreground when TITLE_BAR style is used.
|
protected boolean |
hasTitleBar()
Tests if this expandable composite renders a title bar around the text.
|
protected void |
internalSetExpanded(boolean expanded)
Performs the expansion state change for the expandable control.
|
boolean |
isExpanded()
Tests the expanded state of the composite.
|
protected boolean |
isFixedStyle()
Returns true if the composite is fixed i.e. cannot be
expanded or collapsed.
|
protected void |
onPaint(PaintEvent e)
If TITLE_BAR or SHORT_TITLE_BAR style is used, title bar decoration will
be painted behind the text in this method.
|
void |
removeExpansionListener(IExpansionListener listener)
Removes the expansion listener.
|
void |
setActiveToggleColor(Color c)
Sets the active color of the toggle control (when the mouse enters the
toggle area).
|
void |
setBackground(Color bg)
Sets the background of all the custom controls in the expandable.
|
void |
setClient(Control client)
Sets the client of this expandable composite.
|
void |
setEnabled(boolean enabled)
Enables the receiver if the argument is
true ,
and disables it otherwise. |
void |
setExpanded(boolean expanded)
Programmatically changes expanded state.
|
void |
setFont(Font font)
Sets the fonts of all the custom controls in the expandable.
|
void |
setForeground(Color fg)
Sets the foreground of all the custom controls in the expandable.
|
void |
setLayout(Layout layout)
Prevents assignment of the layout manager - expandable composite uses its
own layout.
|
void |
setMenu(Menu menu)
Overrides 'super' to pass the menu to the text label.
|
void |
setText(String title)
Sets the title of the expandable composite.
|
void |
setTextClient(Control textClient)
Sets the text client control.
|
void |
setTitleBarForeground(Color color)
Sets the color of the title bar foreground when TITLE_BAR style is used.
|
void |
setToggleColor(Color c)
Sets the color of the toggle control.
|
void |
setToolTipText(String string)
Sets the receiver's tool tip text to the argument, which
may be null indicating that the default tool tip for the
control will be shown.
|
drawBackground, getCaret, getIME, scroll, setCaret, setIME
changed, checkSubclass, drawBackground, getBackgroundMode, getChildren, getLayout, getLayoutDeferred, getTabList, isLayoutDeferred, layout, layout, layout, layout, layout, setBackgroundMode, setFocus, setLayoutDeferred, setTabList
computeTrim, getClientArea, getHorizontalBar, getScrollbarsMode, getVerticalBar
addControlListener, addDragDetectListener, addFocusListener, addGestureListener, addHelpListener, addKeyListener, addMenuDetectListener, addMouseListener, addMouseMoveListener, addMouseTrackListener, addMouseWheelListener, addPaintListener, addTouchListener, addTraverseListener, computeSize, dragDetect, dragDetect, getAccessible, getBackground, getBackgroundImage, getBorderWidth, getBounds, getCursor, getDragDetect, getEnabled, getFont, getForeground, getLayoutData, getLocation, getMenu, getMonitor, getOrientation, getParent, getRegion, getShell, getSize, getTextDirection, getToolTipText, getTouchEnabled, getVisible, internal_dispose_GC, internal_new_GC, isEnabled, isFocusControl, isReparentable, isVisible, moveAbove, moveBelow, pack, pack, print, redraw, redraw, removeControlListener, removeDragDetectListener, removeFocusListener, removeGestureListener, removeHelpListener, removeKeyListener, removeMenuDetectListener, removeMouseListener, removeMouseMoveListener, removeMouseTrackListener, removeMouseWheelListener, removePaintListener, removeTouchListener, removeTraverseListener, setBackgroundImage, setBounds, setBounds, setCapture, setCursor, setDragDetect, setLayoutData, setLocation, setLocation, setOrientation, setParent, setRedraw, setRegion, setSize, setSize, setTextDirection, setTouchEnabled, setVisible, toControl, toControl, toDisplay, toDisplay, traverse, traverse, traverse, update
addDisposeListener, addListener, checkWidget, dispose, getData, getData, getDisplay, getListeners, getStyle, isDisposed, isListening, notifyListeners, removeDisposeListener, removeListener, removeListener, reskin, setData, setData, toString
public static final int TWISTIE
public static final int TREE_NODE
public static final int FOCUS_TITLE
public static final int CLIENT_INDENT
public static final int COMPACT
public static final int EXPANDED
public static final int TITLE_BAR
public static final int SHORT_TITLE_BAR
public static final int NO_TITLE
public static final int LEFT_TEXT_CLIENT_ALIGNMENT
public static final int NO_TITLE_FOCUS_BOX
public int marginWidth
public int marginHeight
public int clientVerticalSpacing
public int descriptionVerticalSpacing
public int titleBarTextMarginWidth
protected ToggleHyperlink toggle
protected Control textLabel
protected int VGAP
protected int GAP
public ExpandableComposite(Composite parent, int style)
parent
- the parent compositestyle
- SWT style bitspublic ExpandableComposite(Composite parent, int style, int expansionStyle)
parent
- the parentstyle
- the control style (as expected by SWT subclass)expansionStyle
- the style of the expansion widget (TREE_NODE, TWISTIE,
CLIENT_INDENT, COMPACT, FOCUS_TITLE,
LEFT_TEXT_CLIENT_ALIGNMENT, NO_TITLE)public boolean forceFocus()
Control
forceFocus
in class Control
true
if the control got focus, and false
if it was unable to.Control.setFocus()
public void setMenu(Menu menu)
public final void setLayout(Layout layout)
public void setBackground(Color bg)
setBackground
in class Control
bg
- the new color (or null)public void setForeground(Color fg)
setForeground
in class Control
fg
- the new color (or null)public void setToggleColor(Color c)
c
- the color objectpublic void setActiveToggleColor(Color c)
c
- the active color objectpublic void setFont(Font font)
public void setEnabled(boolean enabled)
Control
true
,
and disables it otherwise. A disabled control is typically
not selectable from the user interface and draws with an
inactive or "grayed" look.setEnabled
in class Control
enabled
- the new enabled statepublic void setClient(Control client)
client
- the client that will be expanded or collapsedpublic Control getClient()
public void setText(String title)
title
- the new title stringgetText()
public void setToolTipText(String string)
Control
The mnemonic indicator (character '&') is not displayed in a tool tip. To display a single '&' in the tool tip, the character '&' can be escaped by doubling it in the string.
setToolTipText
in class Control
string
- the new tool tip text (or null)public String getText()
setText(String)
public boolean isExpanded()
public int getExpansionStyle()
public void setExpanded(boolean expanded)
expanded
- the new expanded stateprotected void internalSetExpanded(boolean expanded)
expanded
- the expansion statepublic void addExpansionListener(IExpansionListener listener)
listener
- the listener to addpublic void removeExpansionListener(IExpansionListener listener)
listener
- the listner to removeprotected void onPaint(PaintEvent e)
e
- the paint eventprotected Control getDescriptionControl()
protected Control getSeparatorControl()
public Point computeSize(int wHint, int hHint, boolean changed)
computeSize
in class Composite
wHint
- the width hint (can be SWT.DEFAULT
)hHint
- the height hint (can be SWT.DEFAULT
)changed
- true
if the control's contents have changed, and false
otherwiseComposite.computeSize(int, int, boolean)
protected boolean isFixedStyle()
public Control getTextClient()
null
if not.public void setTextClient(Control textClient)
textClient
- the textClient to set or null
if not needed any
more.public int getTextClientHeightDifference()
descriptionVerticalSpacing
(if you have description) or
clientVerticalSpacing
to correct the alignment of the
expandable without the text client.protected boolean hasTitleBar()
true
for TITLE_BAR
or
SHORT_TITLE_BAR
styles, false
otherwise.public void setTitleBarForeground(Color color)
color
- the title bar foregroundpublic Color getTitleBarForeground()
Copyright (c) 2000, 2014 Eclipse Contributors and others. All rights reserved.Guidelines for using Eclipse APIs.