我有一个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)方法,该方法将在调整列的大小时刷新列所在的查看器。