自定义样式
设计器配置
自定义命令和参数
自定义样式
我已经安装了 Task Assistant Manager 10,但却看不到在 9.3.1 中创建的任何自定义样式。 我该如何获取这些自定义样式?
我有一个先前版本的 Task Assistant,它将每个自定义样式存储在具有 XML 扩展名的单个文件中,而不是具有 TMStyle 扩展名的单个文件中。 如果不想重新创建样式,如何才能使用这些样式并将其分发给新环境中的用户?
可通过两个方法将 XML 样式文件加载到“任务助手管理器”中:
- 要每次加载一个文件,请使用样式管理器对话框上的导入样式命令。 单击选择结点样式文件以打开对话框上的文件类型下拉箭头,然后选择 XML 文件而不是 TMStyle。 选择所需文件,然后从导入样式对话框中选择样式。
- 要同时加载多个文件,请使用样式管理器对话框上的从文件夹加载命令。 此功能将读取 XML 和 TMStyle 两种类型的文件。
作为设计者,您的所有自定义样式都存储在一个文件 (Custom.TMStyle) 中。 该文件位于 C:\<用户应用程序数据>\ESRI\TAM10.8\Data\Resources\Styles 下。
自定义样式加载到 Task Assistant Manager 后,打开每个现有的任务助手工作流文件并重新保存文件,以便创建工作流的关联样式文件。 向用户分发工作流和样式文件对,确保在目标计算机上打开工作流时将加载自定义样式。在导出自定义样式之前,我已卸载 Task Assistant Manager。 所有自定义样式是否已丢失? 如果未丢失,如何才能检索到它们?
设计器配置
我在地理处理项目对话框中看不到任何或所有自定义工具箱。 如何解决这一问题?
一个工具箱中的工具不能同名,但不同的工具箱可以有同名的工具。 工具箱属性中的别名字段用于唯一标识该工具箱。 如果无法看到“地理处理项目”对话框中的自定义工具箱,请打开工具箱属性并创建工具箱的别名。
下表包含所有系统工具箱的别名。 禁止将这些别名用于自定义工具箱。
系统工具箱 | 别名 |
---|---|
3D Analyst | 3d |
Aeronautical | aeronautical |
分析 | analysis |
Bathymetry | bathymetry |
制图 | cartography |
转换 | conversion |
Coverage | arc |
Data Interoperability | interop |
数据管理 | management |
Data Reviewer | reviewer |
Defense Mapping | defense |
编辑 | edit |
地理编码 | geocoding |
地统计分析 | ga |
线性参考 | lr |
多维 | md |
Nautical | nautical |
Network Analyst | na |
宗地结构 | fabric |
Production Mapping | production |
Schematics | schematics |
服务器 | server |
空间分析 | sa |
Spatial Statistics | stats |
Tracking Analyst | ta |
Workflow Manager | wmx |
此外,Task Assistant Manager 将在以下位置搜索地理处理项目:
- 系统工具箱文件夹
- 我的工具箱文件夹
- 主目录文件夹(打开的地图文档的位置)
- 打开的地图文档的默认地理数据库
对于配置中要包括的自定义地理处理项目,应确保这些项目位于上述位置之一。
我已加载工具箱或工具,但未在地理处理项目编辑器对话框中看到它。 如何才能显示该工具箱或工具?
我已经加载了一个类别或命令,但未在命令项目编辑器对话框中看到它。 如何才能显示该类别或命令?
自定义命令和参数
该文档介绍了如何配置命令以接受参数。 如何执行这一操作?
使用任何标准开发环境(VB.Net、C# 等),开发人员都可以通过继承 ArcGIS ICommand 接口来构建自定义命令。 扩展此命令以接受参数要求该命令还需实现 ESRI.Apf.Apps.TaskAssistantSDK.ArcMap.ICommandParams 或 ESRI.Apf.Apps.TaskAssistantSDK.ArcMap.ICommandParams2 接口。 这些接口可以作为 Task Assistant Manager 安装的一部分的 ESRI.Apf.Apps.TaskAssistantSDK.ArcMap.CommandParams.dll 中找到。 这些接口包含需要实现的以下方法:
- ICommandParams
- SetParameters
- ClearParameters
- GetParameters
- ICommandParams2
- SetParameters
- ClearParameters
- GetParameters
- GetParametersDialogEditStyle
- GetParametersDialogValues
- GetParametersDialogText
GetParameterDialogEditStyle、GetParameterDialogValues 和 GetParameterDialogText 用于自定义命令项目编辑器对话框上显示的参数对话框。 GetParameterDialogEditStyle 返回 Default、Dropdown、BrowseSimple、BrowseComplex 或 ListItem。 GetParameterDialogValues 用于初始化下拉值或浏览文件过滤器。 GetParameterDialogText 用于自定义在参数对话框上显示的文本。
- enumParameterDialogEditStyle.Default - 显示包含用于接受参数值的文本框的默认对话框。 通常在此实例中,GetParameterDialogValues 返回空字符串。
- enumParameterDialogEditStyle.DropDown - 显示包含下拉框的对话框,用户可从下拉框包含的参数值列表中进行选择。 GetParameterDialogValues 用于提供参数值列表。
- enumParameterDialogEditStyle.BrowseSimple - 显示包含文件浏览器的对话框。 GetParameterDialogValues 用于提供用户单击浏览/打开文件按钮时使用的文件过滤器。
- esriParametersDialogEditStyle.BrowseComplex - 显示包含文件浏览器以及用于输入其他参数的文本框的对话框。 GetParameterDialogValues 用于提供用户单击“浏览/打开文件”按钮时使用的文件过滤器。
- esriParametersDialogEditStyle.ListItem - 显示 ListItem 框,它是一个支持使用 Ctrl 键选择多个项的下拉列表。
如果自定义命令实现 ICommandParams,那么将使用不包含自定义文本的默认样式显示参数对话框。
例如:
Public class CParameterCmd
Inherits ICommand
Implements ICommandParams
Private msParams as string
Public sub New()
MyBase.New()
MyBase.m_category = "T.A.M. Samples"
MyBase.m_name = "ParameterCmd"
MyBase.m_caption = "Sample Parameter Command"
MyBase.m_message = "Sample Parameter Command"
MyBase.m_toolTip = m_message
msParams = ""
End sub
Public Function GetParameters() As String Implements ESRI.Apf.Apps.TaskAssistantSDK.Arcmap.ICommandParams.GetParameters
Return msParams
End Function
Public Sub SetParameters(ByVal sParams As String) Implements ESRI.Apf.Apps.TaskAssistantSDK.Arcmap.ICommandParams.SetParameters
msParams = sParams
End Sub
Public Sub ClearParameters() Implements Esri.Apf.Apps.TaskAssistantSDK.Arcmap.ICommandParams.ClearParameters
msParams = ""
End Sub
Public Overrides Sub OnClick()
'perform the command execution
'msParams is the set of comma delimited parameters
End sub
End class