Arbetsmiljöredigerare

Även om implementeringen av en arbetsmiljöredigerare blir specifik för ditt insticksprogram och innehållet du vill redigera, finns det i arbetsmiljön en allmän struktur för uppbyggnad av en redigerare. Följande koncepter gäller för alla arbetsmiljöredigerare.

Redigerardelar och inmatningar

En redigerare måste implementera IEditorPart och skapas ofta genom att klassen EditorPart utökas. En redigerare implementerar sitt användargränssnitt i metoden createPartControl. Denna metod används för att skapa SWT-gränssnittskontroller eller JFace-visningsprogram som visar innehållet i redigeraren. 

En redigerarinmatning är en beskrivning av någonting som ska redigeras. Man skulle kunna säga att ett filnamn är en redigerarinmatning även om det är ganska allmänt. IEditorInput definierar protokollet för en redigerarinmatning, inklusive namnet på inmatningen och bilden som används för att representera det i etiketterna högst upp i redigeraren.

Etikett för redigerarinmatning

Det finns två allmänna inmatningar i plattformen. IFileEditorInput representerar en inmatning som en fil i filsystemet.  IStorageEditorInput representerar en inmatning som är ett dataflöde. Dessa data kan komma från andra källor än filsystemet.

Återställa redigerarinmatningen

Om din redigerare stöder direkt ersättning av redigerarens inmatningsobjekt bör du implementera  IReusableEditor. Genom att implementera detta gränssnitt kan arbetsmiljön "starta om" redigeraren. Via användarinställningarna i arbetsmiljön kan användaren bestämma vilka redigerare som ska återanvändas efter ett visst antal gånger de har öppnats.

Navigering i redigerarinmatning 

Om du vill implementera navigeringshistorik i redigeraren ska du implementera INavigationLocationProvider.  I den finns en mekanism för arbetsmiljön att fråga efter en aktuell navigeringsplats (INavigationLocation) där navigeringshistorik kan förvaras. Arbetsmiljön hanterar navigeringsmekanismen i användargränssnittet. INavigationLocation aviserar när redigeraren måste återställas till den plats den representerar.

Resten av redigerarens implementering beror på innehållet du vill visa. Vi ska nu titta på den vanligaste typen av redigerare nämligen, textredigeraren.