Eclipse RCP插件开发【1.插件介绍】-程序员宅基地

技术标签: Java  Eclipse  eclipse  

1. 知识储备

1.1 Eclipse RCP

Eclipse RCP 是 Eclipse IDE 的基础架构,允许开发者构建强大的桌面应用程序。它提供了一组框架和工具,使开发者能够创建基于插件体系结构的、高度可定制的桌面应用程序。

以下是 Eclipse RCP 的一些关键概念和特性:

  1. 插件体系结构: Eclipse RCP 基于插件的体系结构,允许开发者将应用程序划分为一系列独立的插件。每个插件负责提供特定的功能或服务。
  2. 视图和编辑器: Eclipse RCP 提供了视图和编辑器框架,使开发者能够构建多窗口和多文档接口(MDI)应用程序。
  3. 工作台:Eclipse RCP 应用程序包含一个工作台,其中包含了各种工具栏、视图和编辑器,用户可以根据自己的需求进行布局和定制。
  4. SWT 和 JFace: Eclipse RCP 使用 SWT(Standard Widget Toolkit)和 JFace 来构建用户界面。SWT 提供了与本地操作系统交互的轻量级控件,而 JFace 则提供了更高级别的 UI 构建工具。
  5. 扩展点和扩展: 插件通过使用扩展点和扩展机制来定义和贡献功能。这使得应用程序可以轻松地扩展和定制。
  6. 特性和更新: Eclipse RCP 支持特性(Features)和更新(Update)机制,允许应用程序进行在线更新和升级。
  7. Eclipse Marketplace: Eclipse RCP 应用程序可以利用 Eclipse Marketplace 中的各种插件和工具,以便更容易地扩展和定制功能。

2. 核心要素

2.1 核心配置

2.1.1 Product文件

Eclipse RCP 中的 .product 文件是用于定义和配置 Eclipse RCP 产品的文件。它描述了产品的名称、ID、版本、启动器配置、插件和特性等信息。以下是 .product 文件的主要元素和详解:

  1. <product> 元素:
    1. 作用: 定义产品的基本信息。
    2. 属性:
      • name: 产品的显示名称。
      • id: 产品的唯一标识符。
      • version: 产品的版本号。
      • useFeatures: 指定是否使用特性(Features)来定义产品。
<product name="My RCP Product" id="com.example.myrcp.product" version="1.0.0" useFeatures="true">
  1. <configIni> 元素:
    1. 作用: 配置产品的 config.ini 文件。
    2. 属性:
      • use: 指定是否使用默认的 config.ini 文件。
<configIni use="default"/>
  1. <launcherArgs> 元素:
    1. 作用: 配置产品启动器的参数。
<launcherArgs>
</launcherArgs>
  1. <launcher> 元素:
    1. 作用: 配置产品的启动器(launcher)。
    2. 属性:
      • solaris: 针对 Solaris 操作系统的配置。
      • win: 针对 Windows 操作系统的配置。
<launcher>
   <win useIco="false">
      <bmp/>
   </win>
</launcher>
  1. <splash> 元素:
    1. 作用: 配置产品的启动时闪屏。
    2. 属性:
      • location: 闪屏图片的位置。
      • product: 与闪屏相关联的产品 ID。
      • foregroundColor: 闪屏前景色。
      • backgroundColor: 闪屏背景色。
<splash
   location="platform:/base/plugins/com.example.myrcp.product/splash.bmp"
   product="${eclipse.product}"
   foregroundColor="0,0,0"
   backgroundColor="255,255,255">
</splash>
  1. <plugins> 元素:
    1. 作用: 定义产品使用的插件。
    2. 子元素:
      • <plugin>: 定义单个插件。
<plugins>
   <plugin id="com.example.plugin1" />
   <plugin id="com.example.plugin2" />
   <!-- 添加其他插件 -->
</plugins>
  1. <features> 元素:
    1. 作用: 定义产品使用的特性。
    2. 子元素:
      • <feature>: 定义单个特性。
<features>
   <feature id="com.example.feature1" />
   <feature id="com.example.feature2" />
   <!-- 添加其他特性 -->
</features>
  1. <configurations> 元素:
    1. 配置产品的插件和特性的启动顺序和启动级别。
<configurations>
      <plugin id="com.example.myproduct.product" autoStart="true" startLevel="1"/>
      <feature id="com.example.myproduct.feature" autoStart="true" startLevel="2"/>
</configurations>

以上是 .product 文件的一些关键元素,它们一起定义了 Eclipse RCP 产品的配置信息。在创建和配置产品时,你可以根据实际需求调整这些元素的属性和子元素。产品的配置文件在构建和打包产品时被用于生成最终的产品。

2.2 Eclipse插件开发介绍

org.eclipse.core.runtime.applications(程序入口)

org.eclipse.core.runtime.applications 是 Eclipse RCP(Rich Client Platform)中用于定义应用程序的扩展点。通过这个扩展点,可以声明和配置 Eclipse RCP 应用程序的入口点(Application),以及应用程序的其他相关信息。

以下是一些关键的类和接口,与 org.eclipse.core.runtime.applications 扩展点相关:

  1. org.eclipse.core.runtime.applications 扩展点:
  • 通过 org.eclipse.core.runtime.applications 扩展点,你可以声明和配置应用程序的入口点。这通常包括指定应用程序类、处理启动参数等信息。
<extension
      id="application"
      point="org.eclipse.core.runtime.applications">
   <application
         cardinality="singleton-global"
         thread="main"
         visible="true">
      <run
            class="org.example.MyApplication">
      </run>
   </application>
</extension>

API Information:

类属性的值必须表示org.eclipse.equinox.application.IApplication的实现者。接口org.eclipse.core.runtime.IPlatformRunnable已被弃用并替换为org.eclipse.equinox.application.IApplication接口。org.eclipse.core.runtime.IPlatformRunnable接口仅支持向后兼容。

  1. IApplication 接口:
  • IApplication 接口是 Eclipse RCP 中应用程序的入口点接口。你的应用程序类需要实现这个接口,并提供 startstop 方法。
import org.eclipse.equinox.app.IApplication;
import org.eclipse.equinox.app.IApplicationContext;

public class MyApplication implements IApplication {
    public Object start(IApplicationContext context) throws Exception {
        // 应用程序启动时的逻辑
        return null;
    }

    public void stop() {
        // 应用程序停止时的逻辑
    }
}
  1. ApplicationDescriptor 类:
  • ApplicationDescriptor 类提供了对应用程序描述信息的访问。通过描述信息,可以获取有关应用程序的配置信息。
import org.eclipse.core.runtime.Platform;
import org.eclipse.equinox.app.IApplicationDescriptor;

public class MyAppDescriptor {
    public static void main(String[] args) {
        // 获取应用程序描述信息
        IApplicationDescriptor descriptor = Platform.getApplicationRegistry()
                .getDescriptors("your.application.id")[0];
        String appName = descriptor.getName();
        System.out.println("Application Name: " + appName);
    }
}
  1. 使用方式:
  • 创建实现了 IApplication 接口的类,实现其中的 startstop 方法。
  • 在插件的 plugin.xml 中声明应用程序扩展点,指定应用程序的实现类。
  • 在 Eclipse IDE 中创建一个启动配置,选择要运行的应用程序。
  • 启动应用程序时,Eclipse RCP 将调用指定的 IApplication 实现类的 start 方法。
  • 应用程序的生命周期由 IApplicationContext 提供的上下文信息进行管理。

