Eclipse RCP 是 Eclipse IDE 的基础架构,允许开发者构建强大的桌面应用程序。它提供了一组框架和工具,使开发者能够创建基于插件体系结构的、高度可定制的桌面应用程序。
以下是 Eclipse RCP 的一些关键概念和特性:
Eclipse RCP 中的 .product
文件是用于定义和配置 Eclipse RCP 产品的文件。它描述了产品的名称、ID、版本、启动器配置、插件和特性等信息。以下是 .product
文件的主要元素和详解:
<product>
元素:
name
: 产品的显示名称。id
: 产品的唯一标识符。version
: 产品的版本号。useFeatures
: 指定是否使用特性(Features)来定义产品。<product name="My RCP Product" id="com.example.myrcp.product" version="1.0.0" useFeatures="true">
<configIni>
元素:
config.ini
文件。use
: 指定是否使用默认的 config.ini
文件。<configIni use="default"/>
<launcherArgs>
元素:
<launcherArgs>
</launcherArgs>
<launcher>
元素:
solaris
: 针对 Solaris 操作系统的配置。win
: 针对 Windows 操作系统的配置。<launcher>
<win useIco="false">
<bmp/>
</win>
</launcher>
<splash>
元素:
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>
<plugins>
元素:
<plugin>
: 定义单个插件。<plugins>
<plugin id="com.example.plugin1" />
<plugin id="com.example.plugin2" />
<!-- 添加其他插件 -->
</plugins>
<features>
元素:
<feature>
: 定义单个特性。<features>
<feature id="com.example.feature1" />
<feature id="com.example.feature2" />
<!-- 添加其他特性 -->
</features>
<configurations>
元素:
<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 产品的配置信息。在创建和配置产品时,你可以根据实际需求调整这些元素的属性和子元素。产品的配置文件在构建和打包产品时被用于生成最终的产品。
org.eclipse.core.runtime.applications
是 Eclipse RCP(Rich Client Platform)中用于定义应用程序的扩展点。通过这个扩展点,可以声明和配置 Eclipse RCP 应用程序的入口点(Application),以及应用程序的其他相关信息。
以下是一些关键的类和接口,与 org.eclipse.core.runtime.applications
扩展点相关:
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
接口仅支持向后兼容。
IApplication
接口:IApplication
接口是 Eclipse RCP 中应用程序的入口点接口。你的应用程序类需要实现这个接口,并提供 start
和 stop
方法。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() {
// 应用程序停止时的逻辑
}
}
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);
}
}
IApplication
接口的类,实现其中的 start
和 stop
方法。plugin.xml
中声明应用程序扩展点,指定应用程序的实现类。IApplication
实现类的 start
方法。IApplicationContext
提供的上下文信息进行管理。通过配置 org.eclipse.core.runtime.applications
扩展点,并实现 IApplication
接口,你可以定义和控制 Eclipse RCP 应用程序的行为。此外,通过使用应用程序描述信息,可以在运行时获取应用程序的相关信息。在实际使用中,需要替换示例中的标识符和类名为实际的应用程序标识符和类名。
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
是 Eclipse IDE 中用于处理偏好设置(Preferences)的核心运行时插件。Eclipse 使用 Preferences 来存储用户和插件的配置信息,例如用户界面的外观、项目的设置等。
以下是一些关于 org.eclipse.core.runtime.preferences
的基本信息:
org.eclipse.core.runtime.preferences
。org.eclipse.core.runtime.Preferences
类来访问和操作偏好设置。这包括存储和检索布尔值、整数值、浮点数值、字符串值等。// 示例:存储和检索偏好设置
Preferences preferences = InstanceScope.INSTANCE.getNode("your.plugin.id");
preferences.putBoolean("booleanKey", true);
boolean value = preferences.getBoolean("booleanKey", false);
.metadata/.plugins/org.eclipse.core.runtime/.settings/
目录下。每个插件都有一个对应的 .prefs
文件。IPreferencesService service = Platform.getPreferencesService();
service.addPropertyChangeListener(listener, "your.plugin.id");
// 获取 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
扩展点是 Eclipse 中用于定义帮助系统中的表 of contents(TOC,目录)的扩展点。TOC 定义了帮助内容的层次结构,帮助用户浏览和导航到相关的帮助主题。
以下是 org.eclipse.help.toc
扩展点的一些关键元素和属性:
<toc>
元素:
file
: 指定 TOC 的 XML 文件路径。<topic>
元素:
label
: 主题的显示标签。href
: 主题的链接地址。external
: 指示主题是否为外部链接。content
: 指定主题内容的 HTML 文件路径。link_to
: 指定链接到另一个 TOC 的路径。<topicContribution>
元素:
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
扩展点是 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
扩展点是 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.IWorkbenchWindowActionDelegate
或org.eclipse.ui.IWorkbenchWindowPulldownDelegate
的类的完全限定名。后者应该在style属性具有值下拉的情况下实现。该类是负责执行操作的处理程序。如果retarget
属性为true,则忽略此属性,不应该提供。该类尽可能晚地加载,以避免在真正需要之前加载整个插件。
IWorkbenchWindowPulldownDelegate
:用于提供到工作台窗口工具栏中的下拉操作。它扩展了IWorkbenchWindowActionDelegate
,并添加了一个初始化方法来定义操作的菜单生成器。IWorkbenchWindowActionDelegate
:一个操作的接口,该操作被贡献到工作台窗口菜单或工具栏中。它扩展了IActionDelegate
,并添加了一个初始化方法,用于将委托连接到它应该使用的工作台窗口。IActionDelegate
:通过扩展点贡献的操作接口。此接口应由需要通过扩展点贡献操作的客户端实现。工作台将代表插件生成代理操作对象,以避免在用户需要之前必须激活插件。如果执行该操作,工作台将加载实现此接口的类并创建所谓的操作委托对象。然后请求和所有后续请求将通过代理操作转发给操作委托,该委托执行真正的工作。
代理操作是出现在UI中的操作,因此操作委托需要与代理操作对话以保持适当的外观。一旦创建了操作委托,它将收到所有选择更改的通知,允许它适当地启用或禁用代理操作。
在执行操作之前,不能就选择更改咨询操作委托,因为它不存在。因此,还应通过扩展中包含的简单XML规则来控制操作的启用状态。这些规则允许在加载操作委托的插件之前进行启用状态控制。
客户端可以选择子类化所提供的抽象实现org.eclipse.ui.actions.ActionDelegate
或直接实现接口。
动作扩展的启用标准最初由enablesFor以及选择或启用定义。但是,一旦动作委托被实例化,它可以直接在其selsionChanged方法中控制动作启用状态。
需要注意的是,工作台不会代表插件生成菜单。菜单路径必须引用已经存在的菜单。
动作和菜单标签可能包含使用以下规则编码助记符的特殊字符:
如果一个扩展为菜单或工具栏贡献了两个或多个操作,这些操作将以与它们在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
扩展点是 Eclipse 中用于定义活动(Activity)的扩展点。活动是一种机制,用于根据用户的角色或权限来限制特定的 UI 元素(如菜单项、工具栏按钮等)是否可见或可操作。通过活动,可以根据用户的上下文动态调整 Eclipse 工作台的界面元素。
以下是 org.eclipse.ui.activities
扩展点的一些关键元素和属性:
<activity>
元素:
id
: 活动的唯一标识符。name
: 活动的显示名称。description
: 活动的描述信息。<activityPatternBinding>
元素:
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.myActivity
和 com.example.anotherActivity
。其中,com.example.myActivity
关联到 UI 元素的 ID 模式为 com.example.myCommand
的元素。com.example.anotherActivity
定义了一个启用条件,只有当表达式 someExpression
为真时,该活动才生效。这样,可以根据用户的上下文动态控制与这些活动相关的 UI 元素的可见性和可操作性。
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
: 可选属性,指定按键在哪个平台上有效,如 win32
、gtk
等。示例:
<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
是 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
是 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
是 Eclipse IDE 中的扩展点,用于定义和配置装饰器(decorators)。装饰器允许在资源(如项目、文件)或其他元素上添加附加信息或图标,以提供更多的可视化反馈。
以下是 org.eclipse.ui.decorators
扩展点的主要元素:
<decorator>
元素:
id
: 装饰器的唯一标识符。label
: 装饰器的显示名称。icon
: 装饰器的图标路径。state
: 装饰器的默认状态。location
: 装饰器的位置,如 TOP_LEFT
、BOTTOM_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>
元素,指定了装饰器的启用条件,即当项目处于打开状态时(projectOpen
为 true
)启用该装饰器。
通过使用 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
是 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
是 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
是 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
是 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
是 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
是 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
是 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
是 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>
元素:
<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常量。
文章浏览阅读6.3k次。摘要MapReduce是一个编程模型,也是一个处理和生成超大数据集的算法模型的相关实现。用户首先创建一个Map函数处理一个基于 key/value pair的数据集合,输出中间的基于key/value pair的数据集合;然后再创建一个Reduce函数用来合并所有的具有相同中间key值的中间value值。现实世界中有很多满足上述处理模型的例子, 本论文将详细描述这个模型。MapRe_mapreduce论文中文
文章浏览阅读1.5k次。转载这位博主_mfc100u dll下载
文章浏览阅读6.7k次,点赞6次,收藏40次。操作扯扯淡新的改变准备工具正式开干1、将sd卡装入读卡器,然后插上电脑,挂载到ubuntu2、备份SD卡镜像还原方法一:方法二:总结扯扯淡前面一直是做linux运维以及python相关的知识,前段时间无意间拿到手一块orangepi,即香橙派,一直没有在意,近来有点空就拿出来捣鼓一下。树莓派、香橙派、香蕉派这些以水果称呼的嵌入式开发板让人听起来有种不一样的味道,但是许多人对于树莓派与香蕉派很容..._orange pi 香橙派emmc系统备份方法
文章浏览阅读552次,点赞28次,收藏27次。声纹识别系统(带面板)完整的代码,包运行;运行操作视频见CSDN资源!适合小白!
文章浏览阅读1k次。另一方面,更高端的“重磅”FPGA价格非常昂贵。但这些FPGA的目标应用领域是那些用户愿意为昂贵的FPGA付费的应用,因为他们拥有尖端的技术和能力。例如,这些FPGA应用于顶级军用雷达、下一代无线技术、先进的数字信号处理、数据中心加速等。对于这些细分市场,成本并不是一个重大的交易破坏者。相反,他们对保持技术实力和能力的前沿感兴趣,领先于竞争对手或对手。..._fpga封装
文章浏览阅读964次。自从我开始撰写博客以来,感觉已经很久了,直到现在它一直致力于撰写有关统计数据的文章。我不是特别喜欢这个monody,它很快就会变得枯燥乏味。此外,这个博客从一开始就是为了探究两个不同的领域,经过这么长时间的专注于其中一个,我一直感觉到写另一个的冲动。所以,今天我给你一篇关于使用Solidity语言编写以太坊区块链编程的帖子。我不会遵循这样做的任何计划:我的目标只是写下我学习这门语言的障碍和我在日常..._solidity string length
文章浏览阅读1.9k次,点赞2次,收藏7次。多维数组名也可以作为函数实参,此时被调用函数中形参数组可以指定每一维的大小,也可省略第一维的大小,但第二维的大小不能省略,而且要和实参数组第二维的大小相同。1、使用数组元素作为实参,在循环语句控制下将数组元素a[i]的值传递给形参x,并将其值减32后保存数数组元素b[i]中,调用函数时,形参x的值发生了改变,而实参a[i]的值并没有发生变化。由于数组名表示数组的首地址,因此实参向形参传递的不是数组的值,而是实参的首地址,这样的形参数组和实参数组共占用相同的内存单元。1、函数的定义、声明、分类以及调用。_c语言函数声明
文章浏览阅读487次。上次写了爬取笔趣阁小说,这次来爬点常用的表情包图片。_res=requests.get(img[i][1]) with open('images/'+title[i]+'.jpg','wb') as f:
文章浏览阅读701次。这本书是比较经典的学习ROS的书,但是感觉对于初学者来说并不能作为第一本书籍来阅读,像我是个技术小白,一开始拿出这本书来读总是感觉云里雾里,包括现在读v2版本也有同样的感觉。1. 此书的开篇回答了一个关键性的问题:学习ROS从哪里开始?阶段1:学习基本概念和编程技巧其中,在阶段1,可以参考ROS Wiki来查阅安装说明和初学者教程同时,还需要掌握TF坐标变换以理解ROS如何处理不同的框架使用ROS Answers提问阶段2:使用ROS来控制机器人在阶段2:参考本书,通过ROS使机_rod by example 1
文章浏览阅读1.8k次。何为游戏设计理念和游戏中的用户体验?因为以前做的项目大多都是单一功能的完成,没太考虑设计的理念和用户体验,并且我做的大多是UI界面的实现,或者完成简单的数据添加等等,自己没有一套完整的项目经验;我们unity前端、unity程序员、或者想要做游戏的童鞋,再面试的时候,很多公司要求是完成的项目经验者优先,或者大家去一些招聘的APP上看一下,对于整套的游戏设计我们应该有个明确的思路,而制定这个游戏的思路就是设计理念;而所谓的用户体验,就是游戏中玩家在玩游戏过程中对游戏本身玩法、游戏机制、人物、甚至是光照、UI_游戏设计理念
文章浏览阅读9.4k次,点赞5次,收藏24次。mart-doc是一个java restful api文档生成工具,smart-doc颠覆了传统类似swagger这种大量采用注解侵入来生成文档的实现方法。smart-doc完全基于接口源码分析来生成接口文档,完全做到零注解侵入,你只需要按照java标准注释的写,smart-doc就能帮你生成一个简易明了的markdown或是一个像GitBook样式的静态html文档。下面将介绍如何在Spring......_com.github.shalousun
文章浏览阅读1.9k次。http://www.cnblogs.com/dosomething/archive/2012/04/15/2450526.html1、角色模型制作 unity3d支持Skin动画 但是不支持Physique动画 会发现Physique动画在unity里严重变形 因此在模型的骨骼动画的制作上面 要用Skin 当然也可以做成Physique 然后用插件转_unity角色换装逻辑