1.    概述

Skyline提供了丰富的API,用户可以根据不同实际需求,进行二次开发封装,实现各种功能的扩展和定制。当我们开发了各种功能页面或者应用程序后,如何将它们快速嵌入到TerraExplorer软件中呢?Skyline为我们提供了一种叫TEZ的方式。

TEZ,实际上就是把基于TerraExplorer开发的工具,制作成一个TEZ格式压缩包,然后再分发给不同的TerraExplorer用户使用。用户在TerraExplorer的“Options->Add-ons”中添加新的TEZ工具后,下次运行TerraExplorer的时候,就可以直接在TerraExplorer的Ribbon菜单中调用新工具。

2.    制作TEZ文件过程

  1. 首先开发完成一个TerraExplorer的功能页面:MyTool.html;
  2. 创建一个XML文件,命名为“tool.xml”;这个XML文件内容包括如下(其中caption是工具名称,id是唯一编号,Path是指定HTML文件相对于tool.xml文件的存储路径):

<Tool caption="Data Analysis" id="ACO009" Path="MyTool\MyTool.html" >

<Ribbon/>

</Tool>

  1. 创建一个文件夹“MyTool”,把MyTool.html和tool.xml都拷贝到这个文件夹;
  2. 把“MyTool”文件夹压缩成zip文件;
  3. 把“MyTool.zip”重名名为“MyTool.tez”;

至此,我们就完成了一个TEZ文件的制作。

这样,我们就把TerraExplorer的扩展功能封装成了一个TEZ文件,就可以很方便的分发给其他Skyline用户使用,用户运行TerraExplorer软件,调用Add-ons功能,就能够将TEZ里面封装的扩展功能嵌入到已经安装的TerraExplorer软件中。

另外,如何配置“tool.xml”文件,是非常关键的一个步骤。

3.    TerraExplorer 的Add-ons功能

  1. 利用新的HTML工具扩展TerraExplorer功能;
  2. 定制TerraExplorer的Ribbon菜单;利用增加新的Ribbon菜单命令来打开对应新增的扩展功能;
  3. 定制用户界面;改变TerraExplorer的开始页面和开始参数设置;

4.    XML配置TerraExplorer用户界面

通过设置too.xml文件中的<Panel><Popup><Hidden>节点属性,可以实现TEZ在TerraExplorer中的不同展现方式。

  1. 创建一个嵌入在TerraExplorer左侧面板中的工具:

<Tool caption="Data Analysis" id="ACO009" Path="MyToolFolder\MyTool.html">

<Icon path="MyAddon.ico"/>

<Ribbon Show="1" Toggle="0"/>

<Container>

<Panel/>

</Container>

</Tool>

  1. 创建一个Popup工具:

<Tool caption="Data Analysis" id="ACO009" Path="MyToolFolder\MyTool.html">

<Icon path="MyAddon.ico"/>

<Ribbon Show="1" Toggle="0"/>

<Container>

<Popupx="30" y="60" width="300" height="200" ShowCaption="1"/>

</Container>

</Tool>

  1. 创建一个隐藏工具:

<Tool caption="Data Analysis" id="ACO009" Path="MyToolFolder\MyTool.html">

<Container>

<Hidden/>

</Container>

</Tool>

5.    XML工具参数设置

决定在什么时候运行工具:通过设置<Tool>节点的属性来实现;

  • AutoStart - 当打开一个FLY工程时自动运行这个工具;
  • RunOnce – 设置工具只运行一次;
  • ShowOnVersionTypes – 决定哪一个级别的TerraExplorer软件可以显示使用这个自定义工具;
  • NeedProject – 决定在TerraExplorer软件中打开了FLY工程才可以使用这个自定义工具;

<Tool caption="Data Analysis" id="ACO009" Path="MyToolFolder\MyTool.html" NeedProject="0" ShowOnVersionTypes="3" RunOnce="1" AutoStart="1">

<Icon path="MyAddon.ico"/>

<Ribbon Show="1" Toggle="0"/>

<Container>

<Panel x="30" y="60" width="300" height="200" ShowCaption="1/0"/>

</Container>

</Tool>

6.    XML实现Ribbon菜单定制

通过设置<Ribbon>等节点属性和内容,来实现多种Ribbon菜单效果:

  1. 创建一个Ribbon菜单命令;

<Tool caption="Data Analysis" id="ACO009" Path="MyToolFolder\MyTool.html">

<Ribbon Show="1" Toggle="0"/>

</Tool>

  1. 定义菜单命令属性:

<Tool caption="Data Analysis" id="ACO009" Path="MyToolFolder\MyTool.html" NeedProject="0" >

<Icon path="MyAddon.ico"/>

