Eclipse 支持IDocument的Java StyledText控件

Eclipse 支持IDocument的Java StyledText控件,eclipse,rcp,e4,styledtext,Eclipse,Rcp,E4,Styledtext,我的目的是编写一个NASTRAN文本编辑器(纯文本编辑器,EclipsePureE4RCP应用程序)。 NASTRAN是一个工程结构分析应用程序。 为了简化,NASTRAN使用每个字段8个字符宽的文本卡,每个卡(行)最多10个字段。 请参阅到目前为止所做工作的图 此编辑器的主要功能是以彩色列为背景显示纯文本(固定间距字体),因此很容易区分每行中的不同字段 我使用了StyledText控件,该控件提供了更改背景的方法: styledText.setBackgroundImage(backgrou

我的目的是编写一个NASTRAN文本编辑器(纯文本编辑器,EclipsePureE4RCP应用程序)。 NASTRAN是一个工程结构分析应用程序。 为了简化,NASTRAN使用每个字段8个字符宽的文本卡,每个卡(行)最多10个字段。 请参阅到目前为止所做工作的图

此编辑器的主要功能是以彩色列为背景显示纯文本(固定间距字体),因此很容易区分每行中的不同字段

我使用了
StyledText
控件,该控件提供了更改背景的方法:

styledText.setBackgroundImage(backgroundImage);
如何将IDocument界面与
StyledText
一起使用,以便为我提供以下支持: 文本操作 位置 分割 线路信息 等等

其他文本控件(TextViewer、SourceViewer)提供setDocument(IDocument)方法来加载和操作文本数据

--org.eclipse.jface.text.TextViewer

  |
--org.eclipse.jface.text.source.SourceViewer
但是
StyledText
扩展了SWT画布,并且没有提供设置输入文档的方法

   --org.eclipse.swt.custom.StyledText
另一种方法可能是如何在SourceViewer控件中更改背景,以便拥有不同颜色的列


提前感谢

TextViewer和SourceViewer是StyledText的包装器,提供了处理IDocument界面的代码,因此您应该使用其中的一种


您可以调用查看器的
getTextWidget()
方法来访问他们正在使用的
StyledText
控件。

谢谢greg-449的回答,问题已经解决。 我对一个类包装另一个类的概念没有清晰的理解。所以我首先尝试创建一个StyledText对象。 现在清楚了

我已经附上了下面我是如何进行的:创建一个SourceViewer控件,然后获得包装的StyledText。 所以我可以为控件设置背景图像

public class NastranEditor {
    public StyledText st = null;
    public SourceViewer sv = null;
    private Image backgroundImage;//The image to appear at the backgroud
    //....
    @PostConstruct
    public void postConstruct(Composite parent){
        IVerticalRuler  ruler = new VerticalRuler(20);
        sv = new SourceViewer(parent, ruler, SWT.MULTI | SWT.V_SCROLL);
        st = sv.getTextWidget();
        st.setBackgroundImage(backgroundImage);
        //....
    }
    //....
}

TextViewer和SourceViewer是StyledText的包装器,它们提供了处理IDocument界面的代码,因此您应该使用其中的一种。TextViewer/SourceViewer不提供用图像设置/填充背景的方法(在本例中为不同颜色的列)。我没有见过任何像setBackgroundImage(图像)这样的方法;