`
liugang594
  • 浏览: 985525 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Eclipse运行(launcher)框架二

阅读更多

定义TabGroup

上面我们定义完了一个type。一般来说我们双击就可以产生一个configuration。但是现在我们双击,会出现一个异常:

tu4

图四

 

很明白的意思:我们没有定义Tab Group。简单的说,我们要生成一个configuration,对应需要有一些tab页去配置内容,所以每个configuration都有一个对应的tabgroup。因为我们还没有为他定义这些,所它不知道生成的configuration需要显示什么样的tab,所以就出错了。下面我们就来扩展这个tab group吧。

这里要用的扩展点是:org.eclipse.debug.ui.launchConfigurationTabGroups一个type下的所有configuration显示的是同样的tab group。当然了这个扩展也应该定义在UI插件里。我的定义如下:

   <extension

         point="org.eclipse.debug.ui.launchConfigurationTabGroups">

      <launchConfigurationTabGroup

            class="com.tibco.cdc.liugang.launcher.ui.tabs.LiugangLaunchConfigurationTabGroup"

            id="com.tibco.cdc.liugang.launcher.ui.configuration.tabGroup"

            type="com.tibco.cdc.liugang.launcher.type">

      </launchConfigurationTabGroup>

   </extension>

 

这里的几个关键点是:

1.    class:实现完成tab页的类

2.    type:还是对应上面我们定义的configurationType

 

面就是要完成这个类。

有些Eclipse内置的Tab类,我们可以直接拿来就用。例如CommonTab。下面我们就实现一个Tab页。自定义的Tab页,需要实现接口:

org.eclipse.debug.ui.ILaunchConfigurationTab

 

不过通常我们只要继承AbstractLaunchConfigurationTab类就行了。我实现如下:

class MainTab extends AbstractLaunchConfigurationTab {

      private Text nameText;

      public void createControl(Composite parent) {
            Composite composite = new Composite(parent,SWT.NONE);
            composite.setLayout(new GridLayout(2,false));
            composite.setLayoutData(new GridData(GridData.FILL_BOTH));
           
           
            Label label = new Label(composite,SWT.NONE);
            label.setText("Name");
           
            nameText = new Text(composite,SWT.SINGLE|SWT.BORDER);
            nameText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
            setControl(composite);
      }

      public String getName() {
            return "Main";
      }

      public void initializeFrom(ILaunchConfiguration configuration) {
            try {
                  String name = configuration.getAttribute("name", "<unnamed>");
                  nameText.setText(name);
            } catch (CoreException e) {
                  e.printStackTrace();
            }
      }

      public void performApply(ILaunchConfigurationWorkingCopy configuration) {
            configuration.setAttribute("name", nameText.getText());
      }

      public void setDefaults(ILaunchConfigurationWorkingCopy configuration) {
            configuration.setAttribute("name", "<unnamed>");
      }
}
 

 

最后我们完成我们的TabGroup如下:

public class LiugangLaunchConfigurationTabGroup extends
            AbstractLaunchConfigurationTabGroup {

      public LiugangLaunchConfigurationTabGroup() {
      }

      public void createTabs(ILaunchConfigurationDialog dialog, String mode) {
            setTabs(new ILaunchConfigurationTab[]{new MainTab(),new CommonTab()});
      }
}
 

 

其实现在我们已经有了一个可运行的东西了。我们先假装完成我们的delegate。如下:

public class LiugangLaunchConfigurationType implements
            ILaunchConfigurationDelegate {

      public void launch(ILaunchConfiguration configuration, String mode,
                  ILaunch launch, IProgressMonitor monitor) throws CoreException {
            System.out.println("You selected liugang launchconfiguration type to run");
      }

}
 

 

其实啥也没写。好了,运行我们的插件先:

tu5

图五

看到了,我们现在已经可以加一个或多个configuration了。而且对应的Tab也已经出来了。并且我们也可以运行。点“run”,试试效果:

You selected liugang launchconfiguration type to run

 

被打印出来了。这就完成了一个简单的运行器的添加。我们看到在我们创建的Tab里几个需要实现的方法里都有一个configuration参数,这个参数就是用来存储了获取配置参数的地方。最后点运行的时候,在我们的typelaunch方法里获得的configuration就是从这里传入的。所以在那里可以得到我们在Tab页上的配置信息。

 

以上我们虽然完成了一个运行过程。不过实在是太简单了。下面我们加一点东西。

 

分享到:
评论
1 楼 imu2008 2014-05-08  
嗯,好文

相关推荐

    可以直接在eclipse上运行Launcher4.4源码

    【标题】"直接在Eclipse上运行Launcher4.4源码"涉及的IT知识点主要集中在Android开发、Eclipse IDE的使用以及源码分析上。Android的Launcher是系统启动器,负责展示桌面图标和启动应用程序,它是Android操作系统的...

    能在eclipse上直接编译的Launcher3

    此外,通过在Eclipse上编译Launcher3,开发者可以深入理解Android系统的运行机制,增强对Android应用架构和性能优化的理解。 总的来说,“能在eclipse上直接编译的Launcher3”提供了一个学习和定制Android启动器的...

    launcher2导入eclipse不报错

    本文档将指导你如何正确地在Eclipse中导入`launcher2`工程,并解决可能出现的100多个错误。 首先,当你尝试在Eclipse中导入`launcher2`工程时,Eclipse可能会报告大量的错误,这主要是因为项目依赖于一些外部的库...

    安卓Launcher桌面相关-使用eclipse开发工具自己写的一个桌面小控件.rar

    这个项目虽然可能无法保证每个组件都能正常运行,但它提供了一个基础框架,可以帮助初学者了解 Android Launcher 的开发流程。通过参考学习和实践,你可以逐步完善自己的 Launcher 功能,打造个性化的桌面体验。

    eclipse指定启动的虚拟机配置说明

    - `-framework`: 指定 Eclipse 使用的框架路径。例如: ``` -framework plugins\org.eclipse.osgi_3.4.3.R34x_v20081215-1030.jar ``` - `-vmargs`: 此行之后的所有参数将传递给 JVM。常见的参数包括: - `-...

    Launcher依赖的jar包

    为了在Eclipse环境中编译和运行`Launcher2`源码,开发者需要确保引入了正确的依赖库。这些依赖库通常包含在`.jar`文件中,它们提供了必要的API和实现,使得`Launcher2`能够正常运行。描述中的"Launcher2 Android4.4...

    精通eclipse开发jsp

    5. **Sysdeo Eclipse Tomcat Launcher plugin**:这是一个Eclipse插件,允许用户直接在Eclipse内启动和管理Tomcat服务器,简化了开发过程中的部署步骤。 6. **Eclipse版本与JDT**:Eclipse 3.1版本是针对该教程的...

    eclipse开发

    3. **Sysdeo Eclipse Tomcat Launcher 3.1beta** - 这是一个Eclipse插件,允许用户直接在Eclipse内管理和运行Tomcat服务器。下载并解压tomcatPluginV31beta.zip,然后将其内容复制到Eclipse的安装目录下。 4. **...

    Spark源代码在Eclipse中的部署、编译、运行.doc

    在本文中,我们将详细探讨如何在Eclipse环境中部署、编译和运行Apache Spark的源代码。Apache Spark是一个流行的开源大数据处理框架,它提供了快速、通用和可扩展的数据处理能力。而Eclipse是一款广泛使用的Java集成...

    Android 调试运行launcher源码(四)——修改所有类中的错.doc

    这篇文档主要讲述了如何在Windows下的Eclipse环境中修正Android Launcher源码中的错误。以下是对文档中提到的知识点的详细说明: 1. **内部类引用问题**:在`AllAppsGridView.java`文件中,原代码使用了`...

    Eclipse 安装配置总结.doc

    - 运行`F:\eclipse\eclipse.exe`启动Eclipse。 #### 二、非侵入式插件安装方法(Links安装法) - **侵入式安装**: - 将插件中的`features`和`plugins`目录直接复制到Eclipse安装目录下的同名目录中。 - 缺点:...

    Eclipse开发struts完全指南

    【Eclipse开发Struts完全指南】是一份详细的文档,旨在帮助开发者使用Eclipse IDE进行Struts框架的应用开发。以下是对该指南中涉及的关键知识点的详细解释: ### 1. 安装程序准备 #### JDK 5.0 JDK (Java ...

    Eclipse使用入门教程

    2. **添加Tomcat运行环境:** - 在`Runtime Environment`界面中点击`Add`按钮。 - 在弹出的对话框中选择`Apache`,然后根据你所使用的Tomcat版本进行选择,例如`Tomcat v7.0`。 - 点击`Next`继续。 - 在下一个...

    eclipse

    3. **Java 应用程序启动器(Java Application Launcher)**: Eclipse 可以帮助开发者配置和启动Java应用程序,包括控制台应用程序和Swing GUI应用程序。 4. **JUnit 支持**: Eclipse 集成了JUnit测试框架,使单元...

    eclipse资源包

    4. `launcher`:这可能指的是Eclipse的启动器模块,负责初始化Eclipse环境,加载工作台(Workbench)和运行时环境。这个部分的源码对于理解Eclipse如何启动和管理进程非常重要。 5. `java`:这个目录可能包含了Java...

    android 4.4 源码 eclipse 浏览

    2. **框架服务(Framework Services)**:位于`frameworks/base`目录,这些服务构成了Android系统的基石,包括ActivityManager、WindowManager、ContentProvider等。通过阅读源码,可以理解它们的工作原理。 3. **...

    Eclipse 插件下载专区lousingvu专用通道

    9. `org.junit_3.8.2.v20090203-1005`:JUnit是Java语言的单元测试框架,此插件使Eclipse支持JUnit测试编写和运行,对代码质量的保证至关重要。 10. `org.eclipse.core.runtime.compatibility.registry_3.2.200.v...

Global site tag (gtag.js) - Google Analytics