2010-01-05 3 views
3

J'ai une question liée à éclipser le développement plugin. Y at-il des moyens par lequel je peux modifier par programme la couleur d'arrière-plan dans Eclipse. Je suis en mesure de changer la couleur de premier plan du texte en appelant setTextColor (couleur, décalage, longueur, controlRedraw) dans ITextViewer mais je ne trouve aucune fonction par laquelle je peux changer le fond couleur du texte. Si quelqu'un a vécu cette expérience, partagez vos pensées.modifier par programme la couleur d'arrière-plan éclipse

Merci ARAV

Répondre

2

Je ne suis pas sûr que cela peut se faire facilement, à court d'étendre votre propre version d'un éditeur de texte, ici vous fournir une classe Configuration qui accepte inturn une classe PresentationReconciler qui ressemble à une Rule classe qui vous indique si vous avez besoin de mettre un premier plan ou une couleur de fond

Voir this document

PresentationReconciler

  • IPresentationDamager: définir la région sale étant donné un changement de texte
  • IPresentationRepairer: recréer la présentation pour la région sale
  • DefaultDamagerRepairer fait à la fois, sur la base d'un scanner jeton
  • ITokenScanner: analyser le texte dans un flux jeton
  • RuleBasedScanner utilise des règles simples

Extrait de la présentation

http://web.archive.org/web/20140715222227/http://img266.i_mageshack.us/img266/5465/setrules2.png

De Text Editor Recettes, recettes de saison pour votre éditeur de texte
Tom Eicher, l'équipe IBM Eclipse

Ici, les moyens de couleur de fond null, prend l'arrière-plan du système par défaut ce widget. (donc ici: blanc).
Mais vous pouvez spécifier la couleur de votre choix, en fonction du partitionnement de votre document et des règles applicables.

1

Je sais que cela a été demandé il y a un certain temps, mais au cas où quelqu'un est à la recherche d'une autre solution, je pensais que je posterais les suivantes:

Puisque vous êtes en mesure d'utiliser la méthode SetTextColor, alors vous devriez être en mesure pour utiliser aussi la méthode changeTextPresentation.

Dans le cas de mon plug-in, j'ai une textListener qui appelle la méthode TextChanged I réenregistrés. J'ai fait ce qui suit pour ajouter une couleur d'arrière-plan en utilisant la méthode changeTextPresentation. Ce faisant, j'ai pu obtenir un fond vert avec un premier plan noir. Pas que je le veuille, bien sûr, mais juste pour tester.

public void TextChanged(TextEvent event){ 
... 
TextPresentation presentation = new TextPresentation(); 
TextAttribute attr = new TextAttribute(new ColorManager().getColor(MyConstants.BLACK), 
     new ColorManager().getColor(MyConstants.GREEN), style); 
presentation.addStyleRange(new StyleRange(startOffset, tokLength, attr.getForeground(), 
     attr.getBackground()); 
sourceViewer.changeTextPresentation(presentation, true); //sourceViewer is a global variable passed to my TextListener class constructor. 
} 
Questions connexes