通过配置 org.eclipse.core.runtime.applications 扩展点,并实现 IApplication 接口,你可以定义和控制 Eclipse RCP 应用程序的行为。此外,通过使用应用程序描述信息,可以在运行时获取应用程序的相关信息。在实际使用中,需要替换示例中的标识符和类名为实际的应用程序标识符和类名。

org.eclipse.core.runtime.products(定义属性)

org.eclipse.core.runtime.products 扩展点是 Eclipse RCP(Rich Client Platform)中用于定义产品的扩展点。产品定义了一个独立的、可分发的 Eclipse 应用程序。通过定义产品,你可以配置应用程序的名称、图标、启动特性、插件等属性。

以下是 org.eclipse.core.runtime.products 扩展点中 <product> 元素的一些配置:

<extension id="coolProduct" point="org.eclipse.core.runtime.products"> 
      <product name="%coolName" application="coolApplication" description="%coolDescription"> 
          <property name="windowImages" value="window.gif"/> 
          <property name="aboutImage" value="image.gif"/> 
          <property name="aboutText" value="%aboutText"/> 
          <property name="appName" value="CoolApp"/> 
          <property name="welcomePage" value="$nl$/welcome.xml"/> 
          <property name="preferenceCustomization" value="plugin_customization.ini"/> 
      </product> 
   </extension> 

这些属性和元素定义了 Eclipse RCP 产品的一些关键特征,包括产品的标识、名称、启动应用程序、描述、图标、版本等。通过定义产品,你可以配置和分发独立的 Eclipse 应用程序。

org.eclipse.core.runtime.preferences(偏好设置)

org.eclipse.core.runtime.preferences 是 Eclipse IDE 中用于处理偏好设置(Preferences)的核心运行时插件。Eclipse 使用 Preferences 来存储用户和插件的配置信息,例如用户界面的外观、项目的设置等。

以下是一些关于 org.eclipse.core.runtime.preferences 的基本信息:

  1. 功能:
  • 提供了 Eclipse 运行时环境中用于管理偏好设置的支持。
  1. 插件标识符:
  • 插件 ID 为 org.eclipse.core.runtime.preferences
  1. 运行时 Preferences API:
  • Eclipse 提供了运行时 Preferences API,允许插件在运行时存储和检索偏好设置。这些偏好设置以键值对的形式存储。
  1. 使用 Preferences:
  • 插件可以使用 org.eclipse.core.runtime.Preferences 类来访问和操作偏好设置。这包括存储和检索布尔值、整数值、浮点数值、字符串值等。
// 示例:存储和检索偏好设置
Preferences preferences = InstanceScope.INSTANCE.getNode("your.plugin.id");
preferences.putBoolean("booleanKey", true);
boolean value = preferences.getBoolean("booleanKey", false);
  1. Preferences 存储位置:
  • Eclipse 的偏好设置通常存储在工作区的 .metadata/.plugins/org.eclipse.core.runtime/.settings/ 目录下。每个插件都有一个对应的 .prefs 文件。
  1. 监听偏好设置变化:
  • 插件可以通过添加监听器来监视偏好设置的变化,以便在发生变化时采取相应的操作。
IPreferencesService service = Platform.getPreferencesService();
service.addPropertyChangeListener(listener, "your.plugin.id");
  1. Workspace Preferences 和 Instance Preferences:
  • Eclipse 提供了两种类型的 Preferences:Workspace Preferences 和 Instance Preferences。前者是在工作区级别存储的设置,后者是在实例级别存储的设置。
// 获取 Workspace Preferences
Preferences workspacePrefs = InstanceScope.INSTANCE.getNode("your.plugin.id");
// 获取 Instance Preferences
Preferences instancePrefs = InstanceScope.INSTANCE.getNode("your.plugin.id");

8**.** 项目中关于initializer类的配置,储存核心运行系统的偏好设置

class 设置内容
CorePreferenceInitializer
CarrierPreferenceInitializer
CommandPreferenceInitializer
ConfigPreferenceInitializer
DevicePreferenceInitializer
FabPreferenceInitializer
MaintenancePreferenceInitializer
SystemPreferenceInitializer

org.eclipse.help.toc(帮助内容)

org.eclipse.help.toc 扩展点是 Eclipse 中用于定义帮助系统中的表 of contents(TOC,目录)的扩展点。TOC 定义了帮助内容的层次结构,帮助用户浏览和导航到相关的帮助主题。

以下是 org.eclipse.help.toc 扩展点的一些关键元素和属性:

<toc> 元素:

  • 作用: 定义 TOC(目录)的根元素。
  • 属性:
    • file: 指定 TOC 的 XML 文件路径。

<topic> 元素:

  • 作用: 定义帮助主题。
  • 属性:
    • label: 主题的显示标签。
    • href: 主题的链接地址。
    • external: 指示主题是否为外部链接。
    • content: 指定主题内容的 HTML 文件路径。
    • link_to: 指定链接到另一个 TOC 的路径。

<topicContribution> 元素:

  • 作用: 允许插件向 TOC 中添加额外的主题。
  • 属性:
    • link: 指定要链接的 TOC 的路径。
    • toc: 指定用于扩展的 TOC 的路径。

示例:

<extension
     point="org.eclipse.help.toc">
  <toc
        file="toc.xml">
  </toc>
</extension>
<!-- toc.xml -->
<toc label="My Help">
  <topic label="Introduction" href="intro.html"/>
  <topic label="Installation" href="install.html"/>
  <topic label="Advanced Topics" href="advanced.html">
    <topic label="Configuration" href="config.html"/>
    <topic label="Customization" href="customize.html"/>
  </topic>
  <topicContribution toc="additional_toc.xml" link="Additional Topics"/>
</toc>

在上述示例中,org.eclipse.help.toc 扩展点指定了一个 TOC 文件 toc.xml。TOC 文件定义了一个帮助内容的层次结构,包括顶层主题和嵌套主题。还使用了 topicContribution 元素,允许通过链接到另一个 TOC(additional_toc.xml)扩展主题。

这样,Eclipse 帮助系统就可以通过这些定义提供层次结构化的帮助内容,用户可以通过 TOC 导航和浏览相关主题。

org.eclipse.help.contexts(上下文帮助)

org.eclipse.help.contexts 扩展点是 Eclipse 中用于定义上下文帮助(context-sensitive help)的扩展点。上下文帮助提供了与用户界面元素相关联的帮助内容,当用户在应用程序中浏览时,可以获取有关特定元素的详细信息。

以下是 org.eclipse.help.contexts 扩展点的一些关键元素和属性:

<contexts> 元素:

  • 作用: 定义上下文帮助的根元素。
  • 属性:
    • file: 指定上下文定义的 XML 文件路径。

<context> 元素:

  • 作用: 定义一个上下文帮助项。
  • 属性:
    • id: 上下文的唯一标识符。
    • title: 上下文的显示标题。
    • description: 上下文的描述信息。

