Utilisation de copies de travail dans un éditeur

Le plug-in de l'API principale (core) du JDT fournit une API qui permet la création, la suppression et la modification par programme d'éléments Java. Consultez la rubrique relative à la manipulation du code Java pour une introduction à l'API fournie par l'API principale (core) du JDT.   

Un important concept du modèle Java est l'utilisation d'une copie en mémoire d'une unité de compilation, appelée "copie de travail" (IWorkingCopy). L'utilisation d'une copie de travail permet de modifier par programme une unité de compilation avant de valider les modifications sur la ressource sous-jacente.

Dans l'interface utilisateur Java, un concept parallèle vise à permettre à l'utilisateur d'éditer de manière extensive une ressource avant de valider la copie de travail sur le système de fichiers. Grâce à l'utilisation d'une copie, l'implémentation de votre interface utilisateur peut permettre à l'utilisateur de sauvegarder le contenu de l'éditeur Java sur le disque ou de revenir à son contenu d'origine.  

IWorkingCopyManager gère les copies de travail des unités de compilation Java utilisées dans un éditeur. Si vous souhaitez modifier une unité de compilation dans un éditeur, vous devez obtenir une copie de travail en connectant l'élément d'entrée de votre éditeur au gestionnaire de copies de travail. Les modifications sont effectuées sur la copie de travail.  

Le fragment de code suivant montre l'utilisation d'un gestionnaire de copies de travail avec un éditeur d'unité de compilation :

    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);
            		// apportez les modifications dans la copie de travail en utilisant l'API principale (core) du JDT habituelle
        	} finally {
            manager.disconnect(input);
        }
        	// conservez l'éditeur avec les modifications ou utilisez editor.doSave (moniteur IProgressMonitor)
        // pour sauvegarder les modifications à l'aide d'un programme.
    }

Copyright IBM Corporation and others 2000, 2003. All Rights Reserved.