public class CustomCombo
extends org.eclipse.swt.widgets.Composite
CustomCombo was written to work around certain limitations in the native combo box. Specifically, on win32, the height of a CustomCombo can be set; attempts to set the height of a Combo are ignored. CustomCombo 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 CustomCombo 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 |
---|---|
(package private) org.eclipse.swt.widgets.Button |
arrow |
(package private) org.eclipse.swt.graphics.Color |
background |
(package private) org.eclipse.swt.widgets.Listener |
filter |
(package private) org.eclipse.swt.graphics.Font |
font |
(package private) org.eclipse.swt.graphics.Color |
foreground |
(package private) boolean |
hasFocus |
(package private) org.eclipse.swt.widgets.List |
list |
(package private) org.eclipse.swt.widgets.Listener |
listener |
(package private) org.eclipse.swt.widgets.Shell |
popup |
(package private) org.eclipse.swt.widgets.Text |
text |
(package private) int |
visibleItemCount |
Constructor and Description |
---|
CustomCombo(org.eclipse.swt.widgets.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 |
---|---|
(package private) char |
_findMnemonic(java.lang.String string) |
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(org.eclipse.swt.events.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(org.eclipse.swt.events.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(org.eclipse.swt.events.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. |
(package private) void |
arrowEvent(org.eclipse.swt.widgets.Event event) |
(package private) static int |
checkStyle(int style) |
void |
clearSelection()
Sets the selection in the receiver's text field to an empty selection
starting just before the first character.
|
(package private) void |
comboEvent(org.eclipse.swt.widgets.Event event) |
org.eclipse.swt.graphics.Point |
computeSize(int wHint,
int hHint,
boolean changed) |
void |
copy()
Copies the selected text.
|
(package private) void |
createPopup(java.lang.String[] items,
int selectionIndex) |
void |
cut()
Cuts the selected text.
|
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.
|
protected void |
dropDown(boolean drop) |
org.eclipse.swt.widgets.Button |
getArrowButton() |
(package private) org.eclipse.swt.widgets.Label |
getAssociatedLabel() |
org.eclipse.swt.widgets.Control[] |
getChildren() |
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. |
org.eclipse.swt.widgets.Menu |
getMenu() |
org.eclipse.swt.graphics.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() |
java.lang.String |
getText()
Returns a string containing a copy of the contents of the receiver's text
field.
|
org.eclipse.swt.widgets.Text |
getTextControl() |
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.
|
(package private) void |
handleFocus(int type) |
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.
|
(package private) void |
initAccessible() |
(package private) void |
internalLayout(boolean changed) |
(package private) boolean |
isDropped() |
boolean |
isFocusControl() |
(package private) void |
listEvent(org.eclipse.swt.widgets.Event event) |
void |
paste()
Pastes text from clipboard.
|
(package private) void |
popupEvent(org.eclipse.swt.widgets.Event event) |
void |
redraw() |
void |
redraw(int x,
int y,
int width,
int height,
boolean all) |
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(org.eclipse.swt.events.ModifyListener listener)
Removes the listener from the collection of listeners who will be
notified when the receiver's text is modified.
|
void |
removeSelectionListener(org.eclipse.swt.events.SelectionListener listener)
Removes the listener from the collection of listeners who will be
notified when the user changes the receiver's selection.
|
void |
removeVerifyListener(org.eclipse.swt.events.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 |
setBackground(org.eclipse.swt.graphics.Color color) |
void |
setEditable(boolean editable)
Sets the editable state.
|
void |
setEnabled(boolean enabled) |
boolean |
setFocus() |
void |
setFont(org.eclipse.swt.graphics.Font font) |
void |
setForeground(org.eclipse.swt.graphics.Color color) |
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(org.eclipse.swt.widgets.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 |
setMenu(org.eclipse.swt.widgets.Menu menu) |
void |
setSelection(org.eclipse.swt.graphics.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 |
setToolTipText(java.lang.String string) |
void |
setVisible(boolean visible) |
void |
setVisibleItemCount(int count)
Sets the number of items that are visible in the drop down portion of the
receiver's list.
|
(package private) java.lang.String |
stripMnemonic(java.lang.String string) |
(package private) void |
textEvent(org.eclipse.swt.widgets.Event event) |
changed, checkSubclass, drawBackground, getBackgroundMode, getLayout, getLayoutDeferred, getTabList, isLayoutDeferred, layout, layout, layout, layout, layout, setBackgroundMode, setLayoutDeferred, setTabList
computeTrim, getClientArea, getHorizontalBar, getScrollbarsMode, getVerticalBar
addControlListener, addDragDetectListener, addFocusListener, addGestureListener, addHelpListener, addKeyListener, addMenuDetectListener, addMouseListener, addMouseMoveListener, addMouseTrackListener, addMouseWheelListener, addPaintListener, addTouchListener, addTraverseListener, computeSize, dragDetect, dragDetect, forceFocus, getAccessible, getBackground, getBackgroundImage, getBorderWidth, getBounds, getCursor, getDragDetect, getEnabled, getFont, getForeground, getLayoutData, getLocation, getMonitor, getOrientation, getParent, getRegion, getShell, getSize, getTextDirection, getToolTipText, getTouchEnabled, getVisible, internal_dispose_GC, internal_new_GC, isEnabled, isReparentable, isVisible, moveAbove, moveBelow, pack, pack, print, removeControlListener, removeDragDetectListener, removeFocusListener, removeGestureListener, removeHelpListener, removeKeyListener, removeMenuDetectListener, removeMouseListener, removeMouseMoveListener, removeMouseTrackListener, removeMouseWheelListener, removePaintListener, removeTouchListener, removeTraverseListener, requestLayout, setBackgroundImage, setBounds, setBounds, setCapture, setCursor, setDragDetect, setLayoutData, setLocation, setLocation, setOrientation, setParent, setRedraw, setRegion, setSize, setSize, setTextDirection, setTouchEnabled, toControl, toControl, toDisplay, toDisplay, traverse, traverse, traverse, update
addDisposeListener, addListener, checkWidget, dispose, getData, getData, getDisplay, getListeners, isAutoDirection, isDisposed, isListening, notifyListeners, removeDisposeListener, removeListener, removeListener, reskin, setData, setData, toString
org.eclipse.swt.widgets.Text text
org.eclipse.swt.widgets.List list
int visibleItemCount
org.eclipse.swt.widgets.Shell popup
org.eclipse.swt.widgets.Button arrow
boolean hasFocus
org.eclipse.swt.widgets.Listener listener
org.eclipse.swt.widgets.Listener filter
org.eclipse.swt.graphics.Color foreground
org.eclipse.swt.graphics.Color background
org.eclipse.swt.graphics.Font font
public CustomCombo(org.eclipse.swt.widgets.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
- org.eclipse.swt.SWTException
- SWT.BORDER
,
SWT.READ_ONLY
,
SWT.FLAT
,
Widget.getStyle()
static int checkStyle(int style)
public void add(java.lang.String string)
string
- the new itemjava.lang.IllegalArgumentException
- org.eclipse.swt.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
- org.eclipse.swt.SWTException
- add(String)
public void addModifyListener(org.eclipse.swt.events.ModifyListener listener)
ModifyListener
interface.listener
- the listener which should be notifiedjava.lang.IllegalArgumentException
- org.eclipse.swt.SWTException
- ModifyListener
,
removeModifyListener(org.eclipse.swt.events.ModifyListener)
public void addSelectionListener(org.eclipse.swt.events.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
- org.eclipse.swt.SWTException
- SelectionListener
,
removeSelectionListener(org.eclipse.swt.events.SelectionListener)
,
SelectionEvent
public void addVerifyListener(org.eclipse.swt.events.VerifyListener listener)
VerifyListener
interface.listener
- the listener which should be notifiedjava.lang.IllegalArgumentException
- org.eclipse.swt.SWTException
- VerifyListener
,
removeVerifyListener(org.eclipse.swt.events.VerifyListener)
void arrowEvent(org.eclipse.swt.widgets.Event event)
public void clearSelection()
Note: To clear the selected items in the receiver's list, use
deselectAll()
.
org.eclipse.swt.SWTException
- deselectAll()
void comboEvent(org.eclipse.swt.widgets.Event event)
public org.eclipse.swt.graphics.Point computeSize(int wHint, int hHint, boolean changed)
computeSize
in class org.eclipse.swt.widgets.Control
public void copy()
The current selection is copied to the clipboard.
org.eclipse.swt.SWTException
- void createPopup(java.lang.String[] items, int selectionIndex)
public void cut()
The current selection is first copied to the clipboard and then deleted from the widget.
org.eclipse.swt.SWTException
- public void deselect(int index)
index
- the index of the item to deselectorg.eclipse.swt.SWTException
- public void deselectAll()
Note: To clear the selection in the receiver's text field, use
clearSelection()
.
org.eclipse.swt.SWTException
- clearSelection()
protected void dropDown(boolean drop)
char _findMnemonic(java.lang.String string)
org.eclipse.swt.widgets.Label getAssociatedLabel()
public org.eclipse.swt.widgets.Control[] getChildren()
getChildren
in class org.eclipse.swt.widgets.Composite
public boolean getEditable()
org.eclipse.swt.SWTException
- public java.lang.String getItem(int index)
index
- the index of the item to returnjava.lang.IllegalArgumentException
- org.eclipse.swt.SWTException
- public int getItemCount()
org.eclipse.swt.SWTException
- public int getItemHeight()
org.eclipse.swt.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.
org.eclipse.swt.SWTException
- 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.
org.eclipse.swt.SWTException
- public org.eclipse.swt.widgets.Menu getMenu()
getMenu
in class org.eclipse.swt.widgets.Control
public org.eclipse.swt.graphics.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.org.eclipse.swt.SWTException
- public int getSelectionIndex()
org.eclipse.swt.SWTException
- public int getStyle()
getStyle
in class org.eclipse.swt.widgets.Widget
public java.lang.String getText()
org.eclipse.swt.SWTException
- public int getTextHeight()
org.eclipse.swt.SWTException
- public int getTextLimit()
setTextLimit()
, it will be the constant
Combo.LIMIT
.org.eclipse.swt.SWTException
- public int getVisibleItemCount()
org.eclipse.swt.SWTException
- void handleFocus(int type)
public int indexOf(java.lang.String string)
string
- the search itemjava.lang.IllegalArgumentException
- org.eclipse.swt.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
- org.eclipse.swt.SWTException
- void initAccessible()
boolean isDropped()
public boolean isFocusControl()
isFocusControl
in class org.eclipse.swt.widgets.Control
void internalLayout(boolean changed)
void listEvent(org.eclipse.swt.widgets.Event event)
public void paste()
The selected text is deleted from the widget and new text inserted from the clipboard.
org.eclipse.swt.SWTException
- void popupEvent(org.eclipse.swt.widgets.Event event)
public void redraw()
redraw
in class org.eclipse.swt.widgets.Control
public void redraw(int x, int y, int width, int height, boolean all)
redraw
in class org.eclipse.swt.widgets.Control
public void remove(int index)
index
- the index for the itemjava.lang.IllegalArgumentException
- org.eclipse.swt.SWTException
- public void remove(int start, int end)
start
- the start of the rangeend
- the end of the rangejava.lang.IllegalArgumentException
- org.eclipse.swt.SWTException
- public void remove(java.lang.String string)
string
- the item to removejava.lang.IllegalArgumentException
- org.eclipse.swt.SWTException
- public void removeAll()
org.eclipse.swt.SWTException
- public void removeModifyListener(org.eclipse.swt.events.ModifyListener listener)
listener
- the listener which should no longer be notifiedjava.lang.IllegalArgumentException
- org.eclipse.swt.SWTException
- ModifyListener
,
addModifyListener(org.eclipse.swt.events.ModifyListener)
public void removeSelectionListener(org.eclipse.swt.events.SelectionListener listener)
listener
- the listener which should no longer be notifiedjava.lang.IllegalArgumentException
- org.eclipse.swt.SWTException
- SelectionListener
,
addSelectionListener(org.eclipse.swt.events.SelectionListener)
public void removeVerifyListener(org.eclipse.swt.events.VerifyListener listener)
listener
- the listener which should no longer be notifiedjava.lang.IllegalArgumentException
- org.eclipse.swt.SWTException
- VerifyListener
,
addVerifyListener(org.eclipse.swt.events.VerifyListener)
public void select(int index)
index
- the index of the item to selectorg.eclipse.swt.SWTException
- public void setBackground(org.eclipse.swt.graphics.Color color)
setBackground
in class org.eclipse.swt.widgets.Control
public void setEditable(boolean editable)
editable
- the new editable stateorg.eclipse.swt.SWTException
- public void setEnabled(boolean enabled)
setEnabled
in class org.eclipse.swt.widgets.Control
public boolean setFocus()
setFocus
in class org.eclipse.swt.widgets.Composite
public void setFont(org.eclipse.swt.graphics.Font font)
setFont
in class org.eclipse.swt.widgets.Control
public void setForeground(org.eclipse.swt.graphics.Color color)
setForeground
in class org.eclipse.swt.widgets.Control
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
- org.eclipse.swt.SWTException
- public void setItems(java.lang.String[] items)
items
- the array of itemsjava.lang.IllegalArgumentException
- org.eclipse.swt.SWTException
- public void setLayout(org.eclipse.swt.widgets.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 org.eclipse.swt.widgets.Composite
layout
- the receiver's new layout or nullorg.eclipse.swt.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 stateorg.eclipse.swt.SWTException
- public void setMenu(org.eclipse.swt.widgets.Menu menu)
setMenu
in class org.eclipse.swt.widgets.Control
public void setSelection(org.eclipse.swt.graphics.Point selection)
selection
- a point representing the new selection start and endjava.lang.IllegalArgumentException
- org.eclipse.swt.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
- org.eclipse.swt.SWTException
- public void setTextLimit(int limit)
limit
- new text limitjava.lang.IllegalArgumentException
- org.eclipse.swt.SWTException
- public void setToolTipText(java.lang.String string)
setToolTipText
in class org.eclipse.swt.widgets.Control
public void setVisible(boolean visible)
setVisible
in class org.eclipse.swt.widgets.Control
public void setVisibleItemCount(int count)
count
- the new number of items to be visibleorg.eclipse.swt.SWTException
- java.lang.String stripMnemonic(java.lang.String string)
void textEvent(org.eclipse.swt.widgets.Event event)
public org.eclipse.swt.widgets.Text getTextControl()
public org.eclipse.swt.widgets.Button getArrowButton()