




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ComboTreeDetailListUI左树右表必须实现的方法事件/增加下拉列表选择改变事件处理(会重新生成树)protected void cbxMain_itemStateChanged(java.awt.event.ItemEvent e) throws Exceptionsuper.cbxMain_itemStateChanged(e);/ 本超类事件重新生成树if (treeMain.getRowCount() 1)treeMain.setSelectionRow(1);/ 有数据选择第一个节点ElsetreeMain.setSelectionRow(0);/ 无数据选择根节点/给左树传查询过滤条件(如果需要传参数给左树,需要实现ILNTreeNodeCtrl接口)protected ILNTreeNodeCtrl getLNTreeNodeCtrl() throws Exceptionif (cbxMain.getItemCount() 0) tateChanged(e);/本超类函数重新生成树if (treeMain.getRowCount() 1)treeMain.setSereturn new LNCsAccountTypeTreeNodeCtrl(getTreeInterface(), (CsAccountTableInfo) this.cbxMain.getSelectedItem(), acccountTable); else return new LNCsAccountTypeTreeNodeCtrl(getTreeInterface(), new CsAccountTableInfo(), acccountTable); class LNCsAccountTypeTreeNodeCtrl implements ILNTreeNodeCtrl private ICsAccountType iAccountType = null; private CsAccountTableInfo accoutTableInfo = null; private String filterField = null;/ 查询过滤字段名 public LNCsAccountTypeTreeNodeCtrl(ITreeBase treeCtrl, IObjectValue accoutTableInfo, String filterField) this.iAccountType = (ICsAccountType) treeCtrl; this.accoutTableInfo = (CsAccountTableInfo) accoutTableInfo; this.filterField = filterField; / 获取指定结点的指定级次的子孙结点, 若parent=null,则获取从1到指定级次的结点 public AbstractObjectCollection getChildren(TreeBaseInfo parentNodeInfo, int level) throws Exception String tableID = null; if (this.accoutTableInfo != null & this.accoutTableInfo.getId() != null) tableID = this.accoutTableInfo.getId().toString(); EntityViewInfo viewInfo = new EntityViewInfo(); viewInfo.setFilter(new FilterInfo(); if (parentNodeInfo != null) viewInfo.getFilter().getFilterItems().add(new FilterItemInfo(longNumber, parentNodeInfo.getLongNumber() + !%, CompareType.LIKE); viewInfo.getFilter().getFilterItems().add(new FilterItemInfo(level, new Integer(parentNodeInfo.getLevel(), CompareType.GREATER); viewInfo.getFilter().getFilterItems().add(new FilterItemInfo(level, new Integer(parentNodeInfo.getLevel() + level), CompareType.LESS_EQUALS); viewInfo.getFilter().getFilterItems().add(new FilterItemInfo(filterField, tableID, CompareType.EQUALS); else viewInfo.getFilter().getFilterItems().add(new FilterItemInfo(level, new Integer(level), CompareType.LESS_EQUALS); viewInfo.getFilter().getFilterItems().add(new FilterItemInfo(filterField, tableID, CompareType.EQUALS); viewInfo.getSelector().add(new SelectorItemInfo(*); viewInfo.getSorter().add(new SorterItemInfo(longNumber); AbstractObjectCollection result = iAccountType.getTreeBaseCollection(viewInfo); return result; / 指定过滤条件。如组织类型 获取指定结点的指定级次的子孙结点, 若parent=null,则获取从1到指定级次的结点 public AbstractObjectCollection getChildren(TreeBaseInfo parentNodeInfo, int level, FilterInfo info) throws Exception String tableID = null; if (this.accoutTableInfo != null & this.accoutTableInfo.getId() != null) tableID = this.accoutTableInfo.getId().toString(); EntityViewInfo viewInfo = new EntityViewInfo(); viewInfo.setFilter(new FilterInfo(); if (parentNodeInfo != null) viewInfo.getFilter().getFilterItems().add(new FilterItemInfo(longNumber, parentNodeInfo.getLongNumber() + !%, CompareType.LIKE); viewInfo.getFilter().getFilterItems().add(new FilterItemInfo(level, new Integer(parentNodeInfo.getLevel(), CompareType.GREATER); viewInfo.getFilter().getFilterItems().add(new FilterItemInfo(level, new Integer(parentNodeInfo.getLevel() + level), CompareType.LESS_EQUALS); viewInfo.getFilter().getFilterItems().add(new FilterItemInfo(filterField, tableID, CompareType.EQUALS); else viewInfo.getFilter().getFilterItems().add(new FilterItemInfo(level, new Integer(level), CompareType.LESS_EQUALS); viewInfo.getFilter().getFilterItems().add(new FilterItemInfo(filterField, tableID, CompareType.EQUALS); viewInfo.getSelector().add(new SelectorItemInfo(*); viewInfo.getSorter().add(new SorterItemInfo(longNumber); AbstractObjectCollection result = iAccountType.getTreeBaseCollection(viewInfo); return result; / 指定过滤条件。如组织类型 获取指定结点的指定级次的子孙结点, 若parent=null,则获取从1到指定级次的结点 public AbstractObjectCollection getChildren(TreeBaseInfo parentNodeInfo, int level, FilterInfo filter, SelectorItemCollection selector) throws Exception return getChildren(parentNodeInfo, level, filter); /设置左树选择节点的值 Override protected IObjectPK getSelectedTreeKeyValue() return null; /设置左树选择节点时右表的查询过滤条件字段 Override protected String getQueryFieldName() return accountType.id; /设置左树类别编辑界面Override protected String getGroupEditUIName() return CsAccountTypeEditUI.class.getName(); /设置左树接口 Override protected ITreeBase getTreeInterface() throws Exception return CsAccountTypeFactory.getRemoteInstance(); /设置右表接口 Override protected ICoreBase getBizInterface() throws Exception return CsAccountViewFactory.getRemoteInstance(); /设置右表编辑界面 Override protected String getEditUIName() return CsAccountViewEditUI.class.getName(); /打开窗口时给ComboBox控件赋值 Override public void onLoad() throws Exception super.onLoad(); / 定义缺省下拉列表框 DefaultComboBoxModel model = new DefaultComboBoxModel(); / 根据查询过滤条件定义下拉列表的值 ICsAccountTable iAccountTable = CsAccountTableFactory.getRemoteInstance(); CsAccountTableCollection tableInfos = iAccountTable.getCsAccountTableCollection(); Iterator ter = tableInfos.iterator(); while (ter.hasNext() CsAccountTableInfo tableInfo = (CsAccountTableInfo) ter.next(); model.addElement(tableInfo); / 给下拉列表赋值 this.cbxMain.setModel(model); / 手动刷新窗口,同时选择左树节点 ActionEvent event = new ActionEvent(this.btnRefresh, 0, Refresh); actionRefresh_actionPerformed(event); if (treeMain.getRowCount() 1) treeMain.setSelectionRow(1);/ 有数据选择第一个节点 else treeMain.setSelectionRow(0);/ 无数据选择根节点 /设置左树根节点名称 Override protected String getRootName() if (cbxMain.getSelectedItem() instanceof CsAccountTableInfo) return (CsAccountTableInfo) cbxMain.getSelectedItem().getName(); return 合并科目表; /取消右表默认(CU)查询过滤条件 Override protected FilterInfo getDefaultFilterForQuery() return null; /取消左树默认(CU)查询过滤条件 Override protected FilterInfo getDefaultFilterForTree() return null; /设置传递给左树编辑界面的参数protected void prepareGroupUIContext(UIContext uiContext, ActionEvent e) super.prepareGroupUIContext(uiContext, e); uiContext.put(myObject, btnAddNew); /设置传递给右表编辑界面的参数 protected void prepareUIContext(UIContext uiContext, ActionEvent e) /默认将当前选中节点放在ParentNode中 /uiContext.put(ParentNode, treeNode.getUserObject(); super.prepareUIContext(uiContext, e); if (e.getSource() = btnAddNew) uiContext.put(myObject, btnAddNew); / 根据左树选择的节点设置右表查询过滤条件 protected void buildTreeFilter() / 如果右表的过滤条件为空,设置空过滤条件 if (mainQuery.getFilter() = null) mainQuery.setFilter(new FilterInfo(); / 获取当前选中的树节点 KDTreeNode treeNode = getSelectedTreeNode(); FilterItemCollection col = new FilterItemCollection(); / 取得左树当前节点及子节点的值作为右表查询条件参数 if (treeNode.getUserObject() instanceof CsAccountTypeInfo) / 左树非根节点 this.setCSAccountTypeFilter(col, (CsAccountTypeInfo) treeNode.getUserObject(), (CsAccountTableInfo) cbxMain.getSelectedItem(); else / 左树根节点 this.setCSAccountTypeFilter(col, null, (CsAccountTableInfo) cbxMain.getSelectedItem(); FilterInfo filterInfo = new FilterInfo(); / 加右表查询过滤条件 Iterator iter = col.iterator(); while (iter.hasNext() filterInfo.getFilterItems().add(FilterItemInfo) iter.next(); / 加右表查询过滤条件的关系及顺序 int count = col.size(); if (count 0) StringBuffer master = new StringBuffer(); for (int i = 0; i 0) master.append( OR ); master.append(#); master.append(i); filterInfo.setMaskString(master.toString(); / 合并过滤条件 FilterInfo treeFilter = getTreeFilter(); try if (treeFilter != null) filterInfo.mergeFilter(treeFilter, AND); catch (BOSException ex) MsgBox.show(ex.getMessage(); abort(); / 设置右表查询过滤条件 mainQuery.setFilter(filterInfo); MsgBox.show(右表查询过滤条件: + mainQuery.getFilter().toSql(); private void setCSAccountTypeFilter(FilterItemCollection fliterCols, CsAccountTypeInfo currentTreeNode, CsAccountTableInfo currentAccountTable) if (isIsIncludeChild() / 存在子节点的情况 try IObjectCollection treeCols; if (currentTreeNode = null & currentAccountTable != null) EntityViewInfo acctTypeEvi = new EntityViewInfo(); FilterInfo acctTypeFilter = new FilterInfo(); / 设置左树查询过滤条件 acctTypeFilter.getFilterItems().add(new FilterItemInfo(acccountTable.id, currentAccountTable.getId(); acctTypeEvi.setFilter(acctTypeFilter); / 1、取左树所有数据 treeCols = (ICsAccountType) getTreeInterface().getCsAccount
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 栲胶蒸发工效率提升考核试卷及答案
- 数控水射流切割机操作工基础考核试卷及答案
- 精制制盐工技术考核试卷及答案
- 链板冲压工知识考核试卷及答案
- 工程测量员转正考核试卷及答案
- 信息技术学考试题及答案
- 信息技术管理试题及答案
- 医学微生物与免疫学及病理生理学基础知识点试卷
- 【课件】有理数的大小比较+课件2025-2026学年人教版(2024)七年级数学上册+
- 财务专业试题及答案
- 医疗机构水电气设备维护流程
- 数据的形式与记录载体(教学设计)2024-2025学年清华版信息技术四年级上册
- 2025美国急性冠脉综合征(ACS)患者管理指南解读课件
- 合规管理战略规划范文
- 吊装施工安全协议书范本
- 餐饮服务与数字化运营 习题及答案 项目一
- 消毒隔离的管理
- 2025年公务员住房公积金贷款合同范例
- 社区智能安防视频监控系统技术方案
- 101思想政治考试大纲
- 演讲比赛评分表计分表
评论
0/150
提交评论