正在加载

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');

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

ui_action 示例

© . All rights reserved.