<Ribbon Show="1" Toggle="0">

<Category id="MyTabId" caption="My Tab"/>

<Panel id="MyGroupId" caption="My Group" />

<ToolTip title="My Tooltip" description="Tool for demonstrating add-on use"/>

</Ribbon>

</Tool>

  1. 创建一个下拉列表菜单命令:

<Tool caption="Data Analysis" id="ACO009" Path="MyToolFolder\MyTool.html" >

<Icon path="MyAddon.ico"/>

<Ribbon Show="1" Toggle="0">

<Category id="MyTabId" caption="My Tab"/>

<Panel id="MyGroupId" caption="My Group" />

<ToolTip title="My Tooltip" description="Tool for demonstrating add-on use"/>

<Submenu>

<Item caption="My SubmenuOption" id="MySubId" Path="MySubmenuToolFolder\MySubmenuTool.html">

<ToolTip title="My Tooltip" description="Tool for demonstrating submenu use"/>

<Icon path="MySubmenuOption.ico"/>

</Item>

</Submenu>

</Ribbon>

</Tool>

4.定义附加属性的下拉列表菜单命令:

<Tool caption="Data Analysis" id="ACO009" Path="MyToolFolder\MyTool.html">

<Icon path="MyAddon.ico"/>

<Ribbon Show="1" Toggle="0" splitButton="1">

<Category id="AnalysisTools" caption="Graphs"/>

<Panel id="MyGroupID" caption="Analysis" />

<ToolTip title=“My Tooltip” description="Tool for demonstrating add-on use"/>

<Submenu>

<GroupTitle>MyGroup1</GroupTitle>

<Item caption="My SubmenuOption1" id="MySubId1" Path="MySubmenuToolFolder\MySubmenuTool1.html">

<ToolTip title="My Tooltip1" description="Tool for demonstrating submenu use"/>

<Icon path="MySubmenuOption1.ico"/>

</Item>

<Separator></Separator>

<Item caption="My SubmenuOption2" id="MySubId2" Path="MySubmenuToolFolder\MySubmenuTool2.html">

<ToolTip title="My Tooltip2" description="Tool for demonstrating submenu use"/>

<Icon path="MySubmenuOption2.ico"/>

</Item>

<GroupTitle>MyGroup2</GroupTitle>

<Item caption="My SubmenuOption3" id="MySubId3" Path="MySubmenuToolFolder\MySubmenuTool3.html">

<ToolTip title="My Tooltip3" description="Tool for demonstrating submenu use"/>

<Icon path="MySubmenuOption3.ico"/>

</Item>

</Submenu>

</Ribbon>

</Tool>

7.    XML文件结构说明

节点要素

描述说明

<Tool>

定义一个新工具

<Container>

定义工具显示位置

<Ribbon>

定义一个新的菜单命令

<Submenu>

定义一个菜单命令的下拉列表菜单

<Item>

定义一个下拉列表菜单中的子命令

<File>

注册动态链接库文件

<Tool>

定义一个新工具。

属性

属性

描述说明

AutoStart

决定该工具在FLY工程打开时是否自动加载

  • AutoStart = 0 (Default) – 不自动加载
  • AutoStart = 1 – 自动加载

Caption

该工具在Ribbon菜单和工具窗口中显示的名称

Id

Ribbon菜单的唯一编号

NeedProject

决定在TerraExplorer中没有加载FLY工程的时候Ribbon菜单按钮是否可用

  • NeedProject = 0 (Default) – 可用
  • NeedProject = 1 – 不可用

Path

HTML工具所在位置

注意:    路径要包括文件夹, e.g. “MyToolFolder\MyTool.html.”

RunOnce

决定这个工具是否只运行一次

  • RunOnce = 0 (Default) – 每次都可以运行
  • RunOnce = 1 – 只运行一次

注意:    这个属性只在TerraExplorer加载TEZ文件时起作用

ShowOnVersionTypes

决定哪个级别的TerraExplorer软件显示这个工具。这个属性可以选择下面几种类型:

  • TerraExplorer Pro= 1
  • TerraExplorer Plus = 2
  • TerraExplorer Viewer = 4

如果需要显示在TerraExplorer Pro 和 Plus中,而Viewer中不显示,需要设置ShowOnVersionTypes = 3。如果不设置这个属性,则都可以显示这个工具。

子节点要素

节点要素

描述说明

节点要素属性

<Icon>

定义新菜单命令的图标

path – 图标文件所在路径

<Container>
子节点要素

节点要素

描述说明

节点要素属性

<Panel>

设置工具显示在TerraExplorer左侧面板底部

<Popupl>

设置工具作为一个Popup窗口显示,并且设置窗口的位置和大小

