将参数传递给视图

2023-12-14

在我的 RCP 应用程序中,我有一个带有TreeViewer左侧为导航,右侧为我的视图文件夹。透视图看起来像这样:

public void createInitialLayout(IPageLayout layout) {
    layout.setEditorAreaVisible(false);
    layout.setFixed(false);

    layout.addStandaloneView(NavigationView.ID, false, IPageLayout.LEFT, 0.7f, layout.getEditorArea());

    right = layout.createFolder("right", IPageLayout.RIGHT, 0.3f, "com.my.app.views.browser.navigation");


    layout.getViewLayout(WallpaperView.Id).setCloseable(false);//dummy view to keep the folder from closing
    layout.getViewLayout(WallpaperView.Id).setMoveable(false);      

    right.addView(WallpaperView.Id);        
    //add some placeholders for the potential views
    right.addPlaceholder(DefaultAdminView.ID+":*");

}

我想根据用户在导航树中选择的内容打开不同的视图。我想这不会太难。我的导航树视图:

tree = new TreeViewer(composite);
tree.setContentProvider(new BrowserNavigationTreeContentProvider());
tree.setLabelProvider(new BrowserNavigationTreeLabelProvider());
tree.setInput(UserProfileAdvisor.getProject());     

//register Mouselistener for doubleclick events
tree.addDoubleClickListener(new IDoubleClickListener(){

    @Override
    public void doubleClick(DoubleClickEvent event) {
        TreeSelection ts = (TreeSelection) event.getSelection();
        Object selectedItem = ts.getFirstElement();
        String viewId = DefaultAdminView.ID;                

         //set viewId depending on the selectedItem.class
        try {
            PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView(viewId, String.valueOf(++viewCounter), IWorkbenchPage.VIEW_ACTIVATE);

        } catch (PartInitException e) {
            ILogHelper.error("The view for the selected object could not be opened", e);
        }
    }

});

这似乎工作正常。只有一个小问题: 我需要以某种方式将对象(比方说 selectedItem)传递到我的视图,以便让用户与其内容交互。我怎么做?

我见过一些例子,其中我的一些同事编写了自己的视图,并将其放置在右侧。然后他们添加了一个CTabFolder,实例化视图并手动添加它们。有更聪明的解决方案吗?


创建一个新接口,为其提供类似的方法accept( Object parameter )并让你的意见落到实处。

