Tilpassede widgeter

Du kan utvide SWT gjennom å implementere en egen tilpasset widget. SWT har selv en pakke, org.eclipse.swt.custom, som inneholder tilpassede kontroller som ikke finnes i kjernesettet med SWT-kontroller, men som er nødvendig for å implementere plattformens arbeidsbenk.

Kontroll
Formål
CBanner CBanner brukes i arbeidsbenken til å utforme verktøylinjeområdet og perspektivvekslende verktøylinjer.
CCombo Likner på Combo, men størrelsen kan endres vertikalt for tilpassing i tabellceller.
CLabel Likner på Label, men støtter avkorting av tekst med en ellipse. Støtter også gradering av bakgrunnsfargen som vises i den aktive arbeidsbenkvisningen. Støtter ikke bryting.
CTabFolder Likner på TabFolder, men støtter ytterligere konfigurering av flippenes utseende (øverst og nederst) samt kantlinjer.
CTabItem Et brukergrensesnittobjekt som kan velges, og som tilsvarer en flipp for en side i en CTabFolder.
SashForm En sammensatt kontroll som plasserer underordnede objekter i en rad eller kolonne, og bruker en skiller dem fra hverandre med en strek slik at størrelsen kan endres.
ScrolledComposite En sammensatt kontroll som blar gjennom innholdet og eventuelt strekker ut innholdet slik at den ledige plassen fylles opp.
StyledText En redigerbar kontroll som lar brukeren skrive inn tekst. De ulike tekstområdene i kontrollen kan ha ulike farger og fontstiler.
ViewForm ViewForm brukes i arbeidsbenken for å plassere og angi størrelsen på etiketter/verktøylinjer/lokalmenylinjer i en visning.

Implementere en tilpasset widget

Når du har bestemt deg for at du trenger en tilpasset widget og har besluttet deg for hvilke plattformer som skal støttes, bør du tenke gjennom hvilke av de ulike implementeringsmetodene du vil bruke på widgeten. Du kan blande disse metodene avhengig av hva som er tilgjengelig i den underliggende operativsystemplattformen.

Intern implementering

Hvis applikasjonen krever en intern widget som ikke finnes i SWT, må du implementere den internt. Dette kan være en plattform-widget, en widget fra tredjepart eller en annen widget i en plattform med delt bibliotek. Du finner et komplett eksempel på intern widget-implementering i Creating Your Own Widgets using SWT.

Kombinere eksisterende widgeter

Du kan kombinere widgeter hvis du vil danne mer avanserte widgeter. Du kan for eksempel implementere en Combo ved å bruke en widget for tekstoppføring sammen med en knapp og en valgliste. Når du skal implementere en kombinert widget, oppretter du en subklasse med Composite og styrer de underordnede objektene internt.

Du ser et enkelt eksempel på dette i CCombo.

Tilpasset tegnet implementering

Av og til finnes det ingen intern kode eller eksisterende widgeter som du kan bruke til å implementere den nye widgeten. Dette betyr at du må tegne widgeten selv i behandleren for Paint-hendelsen. Selv om dette kan være komplisert, er fordelen at du kan lage en implementering som er fullstendig flyttbar.

Tilpassede kontroller som er tegnet, implementeres ved hjelp av subklassene Canvas eller Composite. Bruk subklassen Canvas hvis widgeten ikke skal inneholde underordnede kontroller.

Den interne implementeringen av en tilpasset, tegnet widget omfatter vanligvis disse hovedoppgavene:

En rekke av widgetene som implementeres i org.eclipse.swt.custom, gjør dette. Du finner et enkelt eksempel på dette i CLabel.

Du finner mer informasjon om tilpassede widgeter, under Creating your own widgets using SWT.