1、引入weaver-ebuilder-form-client包

```java
	<dependency>
            <groupId>com.weaver</groupId>
            <artifactId>weaver-ebuilder-form-client</artifactId>
    </dependency>
```

2、实现按钮接口

```java
实现com.weaver.ebuilder.form.client.service.button.TableButtonService接口(rpc接口),给定自己的group，
例如:"ebuilderform"。

TableButtonService接口：

public interface TableButtonService {

  /**
   * 获取数据源按钮
   * 返回按钮集合，按钮示例：
   * @param buttonQuery
   * @return
   */
  List<TableButton> getSourceButtons(ButtonQuery buttonQuery);

  /**
   * 按钮权限和条件判断
   * 按钮显示位置为行上或者行末下拉时根据数据来过滤
   * Map<按钮id,List<数据id>>
   * @param buttonQuery
   * @return
   */
  Map<String, List<String>> dataShowButtons(ButtonQuery buttonQuery);
}	

TableButton:
	/**
   * 按钮类型
   * 数据源的默认传"datasource"
   */
  private String buttonType;

  /**
   * 按钮key
   */
  private String buttonKey;

  /**
   * 是否是系统按钮，eb表单内部有系统和自定义区分
   * 数据源的默认传1
   */
  private int system;

  /**
   * 按钮id
   */
  private String id;

  /**
   * 按钮名称
   */
  private String name;

  /**
   * 是否开启，默认传0
   */
  private int enable;

  /**
   * 是否仅显示图标
   */
  private int onlyIcon;

  /**
   * 图标路径："{\"path\":\"7833849999483424092\"}"
   */
  private String iconPath;

  /**
   * 显示设备PC、MOBILE
   */
  private String scope;

  /**
   * 按钮显示的可选位置
   * rightTop:右上角、rightTopBatch:右上角批量操作、rightTopDropDown:右上角更多菜单
   * LineEndDropDown:行末下拉、lineEnd:行末
   */
  private List<String> btnPositionData;

  /**
   * 当前按钮默认显示位置
   */
  private List<String> showPosition;

  /**
   * 按钮动作
   */
  private List<Map<String,Object>> actions;

  /**
   * 按钮权限
   */
  private List<Map<String,Object>> permissions;

  /**
   * 隐藏按钮动作
   * 默认传true
   */
  private boolean hideAction;

  /**
   * 前端服务名称
   */
  private String sourcePackage;

入参ButtonQuery ：
	/**
   * 数据源类型
   */
  private SourceType sourceType;

  /**
   * 数据源表单id
   */
  private String tableId;

  /**
   * 数据源groupId
   */
  private String groupId;

  /**
   * 是否是前端运行
   * false: 设计器配置页,不需要权限过滤
   * true: 运行时，需要权限过滤
   */
  private boolean isView;

  /**
   * 数据id集合，行上、行末按钮时需要
   */
  private List<String> dataIds;

  /**
   * 行上/行末 按钮集合
   */
  private List<TableButton> buttons;

  /**
   * 其他参数
   */
  private Map<String,Object> otherParams;
```
