NC 6.x 的下拉按钮开发

本文介绍了如何在Java中继承NCAction类,实现两个自定义按钮(EnableAction和DisableAction),并在UI中通过XML配置添加下拉按钮,以及涉及的数据权限控制和UI状态管理。
摘要由CSDN通过智能技术生成

第一步,编写下拉的按钮对应的java代码

继承NCAction类

package 包名;

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 EnableAction extends NCAction {
	public EnableAction() {
		super.setBtnName("测试自制按钮2");
	}

	// 以下实现数据权限需要
	private String mdOperateCode = null; // 元数据操作编码
	private String operateCode = null; // 资源对象操作编码,以上两者注入其一,都不注入,则不进行数据权限控制。
	private String resourceCode = null; // 业务实体资源编码

	private static final long serialVersionUID = -4417976703049420324L;
	private BillForm editor;
	private AbstractAppModel model;

	@Override
	public void doAction(ActionEvent e) throws Exception {
		MessageDialog.showHintDlg(editor, "提示", "测试自己新按钮按下2");
	}

	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;
	}

	public String getMdOperateCode() {
		return mdOperateCode;
	}

	public void setMdOperateCode(String mdOperateCode) {
		this.mdOperateCode = mdOperateCode;
	}

	public String getOperateCode() {
		return operateCode;
	}

	public void setOperateCode(String operateCode) {
		this.operateCode = operateCode;
	}

	public String getResourceCode() {
		return resourceCode;
	}

	public void setResourceCode(String resourceCode) {
		this.resourceCode = resourceCode;
	}

}

 

package 包名;

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 DisableAction extends NCAction {
	public DisableAction() {
		super.setBtnName("测试自制按钮");
	}
	
	//以下实现数据权限需要
		private String mdOperateCode = null; //元数据操作编码
		private String operateCode = null; //资源对象操作编码,以上两者注入其一,都不注入,则不进行数据权限控制。
		private String resourceCode = null; //业务实体资源编码

	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;
	}

	public String getMdOperateCode() {
		return mdOperateCode;
	}

	public void setMdOperateCode(String mdOperateCode) {
		this.mdOperateCode = mdOperateCode;
	}

	public String getOperateCode() {
		return operateCode;
	}

	public void setOperateCode(String operateCode) {
		this.operateCode = operateCode;
	}

	public String getResourceCode() {
		return resourceCode;
	}

	public void setResourceCode(String resourceCode) {
		this.resourceCode = resourceCode;
	}
	
	
}

第二步,在对应的xml文件中添加按钮,一般在nc.ui.xxx.xxx.view包下

1,添加下拉按钮bean,看看你自己的xml中其它bean写在哪就写在哪,要看看你xml文件中其它bean如何写,如下面的model,editor可能不一样。

	<bean id="sealMenuAction" class="nc.funcnode.ui.action.GroupAction">
		<property name="code" value="DisEnableGroup" />1	
		<property name="name" value="启用">
		</property>
		<property name="actions">
			<list>
				<ref bean="sealAction" />
				<ref bean="unsealAction" />
			</list>
		</property>
	</bean>
	
	<bean id="sealAction" class="你写的按钮的全类名,EnableAction">
		<property name="code" value="seal"></property>
		<property name="model" ref="appModel"></property>
		<property name="editor" ref="billFormEditor" />
		<property name="resourceCode" value="subdivisionclass"></property>
		<property name="mdOperateCode" value="disable"></property>
		
	</bean>
	<bean id="unsealAction" class="你写的按钮的全类名,DisableAction">
		<property name="code" value="unseal1"></property>
		<property name="model" ref="appModel"></property>
		<property name="editor" ref="billFormEditor" />
		<property name="resourceCode" value="subdivisionclass"></property>
		<property name="mdOperateCode" value="disable"></property>
	</bean>

2,在界面布局总装引用,我这是<bean id="container" class="nc.ui.uif2.TangramContainer" 里面 <property name="actions"> 下的<list> 下添加

<ref bean="sealMenuAction"/>

我这是这样的引用但是你的不一定,所以要根据你的xml文件来。

启动就可以看到添加的按钮了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值