
# 1 场景一
用户可以通过插件中对附件面板增加自定义按钮,实现附件分享,打印等功能
# 2 通过插件自定义附件面板中的按钮
```java
public class TestAttachmentPanelDemo extends AbstractFormPlugin implements AttachmentOperaClickListener {
@Override
public void registerListener(EventObject e) {
//注册附件自定义按钮点击事件
AttachmentPanel panel = getControl("attachmentpanel");
panel.addOperaClickListener(this);;
}
//附件面板自定义按钮点击触发
@Override
public void attachmentOperaClick(AttachmentOperaClickEvent e) {
String operaKey = e.getOperaKey();
switch (operaKey){
case "share":
System.out.println("附件分享");
break;
case "print":
System.out.println("附件打印");
break;
default:
break;
}
}
@Override
public void afterBindData(EventObject e) {
AttachmentPanel panel = getControl("attachmentpanel");
List<Map<String, Object>> attachmentData = panel.getAttachmentData();
if(panel.getAttachmentData() != null && panel.getAttachmentData().size() > 0){
List<AttachBtnOption> btns = new ArrayList<AttachBtnOption>();
btns.add(new AttachBtnOption("share", new LocaleString("分享")));
btns.add(new AttachBtnOption("print", new LocaleString("打印")));
panel.addAttachOperaBtn(btns);
}
}
}
```
# 3 展示效果
## 3.1 原效果
原效果为系统预置的按钮展示于附件名称后。

## 3.2 自定义按钮效果
自定义按钮展示于附件名称后。

# 4 场景二
用户可以修改附件面板上的按钮的可见性。
# 5 修改附件面板的按钮的可见性
```java
public class TestAttachmentPanelDemo extends AbstractFormPlugin implements AttachmentOperaClickListener {
@Override
public void registerListener(EventObject e) {
AttachmentPanel panel = getControl("attachmentpanel");
panel.addOperaClickListener(this);;
}
@Over