EAS BOS 左树右表实现

1、创建左树右表形式的UI,为treeMain添加值改变事件保存并发布

为treeMain添加值改变事件:

2、对发布后生成的代码进行修改

package com.kingdee.eas.dj.test.client;

import javax.swing.event.TreeSelectionEvent;

import org.apache.log4j.Logger;

import com.kingdee.bos.ctrl.swing.tree.DefaultKingdeeTreeNode;
import com.kingdee.bos.metadata.entity.FilterInfo;
import com.kingdee.bos.metadata.entity.FilterItemInfo;
import com.kingdee.bos.metadata.query.util.CompareType;
import com.kingdee.bos.ui.face.CoreUIObject;
import com.kingdee.eas.basedata.org.OrgViewType;
import com.kingdee.eas.ec.basedata.ResourceFactory;
import com.kingdee.eas.ec.basedata.ResourceInfo;
import com.kingdee.eas.ec.common.client.TypeTreeBuilder;
import com.kingdee.eas.framework.ITreeBase;
import com.kingdee.eas.util.client.MsgBox;


public class TestBaseDataListUI extends AbstractTestBaseDataListUI {
    private static final Logger logger = CoreUIObject.getLogger(TestBaseDataListUI.class);

    public TestBaseDataListUI() throws Exception {
        super();
    }

    @Override
    public void onLoad() throws Exception {
        initTree();
        super.onLoad();

        //设置默认选中节点
        if (this.defaultTreeNode != null)
            this.treeMain.setSelectionNode((DefaultKingdeeTreeNode)this.defaultTreeNode);
        else {
            this.treeMain.setSelectionRow(0);
        }

        this.treeMain.expandRow(0);//展开根节点
    }
	
    /**
     * 初始化树形
     */
    protected void initTree() throws Exception {
        buildTypeTree();
    }

    /**
     * 构建树形
     */
    protected void buildTypeTree() throws Exception {
        TypeTreeBuilder builder = new TypeTreeBuilder(getTreeBase(), getTreeFilter(), getRootName());
        builder.buildTypeTree(this, this.treeMain, this.actionOnLoad);
        this.treeMain.setShowsRootHandles(true);
    }
	
    /**
     * 获取树形过滤条件
     * 由此过滤需要显示的节点
     */
    protected FilterInfo getTreeFilter() throws Exception {
        FilterInfo f = new FilterInfo();

        f.getFilterItems().add(
                new FilterItemInfo("industryType.id",
                "00000000-0000-0000-0000-000000000000F7E3790D"));

        return f;
    }
	
    /**
     * 获取树形节点类型
     */
    protected ITreeBase getTreeBase() throws Exception {
        return ResourceFactory.getRemoteInstance();
    }
	
    /**
     * 获取树形根节点名称
     */
    protected String getRootName() {
        return "物资分类";
    }
	
    /**
     * 获取树形当前选中节点的值
     */
    protected Object getSelcetedNodeObject() {
        DefaultKingdeeTreeNode treeNode = (DefaultKingdeeTreeNode)this.treeMain.getLastSelectedPathComponent();

        return treeNode == null ? null : treeNode.getUserObject();
    }
	
    /**
     * 为树形添加节点改变事件
     * 节点改变时根据节点过滤刷新数据
     */
    @Override
    protected void treeMain_valueChanged(TreeSelectionEvent e) throws Exception {
        execQuery();
    }
	
    /**
     * 根据当前选中节点来对数据进行过滤
     */
    @Override
    protected FilterInfo getDefaultFilterForQuery() {
        FilterInfo filter = super.getDefaultFilterForQuery();
		
        if(getSelcetedNodeObject() != null && getSelcetedNodeObject() instanceof ResourceInfo){
            ResourceInfo resource = (ResourceInfo) getSelcetedNodeObject();
            filter.getFilterItems().add(new FilterItemInfo("resouce.id", resource.getId().toString(), CompareType.EQUALS));
        }
		
        return filter;
    }
}

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值