Arbeitskopien in einem Editor verwenden

Das JDT-Kern-Plug-in stellt eine API zur Verfügung, mit der Sie Java-Elemente programmgestützt erstellen, löschen und ändern können. Eine Einführung in die durch den JDT-Kern bereitgestellte API können Sie unter Java-Code bearbeiten nachlesen.  

Ein wichtiges Konzept im Java-Modell ist die Verwendung einer Speicherkopie einer Kompilierung, die als "Arbeitskopie" bezeichnet wird (IWorkingCopy).  Mit einer Arbeitskopie können Sie eine Kompiliereinheit programmgestützt ändern, bevor Sie die Änderungen in der zu Grunde liegenden Ressource festschreiben.

In der Java-Benutzerschnittstelle ermöglicht es ein paralleles Konzept dem Benutzer, eine Ressource intensiv zu bearbeiten, bevor die Arbeitskopie im Dateisystem festgeschrieben wird.   Durch die Verwendung einer Kopie kann Ihre Implementierung der Benutzerschnittstelle dem Benutzer das Speichern des Inhalts im Editor auf Platte oder das Zurücksetzen auf den Originalinhalt ermöglichen.  

IWorkingCopyManager verwaltet die Arbeitskopien von Java-Kompiliereinheiten, die in einem Editor verwendet werden.  Wenn Sie eine Kompiliereinheit in einem Editor ändern möchten, sollten Sie eine Arbeitskopie anfordern. Hierzu stellen Sie eine Verbindung zwischen dem Eingabeelement des Editors und dem Arbeitskopiemanager her. Die Bearbeitungen werden für die Arbeitskopie ausgeführt.  

Der folgende Codeausschnitt veranschaulicht die Verwendung eines Arbeitskopiemanagers mit einem Editor für Kompiliereinheiten:

    void modifyCompilationUnit(ICompilationUnit cunit) throws PartInitException, CoreException {
        IEditorPart editor= JavaUI.openInEditor(cunit);
        IEditorInput input= editor.getEditorInput();
        IWorkingCopyManager manager= JavaUI.getWorkingCopyManager();
        manager.connect(input);
   try {
            ICompilationUnit workingCopy= manager.getWorkingCopy(input);
		// do the modifications on workingCopy using the normal JDT Core API.
	} finally {
            manager.disconnect(input);
        }
	// either keep the editor dirty or use editor.doSave(IProgressMonitor monitor)
        // to save the changes programmatically.
    }

Copyright IBM Corporation und Andere 2000, 2003. Alle Rechte vorbehalten.