【问题标题】:How do I make eclipse custom view take data from the file currently active in the editor?如何让 eclipse 自定义视图从编辑器中当前活动的文件中获取数据?
【发布时间】:2015-10-23 01:49:18
【问题描述】:

我最近开始使用 xtext 创建我自己的个人 DSL,并设法创建了一种基于 C(简单表达式和基本功能)的迷你编程语言。我当前的任务是为该语言创建一个自定义树视图,这将使我能够将所有函数视为根元素,并将其中的指令视为子元素。

我似乎无法解决的实际问题是如何使我希望创建的自定义树视图从我当前正在处理的文件中获取数据。
我为我可以使用的 DSL 准备了一个 RCP 产品,我想在其中包含这个视图。 我已经使用 WindowBuilder 为视图创建了界面,并将其作为 ViewPart。
最后,我希望它看起来接近 Java 程序的标准大纲。

提前感谢您的帮助。

【问题讨论】:

标签: eclipse treeview swt eclipse-rcp rcp


【解决方案1】:

如果您使用自己的视图,您可以添加一个 IPartListener 实现,它会在使用以下代码激活编辑器时通知您:

        getViewSite().getPage().addPartListener(new IPartListener() {

        @Override
        public void partOpened(IWorkbenchPart part) {

        }

        @Override
        public void partDeactivated(IWorkbenchPart part) {

        }

        @Override
        public void partClosed(IWorkbenchPart part) {

        }

        @Override
        public void partBroughtToTop(IWorkbenchPart part) {

        }

        @Override
        public void partActivated(IWorkbenchPart part) {
            // Add view initialization from the new part

        }
    });

【讨论】:

  • 这确实有帮助,是的,但我真正需要的是一种方法来解释在编辑器中处于活动状态的特定文件,以便将其元素添加到 TreeView。作为奖励,这个文件不是一个普通的 java 文件,而是一个用我实现的 DSL 制作的文件。我觉得这应该是很明显的东西,但由于某种原因我错过了它,因为我真的无法找到我想要的东西,即使我已经搜索了比我应该找到的更多的东西。
  • 听起来一点也不明显。如果这是您实现的,那么通用工具如何为您提供其元素?您是否使用了某种框架或标准?也许他们的文档可以提供线索。
  • 好的,我已经找到了方法。此处使用从源获取输入的视图来制作随机 DSL 的基线。把它贴在这里以防其他人想要它。 xtexterience.wordpress.com/2011/07/03/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-18
  • 1970-01-01
  • 2011-05-28
  • 2012-05-31
  • 2012-03-10
  • 2018-10-07
相关资源
最近更新 更多