将所选对象从一个 jface 视图发送到另一个 jface 视图,同时导航到该对象

发布于 2024-12-20 20:52:57 字数 709 浏览 1 评论 0原文

我在 jface 视图中有一个 jface tableviewer 表,用户可以单击 tableviewer 表的任何行,单击时视图必须导航到另一个视图,并将选定的行 ID 发送到导航的视图。 截至目前,我可以成功导航到另一个视图,并且还可以使用代码获取选定的行 ID

viewer.getTable().addListener(SWT.Selection, new Listener() {  
@Override 
public void  handleEvent(Event e) {  
    try {  
       int selected = viewer.getTable().getSelectionIndex(); 
       String selection = viewer.getTable().getItem(selected).getText();       PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView("E2E_tab_view.view5");  
    } 
    catch (PartInitException e1) {  // TODO Auto-generated catch block
       e1.printStackTrace();  
  }  }  });

,但无法在导航时将此选定的行 ID 发送到另一个视图。 有人可以帮我解决这个问题吗?

I have a jface tableviewer table in a jface view, user can click any row of the tableviewer table, on click the view must navigate to another view and also send selected row ID to the view navigated.
As of now I can navigate to another view successfully and also get the selected row ID with the code

viewer.getTable().addListener(SWT.Selection, new Listener() {  
@Override 
public void  handleEvent(Event e) {  
    try {  
       int selected = viewer.getTable().getSelectionIndex(); 
       String selection = viewer.getTable().getItem(selected).getText();       PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView("E2E_tab_view.view5");  
    } 
    catch (PartInitException e1) {  // TODO Auto-generated catch block
       e1.printStackTrace();  
  }  }  });

but unable to send this selected row ID to another view while navigation.
Could anybody help me with this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

街角迷惘 2024-12-27 20:52:57

您不应直接引用其他视图,而应使用 ISelectionService 工作台页面。

在第一个视图中,您将表查看器设置为其站点的选择提供程序:

getSite().setSelectionProvider(viewer);

在另一个视图中,您在 IWorkbenchPage

getSite().getPage().addSelectionListener(firstViewID, listener);

在您的 监听器 您可以使用 IStructuredSelection 接口:

public void selectionChanged(IWorkbenchPart part, ISelection selection) {
    //Assuming structured selection from structured viewer
    IStructuredSelection structSel = (IStructuredSelection)selection;
    Object selElement = structSel.getFirstElement();
}

Instead of referring to the other view directly, you should utilize the ISelectionService of workbench page.

In the first view, you set the table viewer to be the selection provider for its site:

getSite().setSelectionProvider(viewer);

In the other view you register a selection listener on the IWorkbenchPage:

getSite().getPage().addSelectionListener(firstViewID, listener);

In your listener you can access the selected item using IStructuredSelection interface:

public void selectionChanged(IWorkbenchPart part, ISelection selection) {
    //Assuming structured selection from structured viewer
    IStructuredSelection structSel = (IStructuredSelection)selection;
    Object selElement = structSel.getFirstElement();
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文