eas之事件
选择事件
选择事件是在选择块发生变化后发出。
table.addKDTSelectListener(new KDTSelectListener()
{
public void tableSelectChanged(KDTSelectEvent e){
// 获取上一个选择块
KDTSelectBlock sbPrev = e.getPrevSelectBlock();
// 获取当前选择块
KDTSelectBlock sbCurr = e.getSelectBlock();
// ...do something
}
});
鼠标单击双击事件
单击事件是在鼠标单击某个单元格后发出。
双击事件是在鼠标双击某个单元格后发出。
table.addKDTMouseListener(new KDTMouseListener()
{
public void tableClicked(KDTMouseEvent e)
{
// 单击
if (e.getClickCount() == 1)
{
// ...do something
}
// 双击
else if (e.getClickCount() == 2)
{
// ...do something
}
}
});
激活单元即指当前处于准备进入编辑状态的单元。
激活单元变化事件是在激活单元发生变化后发出。
添加激活单元变化事件侦听者
table.addKDTActiveCellListener(new KDTActiveCellListener()
{
public void activeCellChanged(KDTActiveCellEvent e)
{
// 获取上一个激活单元的行列索引
int prevRow = e.getPrevRowIndex();
int prevCol = e.getPrevColumnIndex();
// 获取当前激活单元的行列索引
int currRow = e.getRowIndex();
int currCol = e.getColumnIndex();
// ...do something
}
});
编辑事件
编辑事件KDTEditListener包括以下几个方法:
editStarting 编辑器启动中,在编辑器启动之前发出,通过设置返回值可以取消启动编辑器。
editStarted 编辑启动后,在编辑启动之后发出。
editValueChanged 编辑器值变化,在编辑器的值发生变化后发出。
editStopping 编辑器结束中,在编辑器结束之前发出,通过设置返回值可以取消结束编辑器。
editStopped 编辑器结束后,在编辑器结束之后发出。
KDTEditListener提供了适配器KDTEditAdapter
// 示例
table.addKDTEditListener(new KDTEditAdapter()
{
// 编辑器启动前
public void editStarting(KDTEditEvent e)
{
System.out.println("editStarting");
// 如果当前行是第三行,将取消编辑
if (e.getRowIndex() == 3)
e.setCancel(true);
}
// 编辑启动后
public void editStarted(KDTEditEvent e)
{
System.out.println("editStarted");
// 如果当前单元处于第4行第0列,并且单元值为字符串,则在字符串前加上$符
if ((e.getRowIndex() == 4) && (e.getColIndex() == 0))
{
KDTable tbl = (KDTable)e.getSource();
Object value =tbl.getEditManager().getEditor().getValue();
if (value instanceof String)
tbl.getEditManager().getEditor().setValue("$" + value.toString());
}
}
// 编辑器值变化(注意:此时编辑器还未结束,KDTable实际上是转发编辑器的
// change事件)
public void editValueChanged(KDTEditEvent e){
System.out.println("editValueChanged");
}
// 编辑器结束前
public void editStopping(KDTEditEvent e)
{
System.out.println("editStopping");
//如果当前单元处于第4行第0列,则在退出前将$符去掉
if ((e.getRowIndex() == 4) && (e.getColIndex() == 0))
{
KDTable tbl = (KDTable)e.getSource();
String value = (String)tbl.getEditManager().getEditor().getValue();
// 如果单元格的值长度小于5,则不允许退出编辑状态
if (value.length() < 5)
e.setCancel(true);
// 否则,取得$符并退出编辑
else
tbl.getEditManager().getEditor().setValue(value.substring(1, value.length()));
}
}
// 编辑结束后
public void editStopped(KDTEditEvent e) {
System.out.println("editStopped");
}
});
BeforeActionListener事件
这个事件在table增删行列以及copy、paste、cut时触发,通过设置事件参数的返回值可以取消相应的动作。
// 给table设置action
table.setBeforeAction(new TableBeforeAction());
// action的实现
class TableBeforeAction implements BeforeActionListener
{
/**
*@see com.kingdee.bos.ctrl.kdf.table.event.BeforeActionListener#beforeAction(com.kingdee.bos.ctrl.kdf.table.event.BeforeActionEvent)
*/
public void beforeAction(BeforeActionEvent e)
{
// 添加行
if (e.getType() == BeforeActionEvent.ACTION_ADD_ROW)
{
// 获取插入行的位置
int rowIndex = ((Integer)e.getParameter()).intValue();
if (rowIndex > 5)
{
WindowUtil.msgboxInfo("不能添加行", "title", table);
// 取消动作
e.setCancel(true);
}
}
// 添加列
else if (e.getType() == BeforeActionEvent.ACTION_ADD_COLUMN)
{
int colIndex = ((Integer)e.getParameter()).intValue();
if (colIndex > 3)
{
WindowUtil.msgboxInfo("不能添加列", "title", table);
// 取消动作
e.setCancel(true);
}
}
// paste
else if (e.getType() == BeforeActionEvent.ACTION_PASTE)
{
// 获取paste的项
int mark = ((Integer)e.getParameter()).intValue();
// 如果paste项中包含userObject,则
if (KDTEditHelper.isUserObject(mark))
{
WindowUtil.msgboxInfo("paste", "title", table);
// paste除userObject外的内容
table.getEditHelper().paste(KDTEditHelper.STYLE | KDTEditHelper.VALUE | KDTEditHelper.FORMULA);
// 取消动作
e.setCancel(true);
}
}
// cut
else if (e.getType() == BeforeActionEvent.ACTION_CUT)
{
// 获取cut的项
int mark = ((Integer)e.getParameter()).intValue();
// 如果cut项中包含userObject,则
if (KDTEditHelper.isUserObject(mark))
{
WindowUtil.msgboxInfo("cut", "title", table);
// cut除userObject外的内容
table.getEditHelper().paste(KDTEditHelper.STYLE | KDTEditHelper.VALUE | KDTEditHelper.FORMULA);
// 取消动作
e.setCancel(true);
}
}
}
}
eas之事件的更多相关文章
- JNI详解---从不懂到理解
转载:https://blog.csdn.net/hui12581/article/details/44832651 Chap1:JNI完全手册... 3 Chap2:JNI-百度百科... 11 C ...
- eas中删除原来的监听事件添加新的监听事件
kdtEntrys.removeKDTEditListener(kdtEntrys.getListeners(KDTEditListener.class)[0]); kdtEntrys.addKDT ...
- JQuery事件机制
1 事件操作 1.1 页面载入事件 $(document).ready(function(){ // 在这里写你的代码... }); 或者 $(function($) { // 你可以在这里继续使用$ ...
- Jquery的点击事件,三句代码完成全选事件
先来看一下Js和Jquery的点击事件 举两个简单的例子 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&q ...
- 关于 Chrome 浏览器中 onresize 事件的 Bug
我在写插件时用到了 onresize 事件,在反复地测试后发现该事件在 Chrome 及 Opera(内核基本与 Chrome 相同,以下统称 Chrome)浏览器打开时就会执行,这种情况也许不能算作 ...
- MVVM设计模式和WPF中的实现(四)事件绑定
MVVM设计模式和在WPF中的实现(四) 事件绑定 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在WPF中 ...
- C++中的事件分发
本文意在展现一个C++实现的通用事件分发系统,能够灵活的处理各种事件.对于事件处理函数的注册,希望既能注册到普通函数,注册到事件处理类,也能注册到任意类的成员函数.这样在游戏客户端的逻辑处理中,可以非 ...
- 移动端IOS点击事件失效解决方案
解决方案 解决办法有 4 种可供选择: 1 将 click 事件直接绑定到目标元素(即 .target)上 2 将目标元素换成 <a> 或者 button 等可点击的元素 3 将 clic ...
- Android笔记——Button点击事件几种写法
Button点击事件:大概可以分为以下几种: 匿名内部类 定义内部类,实现OnClickListener接口 定义的构造方法 用Activity实现OnClickListener接口 指定Button ...
随机推荐
- PHP array_intersect_ukey()
定义和用法 array_intersect_ukey() 函数用回调函数比较键名来计算数组的交集. array_intersect_ukey() 返回一个数组,该数组包含了所有出现在 array1 中 ...
- Android 绘制圆形图片
经常在项目中,会遇到使用圆形头像. 然而图片往往不是圆形的,我们须要对图片进行处理.以达到圆形图片的效果.这里.我总结了一下经常使用的android圆形图片的绘制的方法. 主要有以下几种方式:1.画布 ...
- web端log4net输出错误日志到mysql
1.引用log4net 2.配置log4net.config文件 <?xml version="1.0" encoding="utf-8" ?> & ...
- EarthWarrior3D游戏ios源代码
这是一款不错的ios源代码源代码,EarthWarrior3D游戏源代码. 而且游戏源码支持多平台. 适用于cocos v2.1.0.0版本号 源代码下载: http://code.662p.com/ ...
- HDU1024_Max Sum Plus Plus【滚动数组】
Max Sum Plus Plus Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
- WCF学习笔记——不支持内容类型 text/xml; charset=utf-8
我在使用WCF的时候,客户端运行报错: 不支持内容类型 text/xml; charset=utf-8 原因是WCF服务做了修改.刷新客户端的服务引用,问题消失 =================== ...
- 未能加载文件或程序集“System.Web.Helpers, Version=2.0.0.0
在本地终于用上了ASP.NET MVC4自带的认证功能,但放到生产服务器上就出问题了:打开注册页面没问题,但一点下注册按钮就报错了: 未能加载文件或程序集"System.Web.Helper ...
- luogu1268 树的重量
题目大意 给出一棵树上每两个叶子节点之间的距离,求树的总边权和. 题解 定义节点a到b的简单路径长度为[a,b],树中节点c要到达路径[a,b]所要经过的距离为dist(c, [a,b]),在树中,与 ...
- Spark之Structured Streaming
目录 Part V. Streaming Stream Processing Fundamentals Structured Streaming Basics Event-Time and State ...
- MySQL优化小方法
一.查询优化 1.尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引: 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而 ...