欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

UAP扩展开发 - 新增按钮

程序员文章站 2022-03-08 07:54:43
...

UAP新增按钮的实现

一、扩展说明

1.按钮扩展的实现有两种方法

- 按钮继承:NCAction,MenuAction

- 拦截器实现:ActionInterceptor

此处是通过按钮继承实现的

2.UAP扩展开发新增按钮一般就三步

- 功能注册找到对应的节点查看全局配置xml文件

- 新建action类,扩展xml文件

- 注册配置文件到功能注册节点下


此处以销售订单维护为例,效果如下

UAP扩展开发 - 新增按钮

UAP扩展开发 - 新增按钮

3.节点查找路径

- 功能注册节点

:动态建模平台 -> 开发配置 -> 功能管理 -> 功能注册 

- 销售订单维护节点

:供应链 -> 销售管理 -> 销售订单 -> 销售订单维护

二、按钮实现

第一步 - 功能节点查看

1.新建UAP项目

新建销售po模块的UAP项目,新建组件命名自定义;

选中项目右键启动中间件服务;

本次扩展添加的按钮是销售订单维护节点下的。

进入功能注册找到采购订单维护节点

UAP扩展开发 - 新增按钮


看到'B'部分参数注册内层红框就是当前节点的xml配置文件,这个后面要用到;

第二步 - 按钮类及配置文件实现

1.创建action类及xml扩展文件

在新建的项目中client下新建action类及xml配置文件;

命名最好规范化可以参考标准产品相似功能节点的命名

结构如下:

UAP扩展开发 - 新增按钮

action类就是按钮对应的java类,该类继承NCAction,覆盖doAction()方法,按钮的响应后的逻辑操作可在此方法中编写;

xml文件就是扩展按钮的配置文件。

2.文件代码

AddTestAction.java

package nc.ui.extend.pubapp.action;

import java.awt.event.ActionEvent;

import nc.ui.pub.beans.MessageDialog;
import nc.ui.uif2.NCAction;
import nc.ui.uif2.UIState;
import nc.ui.uif2.editor.BillForm;
import nc.ui.uif2.model.AbstractAppModel;

public class AddTestAction extends NCAction { 
	 
	public AddTestAction() {
		super.setBtnName("按钮");
		super.setCode("code");
	}
	 
	private static final long serialVersionUID = -4417976703049420324L; 
	private BillForm editor; 
	private AbstractAppModel model; 

 
	@Override public void doAction(ActionEvent e) throws Exception {
		MessageDialog.showHintDlg(editor, " 提示 ", " 测试自己新按钮按下 ");
	}
	public BillForm getEditor() {
		return this.editor; 
	}
	public AbstractAppModel getModel() {
		return this.model; 
	}
	public void setEditor(BillForm editor) {
		this.editor = editor; 
	}
	public void setModel(AbstractAppModel model) {
		this.model = model;
		model.addAppEventListener(this);
	}
	@Override
	protected boolean isActionEnable() {
		return this.model.getUiState() == UIState.NOT_EDIT;
	}
} 

pubapp_ext_config.xml

<?xml version="1.0" encoding="GBK"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
	<!--  插入按钮 -->
	<bean class="nc.ui.pubapp.plugin.action.InsertActionInfo"> 
		<property name="action" ref ="AddTestAction" />
		
		<!-- 这是插入按钮的目标位置配置   addMenuGroup即为查找的目标按钮  在其后插入测试按钮-->
		<property name="target" ref="addMenuGroup" />
		<property name="pos" value="before" />
		<property name="actionContainer" ref="actionsOfList" /><!-- 卡片,列表 -->
		<property name="actionType" value="notedit" /><!-- notedit 或 edit -->
	</bean>
	
	<bean class="nc.ui.pubapp.plugin.action.InsertActionInfo">
		<property name="action" ref ="AddTestAction" />
		<property name="target" ref="addMenuGroup" /><!-- 目标按钮 -->
		<property name="pos" value="before" /><!-- 位置 -->
		<property name="actionContainer" ref="actionsOfCard" /><!-- 卡片,列表 -->
		<property name="actionType" value="notedit" /><!-- notedit 或 edit -->
	</bean>
	
	<bean id="AddTestAction" class="nc.ui.extend.pubapp.action.AddTestAction">
		<property name="model" ref="manageAppModel" />
		<property name="editor" ref="billFormEditor" />
		
	</bean>
 </beans>

3.xml配置中的参数说明

<bean class="nc.ui.pubapp.plugin.action.InsertActionInfo"> 标识了扩展新增按钮
< bean class="nc.ui.pubapp.plugin.action.ReplaceActionInfo">替换按钮配置
<bean class=" nc.ui.uif2.uiextend.ActionExtInfo">删除按钮配置
<property name="target" ref="addMenuGroup" /> 
<property name="pos" value="before" />新增按钮AddTestAction在按钮addMenuGroup的前面
<bean id="AddTestAction" class="nc.ui.extend.pubapp.action.AddTestAction">
<property name="model" ref="manageAppModel" />
<property name="editor" ref="billFormEditor" />
</bean>
id就是作为一个按钮在xml配置文件中的标识,
class是按钮对应的的Java类
model是销售订单维护节点的xml配置文件中注册的AppModel
editor也是在该节点的xml配置文件中;

以上model,editor,目标按钮都是在xml配置中找;这个xml就是上面功能节点销售订单维护下的参数注册中的saleorder_config.xml配置文件;

找源码有个快捷键Ctrl+Shift+T,会弹出输入框,输入查找的文件名点击确认即可;

UAP扩展开发 - 新增按钮

打开文件后,可以找到actions,选一个作为目标按钮即可;

UAP扩展开发 - 新增按钮

关于model可以去查或者按照已有的action跟它配置的model,editor保持一致即可;

UAP扩展开发 - 新增按钮

UAP扩展开发 - 新增按钮

第三步 - 配置文件注册

1.注册配置文件到功能节点

就是把xml的全路径配置到销售订单维护节点下的参数注册中;

注意参数的命名有一定的规范,一般PluginBeanConfigFilePath加下划线后跟01,02这样;

UAP扩展开发 - 新增按钮


到此完成新增按钮;到供应链的销售订单维护打开,此时按钮已被添加成功。


另:如果是二级按钮,或者按钮组;注意选择目标按钮后,将<property name="actionType" value="notedit" />中的notedit换成edit即可。