我的目的是编写一个NASTRAN文本编辑器(纯文本编辑器,eclipse纯E4 RCP应用程序)。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控件中更改背景,以便有不同颜色的列。
提前感谢
发布于 2015-12-03 16:47:02
谢谢格雷格-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);
//....
}
//....
}发布于 2015-11-30 13:29:06
TextViewer和SourceViewer是StyledText的包装器,提供了处理IDocument接口的代码,因此您应该使用其中之一。
您可以调用查看器的getTextWidget()方法来访问他们正在使用的StyledText控件。
https://stackoverflow.com/questions/33998347
复制相似问题