<topic> 元素:

  • 作用: 定义与上下文相关的帮助主题。
  • 属性:
    • label: 主题的显示标签。
    • href: 主题的链接地址。

示例:

<extension
     point="org.eclipse.help.contexts">
  <contexts
        file="contexts.xml">
  </contexts>
</extension>
<!-- contexts.xml -->
<contexts>
  <context id="com.example.plugin.sampleContext" title="Sample Context" description="Context for the sample plugin">
    <topic label="Sample Topic" href="sampleTopic.html"/>
  </context>
</contexts>

在上述示例中,org.eclipse.help.contexts 扩展点指定了一个上下文定义的 XML 文件 contexts.xml。该文件定义了一个上下文帮助项,其中包括一个上下文(com.example.plugin.sampleContext)和一个与该上下文相关的帮助主题(Sample Topic)。用户可以通过上下文标识符查找并显示相关的上下文帮助。

org.eclipse.ui.actionSets(动作集扩展)

org.eclipse.ui.actionSets 扩展点是 Eclipse 中用于定义动作集(Action Set)的扩展点。动作集是一组在 Eclipse 工作台用户界面中可用的动作(Action)的集合,它们通常与特定功能或视图集成在一起。

以下是 org.eclipse.ui.actionSets 扩展点的一些关键元素和属性:

<actionSet> 元素:

  • 作用: 定义一个动作集。
  • 属性:
    • id: 动作集的唯一标识符。
    • label: 动作集的显示标签。
    • visible: 动作集是否可见,默认为 true
    • menubarPath: 动作集在菜单栏中的位置。
    • toolbarPath: 动作集在工具栏中的位置。
    • description: 动作集的描述信息。

<action> 元素:

  • 作用: 定义一个动作,它是动作集中的一个单独项。
  • 属性:
    • id: 动作的唯一标识符。
    • label: 动作的显示标签。
    • class: 实现动作的类的完全限定名。
    • icon: 动作的图标路径。
    • tooltip: 动作的工具提示文本。

示例:

<extension
     point="org.eclipse.ui.actionSets">
  <actionSet
        id="com.example.myActionSet"
        label="My Action Set"
        visible="true"
        menubarPath="file/additions"
        toolbarPath="toolbar/myToolbar"
        description="Description of My Action Set">
    <action
          id="com.example.myAction"
          label="My Action"
          class="com.example.MyAction"
          icon="icons/myActionIcon.png"
          tooltip="Perform My Action">
    </action>
  </actionSet>
</extension>

在上述示例中,org.eclipse.ui.actionSets 扩展点指定了一个动作集。该动作集包含一个动作(com.example.myAction),该动作具有唯一标识符、显示标签、类名、图标路径和工具提示文本。动作集在菜单栏的 file/additions 位置和工具栏的 toolbar/myToolbar 位置可见,并且有一个描述信息。用户在 Eclipse 工作台中可以看到并使用此动作集及其包含的动作。

API 接口:

class属性的值必须是实现org. eclipse.ui.IWorkbenchWindowActionDelegateorg.eclipse.ui.IWorkbenchWindowPulldownDelegate的类的完全限定名。后者应该在style属性具有值下拉的情况下实现。该类是负责执行操作的处理程序。如果retarget属性为true,则忽略此属性,不应该提供。该类尽可能晚地加载,以避免在真正需要之前加载整个插件。

  • IWorkbenchWindowPulldownDelegate :用于提供到工作台窗口工具栏中的下拉操作。它扩展了IWorkbenchWindowActionDelegate,并添加了一个初始化方法来定义操作的菜单生成器。
  • IWorkbenchWindowActionDelegate :一个操作的接口,该操作被贡献到工作台窗口菜单或工具栏中。它扩展了IActionDelegate,并添加了一个初始化方法,用于将委托连接到它应该使用的工作台窗口。
  • IActionDelegate :通过扩展点贡献的操作接口。此接口应由需要通过扩展点贡献操作的客户端实现。工作台将代表插件生成代理操作对象,以避免在用户需要之前必须激活插件。如果执行该操作,工作台将加载实现此接口的类并创建所谓的操作委托对象。然后请求和所有后续请求将通过代理操作转发给操作委托,该委托执行真正的工作。
    • 代理操作是出现在UI中的操作,因此操作委托需要与代理操作对话以保持适当的外观。一旦创建了操作委托,它将收到所有选择更改的通知,允许它适当地启用或禁用代理操作。

    • 在执行操作之前,不能就选择更改咨询操作委托,因为它不存在。因此,还应通过扩展中包含的简单XML规则来控制操作的启用状态。这些规则允许在加载操作委托的插件之前进行启用状态控制。

    • 客户端可以选择子类化所提供的抽象实现org.eclipse.ui.actions.ActionDelegate或直接实现接口。

    • 动作扩展的启用标准最初由enablesFor以及选择或启用定义。但是,一旦动作委托被实例化,它可以直接在其selsionChanged方法中控制动作启用状态。

    • 需要注意的是,工作台不会代表插件生成菜单。菜单路径必须引用已经存在的菜单。

动作和菜单标签可能包含使用以下规则编码助记符的特殊字符:

  • 助记符是在翻译文本中选定字符前面使用与号 (‘&’) 字符指定的。由于与号不允许在XML字符串中使用,请使用&字符实体。

如果一个扩展为菜单或工具栏贡献了两个或多个操作,这些操作将以与它们在plugin.xml文件中列出的顺序相反的顺序出现。这种行为不可否认是不直观的。然而,它是在Eclipse平台API被冻结后发现的。现在更改行为将破坏依赖于现有行为的每个插件。

选择和启用元素是互斥的。启用元素可以使用子元素object tClass和object tState替换选择元素。例如,以下内容:

 <selection
  class="org.eclipse.core.resources.IFile"
  name="*.java">
 </selection>

可以用:

<enablement>
  <and>
   <objectClass name="org.eclipse.core.resources.IFile"/>
   <objectState name="extension" value="java"/>
  </and>
 </enablement>

实现接口:

插件可以使用此扩展点添加新的顶级菜单。插件还可以定义命名组,允许其他插件将其操作贡献到其中。

顶级菜单是通过使用以下路径属性值创建的:

  • 添加-表示窗口菜单左侧的组。

省略path属性将导致将新菜单添加到添加菜单栏组中。

工作台窗口中的默认组在IWorkbenchActionConstants界面中定义。这些常量可以在代码中用于动态贡献。这些值也可以复制到XML文件中,以便与现有工作台菜单和工具栏进行细粒度集成。

工作台窗口中的各种菜单和工具栏项是通过算法定义的。在这些情况下,必须使用单独的机制来扩展窗口。例如,添加新的工作台视图会导致新菜单项出现在透视菜单中。导入、导出和新向导扩展也会自动添加到窗口中。

org.eclipse.ui.activities(活动界面)

org.eclipse.ui.activities 扩展点是 Eclipse 中用于定义活动(Activity)的扩展点。活动是一种机制,用于根据用户的角色或权限来限制特定的 UI 元素(如菜单项、工具栏按钮等)是否可见或可操作。通过活动,可以根据用户的上下文动态调整 Eclipse 工作台的界面元素。

以下是 org.eclipse.ui.activities 扩展点的一些关键元素和属性:

