Skip to main content

Notice: This Wiki is now read only and edits are no longer 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 4: Line 4:
 
=== Introduction ===
 
=== Introduction ===
  
Some of the annotated objects URI can be changed (for example, annotated resource can be moved to another place and its path used for annotation URI will be changed). 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 refactoring changes we need to use org.eclipse.tigerstripe.annotation.core.IRefactoringSupport with the following methods:
+
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 the passed URI deleted;
+
 
* changed(URI newUri, URI oldUri) - notify framework about object's URI changed to another one;
+
* 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;
 +
 
 +
Annotation Manager provides IRefactoringSupport instance as following:
 +
 
 +
AnnotationPlugin.getManager().getRefactoringSupport();
  
 
=== Examples ===
 
=== Examples ===
  
 
==== Eclipse 3.3 ====
 
==== Eclipse 3.3 ====
You can found both Java and Resource refactoring support example in the org.eclipse.tigerstripe.annotation.java.ui.refactoring plugin:
+
 
 +
'''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) {
 
   protected void changed(Map<URI, URI> uris) {
Line 18: Line 24:
 
       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) {
 
     IResource resource = getResource(object);
 
     IResource resource = getResource(object);
Line 28: Line 35:
 
   }
 
   }
  
As you see, to support refactoring all what you need is convert object to URI and notify annotation framework (Using AnnotationPlugin.getManager().getRefactoringSupport()) about your changes.
 
 
==== Eclipse 3.4 ====
 
In the Eclipse 3.4 refactoring didn't completely supported yet because of several concept changes in the LTK framework.
 
  
 
[[Category:Tigerstripe_APIs]]
 
[[Category:Tigerstripe_APIs]]

Revision as of 08:23, 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;

Annotation Manager provides IRefactoringSupport instance as following:

AnnotationPlugin.getManager().getRefactoringSupport();

Examples

Eclipse 3.3

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