Finora il termine widget è stato utilizzato senza una definizione formale. Nella gerarchia di classi di SWT un widget rappresenta la classe astratta per qualsiasi oggetto UI che possa essere posizionato all'interno di un altro widget. Un controllo è un widget generalmente dotato di una rappresentazione speculare e caratterizzato da un handle di finestra del sistema operativo nella piattaforma sottostante.
I termini widget e controllo sono spesso adoperati in maniera intercambiabile. Sebbene la distinzione sia importante durante l'implementazione di SWT, questa differenza non è rilevante dal punto di vista dell'applicazione. Se si osserva la gerarchia dei widget di SWT, si vedrà che un controllo può essere creato e posizionato secondo le proprie esigenze nella struttura principale/secondaria. I widget che non costituiscono controlli sono oggetti UI generalmente più specializzati che possono essere creati soltanto per determinati tipi di elementi principali.
Il riferimento API di SWT e gli esempi riportati sono ricchi di informazioni sui diversi tipi di controlli e il relativo utilizzo. Nel pacchetto org.eclipse.swt.widgets è definito l'insieme principale di widget presenti in SWT. Nella seguente tabella sono riassunti i tipi concreti di controllo forniti dal pacchetto con la relativa finalità. Le classi astratte non sono state inserite nell'elenco.
Widget
|
Scopo
|
Stili
|
Eventi |
---|---|---|---|
Controllo selezionabile che consente di emettere una notifica quando viene premuto e/o rilasciato. |
BORDER, CHECK, PUSH,
RADIO, TOGGLE, FLAT, LEFT, RIGHT, CENTER, ARROW (con UP, DOWN)
|
Dispose, Control*, Selection | |
Controllo composto che fornisce una superficie su cui disegnare grafici arbitrari. Spesso è utilizzato per implementare controlli personalizzati. |
BORDER, H_SCROLL, V_SCROLL,
NO_BACKGROUND, NO_FOCUS, NO_MERGE_PAINTS, NO_REDRAW_RESIZE, NO_RADIO_GROUP
|
Dispose, Control* | |
Un puntatore a I generalmente utilizzato come punto di inserimento di testo. |
|
Dispose | |
Controllo selezionabile che permette di scegliere una stringa all'interno di un elenco di stringhe o, facoltativamente, di digitare un nuovo valore in un campo di testo modificabile. Utilizzato spesso quando lo spazio limitato rende necessaria una presentazione a comparsa delle stringhe disponibili al posto di una singola casella di riepilogo della selezione. |
BORDER, DROP_DOWN, READ_ONLY,
SIMPLE
|
Dispose, Control*, DefaultSelection, Modify, Selection | |
Controllo che può contenere altri widget. |
BORDER, H_SCROLL, V_SCROLL
|
Dispose, Control* | |
Controllo composto che consente di riposizionare in maniera dinamica gli elementi più interessanti contenuti nella barra. |
BORDER
|
Dispose, Control* | |
Oggetto dell'interfaccia utente selezionabile che rappresenta un'area in cui è possibile posizionare dinamicamente una barra interessante. |
DROP_DOWN
|
Dispose | |
Controllo composto che provvede al raggruppamento di altri widget mediante un bordo inciso e/o un'etichetta. |
BORDER, SHADOW_ETCHED_IN,
SHADOW_ETCHED_OUT, SHADOW_IN, SHADOW_OUT, SHADOW_NONE
|
Dispose, Control* | |
Controllo non selezionabile che provvede alla visualizzazione di una stringa o di un'immagine. |
BORDER, CENTER, LEFT, RIGHT,
WRAP, SEPARATOR (with HORIZONTAL, SHADOW_IN, SHADOW_OUT, SHADOW_NONE, VERTICAL)
|
Dispose, Control* | |
Controllo selezionabile che consente di scegliere una o più stringhe da un elenco di stringhe. |
BORDER, H_SCROLL, V_SCROLL,
SINGLE, MULTI
|
Dispose, Control*, Selection, DefaultSelection | |
Oggetto dell'interfaccia utente contenente le voci di menu. |
BAR, DROP_DOWN, NO_RADIO_GROUP, POP_UP
|
Dispose, Help, Hide, Show | |
MenuItem | Oggetto dell'interfaccia utente selezionabile che rappresenta una voce di menu. | CHECK, CASCADE, PUSH, RADIO, SEPARATOR | Dispose, Arm, Help, Selection |
Controllo non selezionabile che visualizza, generalmente mediante un grafico a barre, lo stato di avanzamento. |
BORDER, INDETERMINATE, SMOOTH, HORIZONTAL,
VERTICAL
|
Dispose, Control* | |
Controllo selezionabile che consente di trascinare un contorno elastico del pannello all'interno della finestra principale. Viene utilizzato per permettere all'utente di ridimensionare i widget secondari riposizionando delle rispettive linee di divisione. |
BORDER, HORIZONTAL, VERTICAL
|
Dispose, Control*, Selection | |
Controllo selezionabile che rappresenta un intervallo di valori numerici. |
BORDER, HORIZONTAL, VERTICAL
|
Dispose, Control*, Selection | |
ScrollBar | Controllo selezionabile che rappresenta un intervallo di valori numerici positivi. Utilizzato in un controllo Composite con gli stili V_SCROLL e/o H_SCROLL. | HORIZONTAL, VERTICAL | Dispose, Selection |
Finestra gestita dal gestore di finestra del sistema operativo. Le shell possono essere associate mediante visualizzazione (shell di livello superiore) oppure mediante un'altra shell (shell secondaria). |
BORDER, H_SCROLL, V_SCROLL,
CLOSE, MIN, MAX, NO_TRIM, RESIZE, TITLE (vedere anche SHELL_TRIM, DIALOG_TRIM)
|
Dispose, Control*, Activate, Close, Deactivate, Deiconify, Iconify | |
Controllo selezionabile che rappresenta un intervallo di valori numerici. Il cursore scorrevole si differenzia dalla scala perché è fornito di una casella che consente di regolare il valore corrente lungo l'intervallo mediante trascinamento. |
BORDER, HORIZONTAL, VERTICAL
|
Dispose, Control*, Selection | |
Controllo composto che raggruppa le pagine selezionabili mediante schede etichettate. |
BORDER
|
Dispose, Control*, Selection | |
TabItem | Oggetto selezionabile dell'interfaccia utente corrispondente a una scheda di pagina in una cartella di schede. | Dispose | |
Controllo selezionabile che visualizza un elenco di voci di tabella che possono essere selezionate dall'utente. L'elenco viene presentato in righe che visualizzano più colonne in cui sono rappresentati aspetti differenti delle voci. |
BORDER, H_SCROLL, V_SCROLL,
SINGLE, MULTI, CHECK, FULL_SELECTION, HIDE_SELECTION
|
Dispose, Control*, Selection, DefaultSelection | |
TableColumn | Oggetto dell'interfaccia utente selezionabile che rappresenta una colonna di tabella. | LEFT, RIGHT, CENTER | Dispose, Move, Resize, Selection |
TableItem | Oggetto dell'interfaccia utente selezionabile che rappresenta una voce di tabella. | Dispose | |
Controllo modificabile mediante il quale è possibile inserire un testo. |
BORDER, SINGLE, READ_ONLY, LEFT, CENTER, RIGHT, WRAP, MULTI (con H_SCROLL, V_SCROLL)
|
Dispose, Control*, DefaultSelection, Modify, Verify | |
Controllo composto che supporta il layout di voci selezionabili di una barra degli strumenti. |
BORDER, FLAT, WRAP, RIGHT, SHADOW_OUT
HORIZONTAL, VERTICAL
|
Dispose, Control*, | |
ToolItem | Oggetto dell'interfaccia utente selezionabile che rappresenta una voce in una barra degli strumenti. | PUSH, CHECK, RADIO, SEPARATOR, DROP_DOWN | Dispose, Selection |
Oggetto dell'interfaccia utente che implementa rettangoli elastici. |
LEFT, RIGHT, UP, DOWN, RESIZE
|
Dispose, Move, Resize | |
Controllo selezionabile che visualizza un elenco gerarchico di voci di struttura selezionabili. |
BORDER, H_SCROLL, V_SCROLL,
SINGLE, MULTI, CHECK
|
Dispose, Control*, Selection, DefaultSelection, Collapse, Expand | |
TreeItem | Oggetto dell'interfaccia utente selezionabile che rappresenta una gerarchia di voci in una struttura. | Dispose |
Control* = eventi ereditati da Control: FocusIn, FocusOut, Help, KeyDown, KeyUp, MouseDoubleClick, MouseDown, MouseEnter, MouseExit, MouseHover, MouseUp, MouseMove, Move, Paint, Resize