<activity> 元素:

  • 作用: 定义一个活动。
  • 属性:
    • id: 活动的唯一标识符。
    • name: 活动的显示名称。
    • description: 活动的描述信息。

<activityPatternBinding> 元素:

  • 作用: 定义活动与 UI 元素的绑定关系,即指定哪些 UI 元素受活动的限制。
  • 属性:
    • activityId: 关联的活动的唯一标识符。
    • pattern: UI 元素的 ID 模式,用于匹配需要受活动限制的 UI 元素。

<enabledWhen> 元素:

  • 作用: 定义活动的启用条件,即指定何时活动生效。
  • 属性:
    • checkEnabled: 描述活动的启用条件的表达式。

示例:

<extension
     point="org.eclipse.ui.activities">
  <activity
        id="com.example.myActivity"
        name="My Activity"
        description="Description of My Activity">
  </activity>
</extension>
<extension
     point="org.eclipse.ui.activities">
  <activityPatternBinding
        activityId="com.example.myActivity"
        pattern="com.example.myCommand">
  </activityPatternBinding>
</extension>
<extension
     point="org.eclipse.ui.activities">
  <activity
        id="com.example.anotherActivity"
        name="Another Activity"
        description="Description of Another Activity">
  </activity>
  <enabledWhen
        checkEnabled="someExpression">
     <with variable="activityId">
        <equals value="com.example.anotherActivity"/>
     </with>
  </enabledWhen>
</extension>

在上述示例中,org.eclipse.ui.activities 扩展点定义了两个活动:com.example.myActivitycom.example.anotherActivity。其中,com.example.myActivity 关联到 UI 元素的 ID 模式为 com.example.myCommand 的元素。com.example.anotherActivity 定义了一个启用条件,只有当表达式 someExpression 为真时,该活动才生效。这样,可以根据用户的上下文动态控制与这些活动相关的 UI 元素的可见性和可操作性。

org.eclipse.ui.bindings(快捷键绑定)

org.eclipse.ui.bindings 是 Eclipse 中用于定义键盘快捷键和绑定的扩展点。通过这个扩展点,可以定义在 Eclipse 工作台中执行操作的快捷键,以及将这些快捷键绑定到具体的操作。

以下是一些关键的元素和属性,通常在 org.eclipse.ui.bindings 扩展点中使用:

<bindings> 元素:

  • 作用: 定义一组键盘快捷键绑定。
  • 属性:
    • 无特定属性,但该元素的子元素为 <binding>

<binding> 元素:

  • 作用: 定义一个键盘快捷键绑定。
  • 属性:
    • schemeId: 指定绑定的方案(scheme)的 ID。
    • contextId: 指定绑定的上下文(context)的 ID。
    • keySequence: 指定键盘快捷键的序列,例如 “CTRL+SHIFT+F”.
    • command: 指定与快捷键关联的命令的 ID。

<key> 元素:

  • 作用: 定义一个键盘快捷键。
  • 属性:
    • command: 关联的 Eclipse 命令的 ID。
    • schemeId: 所属的键盘方案的 ID。
    • contextId: 关联的上下文(context)的 ID。
    • keySequence: 描述按键的序列,例如 CTRL+ALT+S
    • platform: 可选属性,指定按键在哪个平台上有效,如 win32gtk 等。

示例:

<extension
     point="org.eclipse.ui.bindings">
  <key
        command="org.eclipse.ui.file.save"
        schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
        contextId="org.eclipse.ui.contexts.window"
        sequence="CTRL+S">
  </key>
  <binding
        command="org.eclipse.ui.file.save"
        keySequence="CTRL+S">
  </binding>
</extension>

在上述示例中,org.eclipse.ui.bindings 扩展点定义了两个键盘快捷键绑定。第一个绑定将 “CTRL+S” 绑定到保存命令(org.eclipse.ui.file.save),而第二个绑定将 “CTRL+X” 绑定到剪切命令(org.eclipse.ui.edit.cut)。这些绑定是在默认的快捷键方案和窗口上下文中生效的。

通过使用 org.eclipse.ui.bindings 扩展点,Eclipse 插件可以自定义和扩展键盘快捷键的配置,以满足特定需求。

cmcs系统中场景应用:

commandId schemeId sequence 功能说明 备注
cmcs.command.core.refresh.view cmcs.scheme.AcceleratorConfiguration F5
cmcs.command.core.refresh.cache cmcs.scheme.AcceleratorConfiguration M1+F5
cmcs.command.core.LockClientAction cmcs.scheme.AcceleratorConfiguration M2+M3+L
cmcs.command.command.open.history cmcs.scheme.AcceleratorConfiguration M1+H
cmcs.command.command.open.detail cmcs.scheme.AcceleratorConfiguration ENTER
cmcs.command.command.change.priority cmcs.scheme.AcceleratorConfiguration M1+P
cmcs.command.command.reroute cmcs.scheme.AcceleratorConfiguration M1+R
cmcs.command.command.cancel cmcs.scheme.AcceleratorConfiguration M1+S

org.eclipse.ui.commands(事件命令)

org.eclipse.ui.commands 是 Eclipse IDE 中的扩展点,用于定义和配置命令。Eclipse IDE 中的各种用户操作,例如菜单项点击、工具栏按钮点击等,都会被映射到相应的命令上。通过 org.eclipse.ui.commands 扩展点,可以定义这些命令及其属性。

以下是 org.eclipse.ui.commands 扩展点的主要元素:

<command> 元素:

  • **作用:**定义一个命令。
  • 属性:
    • id: 命令的唯一标识符。
    • name: 命令的显示名称。
    • categoryId: 命令所属的类别的 ID。
    • description: 命令的描述信息。
    • defaultHandler: 命令的默认处理器的 ID。
    • categoryId: 命令所属的类别的 ID。
    • tracingEnabled: 是否启用追踪。

<category> 元素:

  • 作用: 定义一个命令类别。
  • 属性:
    • id: 命令类别的唯一标识符。
    • name: 命令类别的显示名称。
    • description: 命令类别的描述信息。

示例:

<extension
     point="org.eclipse.ui.commands">
  <category
        id="com.example.commandCategory"
        name="Command Category"
        description="Category for custom commands">
  </category>
  <command
        id="com.example.customCommand"
        name="Custom Command"
        description="A custom command"
        categoryId="com.example.commandCategory"
        defaultHandler="com.example.handlers.CustomCommandHandler">
  </command>
</extension>

在上述示例中,<category> 元素定义了一个命令类别,具有唯一标识符 com.example.commandCategory。然后,<command> 元素定义了一个命令,具有唯一标识符 com.example.customCommand,所属的类别为 com.example.commandCategory,并指定了默认的命令处理器com.example.handlers.CustomCommandHandler

通过使用 org.eclipse.ui.commands 扩展点,开发者可以在 Eclipse IDE 中定义和配置命令,以支持用户界面上的各种交互操作。这有助于实现更灵活和可定制的用户体验。

org.eclipse.ui.contexts (上下文)

org.eclipse.ui.contexts 是 Eclipse IDE 中的扩展点,用于定义上下文(context)。上下文在 Eclipse IDE 中用于确定何时启用或禁用命令,以及何时触发监听器。通过定义上下文,可以根据特定的上下文状态来控制用户界面元素的行为。

