2012-04-03 14 views
1

Kann hier jemand einen bestimmten Decorator auf einer Ressource entfernen? Ich erweiterte org.eclipse.ui.decorators zu meinem Projekt und erstellte eine Klasse, die ILightweightLabelDecorator implementiert. In der Decorator-Klasse habe ich getestet, ob es sich bei dem Eintrag um einen Projekt- und einen anderen Test vor dem Aufruf decorator.addOverlay() handelte. Ich habe die anderen Funktionen wie removeListener, isLabelProperty, dispose, addListener nicht implementiert, da ich derzeit die Verwendung nicht sehe. Jede Idee, Ressourcen, Kommentar zum Vorgehen würde sehr helfen.Wie entfernt man einen zuvor hinzugefügten Dekorator auf einer Ressource?

Code: Dekorateur Funktion

QualifiedName decorator = new QualifiedName("decorator", "value"); 

    if (element instanceof IProject) { 
     IProject res = (IProject) element; 

     if (!res.isOpen()) { 
      return; 
     } 

     String val = null; 
     try { 
      val = res.getPersistentProperty(decorator); 

     } catch (CoreException e) { 
      e.printStackTrace(); 
     } 

     if (val != null && val.equals(DecoratorState.ACTIVE)) { 

      decoration.addOverlay(ImageDescriptor.createFromFile(MyDecorator.class, 
        "/icons/sample.gif"), IDecoration.BOTTOM_RIGHT); 
      decoration.addSuffix(" [Using Enhancement]"); 

     } 
    } 

Antwort

1

Für alle, die das gleiche Problem wird mit, kann es mit LabelProviderChangedEvent

fixiert werden
Verwandte Themen