JFace TableViewer截断并展开ColumnLabelProvider文本作为列展开



我有一个5列的JFace TableViewer。一列中可能有一个长字符串。该测试通过调用getText(Object element)方法在ColumnLabelProvider中设置。

当前文本在字符串的末尾被截断到列宽度,并以"…"结尾,当用户调整列宽度的大小时,该字符会添加到文本中。

我想有这种行为,但是在文本字符串的中间有"…",这样用户就可以看到文本的第一部分和文本的结尾,无论当前设置的列的大小如何。

例如,我的列目前截断" this is a long piece of text larger than the column width "来" this is a long piece of text larger... "

我想让它显示

" this is a long piece ... column width "当列宽扩大时,文本从中间展开,当列宽缩小时,文本再次收缩。

关于如何在RCP E4应用程序中使用Jface Tableviewer实现这一点,有什么想法吗?

如果我能覆盖现有的方法,这将是截断文本字符串的末尾的文本。

最后,我必须在列标签提供程序中创建一个方法,该方法获取全文和列宽度——测量列的当前宽度,并获取标签提供程序中文本的长度,并根据列的宽度将其拆分。随着列的扩展,substring1和substring 2也随之增长。将substring1放在头部,将substring2放在尾部,中间有省略号。它远不是高效的代码,但对我们的目的有效。我为列添加了一个ControlListener,并执行了一个@Override of controlResized(ControlEvent e)方法,该方法将在调整列的大小时刷新列所在的查看器。

最新更新