【问题标题】:Eclipse Intro / Welcome pageEclipse 介绍/欢迎页面
【发布时间】:2010-03-18 19:46:19
【问题描述】:

是否可以在欢迎页面上有指向已定义命令的链接,例如,启动一个对话框?

我正在考虑创建一个欢迎页面,指出首先要做什么的步骤,例如:

1) change language (click here)
2) set up database connection (click here)
3) start working (click here)

“单击此处”应该是调用实际对话框进行设置的链接。我正在使用带有命令样式菜单的 Eclipse。

感谢任何建议!

【问题讨论】:

    标签: java eclipse eclipse-rcp rcp


    【解决方案1】:

    您可以像这样从欢迎页面运行 jface 操作(在 introContent.xml 中)

    <link 
    label="System Configuration" 
    url="http://org.eclipse.ui.intro/runAction?pluginId=org.eclipse.ui.internal&#38;class=org.eclipse.ui.internal.OpenPreferencesAction">
       <img src="config.png" alt="System Configuration"/>
       <text>Current system configuration.</text>
    </link>
    

    如果您的介绍页面是 XHTML。编码的 & 符号 &amp;#38; 是一个很常见的陷阱。你也可以调用你自己实现的动作类(不是来自org.eclipse.ui.*的预定义动作类),但你应该像这样实现IIntroAction

    public class YourPreferencesAction extends OpenPreferencesAction implements IIntroAction {
    
        @Override
        public void run(IIntroSite site, Properties params) {
            final IIntroPart introPart = PlatformUI.getWorkbench().getIntroManager().getIntro(); 
            PlatformUI.getWorkbench().getIntroManager().closeIntro(introPart);  
            run();
        }
    
    }
    

    您关闭介绍页面并调用您希望执行的某些方法,在本例中为run()。在所有情况下,您的操作类都应继承自 org.eclipse.jface.Action

    【讨论】:

    • 谢谢,我尝试了 root.xhtml 中的第一个示例,因为在 introContent.xml 中它不会显示:org.eclipse.ui.intro/…"> (试试这里) 我得到一个“!MESSAGE Intro 尝试访问 NULL 包。”
    • 你必须在你introContent.xml中使用XHTML,然后它就会显示出来。它应该在&lt;group&gt; 标记中。像这样:&lt;page&gt;&lt;group&gt;&lt;link ...&gt;
    • 将链接放在 introContent.xml 或 root.xhtml 中并不重要。我都试过了。只是语法不同,结果总是相同的:“!ENTRY org.eclipse.ui.intro 4 0 !MESSAGE Intro 尝试访问 NULL 包。”我已经配置了操作,并且我在链接中输入了正确的名称。那么我还能做错什么?
    • 好吧,现在我知道了。正确的链接描述应该是:org.eclipse.ui.intro/runAction?pluginId=<our plugin name>&class=full action class name>" id="launch"> click here for launch dialog
    【解决方案2】:

    看看 Eclipse 表单 API。这是我发现非常有用的教程:http://www.eclipse.org/articles/Article-Forms/article.html

    表单中可以有链接,这些链接会回调到 HyperLinkListeners。看起来 HyperLink 类还没有链接到 Command 框架中。虽然我可能是错的。有许多东西还没有真正与 Command 框架集成。如果愿意,您可以使用 HyperlinkListener 调用命令的处理程序,手动实现命令调用功能。

    这里是超链接的 API 文档:http://help.eclipse.org/galileo/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/ui/forms/widgets/Hyperlink.html

    【讨论】:

    • tinyurl.com/yljpb7n我发现: 这就是我要找的吗?我将如何实现该操作才能运行命令?
    • 我不知道.. 但我感觉不是。也许虽然。我从未使用过欢迎页面,我只是认为您可以使用 Forms API 中使用的方法在欢迎页面上创建超链接。也许通过让您的欢迎页面成为一种形式?我们将很快为我们的 RCP 项目制作欢迎页面。如果我在处理它时学到任何新东西,我一定会分享。