Ä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.
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.
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.
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.
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.