在我的Eclipse RCP应用程序中,我使用了本文中描述的Selection Service .在一个视图中有一个TreeViewer注册为SelectionProvider:
getSite().setSelectionProvider(viewer);
另一个视图是从TreeViewer接收事件:
selectionListener = new ISelectionListener() {
public void selectionChanged(IWorkbenchPart part, ISelection selection) {
pageSelectionChanged(part, selection);
}
};
getSite().getPage().addSelectionListener(selectionListener);
Run Code Online (Sandbox Code Playgroud)
一切正常,如果事件被触发我的正常鼠标点击.我想通过选择树中的项目以编程方式触发选择事件:
treeViewer.setSelection(new StructuredSelection(element),true);
Run Code Online (Sandbox Code Playgroud)
这不起作用.方法selectionChanged不在receiver-view中调用.这个论坛帖子讨论了这个问题.没有解决方案.
编辑
没有正确的方法来处理鼠标触发点击与编程选择相同的方式.单击鼠标可激活视图,而编程选择则不会.
我的解决方案是以与第一个视图相同的方式注册第二个Selection Service
视图.之后,两个视图都直接从活动编辑器获取选择事件.
选择Eclipse Rich Client Platform作为我的应用程序基础的原因是什么,而不仅仅是使用SWT/JFace?
以下是有什么区别的:
何时使用查看器和常规小部件?
PS:如果你能帮我找到理解它们的好资源,那将是一个很大的帮助.谢谢你!
Group group = new Group(parent, SWT.NONE);
StyledText comment = new StyledText(group, SWT.BORDER_DASH);
Run Code Online (Sandbox Code Playgroud)
这将创建一个内部带有文本区域的组.
我以后如何删除文本(从屏幕上删除它,以便我可以用其他东西替换它)?
我正在使用TableViewer
内容提供商,标签提供商,a ICellModifier
和TextCellEditors
每列.
当用户选择单元格时,如何添加箭头键导航和单元格编辑?我希望这是一种尽可能自然的行为.
在查看了一些在线示例后,似乎有一种旧的方式(使用a TableCursor
)和新的方式(TableCursor
不与CellEditors
?? 混合).
目前,我TableViewer
没有光标只会在第一列滚动.底层SWT表将游标显示为null.
是否有通过键盘TableViewer
使用CellEditors
和单元格导航的好例子?
谢谢!
我需要一个向导,第二页内容取决于第一页的选择.第一页询问用户他想要创建的过滤器的"种类",第二页要求用户创建所选"种类"的一个过滤器实例.
JFace的向导页面内容(createControl(...)方法)都是在向导打开时创建的,而不是在显示给定页面时创建的(这允许JFace知道向导大小,我猜??).
因此,我必须在向导打开之前创建我的第二页内容但是我不能,因为第二页的内容取决于第一页的选择.
现在我找到的更清洁的解决方案包括在向导打开之前创建所有(秒)页面(带有它们的内容)并覆盖第一页实现中的getNextPage()方法.
该解决方案的主要缺点是,当要创建许多第二页时,它可能很昂贵.
您对该解决方案有何看法?你如何管理向导的页面?有没有我错过的清洁解决方案?
我在SWT/JFace中寻找一个支持自动完成/提前输入的组合(查看器),即用户可以输入几个字符,下拉列表应该显示所有匹配的元素.
Qt解决方案是对resizeColumnsToContent()的单个调用,在.NET中可以使用TextRenderer.MeasureText(),JTable可以使用AUTO_RESIZE_ALL_COLUMNS.
在SWT中,是否有一种方法可以在填充列后对programmaticaly进行大小调整?
调用computeSize(SWT.DEFAULT, SWT.DEFAULT)
返回相同的值,因此忽略列中剩余的字符.
TableColumn有setWidth()
,但是如何在考虑字体外观的情况下获取当前内容的大小提示?
我是Eclipse的新手,无法弄清楚如何在编辑时让SWD和JFace的JavaDocs显示出来.
我该怎么做呢?谢谢!
如何在JFace对话框中创建超链接,单击此按钮可在默认Web浏览器中打开链接.一个完整的例子很有用.我知道有一个org.eclipse.jface.text.hyperlink
包,但我找不到合适的例子.
jface ×10
java ×8
swt ×7
eclipse ×4
eclipse-rcp ×3
tableviewer ×2
autocomplete ×1
cursor ×1
javadoc ×1
rcp ×1
type-ahead ×1