Можно ли добавлять ссылки в стиле HTML в SWT StyledText?

StackOverflow https://stackoverflow.com/questions/1494337

  •  18-09-2019
  •  | 
  •  

Вопрос

Я знаю, что в SWT есть класс Link для создания HTML-ссылок в стиле href в качестве виджетов, но я пытался найти способ заставить определенный текст в элементе управления StyledText отображаться и функционировать как ссылка.

Я чувствую, что Eclipse делает это в своем редакторе кода, если вы удерживаете элемент управления и наводите курсор на имя метода, но я знаю, что Java-редактор Eclipse намного сложнее, чем элемент управления StyledText.

Это было полезно?

Решение

Начиная с JFace 3.5, для ссылок используется специальный стиль:

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

Это значительно упрощает идентификацию ссылки, и вы можете сохранить URL-адрес в этом стиле.Что касается автоматического поиска ссылок, просто ищите шаблон http://[^ ] (пробелы в ссылках не допускаются) в полученных строках и добавьте стиль.

Другие советы

Вам нужно добавить LineStyleListener в виджет 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;
  }
}

Javadoc для LineStyleListener предоставит вам дополнительную информацию.

Чтобы добавить поведение щелчка, вам понадобится еще немного логики:Я мог бы также вставить некоторый код, который мы используем для автоматического добавления URL-адресов кликабельных ссылок в стиле HTML в виджет StyledText, если это поможет.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top