Finora il termine widget è stato utilizzato senza essere formalmente definito. Nella gerarchia di classe 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 (denotata 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 riesamina la gerarchia widget di SWT, si vedrà che un controllo può essere creato e posizionato secondo le esigenze nella struttura principale/secondario. I widget che non costituiscono controlli sono oggetti UI generalmente più specializzati che possono essere creati soltanto per certi tipi di elementi principali.
Il riferimento API di SWT e gli esempi riportati sono ricchi di informazioni relative ai diversi tipi di controlli e al relativo utilizzo. Nel pacchetto org.eclipse.swt.widgets è definita la serie 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 in elenco.
Widget
|
Scopo
|
Stili
|
Eventi |
---|---|---|---|
Controllo selezionabile per l'emissione di una notifica se premuto e/o rilasciato. |
BORDER, ARROW, CHECK, PUSH,
RADIO, TOGGLE, FLAT, LEFT, RIGHT, CENTER
|
Dispose, Control*, Selection | |
Controllo composito 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
|
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 composito che consente di riposizionare in maniera dinamica gli elementi più interessanti contenuti nella barra. |
BORDER
|
Dispose, Control* | |
Oggetto di interfaccia utente selezionabile che rappresenta un'area in cui è possibile posizionare dinamicamente una barra interessante. |
|
Dispose | |
Controllo composito 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 (con HORIZONTAL, SHADOW_IN,
SHADOW_OUT, 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 di interfaccia utente contenente le voci di menu. |
BAR, DROP_DOWN, POP_UP
|
Dispose, Help, Hide, Show | |
MenuItem | Oggetto di interfaccia utente selezionabile che rappresenta una voce di un 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, 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 composito che raggruppa le pagine selezionabili mediante schede etichettate. |
BORDER
|
Dispose, Control*, Selection | |
TabItem | Oggetto selezionabile di 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 di interfaccia utente selezionabile che rappresenta una colonna di tabella. | LEFT, RIGHT, CENTER | Dispose, Move, Resize, Selection |
TableItem | Oggetto di interfaccia utente selezionabile che rappresenta una voce di tabella. | Dispose | |
Controllo modificabile mediante il quale è possibile inserire un testo. |
BORDER, H_SCROLL, V_SCROLL,
MULTI, SINGLE, READ_ONLY, WRAP
|
Dispose, Control*, DefaultSelection, Modify, Verify | |
Controllo composito che supporta il layout di voci selezionabili di una barra degli strumenti. |
BORDER, FLAT, WRAP, RIGHT,
HORIZONTAL, VERTICAL
|
Dispose, Control*, | |
ToolItem | Oggetto di interfaccia utente selezionabile che rappresenta una voce in una barra degli strumenti. | PUSH, CHECK, RADIO, SEPARATOR, DROP_DOWN | Dispose, Selection |
Oggetto di interfaccia utente che implementa rettangoli elastici. |
|
Dispose, Move | |
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 di 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