以下是 org.eclipse.ui.contexts 扩展点的主要元素:

<context> 元素:

  • 作用: 定义一个上下文。
  • 属性:
    • id: 上下文的唯一标识符。
    • name: 上下文的显示名称。
    • description: 上下文的描述信息。
    • parentId: 可选属性,指定上下文的父级上下文。

<contextState> 元素:

  • 作用: 定义上下文的状态。
  • 属性:
    • id: 上下文状态的唯一标识符。
    • name: 上下文状态的显示名称。
    • description: 上下文状态的描述信息。
    • value: 上下文状态的值。

示例:

<extension
     point="org.eclipse.ui.contexts">
  <context
        id="com.example.myContext"
        name="My Context"
        description="Custom context for my feature">
  </context>
  <contextState
        id="com.example.myContextEnabled"
        name="Enabled"
        description="The context is enabled"
        value="com.example.myContextEnabled">
  </contextState>
</extension>

在上述示例中,<context> 元素定义了一个上下文,具有唯一标识符 com.example.myContext,显示名称为 “My Context”。然后,<contextState> 元素定义了上下文的状态,具有唯一标识符 com.example.myContextEnabled,显示名称为 “Enabled”,并且当上下文处于启用状态时,其值为 com.example.myContextEnabled

通过使用 org.eclipse.ui.contexts 扩展点,开发者可以在 Eclipse IDE 中定义和配置上下文,以根据应用程序的状态控制用户界面元素的行为。这有助于实现更灵活和智能的用户交互。

org.eclipse.ui.decorators(资源装饰器)

org.eclipse.ui.decorators 是 Eclipse IDE 中的扩展点,用于定义和配置装饰器(decorators)。装饰器允许在资源(如项目、文件)或其他元素上添加附加信息或图标,以提供更多的可视化反馈。

以下是 org.eclipse.ui.decorators 扩展点的主要元素:

<decorator> 元素:

  • 作用: 定义一个装饰器。
  • 属性:
    • id: 装饰器的唯一标识符。
    • label: 装饰器的显示名称。
    • icon: 装饰器的图标路径。
    • state: 装饰器的默认状态。
    • location: 装饰器的位置,如 TOP_LEFTBOTTOM_RIGHT 等。
    • class: 装饰器的实现类。
    • adaptable: 是否支持适配器。
    • lightweight: 是否为轻量级装饰器。

<enablement> 元素:

  • 作用: 定义装饰器的启用条件。
  • 内容: 一个或多个条件,用于确定何时启用装饰器。

示例:

<extension
     point="org.eclipse.ui.decorators">
  <decorator
        id="com.example.myDecorator"
        label="My Decorator"
        icon="icons/myDecorator.png"
        state="ENABLED"
        location="BOTTOM_RIGHT"
        class="com.example.decorators.MyDecorator">
    <enablement>
        <objectState name="org.eclipse.core.resources.projectOpen" value="true"/>
    </enablement>
  </decorator>
</extension>

在上述示例中,<decorator> 元素定义了一个装饰器,具有唯一标识符 com.example.myDecorator,显示名称为 “My Decorator”,图标路径为 “icons/myDecorator.png”,并且默认启用。该装饰器位于底部右侧(BOTTOM_RIGHT),使用 com.example.decorators.MyDecorator 类实现。通过 <enablement> 元素,指定了装饰器的启用条件,即当项目处于打开状态时(projectOpentrue)启用该装饰器。

通过使用 org.eclipse.ui.decorators 扩展点,开发者可以在 Eclipse IDE 中定义和配置装饰器,以增强用户界面的可视化效果。这有助于提供更丰富的信息反馈,使用户能够更清晰地理解资源或元素的状态。

cmcs中的应用:

id class 描述
cmcs.decorator.fabExplorerlabelDecorator FabExplorerLabelProvider 处理fab界面的装饰,各设备节点的图片,文本,联动状态变化等
cmcs.decorator.mcsConfigExplorerlabelDecorator McsConfigExplorerLabelProvider
cmcs.decorator.fabStatusExplorerlabelDecorator FabStatusExplorerLabelProvider

org.eclipse.ui.handlers(事件命令处理器)

org.eclipse.ui.handlers 是 Eclipse IDE 中的扩展点,用于定义和配置命令处理器(handlers)。处理器是与 Eclipse 命令相关联的代码,负责执行实际的操作或任务。通过定义处理器,可以将特定的行为与 Eclipse 命令关联起来。

以下是 org.eclipse.ui.handlers 扩展点的主要元素:

<command> 元素:

  • 作用: 定义一个命令。
  • 属性:
    • id: 命令的唯一标识符。
    • name: 命令的显示名称。
    • description: 命令的描述信息。
    • defaultHandler: 默认的命令处理器的 ID。

<handler> 元素:

  • 作用: 定义一个命令处理器。
  • 属性:
    • commandId: 关联的命令的 ID。
    • class: 命令处理器的实现类。
    • name: 命令处理器的显示名称。
    • description: 命令处理器的描述信息。

示例:

<extension
     point="org.eclipse.ui.handlers">
  <command
        id="com.example.myCommand"
        name="My Command"
        description="Custom command">
  </command>
  <handler
        commandId="com.example.myCommand"
        class="com.example.handlers.MyCommandHandler"
        name="My Command Handler"
        description="Handler for my custom command">
  </handler>
</extension>

在上述示例中,<command> 元素定义了一个命令,具有唯一标识符 com.example.myCommand,显示名称为 “My Command”。然后,<handler> 元素定义了一个命令处理器,将该处理器与命令 com.example.myCommand 关联,使用 com.example.handlers.MyCommandHandler 类实现。

通过使用 org.eclipse.ui.handlers 扩展点,开发者可以在 Eclipse IDE 中定义和配置命令及其处理器,实现用户界面上的各种交互操作。处理器是执行实际任务的地方,可以包含与命令相关的业务逻辑。

cmcs中的应用场景:

commandId handler 描述
cmcs.command.command.cancel sg.com.nsynus.cmcs.ui.core.commands.CommandHandler
cmcs.command.command.reroute sg.com.nsynus.cmcs.ui.core.commands.CommandHandler
cmcs.command.command.change.priority sg.com.nsynus.cmcs.ui.core.commands.CommandHandler
cmcs.command.command.open.detail sg.com.nsynus.cmcs.ui.core.commands.CommandHandler
cmcs.command.command.open.history sg.com.nsynus.cmcs.ui.core.commands.CommandHandler

org.eclipse.ui.perspectives(透视图:布局和功能)

org.eclipse.ui.perspectives 是 Eclipse IDE 中的扩展点,用于定义和配置透视图(perspectives)。透视图是 Eclipse IDE 中的一个重要概念,代表了不同的工作环境,每个透视图都包含了一组适用于特定任务或角色的编辑器、视图和操作。

以下是 org.eclipse.ui.perspectives 扩展点的主要元素:

<perspective> 元素:

  • 作用: 定义一个透视图。
  • 属性:
    • id: 透视图的唯一标识符。
    • name: 透视图的显示名称。
    • class: 透视图的实现类。
    • icon: 透视图的图标路径。
    • fixed: 是否为固定透视图。
    • description: 透视图的描述信息。

