• nc 画界面,触发效果(第一种)


    package nc.ui.hzctr.sellctr.action;
    
    import java.awt.BorderLayout;
    import java.awt.Dimension;
    import java.awt.Toolkit;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.util.HashMap;
    import nc.ui.pub.beans.MessageDialog;
    import nc.ui.pub.beans.UIButton;
    import nc.ui.pub.beans.UIDialog;
    import nc.ui.pub.beans.UILabel;
    import nc.ui.pub.beans.UIRefPane;
    import nc.ui.pub.beans.UITextArea;
    
    /**
     * 批量输入日期窗口
     * 
     * @author Yaolz
     */
    public class BatchInputDateDialog extends UIDialog implements ActionListener {
    
    	// 交房通知书生效等待期(天)标签
    	private UILabel day;
    	// 天数输入框
    	private UITextArea dayField;
    	// 竣备实际获取时间标签
    	private UILabel time;
    	// 时间参照
    	private UIRefPane sjref = null;
    	// 确定
    	private UIButton ok_btn;
    	// 取消
    	private UIButton cancel_btn;
    	private boolean isCancle;
    	private int bat = 0;
    
    	@Override
    	public int showModal() {
    		super.show();
    		int bat = this.bat;
    		return bat;
    	}
    	
    	public BatchInputDateDialog() {
    		setLayout(new BorderLayout());
    		// 标题
    		setTitle("批量输入日期框");
    		this.setCancle(true);
    		initUI();
    	}
    
    	public void setCancle(boolean isCancle) {
    		this.isCancle = isCancle;
    	}
    
    	private void initUI() {
    		// 窗体长宽
    		setSize(350, 200);
    		getContentPane().setLayout(null);
    		// 交房标签
    		getContentPane().add(getJfDay());
    		// 交房文本框
    		getContentPane().add(getJfText());
    		// 竣备标签
    		getContentPane().add(getJfTime());
    		// 竣备参照
    		getContentPane().add(getRqsj());
    		// 确定按钮
    		getContentPane().add(getbuttonOk());
    		// 取消按钮
    		getContentPane().add(getbuttonCancel());
    		Toolkit kit = Toolkit.getDefaultToolkit();
    		Dimension screenSize = kit.getScreenSize();
    		int screenWidth = screenSize.width / 2;
    		int screenHeight = screenSize.height / 2;
    		int height = getHeight();
    		int width = getWidth();
    		setLocation(screenWidth - width / 2, screenHeight - height / 2);
    	}
    
    	@Override
    	public void actionPerformed(ActionEvent e) {
    		if (e.getSource().getClass().getName()
    				.equals("nc.ui.pub.beans.UIButton")) {
    			nc.ui.pub.beans.UIButton btn = (nc.ui.pub.beans.UIButton) e
    					.getSource();
    			if (this.ok_btn.getName().equals(btn.getName())) {
    				onOk();
    			} else if (this.cancel_btn.getName().equals(btn.getName())) {
    				onCancel();
    			}
    		}
    	}
    
    	private void onOk() {
    		if ((getJfText().getText() == null || getJfText().getText().length() <= 0)
    				&& (getRqsj().getText() == null || getRqsj().getText().length() <= 0)) {
    			MessageDialog.showErrorDlg(null, "提示", "必须填写天数与时间!");
    			return;
    		}
    		this.bat = 1;
    		this.setCancle(false);
    		closeOK();
    	}
    
    	private UIButton getbuttonOk() {
    		this.ok_btn = new UIButton("确认");
    		this.ok_btn.setName("btn_ok");
    		this.ok_btn.setLocation(90, 140);
    		this.ok_btn.addActionListener(this);
    		return this.ok_btn;
    	}
    
    	private UIButton getbuttonCancel() {
    		this.cancel_btn = new UIButton("取消");
    		this.cancel_btn.setName("btn_cance");
    		this.cancel_btn.setLocation(190, getbuttonOk().getY());
    		this.cancel_btn.addActionListener(this);
    		return this.cancel_btn;
    	}
    
    	private UILabel getJfDay() {
    		if (this.day == null) {
    			this.day = new UILabel("交房通知书生效等待期(天):");
    			this.day.setFont(getFont());
    			this.day.setBackground(getBackground());
    			this.day.setForeground(getForeground());
    			this.day.setSize(200, 35);
    			this.day.setLocation(30, 30);
    		}
    		return this.day;
    	}
    
    	private UITextArea getJfText() {
    		if (this.dayField == null) {
    			this.dayField = new UITextArea();
    			this.dayField.setSize(100, 25);
    			this.dayField.setLocation(205, 35);
    		}
    		return this.dayField;
    	}
    
    	private UILabel getJfTime() {
    		if (this.time == null) {
    			this.time = new UILabel("竣备实际获取时间:");
    			this.time.setFont(getFont());
    			this.time.setBackground(getBackground());
    			this.time.setForeground(getForeground());
    			this.time.setSize(200, 35);
    			this.time.setLocation(30, 75);
    		}
    		return this.time;
    	}
    
    	private UIRefPane getRqsj() {
    		if (this.sjref == null) {
    			this.sjref = new UIRefPane();
    			this.sjref.setSize(165, 25);
    			this.sjref.setRefNodeName("日期");
    			this.sjref.setLocation(140, 80);
    		}
    		return this.sjref;
    	}
    	
    	public HashMap<String, String> getData() {
    		HashMap rtnMap = new HashMap<String, String>();
    		rtnMap.put("day", getJfText().getFieldText());
    		rtnMap.put("time", getRqsj().getRefShowName());
    		return rtnMap;
    	}
    
    	private void onCancel() {
    		this.setCancle(true);
    		this.bat = 0;
    		closeCancel();
    	}
    
    }
    

      

    package nc.ui.hzctr.sellctr.action;
    
    import java.awt.event.ActionEvent;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.HashMap;
    
    import nc.bs.framework.common.NCLocator;
    import nc.itf.uif.pub.IUifService;
    import nc.ui.pub.beans.MessageDialog;
    import nc.ui.pubapp.uif2app.view.ShowUpableBillForm;
    import nc.ui.uif2.NCAction;
    import nc.ui.uif2.model.AbstractAppModel;
    import nc.uif2.annoations.MethodType;
    import nc.uif2.annoations.ModelMethod;
    import nc.uif2.annoations.ModelType;
    import nc.vo.hzctr.sellctr.AggSellctrVO;
    import nc.vo.pub.lang.UFDate;
    
    /**
     * 批量输入日期按钮
     * 
     * @author Yaolz
     */
    public class BatchInputDateAction extends NCAction {
    
    	private AbstractAppModel model;
    	private ShowUpableBillForm editor;
    
    	public BatchInputDateAction() {
    		this.setBtnName("批量输入日期");
    		this.setCode("batInputAction");
    	}
    
    	@Override
    	public void doAction(ActionEvent e) throws Exception {
    		// 获取界面选择行数
    		Integer[] num = ((nc.ui.uif2.model.BillManageModel) model)
    				.getSelectedOperaRows();
    		// 获取选择的每行数据
    		Object[] headRow = ((nc.ui.uif2.model.BillManageModel) model)
    				.getSelectedOperaDatas();
    		if (num == null || num.length < 1) {
    			MessageDialog.showHintDlg(null, "提示", "请选择要批量输入日期的数据");
    			return;
    		}
    		int a = 0;
    		for (Object object : headRow) {
    			AggSellctrVO head = (AggSellctrVO) object;
    			if (head.getParentVO().getDbillstatus() != -1) {
    				a++;
    			}
    		}
    		if (a > 0) {
    			MessageDialog
    					.showHintDlg(null, "更新失败", "当前选择的数据中存在非自由态单据,请重新选择!!!");
    			return;
    		}
    		BatchInputDateDialog bat = new BatchInputDateDialog();
    		if (bat.showModal() == 0) {
    			return;
    		}
    		HashMap<String, String> data = bat.getData();
    		// 获取输入天数
    		String day = data.get("day");
    		// 获取输入日期
    		String time = data.get("time");
    		Date date = StrToDate(time);
    		int idate = Integer.parseInt(day);
    		UFDate ddate = new UFDate(date);
    		int b = 0;
    		for (Object object : headRow) {
    			// 遍历取出表头数据
    			AggSellctrVO head = (AggSellctrVO) object;
    			// 不是自由态的跳过单次循环
    			if (head.getParentVO().getDbillstatus() != -1) {
    				continue;
    			}
    			// 交房通知日期 delivernoticedate
    			UFDate delivernoticedate = (head.getParentVO()
    					.getDelivernoticedate()) != null ? head.getParentVO()
    					.getDelivernoticedate() : new UFDate("1900-01-01");
    			// 交房通知书生效天 effectwait_date
    			int effectwait_date = (head.getParentVO().getEffectwait_date()) != null ? head
    					.getParentVO().getEffectwait_date() : 0;
    			// 输入交房通知日期与交房通知书生效天,得到新日期
    			Date newDate = addDate(delivernoticedate.toDate(), effectwait_date);
    			// 转换成UFDate类型
    			UFDate newDates = new UFDate(newDate);
    			// 设置实际峻备完成时间
    			head.getParentVO().setCompleteddate(ddate);
    			// 实际峻备完成时间
    			UFDate completeddate = head.getParentVO().getCompleteddate();
    			// 新日期与实际峻备完成时间做比较,如果新日期大于实际峻备完成时间。则 设置实际峻备完成时间 为 新日期
    			if (newDates.compareTo(completeddate) > 0 && newDates.getDay() > 0){
    				head.getParentVO().setConfirmdate(newDates.toString().substring(0,7));
    			}else{
    				head.getParentVO().setConfirmdate(completeddate.toString().substring(0,7));
    			}
    			// 设置交房通知书生效等待期(天)
    			head.getParentVO().setEffectwait_date(idate);
    			// 设置Dr属性为0
    			head.getParentVO().setAttributeValue("dr", new Integer(0));
    			getUpdate().update(head.getParentVO());
    			b++;
    		}
    		MessageDialog.showHintDlg(null, "更新成功", "已成功更新" + b + "条记录,请刷新当前界面!!!");
    	}
    
    	/**
    	 * 输入日期与天数,得到新日期
    	 */
    	public static Date addDate(Date date, long day) throws ParseException {
    		long time = date.getTime(); // 得到指定日期的毫秒数
    		day = day * 24 * 60 * 60 * 1000; // 要加上的天数转换成毫秒数
    		time += day; // 相加得到新的毫秒数
    		return new Date(time); // 将毫秒数转换成日期
    	}
    
    	private IUifService getUpdate() {
    		IUifService service = (IUifService) NCLocator.getInstance().lookup(
    				IUifService.class.getName());
    		return service;
    	}
    
    	/**
    	 * 字符串转换成日期
    	 * 
    	 * @param str
    	 * @return date
    	 */
    	public static Date StrToDate(String str) {
    		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
    		Date date = null;
    		try {
    			date = (Date) format.parseObject(str);
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		return date;
    	}
    
    	public ShowUpableBillForm getEditor() {
    		return editor;
    	}
    
    	public void setEditor(ShowUpableBillForm editor) {
    		this.editor = editor;
    	}
    
    	@ModelMethod(modelType = ModelType.AbstractAppModel, methodType = MethodType.GETTER)
    	public AbstractAppModel getModel() {
    		return this.model;
    	}
    
    	@ModelMethod(modelType = ModelType.AbstractAppModel, methodType = MethodType.SETTER)
    	public void setModel(AbstractAppModel model) {
    		this.model = model;
    		model.addAppEventListener(this);
    	}
    
    }
    

      


    作者:冬瓜茶饮料
    出处:http://www.cnblogs.com/dongguacha/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    maven_常用命令
    tomcat_server.xml常用配置
    tomcat线程池原理
    Tomcat处理HTTP请求原理&线程池
    javaweb-javaScript(一)
    javaweb-html快速入门
    javaweb-css
    javaweb-单元测试与注解
    javaweb-文件的上传下载
    javaweb-jsp开发模式+JSON插件
  • 原文地址:https://www.cnblogs.com/dongguacha/p/7146251.html
Copyright © 2020-2023  润新知