然后,当你这样做时PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView(viewId, String.valueOf(++viewCounter), IWorkbenchPage.VIEW_ACTIVATE)方法showView返回一个IViewPart。将此返回投射到您的界面并调用accept method.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将参数传递给视图 的相关文章

  • Play框架运行应用程序问题

    每当我尝试运行使用以下命令创建的新 Web 应用程序时 我都会收到以下错误Play http www playframework org Error occurred during initialization of VM Could no
  • 使用 Android 发送 HTTP Post 请求

    我一直在尝试从 SO 和其他网站上的大量示例中学习 但我无法弄清楚为什么我编写的示例不起作用 我正在构建一个小型概念验证应用程序 它可以识别语音并将其 文本 作为 POST 请求发送到 node js 服务器 我已确认语音识别有效 并且服务
  • 在 HTTPResponse Android 中跟踪重定向

    我需要遵循 HTTPost 给我的重定向 当我发出 HTTP post 并尝试读取响应时 我得到重定向页面 html 我怎样才能解决这个问题 代码 public void parseDoc final HttpParams params n
  • 列出jshell中所有活动的方法

    是否有任何命令可以打印当前 jshell 会话中所有新创建的方法 类似的东西 list但仅适用于方法 您正在寻找命令 methods all 它会打印所有方法 包括启动 JShell 时添加的方法 以及失败 被覆盖或删除的方法 对于您声明的
  • 如何将 Eclipse Classic 升级到 Java EE?

    我想开发 HTML5 网站 我已经安装了用于Android开发的Java 我的机器上安装了 Eclipse Classic 3 6 现在我希望在同一台机器上安装 Java EE 是否可以 如果是这样 请告诉我如何将 Eclipse Clas
  • 为什么HashMap不能保证map的顺序随着时间的推移保持不变

    我在这里阅读有关 Hashmap 和 Hashtable 之间的区别 http javarevisited blogspot sg 2010 10 difference Between hashmap and html http javar
  • 使用Caliper时如何指定命令行?

    我发现 Google 的微型基准测试项目 Caliper 非常有趣 但文档仍然 除了一些示例 完全不存在 我有两种不同的情况 需要影响 JVM Caliper 启动的命令行 我需要设置一些固定 最好在几个固定值之间交替 D 参数 我需要指定
  • getResourceAsStream() 可以找到 jar 文件之外的文件吗?

    我正在开发一个应用程序 该应用程序使用一个加载配置文件的库 InputStream in getClass getResourceAsStream resource 然后我的应用程序打包在一个 jar文件 如果resource是在里面 ja
  • 如何在控制器、服务和存储库模式中使用 DTO

    我正在遵循控制器 服务和存储库模式 我只是想知道 DTO 在哪里出现 控制器应该只接收 DTO 吗 我的理解是您不希望外界了解底层域模型 从领域模型到 DTO 的转换应该发生在控制器层还是服务层 在今天使用 Spring MVC 和交互式
  • AWS 无法从 START_OBJECT 中反序列化 java.lang.String 实例

    我创建了一个 Lambda 函数 我想在 API 网关的帮助下通过 URL 访问它 我已经把一切都设置好了 我还创建了一个application jsonAPI Gateway 中的正文映射模板如下所示 input input params
  • Google App Engine 如何预编译 Java?

    App Engine 对应用程序的 Java 字节码使用 预编译 过程 以增强应用程序在 Java 运行时环境中的性能 预编译代码的功能与原始字节码相同 有没有详细的信息这是做什么的 我在一个中找到了这个谷歌群组消息 http groups
  • Android 中麦克风的后台访问

    是否可以通过 Android 手机上的后台应用程序 服务 持续监控麦克风 我想做的一些想法 不断聆听背景中的声音信号 收到 有趣的 音频信号后 执行一些网络操作 如果前台应用程序需要的话 后台应用程序必须能够智能地放弃对麦克风的访问 除非可
  • 在mockito中使用when进行模拟ContextLoader.getCurrentWebApplicationContext()调用。我该怎么做?

    我试图在使用 mockito 时模拟 ContextLoader getCurrentWebApplicationContext 调用 但它无法模拟 here is my source code Mock org springframewo
  • Java列表的线程安全

    我有一个列表 它将在线程安全上下文或非线程安全上下文中使用 究竟会是哪一个 无法提前确定 在这种特殊情况下 每当列表进入非线程安全上下文时 我都会使用它来包装它 Collections synchronizedList 但如果不进入非线程安
  • 声明的包“”与预期的包不匹配

    我可以编译并运行我的代码 但 VSCode 中始终显示错误 早些时候有一个弹出窗口 我不记得是什么了 我点击了 全局应用 从那以后一直是这样 Output is there but so is the error The declared
  • 在activity_main.xml中注释

    我是安卓新手 据我所知 XML 中的注释与 HTML 中的注释相同 使用 形式 我想在 Android 项目的 Activity main xml 配置文件中写一些注释 但它给了我错误 值得注意的是 我使用的是 Eclipse 但目前 我直
  • 静态变量的线程安全

    class ABC implements Runnable private static int a private static int b public void run 我有一个如上所述的 Java 类 我有这个类的多个线程 在里面r
  • 编译器抱怨“缺少返回语句”,即使不可能达到缺少返回语句的条件

    在下面的方法中 编译器抱怨缺少退货声明即使该方法只有一条路径 并且它包含一个return陈述 抑制错误需要另一个return陈述 public int foo if true return 5 鉴于Java编译器可以识别无限循环 https
  • 捕获的图像分辨率太大

    我在做什么 我允许用户捕获图像 将其存储到 SD 卡中并上传到服务器 但捕获图像的分辨率为宽度 4608 像素和高度 2592 像素 现在我想要什么 如何在不影响质量的情况下获得小分辨率图像 例如我可以获取或设置捕获的图像分辨率为原始图像分
  • 使用 xpath 和 vtd-xml 以字符串形式获取元素的子节点和文本

    这是我的 XML 的一部分

