Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Howto: Register Refactoring Support"

Line 21: Line 21:
 
       //inform annotation framework about changes
 
       //inform annotation framework about changes
 
       AnnotationPlugin.getManager().getRefactoringSupport().changed(uri, uris.get(uri));
 
       AnnotationPlugin.getManager().getRefactoringSupport().changed(uri, uris.get(uri));
    }
+
  }
 
   ...
 
   ...
 
   public void deleted(ILazyObject object) {
 
   public void deleted(ILazyObject object) {

Revision as of 08:36, 3 June 2008

< To: Tigerstripe_APIs

Introduction

URI of an annotated objects may be changed during object lifetime. To solve this problem Annotation Framework supports annotated object refactoring. From the Annotation Framework side - refactoring is an operation which change one URI to another. To inform framework about URI changes org.eclipse.tigerstripe.annotation.core.IRefactoringSupport interface with following methods provided:

  • deleted(URI uri) - notify framework about object with specified URI has been deleted;
  • changed(URI newUri, URI oldUri) - notify framework about object's URI change;

IRefactoringSupport instance can be retrieved from Annotation Manager as following:

 AnnotationPlugin.getManager().getRefactoringSupport();

Examples

org.eclipse.tigerstripe.annotation.java.ui.refactoring plugin support refactoring for JavaElements and Workspace resources. Below is excerpt from plugin code demonstrating calls into TAF notifying URI changes and object deletions.

 protected void changed(Map<URI, URI> uris) {
   for (URI uri : uris.keySet())
     //inform annotation framework about changes
     AnnotationPlugin.getManager().getRefactoringSupport().changed(uri, uris.get(uri));
 }
 ...
 public void deleted(ILazyObject object) {
   IResource resource = getResource(object);
   if (resource != null) {
     URI uri = ResourceURIConverter.toURI(resource);
     if (uri != null)
       //inform annotation framework about resource deletion
       AnnotationPlugin.getManager().getRefactoringSupport().deleted(uri);
   }
 }

Back to the top