UI 操作编辑

UI 操作插件提供 API 来管理 触发器操作

触发器 是对用户执行操作意图的抽象描述(例如用户点击图表中的值)。它允许我们在来自不同插件的代码之间进行运行时绑定。例如,一个这样的触发器是当有人在仪表盘上应用过滤器时;另一个是当有人打开仪表盘面板上下文菜单时。

操作 是响应触发器执行的代码片段。例如,可以将多个操作附加到仪表盘过滤触发器。当用户在仪表盘上过滤时,所有可能的动作都会显示在弹出菜单中,用户必须选择一个。

通常,此插件提供

  • 创建自定义功能(操作)。
  • 创建自定义用户交互事件(触发器)。
  • 将操作附加到触发器并从触发器中分离操作。
  • 发出触发器事件。
  • 执行附加到给定触发器的操作。
  • 公开一个上下文菜单,供用户在将多个操作附加到单个触发器时选择适当的操作。

基本用法编辑

要开始,首先您需要知道要将操作附加到的触发器。您可以选择现有的触发器,也可以注册自己的触发器

plugins.uiActions.registerTrigger({
  id: 'MY_APP_PIE_CHART_CLICK',
  title: 'Pie chart click',
  description: 'When user clicks on a pie chart slice.',
});

现在,当用户点击饼图切片时,您需要“触发”您的触发器并提供一些上下文数据

plugins.uiActions.getTrigger('MY_APP_PIE_CHART_CLICK').exec({
  /* Custom context data. */
});

最后,您的代码或来自其他插件的开发人员可以注册 UI 操作,这些操作监听上述触发器并在触发器被触发时执行一些代码。

plugins.uiActions.registerAction({
  id: 'DO_SOMETHING',
  isCompatible: async (context) => true,
  execute: async (context) => {
    // Do something.
  },
});
plugins.uiActions.attachAction('MY_APP_PIE_CHART_CLICK', 'DO_SOMETHING');

现在,您的 DO_SOMETHING 操作将在 MY_APP_PIE_CHART_CLICK 触发器被触发时自动执行;或者,如果多个兼容的操作附加到该触发器,用户将看到一个上下文菜单弹出窗口以选择一个要执行的操作。