随机推荐

  • 如何将highcharts中的毫秒级json数据格式化为日期格式?

    我从json获取日期数组为1420185600000 1420531200000 1420617600000 1420704000000 1420790400000 1420876800000 如何格式化它以在高图表的 X 轴标签中显示正确
  • 无法在android的服务中启动计时器

    我不知道发生了什么问题 我无法在我的服务中启动计时器 遵循代码 public class BkgService extends Service private Timer ServUpdTimer new Timer private sta
  • 使用 eclipse 插件将修改后的 AST 保存在新文件中

    我有一个 Eclipse 插件代码来操作项目 工作空间中的类 smcho Hello 我可以创建一个 CompilationUnit 并对其进行一些修改 但我需要将结果保存在不同的文件中以检查两个版本之间的差异 这是我获取 Compilat
  • 表格布局固定渲染如何?

    表格布局固定渲染如何 根据 17 5 2 1 固定表格布局 来自 W3 在固定表格布局算法中 每列的宽度确定如下 1 width 属性的值不是 auto 的列元素设置该列的宽度 2 否则 第一行中 width 属性的值不是 auto 的单元
  • Guava 前提条件 checkNull、checkArgument

    我想检查基类的先决条件 以便我知道子类型将始终使用有效的构造函数参数 让我们以一个构造函数为例 需要 2 个或更多参数 接受不同类型的参数 对于一个参数 它执行多次检查 例如 String 不为 nulland不是空的 在这种情况下 如何最
  • 文件签名验证

    我使用了 Mark Russinovich 编写的实用程序 它用于验证文件签名 任何人都知道如何做到这一点 我知道这不是一个简单的代码 但我只需要一些提示 API 步骤 指南图 只是为了朝着正确的方向前进 我读了太多关于 cryptAPI
  • Object.ReferenceEquals 从未命中

    谁能告诉我为什么以下条件不成立 List
  • Ruby 中方法名称末尾的问号是什么意思?

    Ruby 中问号运算符的用途是什么 有时会出现这样的情况 assert product valid 有时它在一个if构造 它是一种代码风格约定 它指示方法返回布尔值 true 或 false 或指示 true 值 或 truthy 值 的对
  • 错误膨胀类片段 |片段没有创建视图

    我遇到这个问题 android view InflateException 二进制 XML 文件行 31 膨胀类片段时出错 片段 com myapp mgm QueryFragment 未创建视图 此问题仅在平板电脑模式下发生 如果应用程序
  • 创建类对象时,抛出错误

    class A constructor this name A M1 return M1 class B extends A constructor this id B M2 return M2 var b new B output Ref
  • 具有 Passport-local 策略的 Composer-rest-server

    我无法找到一个有效的解决方案来在composer rest server 中使用本地策略进行身份验证 事实上 只有一种可行的解决方案是使用 github 我尝试将 COMPOSER PROVIDERS 设置为 export COMPOSER
  • Pandas read_html 导致 TypeError

    我正在使用 bs4 解析 html 页面并提取表格 下面给出示例表格 我试图将其加载到 pandas 中 但是当我调用pddataframe pd read html LOTable skiprows 2 flavor bs4 我收到下面列
  • SQL Server 全文搜索转义字符?

    我正在执行 MS SQL Server 全文搜索查询 我需要转义特殊字符 以便可以搜索包含特殊字符的特定术语 是否有内置函数可以转义全文搜索字符串 如果没有 你会怎么做 坏消息 没有办法 好消息 您不需要它 因为无论如何它都没有帮助 我在我
  • Android 无法实例化活动:在路径上找不到类

    我已经将项目导入到 Eclipse 中 当我尝试运行它时 会抛出以下异常 java lang RuntimeException Unable to instantiate activity ComponentInfo com polygra
  • WSO2 API 管理器 - 向公众公开发布者和商店 URL

    我在用着WSO2 API 管理器用于创建和管理开发者社区 据我所知 API 管理器是在 WSO2 Carbon Server 上驱动的 该服务器又在 Apache Tomcat 上运行 到目前为止 我可以毫无问题地运行 WSO2 API 管
  • 如何在我的应用程序中包含 64 位和 32 位本机代码

    我无法将我的应用程序上传到 Playstore 并出现此错误 我还构建了 Android App Bundle 来上传应用程序 但再次出现此错误 此版本不符合 Google Play 64 位要求 以下 APK 或 App Bundle 可
  • 爱普生TM-T88V格式化

    我设置了一台运行 Ubuntu Server 12 04 的小机器 并直接插入 Epson TM T88V 起初我能够很好地打印 使用 lp 但自动切纸器无法工作 我意识到它只是没有使用驱动程序中包含的正确 PPD 文件 因此一旦我将打印机
  • 内联时扩展方法出错

    我想扩展一些系统类型 然后通过内联使用它们 type System String with member this foo n this n type System Boolean with member this foo n sprint
  • 无法从 WebStorm 中排除的文件夹中删除 node_modules

    Recently WebStorm marked node modules as excluded and I can t remove it from excluded list Furthermore in Directories me
  • 将参数传递给视图

    在我的 RCP 应用程序中 我有一个带有TreeViewer左侧为导航 右侧为我的视图文件夹 透视图看起来像这样 public void createInitialLayout IPageLayout layout layout setEd