注意:    要求TerraExplorer必须已经打开一个FLY工程

X – 相对于3D窗口的X坐标

Y –相对于3D窗口的Y坐标

Width – Popup窗口宽度

Height –Popup窗口高度

ShowCaption – 决定是否显示Popup窗口名称:

  • ShowCaption = “0” – 不显示
  • ShowCaption = “1” – 显示

<Hidden>

设置隐藏工具窗口

注意:    要求TerraExplorer必须已经打开一个FLY工程

<Ribbon>
属性

属性

描述说明

Show

决定按钮是否显示在Ribbon菜单上

  • Show = “0” – 不显示
  • Show = “1” (默认)– 显示

splitButton

决定是否将功能按钮分成两部分,当点击按钮下半部分的时候显示一个下拉菜单列表,当点击上半部分的时候激活主菜单工具选项

  • splitButton = “0” – 按钮仅打开下拉菜单列表
  • splitButton = “1” (默认)  创建一个分上下两部分功能的按钮

Toggle

决定菜单按钮是否是一个切换功能按钮

  • Toggle = “1” – 这个按钮功能作为一个切换按钮来实现打开或者关闭工具面板
  • Toggle = “0” (默认) – 点击按钮总是打开工具面板
子节点要素

节点要素

描述说明

节点要素属性

<Category>

决定新的Ribbon菜单TAB项被放置位置,如果不指定,新的菜单命令会被放置在“Tools”TAB项

id – Ribbon菜单Tab项的唯一编号

caption – 新增的Ribbon菜单TAB项名称

<Panel>

决定新的Ribbon菜单组放置位置,如果这个组不存在,就创建这个组;如果不指定,菜单命令就默认创建在“Tools”组

id – Ribbon菜单组的唯一编号

caption – 新增Ribbon菜单组名称

<Submenu>

决定是否显示菜单下拉列表

<ToolTip>

决定是否显示鼠标提示信息

title – 鼠标提示信息标题

description – 鼠标提示信息内容

<Submenu>

这个节点决定是否显示下拉列表菜单

子节点要素

节点要素

描述说明

节点要素属性

<Item>

增加一个命令到下拉列表菜单

<Separator>

增加一个水平分隔符到下拉列表菜单

<GroupTitle>

定义一个下拉列表菜单的标题名称

<Item>
Attributes

属性

描述说明

Caption

Ribbon下拉列表菜单上要显示的命令名称

id

菜单命令的唯一编号

Path

下拉列表菜单命令要记载的工具HMTL页面的存放位置路径

NeedProject

决定TerraExplorer加载FLY工程前这个命令按钮是否可用

  • NeedProject = 0 (默认) – 可用
  • NeedProject = 1 – 不可用
子节点要素

节点要素

节点要素属性

描述说明

<ToolTip>

title – 鼠标提示信息标题

description – 提示信息内容

<Icon>

path – Ribbon菜单上显示的图标

<File>

注册指定的动态链接库文件

Attributes

属性

描述说明

name

动态链接库文件名称

子节点要素

节点要素

描述说明

节点要素属性

<comClass>

决定COM是否需要注册

clsid – Com对象的类编号

iid – 接口编号

event_iid – 事件编号

tlbid – 类编号

8.    XML示例

<Tool caption="Data Analysis" id="ACO009" Path="MyToolFolder\MyTool.html" NeedProject="0" ShowOnVersionTypes="7" RunOnce="1" AutoStart="1">

<Icon path="MyAddon.ico"/>

<Ribbon Show="1" Toggle="0" splitButton="1">

<Category id="AnalysisTools" caption="Graphs"/>

<Panel id="MyGroupID" caption="Analysis" />

<ToolTip title="My Tooltip" description="Tool for demonstrating add-on use"/>

<Submenu>

<GroupTitle>MyGroup1</GroupTitle>

<Item caption="My SubmenuOption1" id="MySubId1" Path="MySubmenuToolFolder\MySubmenuTool1.html">

<ToolTip title="My Tooltip1" description="Tool for demonstrating submenu use"/>

<Icon path="MySubmenuOption1.ico"/>

</Item>

<Separator></Separator>

<Item caption="My SubmenuOption2" id="MySubId2" Path="MySubmenuToolFolder\MySubmenuTool2.html">

<ToolTip title="My Tooltip2" description="Tool for demonstrating submenu use"/>

<Icon path="MySubmenuOption2.ico"/>

</Item>

<GroupTitle>MyGroup2</GroupTitle>

<Item caption="My SubmenuOption3" id="MySubId3" Path="MySubmenuToolFolder\MySubmenuTool3.html">

<ToolTip title="My Tooltip3" description="Tool for demonstrating submenu use"/>

