【ArcGISPro】配置模块

发布于:2024-09-19 ⋅ 阅读:(19) ⋅ 点赞:(0)

ArcGIS Pro 配置类似于加载项,但提供了扩展应用程序的其他方法。它可以帮助您设计更贴近您组织品牌和工作流的 ArcGIS Pro 版本

托管配置是比 Add-in 更高级别的自定义。

配置可以提高加载项安全级别并添加非管理员指定的已知文件夹。

配置可以提供比插件更广泛的自定义以及对 DAML 的运行时修改 - 可能基于登录的用户角色。

每个 ArcGIS Pro 会话只能运行一个配置(即解决方案),即只有一个配置可以处于活动状态

关键配置

  • 创建自定义初始屏幕和自定义起始页
  • 更改应用程序图标、应用程序名称和标题栏文本
  • 重新排列或删除不常用的控件;插入新控件
  • 在启动期间注入逻辑以检查许可或根据用户角色更改用户界面
  • 控制加载的加载项
  • 过滤器命令 (命令通知和禁用它们的选项 )。

创建配置

启动

初始屏幕

起始页

生成的配置文件

路径

C:\Users\<UserName>\Documents\ArcGIS\AddIns\ArcGISPro\Configurations

安装配置

双击即可安装

配置文件结构

内部结构与加载项相同。

包含:

  • 一个 DAML(桌面体系结构标记语言)文件,用于描述配置及其自定义
  • 编译代码(用于配置管理器及其关联模块)
  • 图像
  • 资源
  • 任何第三方程序集

更改配置

使用方式

{ArcGISPro安装路径}\ArcGISPro.exe /config:配置文件的名称不带后缀

注册表指定配置

DAML中作用

声明

配置元素

每个 DAML 只能有一个 Configuration 元素。Configuration 元素有四个可选属性:blockAddInTabblockCustomizeDialogblockPerfMeter 和 checkForUpdatesAtStartup

blockAddInTab

默认值:false

设置为 true 时,该属性将隐藏功能区中的 Add-In 选项卡。

blockCustomizeDialog

默认值:false

当设置为 true 时,该属性将从 ArcGIS Pro 选项属性表中删除“自定义功能区”选项。

blockPerfMeter

默认值:false

当设置为 true 时,该属性将阻止用户启动 ArcGIS Monitor。

CheckForUpdatesAtStartup

默认值:true

当设置为 false 时,该属性将取消选中 ArcGIS Pro Backstage 关于选项卡中的“启动时检查更新”复选框。

配置子元素

