Question

Je sais que SWT a une classe de lien HTML pour créer un des liens de style href comme des widgets, mais je Wast en essayant de trouver un moyen de faire un certain texte dans un contrôle StyledText apparaissent et fonctionnent comme un lien.

Je me sens comme Eclipse fait cela dans leur éditeur de code si vous maintenez le contrôle et placez le curseur sur un nom de méthode, mais je sais que l'éditeur java Eclipse est beaucoup plus compliqué qu'un contrôle StyledText.

Était-ce utile?

La solution

Depuis JFace 3.5, il y a un style particulier pour les liens:

styleRange.underlineStyle = SWT.UNDERLINE_LINK;
styleRange.data = "http://www.google.com/";

Cela le rend beaucoup plus simple d'identifier un lien et vous pouvez stocker l'URL dans le style. Pour ce qui est des liens automatiquement trouver, regardez juste pour le motif http://[^ ] (blancs ne sont pas autorisés dans les liens) dans les lignes que vous obtenez et ajoutez le style.

Autres conseils

Vous devez ajouter un LineStyleListener au widget StyledText:

textField.addLineStyleListener (...);

...

public void lineGetStyle (LineStyleEvent e)
{
  // alloc a set of styles for the requested line
  e.styles = new StyleRange [...];

  for (int i = 0; i < e.styles.length; i++)
  {
    StyleRange styleRange = new StyleRange ();

    styleRange.start = ...;
    styleRange.length = ...;
    styleRange.underline = true;
    styleRange.foreground = <URL colour>;

    e.styles [i] = styleRange;
  }
}

Le javadoc pour LineStyleListener vous donner plus d'informations.

Pour ajouter le comportement de clic, vous avez besoin d'un peu plus logique. Je pourrais également coller un code que nous utilisons pour ajouter des liens cliquables style HTML URL automatiquement dans un widget StyledText si cela pouvait aider

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top