<reset> 元素:

  • 作用: 定义透视图的重置操作。
  • 属性:
    • perspectiveId: 要重置的透视图的 ID。

示例:

<extension
     point="org.eclipse.ui.perspectives">
  <perspective
        id="com.example.myPerspective"
        name="My Perspective"
        class="com.example.perspectives.MyPerspective"
        icon="icons/myPerspective.png"
        fixed="false"
        description="Custom perspective for my tasks">
  </perspective>
</extension>

在上述示例中,<perspective> 元素定义了一个透视图,具有唯一标识符 com.example.myPerspective,显示名称为 “My Perspective”,使用 com.example.perspectives.MyPerspective 类实现。透视图的图标路径为 “icons/myPerspective.png”,并且该透视图不是固定的(fixed="false")。通过这个扩展,开发者可以自定义透视图,以适应特定的开发任务或工作流程。

通过使用 org.eclipse.ui.perspectives 扩展点,开发者可以在 Eclipse IDE 中定义和配置透视图,使用户能够根据自己的工作需求定制 IDE 的布局和功能。

CMCS的应用:

id class 功能描述
cmcs.perspective.clientLock ClientLockPerspective
cmcs.perspective.carrier CarrierPerspective
cmcs.perspective.command CommandPerspective
cmcs.perspective.commlog CommLogPerspective
cmcs.perspective.config ConfigPerspective
cmcs.perspective.device DevicePerspective
cmcs.perspective.fab FabPerspective
cmcs.perspective.history HistoryPerspective
cmcs.perspective.maintenance MaintenancePerspective
cmcs.perspective.statistics StatisticsPerspective
cmcs.perspective.system SystemPerspective
cn.com.nsynus.cim.cmcs.ui.perspective.PmsPerspective PmsPerspective

org.eclipse.ui.perspectiveExtensions(透视图配置和功能)

org.eclipse.ui.perspectiveExtensions 是 Eclipse IDE 中的扩展点,用于向已定义的透视图(perspective)添加额外的配置或功能。通过这个扩展点,可以扩展透视图的行为,例如添加新的编辑器、视图、动作等。是org.eclipse.ui.perspectives 透视图的拓展。每个透视图可以存在多个View视图

以下是 org.eclipse.ui.perspectiveExtensions 扩展点的主要元素:

<perspectiveExtension> 元素:

  • 作用: 定义透视图的扩展。
  • 属性:
    • targetID: 要扩展的透视图的 ID。
    • id: 扩展的唯一标识符。

<editor> 元素:

  • 作用: 定义一个编辑器。
  • 属性:
    • id: 编辑器的唯一标识符。
    • icon: 编辑器的图标路径。
    • name: 编辑器的显示名称。
    • class: 编辑器的实现类。

<view> 元素:

  • 作用: 定义一个视图。
  • 属性:
    • id: 视图的唯一标识符。
    • icon: 视图的图标路径。
    • name: 视图的显示名称。
    • class: 视图的实现类。

<actionSet> 元素:

  • 作用: 定义一个操作集。
  • 属性:
    • id: 操作集的唯一标识符。

示例:

<extension
     point="org.eclipse.ui.perspectiveExtensions">
  <perspectiveExtension
        targetID="com.example.myPerspective"
        id="com.example.perspectiveExtension1">
    <editor
          id="com.example.myEditor"
          icon="icons/myEditor.png"
          name="My Editor"
          class="com.example.editors.MyEditor">
    </editor>
    <view
          id="com.example.myView"
          icon="icons/myView.png"
          name="My View"
          class="com.example.views.MyView">
    </view>
    <actionSet
          id="com.example.myActionSet">
    </actionSet>
  </perspectiveExtension>
</extension>

在上述示例中,<perspectiveExtension> 元素定义了一个透视图扩展,目标透视图的 ID 为 com.example.myPerspective,扩展的唯一标识符为 com.example.perspectiveExtension1。通过该扩展,向透视图添加了一个编辑器、一个视图和一个操作集。具体的编辑器、视图和操作集的定义则通过 <editor><view><actionSet> 元素完成。

通过使用 org.eclipse.ui.perspectiveExtensions 扩展点,开发者可以在 Eclipse IDE 中扩展已有的透视图,以添加自定义的编辑器、视图和操作集,从而满足特定的开发需求。这有助于定制 IDE 的功能,使其更适应用户的工作流程。

org.eclipse.ui.preferencePages(定义和配置偏好设置)

org.eclipse.ui.preferencePages 是 Eclipse IDE 中的扩展点,用于定义和配置首选项页面(Preference Pages)。首选项页面提供用户界面,允许用户配置和调整 Eclipse IDE 的各种设置和首选项。

以下是 org.eclipse.ui.preferencePages 扩展点的主要元素:

<page> 元素:

  • 作用: 定义一个首选项页面。
  • 属性:
    • id: 首选项页面的唯一标识符。
    • name: 首选项页面的显示名称。
    • class: 首选项页面的实现类。
    • category: 首选项页面的所属类别。

<category> 元素:

  • 作用: 定义首选项页面的类别。
  • 属性:
    • id: 类别的唯一标识符。
    • name: 类别的显示名称。

示例:

<extension
     point="org.eclipse.ui.preferencePages">
  <category
        id="com.example.myCategory"
        name="My Category">
  </category>
  <page
        id="com.example.myPreferencePage"
        name="My Preference Page"
        class="com.example.preferences.MyPreferencePage"
        category="com.example.myCategory">
  </page>
</extension>

在上述示例中,<category> 元素定义了一个首选项页面的类别,具有唯一标识符 com.example.myCategory 和显示名称 “My Category”。然后,<page> 元素定义了一个首选项页面,具有唯一标识符 com.example.myPreferencePage、显示名称 “My Preference Page”,使用 com.example.preferences.MyPreferencePage 类实现,并属于类别 com.example.myCategory

通过使用 org.eclipse.ui.preferencePages 扩展点,开发者可以在 Eclipse IDE 中定义和配置首选项页面,以提供用户友好的界面,让用户能够方便地配置 IDE 的各种设置和首选项。这有助于提升用户体验和个性化 IDE 的行为。

org.eclipse.ui.propertiesView(配置属性视图)

org.eclipse.ui.propertiesView 是 Eclipse IDE 中的扩展点,用于配置和定义属性视图(Properties View)。属性视图是 Eclipse IDE 中的一个重要组件,它显示了当前选择的资源或元素的属性,允许用户查看和编辑这些属性。

以下是 org.eclipse.ui.propertiesView 扩展点的主要元素:

<propertySheet> 元素:

  • 作用: 定义属性视图。
  • 属性:
    • id: 属性视图的唯一标识符。
    • class: 属性视图的实现类。
    • showReadOnly: 是否显示只读属性,默认为 false

示例:

<extension point="org.eclipse.ui.propertiesView">
   <propertySheet
         id="com.example.myPropertiesView"
         class="com.example.views.MyPropertiesView"
         showReadOnly="true">
   </propertySheet>
</extension>

