public class CCombo extends Composite
CCombo was written to work around certain limitations in the native combo box. Specifically, on win32, the height of a CCombo can be set; attempts to set the height of a Combo are ignored. CCombo can be used anywhere that having the increased flexibility is more important than getting native L&F, but the decision should not be taken lightly. There is no is no strict requirement that CCombo look or behave the same as the native combo box.
Note that although this class is a subclass of Composite
,
it does not make sense to add children to it, or set a layout on it.
Modifier and Type | Field and Description |
---|---|
static int |
LIMIT
The maximum number of characters that can be entered
into a text widget.
|
Constructor and Description |
---|
CCombo(Composite parent,
int style)
Constructs a new instance of this class given its parent
and a style value describing its behavior and appearance.
|
Modifier and Type | Method and Description |
---|---|
void |
add(java.lang.String string)
Adds the argument to the end of the receiver's list.
|
void |
add(java.lang.String string,
int index)
Adds the argument to the receiver's list at the given
zero-relative index.
|
void |
addModifyListener(ModifyListener listener)
Adds the listener to the collection of listeners who will
be notified when the receiver's text is modified, by sending
it one of the messages defined in the
ModifyListener
interface. |
void |
addSelectionListener(SelectionListener listener)
Adds the listener to the collection of listeners who will
be notified when the user changes the receiver's selection, by sending
it one of the messages defined in the
SelectionListener
interface. |
void |
addVerifyListener(VerifyListener listener)
Adds the listener to the collection of listeners who will
be notified when the receiver's text is verified, by sending
it one of the messages defined in the
VerifyListener
interface. |
void |
clearSelection()
Sets the selection in the receiver's text field to an empty
selection starting just before the first character.
|
Point |
computeSize(int wHint,
int hHint,
boolean changed)
Returns the preferred size of the receiver.
|
void |
deselect(int index)
Deselects the item at the given zero-relative index in the receiver's
list.
|
void |
deselectAll()
Deselects all selected items in the receiver's list.
|
<T> T |
getAdapter(java.lang.Class<T> adapter)
Implementation of the
Adaptable interface. |
Control[] |
getChildren()
Returns a (possibly empty) array containing the receiver's children.
|
boolean |
getEditable()
Gets the editable state.
|
java.lang.String |
getItem(int index)
Returns the item at the given, zero-relative index in the
receiver's list.
|
int |
getItemCount()
Returns the number of items contained in the receiver's list.
|
int |
getItemHeight()
Returns the height of the area which would be used to
display one of the items in the receiver's list.
|
java.lang.String[] |
getItems()
Returns an array of
String s which are the items
in the receiver's list. |
boolean |
getListVisible()
Returns
true if the receiver's list is visible,
and false otherwise. |
Point |
getSelection()
Returns a
Point whose x coordinate is the start
of the selection in the receiver's text field, and whose y
coordinate is the end of the selection. |
int |
getSelectionIndex()
Returns the zero-relative index of the item which is currently
selected in the receiver's list, or -1 if no item is selected.
|
int |
getStyle()
Returns the receiver's style information.
|
java.lang.String |
getText()
Returns a string containing a copy of the contents of the
receiver's text field.
|
int |
getTextHeight()
Returns the height of the receivers's text field.
|
int |
getTextLimit()
Returns the maximum number of characters that the receiver's
text field is capable of holding.
|
int |
getVisibleItemCount()
Gets the number of items that are visible in the drop
down portion of the receiver's list.
|
int |
indexOf(java.lang.String string)
Searches the receiver's list starting at the first item
(index 0) until an item is found that is equal to the
argument, and returns the index of that item.
|
int |
indexOf(java.lang.String string,
int start)
Searches the receiver's list starting at the given,
zero-relative index until an item is found that is equal
to the argument, and returns the index of that item.
|
void |
remove(int index)
Removes the item from the receiver's list at the given
zero-relative index.
|
void |
remove(int start,
int end)
Removes the items from the receiver's list which are
between the given zero-relative start and end
indices (inclusive).
|
void |
remove(java.lang.String string)
Searches the receiver's list starting at the first item
until an item is found that is equal to the argument,
and removes that item from the list.
|
void |
removeAll()
Removes all of the items from the receiver's list and clear the
contents of receiver's text field.
|
void |
removeModifyListener(ModifyListener listener)
Removes the listener from the collection of listeners who will
be notified when the receiver's text is modified.
|
void |
removeSelectionListener(SelectionListener listener)
Removes the listener from the collection of listeners who will
be notified when the user changes the receiver's selection.
|
void |
removeVerifyListener(VerifyListener listener)
Removes the listener from the collection of listeners who will
be notified when the control is verified.
|
void |
select(int index)
Selects the item at the given zero-relative index in the receiver's
list.
|
void |
setEditable(boolean editable)
Sets the editable state.
|
void |
setItem(int index,
java.lang.String string)
Sets the text of the item in the receiver's list at the given
zero-relative index to the string argument.
|
void |
setItems(java.lang.String... items)
Sets the receiver's list to be the given array of items.
|
void |
setLayout(Layout layout)
Sets the layout which is associated with the receiver to be
the argument which may be null.
|
void |
setListVisible(boolean visible)
Marks the receiver's list as visible if the argument is
true ,
and marks it invisible otherwise. |
void |
setSelection(Point selection)
Sets the selection in the receiver's text field to the
range specified by the argument whose x coordinate is the
start of the selection and whose y coordinate is the end
of the selection.
|
void |
setText(java.lang.String string)
Sets the contents of the receiver's text field to the
given string.
|
void |
setTextLimit(int limit)
Sets the maximum number of characters that the receiver's
text field is capable of holding to be the argument.
|
void |
setVisibleItemCount(int count)
Sets the number of items that are visible in the drop
down portion of the receiver's list.
|
changed, getBackgroundMode, getLayout, getLayoutDeferred, getTabList, isLayoutDeferred, layout, layout, layout, layout, layout, setBackgroundMode, setFocus, setLayoutDeferred, setTabList
computeTrim, getClientArea, getHorizontalBar, getVerticalBar
addControlListener, addDragDetectListener, addFocusListener, addGestureListener, addHelpListener, addKeyListener, addMenuDetectListener, addMouseListener, addTouchListener, addTraverseListener, computeSize, forceFocus, getAccessible, getBackground, getBackgroundImage, getBorderWidth, getBounds, getCursor, getEnabled, getFont, getForeground, getLayoutData, getLocation, getMenu, getMonitor, getOrientation, getParent, getShell, getSize, getToolTipText, getTouchEnabled, getVisible, isEnabled, isFocusControl, isReparentable, isVisible, moveAbove, moveBelow, pack, pack, redraw, redraw, removeControlListener, removeDragDetectListener, removeFocusListener, removeGestureListener, removeHelpListener, removeKeyListener, removeMenuDetectListener, removeMouseListener, removeTouchListener, removeTraverseListener, requestLayout, setBackground, setBackgroundImage, setBounds, setBounds, setCursor, setData, setEnabled, setFont, setForeground, setLayoutData, setLocation, setLocation, setMenu, setOrientation, setParent, setRedraw, setSize, setSize, setToolTipText, setTouchEnabled, setVisible, toControl, toControl, toDisplay, toDisplay, update
addDisposeListener, addListener, checkSubclass, checkWidget, dispose, getData, getData, getDisplay, getListeners, isDisposed, isListening, notifyListeners, removeDisposeListener, removeListener, removeListener, reskin, setData, toString
public static final int LIMIT
Note that this value is platform dependent, based upon the native widget implementation.
public CCombo(Composite parent, int style)
The style value is either one of the style constants defined in
class SWT
which is applicable to instances of this
class, or must be built by bitwise OR'ing together
(that is, using the int
"|" operator) two or more
of those SWT
style constants. The class description
lists the style constants that are applicable to the class.
Style bits are also inherited from superclasses.
parent
- a widget which will be the parent of the new instance (cannot be null)style
- the style of widget to constructjava.lang.IllegalArgumentException
- SWTException
- SWT.BORDER
,
SWT.READ_ONLY
,
SWT.FLAT
,
Widget.getStyle()
public int getStyle()
Widget
Note that the value which is returned by this method may
not match the value which was provided to the constructor
when the receiver was created. This can occur when the underlying
operating system does not support a particular combination of
requested styles. For example, if the platform widget used to
implement a particular SWT widget always has scroll bars, the
result of calling this method would always have the
SWT.H_SCROLL
and SWT.V_SCROLL
bits set.
public int getSelectionIndex()
SWTException
- public void select(int index)
index
- the index of the item to selectSWTException
- public void deselect(int index)
index
- the index of the item to deselectSWTException
- public void deselectAll()
Note: To clear the selection in the receiver's text field,
use clearSelection()
.
SWTException
- clearSelection()
public void setSelection(Point selection)
selection
- a point representing the new selection start and endjava.lang.IllegalArgumentException
- SWTException
- public Point getSelection()
Point
whose x coordinate is the start
of the selection in the receiver's text field, and whose y
coordinate is the end of the selection. The returned values
are zero-relative. An "empty" selection as indicated by
the the x and y coordinates having the same value.SWTException
- public void setTextLimit(int limit)
limit
- new text limitjava.lang.IllegalArgumentException
- SWTException
- public int getTextLimit()
setTextLimit()
, it will be the constant
Combo.LIMIT
.SWTException
- public int getTextHeight()
SWTException
- public void clearSelection()
Note: To clear the selected items in the receiver's list,
use deselectAll()
.
SWTException
- deselectAll()
public void add(java.lang.String string)
string
- the new itemjava.lang.IllegalArgumentException
- SWTException
- add(String,int)
public void add(java.lang.String string, int index)
Note: To add an item at the end of the list, use the
result of calling getItemCount()
as the
index or use add(String)
.
string
- the new itemindex
- the index for the itemjava.lang.IllegalArgumentException
- SWTException
- add(String)
public void remove(int index)
index
- the index for the itemjava.lang.IllegalArgumentException
- SWTException
- public void remove(int start, int end)
start
- the start of the rangeend
- the end of the rangejava.lang.IllegalArgumentException
- SWTException
- public void remove(java.lang.String string)
string
- the item to removejava.lang.IllegalArgumentException
- SWTException
- public void removeAll()
SWTException
- public void setItem(int index, java.lang.String string)
remove
'ing the old item at the index, and then
add
'ing the new item at that index.index
- the index for the itemstring
- the new text for the itemjava.lang.IllegalArgumentException
- SWTException
- public void setItems(java.lang.String... items)
items
- the array of itemsjava.lang.IllegalArgumentException
- SWTException
- public java.lang.String getItem(int index)
index
- the index of the item to returnjava.lang.IllegalArgumentException
- SWTException
- public int getItemCount()
SWTException
- public int getItemHeight()
SWTException
- public java.lang.String[] getItems()
String
s which are the items
in the receiver's list.
Note: This is not the actual structure used by the receiver to maintain its list of items, so modifying the array will not affect the receiver.
SWTException
- public void setVisibleItemCount(int count)
count
- the new number of items to be visibleSWTException
- public int getVisibleItemCount()
SWTException
- public void setListVisible(boolean visible)
true
,
and marks it invisible otherwise.
If one of the receiver's ancestors is not visible or some other condition makes the receiver not visible, marking it visible may not actually cause it to be displayed.
visible
- the new visibility stateSWTException
- public boolean getListVisible()
true
if the receiver's list is visible,
and false
otherwise.
If one of the receiver's ancestors is not visible or some other condition makes the receiver not visible, this method may still indicate that it is considered visible even though it may not actually be showing.
SWTException
- public int indexOf(java.lang.String string)
string
- the search itemjava.lang.IllegalArgumentException
- SWTException
- public int indexOf(java.lang.String string, int start)
string
- the search itemstart
- the zero-relative index at which to begin the searchjava.lang.IllegalArgumentException
- SWTException
- public void setText(java.lang.String string)
Note: The text field in a Combo
is typically
only capable of displaying a single line of text. Thus,
setting the text to a string containing line breaks or
other special characters will probably cause it to
display incorrectly.
string
- the new textjava.lang.IllegalArgumentException
- SWTException
- public java.lang.String getText()
SWTException
- public void setEditable(boolean editable)
editable
- the new editable stateSWTException
- public boolean getEditable()
SWTException
- public Point computeSize(int wHint, int hHint, boolean changed)
Control
The preferred size of a control is the size that it would
best be displayed at. The width hint and height hint arguments
allow the caller to ask a control questions such as "Given a particular
width, how high does the control need to be to show all of the contents?"
To indicate that the caller does not wish to constrain a particular
dimension, the constant SWT.DEFAULT
is passed for the hint.
If the changed flag is true
, it indicates that the receiver's
contents have changed, therefore any caches that a layout manager
containing the control may have been keeping need to be flushed. When the
control is resized, the changed flag will be false
, so layout
manager caches can be retained.
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
otherwiseLayout
,
Control.getBorderWidth()
,
Control.getBounds()
,
Control.getSize()
,
Control.pack(boolean)
,
"computeTrim, getClientArea for controls that implement them"public void addSelectionListener(SelectionListener listener)
SelectionListener
interface.
widgetSelected
is called when the combo's list selection changes.
widgetDefaultSelected
is typically called when ENTER is pressed the combo's text area.
listener
- the listener which should be notified when the user changes the receiver's selectionjava.lang.IllegalArgumentException
- SWTException
- SelectionListener
,
removeSelectionListener(org.eclipse.swt.events.SelectionListener)
,
SelectionEvent
public void removeSelectionListener(SelectionListener listener)
listener
- the listener which should no longer be notifiedjava.lang.IllegalArgumentException
- SWTException
- SelectionListener
,
addSelectionListener(org.eclipse.swt.events.SelectionListener)
public void addModifyListener(ModifyListener listener)
ModifyListener
interface.listener
- the listener which should be notifiedjava.lang.IllegalArgumentException
- SWTException
- ModifyListener
,
removeModifyListener(org.eclipse.swt.events.ModifyListener)
public void removeModifyListener(ModifyListener listener)
listener
- the listener which should no longer be notifiedjava.lang.IllegalArgumentException
- SWTException
- ModifyListener
,
addModifyListener(org.eclipse.swt.events.ModifyListener)
public void addVerifyListener(VerifyListener listener)
VerifyListener
interface.listener
- the listener which should be notifiedjava.lang.IllegalArgumentException
- SWTException
- VerifyListener
,
removeVerifyListener(org.eclipse.swt.events.VerifyListener)
public void removeVerifyListener(VerifyListener listener)
listener
- the listener which should no longer be notifiedjava.lang.IllegalArgumentException
- SWTException
- VerifyListener
,
addVerifyListener(org.eclipse.swt.events.VerifyListener)
public Control[] getChildren()
Composite
Note: This is not the actual structure used by the receiver to maintain its list of children, so modifying the array will not affect the receiver.
getChildren
in class Composite
Control.moveAbove(org.eclipse.swt.widgets.Control)
,
Control.moveBelow(org.eclipse.swt.widgets.Control)
public void setLayout(Layout layout)
Note: No Layout can be set on this Control because it already manages the size and position of its children.
setLayout
in class Composite
layout
- the receiver's new layout or nullSWTException
- public <T> T getAdapter(java.lang.Class<T> adapter)
Widget
Adaptable
interface.
IMPORTANT: This method is not part of the RWT public API. It is marked public only so that it can be shared within the packages provided by RWT. It should never be accessed from application code.
getAdapter
in interface Adaptable
getAdapter
in class Composite
adapter
- the lookup classnull
if
there is no adapter associated with the given class.
Copyright (c) EclipseSource and others 2002, 2016.
All rights reserved. This program and the accompanying materials
are made available under the terms of the
Eclipse Public License v1.0