Workbencheditors

Hoewel de implementatie van een workbencheditor per plugin kan verschillen en afhankelijk is van het soort content dat u wilt bewerken, biedt de workbench wel een algemene structuur voor het bouwen van een editor. De volgende informatie is van toepassing op alle workbencheditors.

Editoronderdelen en -invoergegevens

Een editor moet IEditorPart implementeren en wordt vaak gebouwd door de klasse EditorPart uit te breiden. Een editor implementeert de bijbehorende gebruikersinterface in de methode createPartControl. Met deze methode worden de SWT-widgets of JFace-viewers voor de presentatie van de editorinhoud samengesteld. 

Editorinvoer is een beschrijving van hetgeen moet worden bewerkt. U kunt het ongeveer zien als een bestandsnaam, maar dan in ruimere zin. IEditorInput definieert het protocol voor een editorinvoer, inclusief de naam van de invoer en de afbeelding die moet worden gebruikt voor weergavelabels bovenaan in de editor.

Editorinvoerlabel

Het platform voorziet in twee generieke soorten editorinvoer. IFileEditorInput vertegenwoordigt editorinvoer in de vorm van een bestand in het bestandssysteem.  IStorageEditorInput vertegenwoordigt editorinvoer in de vorm van een stroom met bytes. Deze bytes kunnen ook afkomstig zijn van andere bronnen dan het bestandssysteem.

Editorinvoer opnieuw instellen

Als uw editor ondersteuning biedt voor het automatisch vervangen van editorinvoerobjecten, moet u IReusableEditor implementeren. Door deze interface te implementeren kan uw editor door de workbench worden hergebruikt. In de gebruikersvoorkeuren van de workbench kan de gebruiker opgeven dat editors moeten worden hergebruikt als er een bepaald aantal is geopend.

In de editorinvoer navigeren

Als u een navigatiehistorie in uw editor wilt implementeren, moet u INavigationLocationProvider implementeren. Hiermee voorziet u de workbench van een mechanisme om de huidige navigatielocatie (INavigationLocation) op te vragen en een navigatiehistorie bij te houden. De workbench zorgt verder voor de integratie met de navigatie-interface. INavigationLocation wordt vanzelf geïnitieerd wanneer de editor moet worden hersteld naar de desbetreffende locatie.

Hoe u de rest van uw editor implementeert is afhankelijk van de content waarvoor deze is bedoeld. Het volgende onderwerp gaat over het meest voorkomende type editor: de teksteditor.