Du kan vilja utöka SWT genom att implementera en anpassad gränssnittskontroll. SWT själv tillhandahåller ett paket, org.eclipse.swt.custom, som innehåller anpassade kontroller. Dessa finns inte med i kärnuppsättningen SWT-kontroller men behövs för att implementera plattformens arbetsmiljö.
Kontroll |
Ändamål |
---|---|
CBanner | CBanner används i arbetsmiljön för layouten av verktygsfältsområdet och perspektivväxlande verktygsfält. |
CCombo | Påminner om Combo men kan storleksändras på vertikalen så att den få plats i tabellceller. |
CLabel | Påminner om Label men kan hantera avkortningen av texten med en ellips. Kan också hantera en toningseffekt för bakgrundsfärgen på det sätt som visas i aktiv arbetsmiljövy. Radbrytning kan inte hanteras. |
CTabFolder | Påminner om TabFolder men kan hantera ytterligare konfiguration av utseende på flikar (överst och underst) samt kanter. |
CTabItem | Valbart användargränssnittsobjekt motsvarande en flik för en sida i en CTabFolder. |
SashForm | Sammansatt kontroll för layout av underordnade objekt i en rad eller kolumn. Använder en båge för att skilja dem åt så att de kan storleksändras. |
ScrolledComposite | Sammansatt kontroll som bläddrar genom innehållet och som kan sträcka ut innehållet så att det fyller tillgängligt utrymme. |
StyledText | Redigerbar kontroll som kan användas till att mata in text. Olika textområden inuti kontrollen kan ha olika färger och teckensnittsstilar. |
ViewForm | ViewForm används i arbetsmiljön för att placera och ange storlek på etikett/verktygsfält/meny för en vys lokala fält. |
När du har bestämt dig för att du behöver en anpassad gränssnittskontroll och har bestämt vilka plattformar som måste kunna användas finns flera implementeringstekniker att överväga för gränssnittskontrollen. Dessa tekniker kan blandas och matchas beroende på vad som finns tillgängligt på underliggande operativsystem.
Om tillämpningen kräver en ursprunglig gränssnittskontroll som inte finns i SWT måste du implementera den på ursprungligt sätt. Detta kan vara en gränssnittskontroll för plattform, tredje part eller något annat i ett delat bibliotek på plattformen. Ett komplett exempel på implementation av en ursprunglig, anpassad gränssnittskontroll finns i Creating Your Own Widgets using SWT.
Gränssnittskontroller kan kombineras för att skapa mer sofistikerade gränssnittskontroller. Exempelvis kan en Combo implementeras med hjälp av en gränssnittskontroll för textinmatning tillsammans med en knapp och en listmeny. Om du vill implementera en kombinerad gränssnittskontroll skapar du en underklass med Composite och hanterar de underordnade objekten internt.
Ett enkelt exempel finns i CCombo.
I vissa fall finns inga befintliga, eller ursprungliga, gränssnittskontroller som kan hjälpa till implementationen av nya gränssnittskontroller. Detta innebär att du måste rita gränssnittskontrollen själv i hanteraren för Paint-händelsen. Även om den här tekniken kan bli rätt komplicerad är fördelen att en fullständigt portabel implementation skapas.
Anpassade ritade kontroller implementeras med hjälp av underklasserna Canvas eller Composite. Underklassen Canvas om gränssnittskontrollen inte innehåller några underordnade kontroller.
Den interna implementationen av en anpassad, ritad gränssnittskontroll inbegriper vanligen dessa huvudsakliga uppgifter:
Många av de gränssnittskontroller som implementerats i org.eclipse.swt.custom gör så här. Ett enkelt exempel finns i CLabel.
Ytterligare information om anpassade gränssnittskontroller finns i Creating your own widgets using SWT.