Can HTML-Style Links be added to SWT StyledText?

后端 未结 2 1897
伪装坚强ぢ
伪装坚强ぢ 2021-01-12 12:18

I know SWT has a Link class to create HTML a href style links as widgets, but I wast trying to find a way to make certain text in a StyledText control appear and function as

相关标签:
2条回答
  • 2021-01-12 12:25

    You need to add a LineStyleListener to the StyledText widget:

    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;
      }
    }
    

    The javadoc for LineStyleListener will give you some more info.

    To add the click behaviour, you need some more logic: I could also paste some code that we use to automatically add HTML-style clickable links URL's in a StyledText widget if that would help.

    0 讨论(0)
  • 2021-01-12 12:40

    Since JFace 3.5, there is a special style for links:

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

    This makes it much more simple to identify a link and you can store the URL in the style. As for automatically finding links, just look for the pattern http://[^ ] (blanks are not allowed in links) in the lines you get and add the style.

    0 讨论(0)
提交回复
热议问题