在上述示例中,<propertySheet> 元素定义了一个属性视图,具有唯一标识符 com.example.myPropertiesView,使用 com.example.views.MyPropertiesView 类实现,并且设置了 showReadOnly 属性为 true,以显示只读属性。

通过使用 org.eclipse.ui.propertiesView 扩展点,开发者可以在 Eclipse IDE 中定义和配置属性视图,以提供一个可定制的属性编辑器,使用户能够查看和编辑资源或元素的属性。这有助于增强 IDE 的可扩展性和适应性。

org.eclipse.ui.viewActions(配置视图操作)

org.eclipse.ui.viewActions 是 Eclipse IDE 中的扩展点,用于定义和配置视图操作(View Actions)。视图操作是与视图关联的一组动作,允许用户执行特定的操作或任务。

以下是 org.eclipse.ui.viewActions 扩展点的主要元素:

<action> 元素:

  • 作用: 定义一个视图操作。
  • 属性:
    • id: 视图操作的唯一标识符。
    • label: 视图操作的显示名称。
    • class: 视图操作的实现类。
    • icon: 视图操作的图标路径。

示例:

<extension point="org.eclipse.ui.viewActions">
   <action
         id="com.example.myViewAction"
         label="My View Action"
         class="com.example.actions.MyViewAction"
         icon="icons/myActionIcon.png">
   </action>
</extension>

在上述示例中,<action> 元素定义了一个视图操作,具有唯一标识符 com.example.myViewAction,显示名称为 “My View Action”,使用 com.example.actions.MyViewAction 类实现,并且指定了图标路径为 “icons/myActionIcon.png”。

通过使用 org.eclipse.ui.viewActions 扩展点,开发者可以在 Eclipse IDE 中定义和配置与视图关联的操作,以扩展视图的功能和提供更丰富的用户交互。这有助于增强 IDE 的灵活性和用户体验。

https://archive.eclipse.org/eclipse/downloads/documentation/2.0/html/plugins/org.eclipse.platform.doc.isv/reference/extension-points/org_eclipse_ui_viewActions.html

org.eclipse.ui.views(定义和配置视图)

org.eclipse.ui.views 是 Eclipse IDE 中的扩展点,用于定义和配置视图(Views)。视图是 Eclipse IDE 中的一个核心概念,它提供了一种查看和操作特定数据或资源的方式,可以与编辑器、透视图等组件集成在一起。

以下是 org.eclipse.ui.views 扩展点的主要元素:

<view> 元素:

  • 作用: 定义一个视图。
  • 属性:
    • id: 视图的唯一标识符。
    • name: 视图的显示名称。
    • class: 视图的实现类。
    • icon: 视图的图标路径。
    • category: 视图所属的类别。

<category> 元素:

  • 作用: 定义视图的类别。
  • 属性:
    • id: 类别的唯一标识符。
    • name: 类别的显示名称。

示例:

<extension
     point="org.eclipse.ui.views">
  <category
        id="com.example.myCategory"
        name="My Views">
  </category>
  <view
        id="com.example.myView"
        name="My View"
        class="com.example.views.MyView"
        icon="icons/myViewIcon.png"
        category="com.example.myCategory">
  </view>
</extension>

在上述示例中,<category> 元素定义了一个视图的类别,具有唯一标识符 com.example.myCategory 和显示名称 “My Views”。然后,<view> 元素定义了一个视图,具有唯一标识符 com.example.myView、显示名称 “My View”,使用 com.example.views.MyView 类实现,并指定了图标路径为 “icons/myViewIcon.png”,同时属于类别 com.example.myCategory

通过使用 org.eclipse.ui.views 扩展点,开发者可以在 Eclipse IDE 中定义和配置视图,以提供对特定数据或资源的可视化展示和操作。这有助于构建更丰富和灵活的用户界面,满足用户不同的工作需求。

API Information:

class属性的值必须是实现org. eclipse.ui.IViewPart的Java类的完全限定名称。在开发新视图时,子类化org.eclipse.ui.part.ViewPart是常见做法。

接口实现:

工作台提供了许多标准视图,包括导航器、属性、大纲和任务。从用户的角度来看,这些视图与插件提供的任何其他视图没有区别。所有视图都可以从“窗口”菜单的“显示视图”子菜单中显示。视图的位置是持久的:当视图关闭时保存,当视图在单个会话中重新打开时恢复。该位置也在工作台会话之间持久化。

org.eclipse.core.runtime.products

org.eclipse.core.runtime.products 是 Eclipse IDE 中的扩展点,用于定义和配置产品(Products)。产品是 Eclipse IDE 的一种打包和定制方式,允许开发者创建基于 Eclipse 平台的独立应用程序。

以下是 org.eclipse.core.runtime.products 扩展点的主要元素:

<product> 元素:

  • 作用: 定义一个产品。
  • 属性:
    • id: 产品的唯一标识符。
    • name: 产品的显示名称。
    • application: 产品关联的应用程序 ID。
    • version: 产品的版本号。
    • definitionFile: 产品的定义文件路径。
    • description: 产品的描述信息。

<configIni> 元素:

  • 作用: 配置产品的 config.ini 文件。
  • 属性:
    • use: 指定是否使用默认的 config.ini 文件。

<launcherArgs> 元素:

  • 作用: 配置产品启动器的参数。

<launcher> 元素:

  • 作用: 配置产品的启动器(launcher)。
  • 子元素:
    • <solaris>: 针对 Solaris 操作系统的配置。
    • <win>: 针对 Windows 操作系统的配置。

<splash> 元素:

  • 作用: 配置产品的启动时闪屏。
  • 属性:
    • location: 闪屏图片的位置。
    • product: 与闪屏相关联的产品 ID。
    • foregroundColor: 闪屏前景色。
    • backgroundColor: 闪屏背景色。

示例:

<extension
     point="org.eclipse.core.runtime.products">
  <product
        id="com.example.myProduct"
        name="My Product"
        application="org.eclipse.ui.ide.workbench"
        version="1.0.0"
        definitionFile="product/plugin.xml"
        description="My Eclipse Product">
    <configIni
          use="default">
    </configIni>
    <launcherArgs>
    </launcherArgs>
    <launcher>
      <win
           useIco="false">
         <bmp/>
      </win>
    </launcher>
    <splash
        location="platform:/base/plugins/com.example.myProduct/splash.bmp"
        product="${eclipse.product}"
        foregroundColor="0,0,0"
        backgroundColor="255,255,255">
    </splash>
  </product>
</extension>

在上述示例中,<product> 元素定义了一个产品,具有唯一标识符 com.example.myProduct、显示名称 “My Product”,关联的应用程序为 org.eclipse.ui.ide.workbench,版本为 “1.0.0”,定义文件路径为 “product/plugin.xml”,描述为 “My Eclipse Product”。<configIni> 元素指定了使用默认的 config.ini 文件。<launcher> 元素配置了产品的启动器,其中 <win> 子元素指定了在 Windows 操作系统上的配置。<splash> 元素配置了产品的启动时闪屏,指定了图片位置、前景色和背景色。

通过使用 org.eclipse.core.runtime.products 扩展点,开发者可以在 Eclipse IDE 中定义和配置产品,以创建独立的 Eclipse 应用程序。这有助于定制化 Eclipse 平台,以满足特定应用场景的需求。