配置管理器

 //ConfigurationManager契约
 public class ArcGIS.Desktop.Framework.Contracts.ConfigurationManager {

    //在运行时得到一个替换的DAML文件。
    protected internal virtual string RuntimeDamlFile { get; }

    //获取新的应用程序名称
    protected internal virtual string ApplicationName { get; }

    //获取标题栏文本(3.0新功能)
    protected internal virtual string TitleBarText { get; }

    //获取新的应用程序图标
    protected internal virtual ImageSource Icon { get; }

    //在应用程序初始化时调用。表示现在与传送门通信是安全的。此时还没有处理DAML记录。
    //取消信号:错误信号出现问题。申请将关闭。
    protected internal virtual void OnApplicationInitializing(CancelEventArgs cancelEventArgs);

    //当应用程序完全初始化时调用。
    protected internal virtual void OnApplicationReady();

    //CommandFilter -赋予配置禁用命令的能力。
    //
    //cmdID:执行的命令的DAML ID。
    //moduleID:命令的父模块DAML ID。
    protected internal virtual bool OnCanExecuteCommand(string cmdID, string moduleID);

    //配置在运行时提供DAML的配置机会。
    //
    // 返回:在XML字符串上以表单的形式处理的DAML。
    protected internal virtual string OnCreateDaml();

    //配置提供要在快速访问工具栏中显示的命令列表的机会。它发生在开始页关闭并且打开第一个项目之后。
    //
    // 返回:在QAT使用的命令列表
    protected internal virtual List<Tuple<string, bool>> OnCreateQuickAccessToolbar();

    //CommandFilter -赋予配置能够拒绝命令执行的能力
    //cmdID:执行命令的DAML ID。
    //moduleID:命令的父模块DAML ID。
    protected internal virtual bool OnExecuteCommand(string cmdID, string moduleID);

    // 允许配置将一些自定义用户界面注入到about页面。
    //
    // 返回:添加到about页面的元素。
    protected internal virtual FrameworkElement OnShowAboutPage();

    //配置的自定义喷溅屏幕。
    //
    // 返回:在启动过程中显示的自定义窗口。
    protected internal virtual Window OnShowSplashScreen();

    //应用程序启动后显示的自定义起始页(着陆页)。
    //
    // 返回:起始页
    protected internal virtual FrameworkElement OnShowStartPage();

    //配置在处理DAML之前操作它的最后一次机会。
    //
    //database:整个合并的DAML数据库。
    //
    //Remarks:
    //  配置可能会发现有必要编辑原始数据库以获得所需的外观。例如,一个配置可能想要删除系统中除了自己的选项卡之外的所有选项卡。这是XML形式的原始DAML数据库,编辑时要格外小心。
    protected internal virtual void OnUpdateDatabase(XDocument database);
        
    //许可验证
    //
    //Remarks:
    //  使配置有机会执行自己的许可证检查。返回错误信号,表示发生了许可问题。应用程序将关闭。
    protected internal virtual bool OnValidateLicense();
}

配置回调

配置回调对应ArcGIS Pro 应用程序三个状态:预初始化、初始化和就绪。

在预初始化状态下,没有加载 Pro API 模块,也没有 UI。

在初始化过程中,将创建 Pro WPF 应用程序并初始化任何门户或联机连接。

最后,在准备就绪期间,应用程序已完全加载。应用程序状态仅向前移动。一旦应用程序转换为 ready 状态,它将在会话期间保持 ready 状态。

预初始化

在该阶段(预初始化)由于尚未加载任何 Pro 扩展程序集,因此在预初始化期间进行任何 Pro API 调用都会使应用程序崩溃。即请勿:

  • 调用任何 Pro API 方法以包括QueuedTask.Run
  • 访问任何 Pro WPF 资源(样式、画笔、颜色、图标、图像)
  • 订阅任何 Pro 事件(这包括您的 ConfigurationManager 构造函数中)
  • 进行任何依赖于 UI 线程的 WPF 调用(例如Dispatcher.Invoke)
  • 显示任何自定义 UI(例如 Message Boxes)
自定义初始屏幕 (OnShowSplashScreen)

 

初始化

在初始化期间执行以下操作:

  • 使用 Pro API 调用门户或在线调用(不使用 QueuedTask)
  • 提供自定义 DAML(如果需要)
  • 修改 DAML 数据库(如果需要)
  • 如果您需要自定义逻辑和 UI 来启动 Pro 会话,请提供自定义起始页
  • 在起始页中使用 Pro WPF 样式等
  • 在起始页逻辑中调用任何 Pro API 方面(需要时使用 QueuedTask)

在初始化期间,请勿:

  • 调用任何不在 中的Pro API方法以包含.ArcGIS.Desktop.CoreQueuedTask.Run
  • 尝试访问任何插件、窗格、停靠窗格或任何 UI 元素或其他模块。
  • 订阅任何 Pro 活动
  • 访问除起始页之外的任何 Pro WPF 资源(样式、画笔、颜色、图标、图像)。
  • 进行依赖于 UI 线程的任何 WPF 调用(例如 )。Dispatcher.Invoke
  • 显示任何自定义 UI
OnApplicationInitializing 

最重要的是用于在线和门户通信的 API

应用程序名称(ApplicationName)

标题栏文本(TitleBarText)

就绪

关于页面


网站公告

今日签到

点亮在社区的每一天
去签到