<Icon path="MySubmenuOption3.ico"/>

</Item>

</Submenu>

</Ribbon>

<Container>

<Popup x="30" y="60" width="300" height="200" ShowCaption="1"/>

</Container>

</Tool>

转载于:https://www.cnblogs.com/yitianhe/p/3877930.html

TerraExplorer Add-ons 和TEZ使用说明相关推荐

  1. Oracle的ONS创建,Oracle 10gR2 RAC Clusterware ONS服务的管理

    格式是: $ORA_CRS_HOME/log//racg/ora..ons.log 跟踪日志发现如下信息: 2012-06-12 17:21:05.030: [    RACG][3999896128 ...

  2. Oracle VDI 安装

    为什么80%的码农都做不了架构师?>>>    你可以在这里找到本文的原文. 虽然说Oracle已经停止了VDI的开发,之后支持服务业很快停止了.但是,作为经典的桌面虚拟化产品,还是 ...

  3. Spring Boot项目部署到Heroku

    1. 注册 Heroku 免费账户 浏览器打开Heroku官网,注册一个免费的用户,在注册时选择 java 语言 2.安装 Heroku CLI 可以从Heroku官网的Getting Started ...

  4. 在线代码编辑器 Codemirror 的轻量级 React 组件

    代码编辑器 CodeMirror 的轻量级 React 组件 demo @uiw-react.github.io/react-codem- 特性: ? 自动根据 mode 配置加载 mode 文件. ...

  5. DTrace Tools

    目录 Operating Systems Linux Guide Using DTrace scripts Writing DTrace scripts DTraceToolkit DTrace On ...

  6. ORACLE 19C 单实例数据库安装

    目录 环境信息 安装前准备 开始安装 安装程序 配置监听 安装数据库 安装后 本地连接数据库 总结 本文涉及的安装包下载: 链接:https://pan.baidu.com/s/1cXxAUTvWE6 ...

  7. Scratch Blocks自定义组件之「点阵」

    一.背景 由于scratch blocks 自带的mictobit点阵只支持5*5,有时候并不满足我们自己的硬件,为此设计了N*M点阵Block,效果如下: 二.功能配置说明 支持N行M列点阵 支持保 ...

  8. 谷歌手机pixel4 夜景_您应该购买Google Pixel 4a的5个理由

    谷歌手机pixel4 夜景 Let me get right into this. I'm going to list five reasons why one should pick up the ...

  9. Fiddler结合苹果11抓包小程序 (最新)

    做项目开发,突然发现前端同事可以通过手机抓正式线上小程序的包数据,还可以通过直接替换线上文件进行开发,于是就有了这篇文章. 1.安装fiddler软件:这个去官网下载就好了. 2.fiddler软件的 ...

最新文章

  1. Matlab中的结构体
  2. 单点登录Redis存储Session及SessionId问题说明与集群实战-3
  3. PHPMailer目录和命名空间没有错,但是始终class not found,的原因和解决方法
  4. Chapter 1: 使用引用类型
  5. (转载)C++:STL标准入门汇总
  6. 联想V480(扬天) EI Capitan 完美驱动教程
  7. Dragonfly单机部署比redis快25倍的缓存中间件
  8. Mysql 笔记(二)
  9. 百度云 不限速 | 2019 最好用下载工具
  10. Linux下XFS文件系统使用 Quota 进行合理划分实例
  11. 在否定句和疑问句使用have动词_26
  12. BERT源码深度剖析之create_pretraining_data.py
  13. 数据项、数据字典、模式等基本概念辨析 数据库系统结构
  14. matlab测试网络,matlab测试网络
  15. MiniFilter文件系统学习
  16. Vue 之 解决v-html生成的元素不能触发@click等vue事件和CSS样式不生效的方法
  17. ubuntu下载jdk-6u21-linux-i586.bin
  18. Android 动态改变SeekBar进度条颜色与滑块颜色
  19. GIF制作器哪个好,如何制作表情包
  20. Perl入门简明教程

热门文章

  1. 动态调整div大小 html,如何动态的根据用户屏幕的分辨率改变div的大小?
  2. 物联网云平台系统设计【一】
  3. 小D的一串数字(简单DP)
  4. Python爬取58同城租房数据,破解字体加密
  5. 聚观早报 | 羊了个羊幕后推手月流水曾破亿;雷军卸任小米董事长
  6. win+e替换为xyplorer打开
  7. WIN7 嵌入式系统安装教程 Windows Embedded Standard 2011 安装
  8. python中的df是什么意思_python df遍历的N种方式
  9. ERROR: Cannot uninstall ‘wrapt‘. It is a distutils installed project and thus we cannot accurately d
  10. vue + iview + less 定制主题色