API Information:

此处提供的静态产品扩展在运行时由IProduct实例表示。动态产品扩展必须标识IProductProvider的实现者。有关EclipseUI定义的与品牌相关的产品属性的详细信息,请参阅org. eclipse.ui.brand.IProduct常量。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/joiwsev/article/details/135979269

智能推荐

MapReduce论文中文版-程序员宅基地

文章浏览阅读6.3k次。摘要MapReduce是一个编程模型,也是一个处理和生成超大数据集的算法模型的相关实现。用户首先创建一个Map函数处理一个基于 key/value pair的数据集合,输出中间的基于key/value pair的数据集合;然后再创建一个Reduce函数用来合并所有的具有相同中间key值的中间value值。现实世界中有很多满足上述处理模型的例子, 本论文将详细描述这个模型。MapRe_mapreduce论文中文

win10 mfc100u.dll丢失的解决方法_mfc100u dll下载-程序员宅基地

文章浏览阅读1.5k次。转载这位博主_mfc100u dll下载

制作树苺派/香橙派(orangepi) SD卡备份镜像_树苺派系统备份与还原_orange pi 香橙派emmc系统备份方法-程序员宅基地

文章浏览阅读6.7k次,点赞6次,收藏40次。操作扯扯淡新的改变准备工具正式开干1、将sd卡装入读卡器,然后插上电脑,挂载到ubuntu2、备份SD卡镜像还原方法一:方法二:总结扯扯淡前面一直是做linux运维以及python相关的知识,前段时间无意间拿到手一块orangepi,即香橙派,一直没有在意,近来有点空就拿出来捣鼓一下。树莓派、香橙派、香蕉派这些以水果称呼的嵌入式开发板让人听起来有种不一样的味道,但是许多人对于树莓派与香蕉派很容..._orange pi 香橙派emmc系统备份方法

【语音识别】声纹识别系统(带面板)【含GUI Matlab源码 1022期】-程序员宅基地

文章浏览阅读552次,点赞28次,收藏27次。声纹识别系统(带面板)完整的代码,包运行;运行操作视频见CSDN资源!适合小白!

如何为应用选择最佳的FPGA(上)_fpga封装-程序员宅基地

文章浏览阅读1k次。另一方面,更高端的“重磅”FPGA价格非常昂贵。但这些FPGA的目标应用领域是那些用户愿意为昂贵的FPGA付费的应用,因为他们拥有尖端的技术和能力。例如,这些FPGA应用于顶级军用雷达、下一代无线技术、先进的数字信号处理、数据中心加速等。对于这些细分市场,成本并不是一个重大的交易破坏者。相反,他们对保持技术实力和能力的前沿感兴趣,领先于竞争对手或对手。..._fpga封装

solidity 字符串拼凑_solidity中的字符串-程序员宅基地

文章浏览阅读964次。自从我开始撰写博客以来,感觉已经很久了,直到现在它一直致力于撰写有关统计数据的文章。我不是特别喜欢这个monody,它很快就会变得枯燥乏味。此外,这个博客从一开始就是为了探究两个不同的领域,经过这么长时间的专注于其中一个,我一直感觉到写另一个的冲动。所以,今天我给你一篇关于使用Solidity语言编写以太坊区块链编程的帖子。我不会遵循这样做的任何计划:我的目标只是写下我学习这门语言的障碍和我在日常..._solidity string length

随便推点

C语言函数的定义、声明、分类以及调用(一)_c语言函数声明-程序员宅基地

文章浏览阅读1.9k次,点赞2次,收藏7次。多维数组名也可以作为函数实参,此时被调用函数中形参数组可以指定每一维的大小,也可省略第一维的大小,但第二维的大小不能省略,而且要和实参数组第二维的大小相同。1、使用数组元素作为实参,在循环语句控制下将数组元素a[i]的值传递给形参x,并将其值减32后保存数数组元素b[i]中,调用函数时,形参x的值发生了改变,而实参a[i]的值并没有发生变化。由于数组名表示数组的首地址,因此实参向形参传递的不是数组的值,而是实参的首地址,这样的形参数组和实参数组共占用相同的内存单元。1、函数的定义、声明、分类以及调用。_c语言函数声明

python爬取表情包图片_res=requests.get(img[i][1]) with open('images/'+ti-程序员宅基地

文章浏览阅读487次。上次写了爬取笔趣阁小说,这次来爬点常用的表情包图片。_res=requests.get(img[i][1]) with open('images/'+title[i]+'.jpg','wb') as f:

阅读笔记(last book—ROS书籍⑥)《ROS By Example v1》A Do-It-Yourself Guide to the Robot Operating System_rod by example 1-程序员宅基地

文章浏览阅读701次。这本书是比较经典的学习ROS的书,但是感觉对于初学者来说并不能作为第一本书籍来阅读,像我是个技术小白,一开始拿出这本书来读总是感觉云里雾里,包括现在读v2版本也有同样的感觉。1. 此书的开篇回答了一个关键性的问题:学习ROS从哪里开始?阶段1:学习基本概念和编程技巧其中,在阶段1,可以参考ROS Wiki来查阅安装说明和初学者教程同时,还需要掌握TF坐标变换以理解ROS如何处理不同的框架使用ROS Answers提问阶段2:使用ROS来控制机器人在阶段2:参考本书,通过ROS使机_rod by example 1

Unity官方案例学习——游戏设计理念(游戏的灵魂)-程序员宅基地

文章浏览阅读1.8k次。何为游戏设计理念和游戏中的用户体验?因为以前做的项目大多都是单一功能的完成,没太考虑设计的理念和用户体验,并且我做的大多是UI界面的实现,或者完成简单的数据添加等等,自己没有一套完整的项目经验;我们unity前端、unity程序员、或者想要做游戏的童鞋,再面试的时候,很多公司要求是完成的项目经验者优先,或者大家去一些招聘的APP上看一下,对于整套的游戏设计我们应该有个明确的思路,而制定这个游戏的思路就是设计理念;而所谓的用户体验,就是游戏中玩家在玩游戏过程中对游戏本身玩法、游戏机制、人物、甚至是光照、UI_游戏设计理念

Spring Boot集成smart-doc生成api文档_com.github.shalousun-程序员宅基地

文章浏览阅读9.4k次,点赞5次,收藏24次。mart-doc是一个java restful api文档生成工具,smart-doc颠覆了传统类似swagger这种大量采用注解侵入来生成文档的实现方法。smart-doc完全基于接口源码分析来生成接口文档,完全做到零注解侵入,你只需要按照java标准注释的写,smart-doc就能帮你生成一个简易明了的markdown或是一个像GitBook样式的静态html文档。下面将介绍如何在Spring......_com.github.shalousun

【Unity3d】3d角色换装实现原理及步骤_unity角色换装逻辑-程序员宅基地

文章浏览阅读1.9k次。http://www.cnblogs.com/dosomething/archive/2012/04/15/2450526.html1、角色模型制作  unity3d支持Skin动画 但是不支持Physique动画 会发现Physique动画在unity里严重变形   因此在模型的骨骼动画的制作上面 要用Skin   当然也可以做成Physique 然后用插件转_unity角色换装逻辑

推荐文章

热门文章

相关标签