nc65 树单据类型教程

nc65 树单据类型教程 

实现效果:



实现思路

1. 可以完全手写,也可以先利用向导生成一个 主子VO的单据,然后在调整界面样式:去掉列表模板,替换左侧树

 

 

1. 实现方式二

 

 可以先想到生成一个 标准的主子类型单据,

 

再使用附件中的XML替换, 并将xml文件中zl备注的地方,根据需要修改成自己的

 

2.后续代码实现

 

1. TreeManagerMediator.java 持有 左侧树面板的 model 和 右侧 单据的 model

 

 

2.TreeManagerMediator中对两个model新添加了监听,根据监听到的事件进行 业务处理

 

  1. 主要是, 节点打开的时候,预加载左侧树的数据出

 

  2.  左侧树切换的时候,根据切换事件,进行右侧数据的加载和初始化


<!--************************************************************************************************************************************-->

一:xml文件源代码

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans> 
  <!-- 环境变量 -->  
  <bean id="context" class="nc.vo.uif2.LoginContext"/>  
  <!-- 模型部分配置*********************************************************** -->  
  <!-- 对象转换器工厂,由此获取操作对象的特征信息 -->  
  <bean id="BOAdapterFactory" class="nc.vo.bd.meta.GeneralBDObjectAdapterFactory"> 
    <property name="mode" value="MD"/> 
  </bean>  
  <!-- 对象转换器工厂,由此获取操作对象的特征信息 -->  
  <bean id="boadatorfactory" class="nc.ui.pubapp.uif2app.view.value.AggVOMetaBDObjectAdapterFactory"/>  
  <!-- 管理应用模型 -->  
  <bean id="manageAppModel" class="nc.ui.pubapp.uif2app.model.BillManageModel"> 
    <property name="businessObjectAdapterFactory" ref="boadatorfactory"/>  
    <property name="context" ref="context"/> 
  </bean>  
  <!-- 应用服务类,负责进行模型操作的处理 -->  
  <!-- zl 需要修改成自己的代理类 -->  
  <bean id="bmModelModelService" class="nc.ui.fdc_crmbd.h3h001.ace.serviceproxy.AceH3H001MaintainProxy"/>  
  <!-- liyf树1 :增加 树视图元素 -->  
  <bean id="treePanel" class="nc.ui.uif2.components.TreePanel" init-method="initUI"> 
    <property name="model" ref="HAppModel"/> 
  </bean>  
  <!-- zl 树2:增加树应用模型 -->  
  <bean id="HAppModel" class="nc.ui.uif2.model.HierachicalDataAppModel"> 
    <property name="service" ref="HModelService"/>  
    <property name="treeCreateStrategy" ref="treeCreateStrategy"/>  
    <property name="businessObjectAdapterFactory" ref="bdboadatorfactory"/>  
    <property name="context" ref="context"/> 
  </bean>  
  <!-- zl 树2.1:树model查询服务类 nc.ui.uif2.model.IAppModelService -->  
  <bean id="HModelService" class="nc.ui.fdc_crmbd.h3h001.ace.tree.QueryService"/>  
  <!-- zl 树2.2:层次结构构造策略 -->  
  <bean id="treeCreateStrategy" class="nc.vo.bd.meta.BDObjectTreeCreateStrategy"> 
    <property name="factory" ref="bdboadatorfactory"/>  
    <property name="rootName" value="指标分类"/> 
  <span style="white-space:pre">	</span><property name="hierarchicalData" ref="defaultHierachicalData" />
<span style="white-space:pre">	</span></bean>
<span style="white-space:pre">	</span> <!-- zl 树2.21:指定树构造的策略是否按照编码 -->  
<span style="white-space:pre">	</span><bean id="defaultHierachicalData" class="nc.vo.bd.meta.DefaultHierachicalData">
<span style="white-space:pre">		</span><property name="codeTree" value="true" />
<span style="white-space:pre">		</span><property name="codeRule" value="2/2/2" />
<span style="white-space:pre">	</span></bean> 
   
  <!-- zl 树2.3:单表VO数据转换工厂 -->  
  <bean id="bdboadatorfactory" class="nc.vo.bd.meta.BDObjectAdpaterFactory"/>  
  <!-- liyf 树3:增加树应用模型管理器 nc.ui.uif2.model.IAppModelDataManager -->  
  <bean id="treeModelDataManager" class="nc.ui.fdc_crmbd.h3h001.ace.tree.TreeMoeldataManager"> 
    <property name="model" ref="HAppModel"/> 
  </bean>  
  <!-- zl 树4:增加xxxMediator,对左树和右应用模型管理器管理 (a.增加的监听,抓取事件 b.负责事件的中转) -->  
  <bean id="treeManagerMediator" class="nc.ui.fdc_crmbd.h3h001.ace.tree.TreeManagerMediator"> 
    <property name="treeModel" ref="HAppModel"/>  
    <property name="manageModel" ref="bmModel"/>  
    <property name="manageModelMng" ref="bmModelModelDataManager"/> 
  </bean>  
  <!-- 层次结构构造策略 -->  
  <!-- 模型元素 -->  
  <!--========= 模型元素:[PUBAPP平面模型(BillManageModel)实例对象] ==========-->  
  <bean id="bmModel" class="nc.ui.pubapp.uif2app.model.BillManageModel"> 
    <property name="context">
      <ref bean="context"/>
    </property>  
    <property name="businessObjectAdapterFactory">
      <ref bean="BOAdapterFactory"/>
    </property> 
  </bean>  
  <!-- 数据模型管理器,主要负责各种方式的模型初始化 -->  
  <bean id="bmModelModelDataManager" class="nc.ui.pubapp.uif2app.query2.model.ModelDataManager"> 
    <property name="model">
      <ref bean="bmModel"/>
    </property>  
    <property name="service">
      <ref bean="bmModelModelService"/>
    </property> 
  </bean>  
  <!-- 模板容器,负责对模板的统一装载 -->  
  <bean id="templateContainer" class="nc.ui.pubapp.uif2app.view.TemplateContainer" init-method="load"> 
    <property name="context" ref="context"/>  
    <property name="nodeKeies"> 
      <list> 
        <value>bt</value> 
      </list> 
    </property> 
  </bean>  
  <!--====== 视图元素:[PUBAPP表单控件(ShowUpableBillForm)实例对象] ==============-->  
  <bean id="billForm" class="nc.ui.pubapp.uif2app.view.ShowUpableBillForm" init-method="initUI"> 
    <property name="model">
      <ref bean="bmModel"/>
    </property>  
    <property name="nodekey" value="bt"/>  
    <!-- 表体行操作按钮注册,这只是一组默认设置,开发人员需要自己在此添加其他需要的表体行操作按钮 -->  
    <property name="bodyLineActions"> 
      <list> 
        <bean class="nc.ui.pubapp.uif2app.actions.BodyAddLineAction"/>  
        <bean class="nc.ui.pubapp.uif2app.actions.BodyInsertLineAction"/>  
        <bean class="nc.ui.pubapp.uif2app.actions.BodyDelLineAction"/> 
      </list> 
    </property> 
  </bean>  
  <!-- 界面布局总装*********************************************************** -->  
  <bean id="container" class="nc.ui.uif2.TangramContainer" init-method="initUI"> 
    <property name="tangramLayoutRoot"> 
      <bean class="nc.ui.uif2.tangramlayout.node.TBNode"> 
        <property name="tabs"> 
          <list> 
            <bean class="nc.ui.uif2.tangramlayout.node.HSNode"> 
              <property name="left"> 
                <bean class="nc.ui.uif2.tangramlayout.node.CNode"> 
                  <property name="component"> 
                  <!-- zl  将原来的容器替换成树panel -->
                    <ref bean="treePanel"/> 
                  </property> 
                </bean> 
              </property>  
              <property name="right"> 
                <bean class="nc.ui.uif2.tangramlayout.node.CNode"> 
                  <property name="component"> 
                    <ref bean="billForm"/> 
                  </property> 
                </bean> 
              </property>  
              <property name="name" value="卡片"/> 
            </bean> 
          </list> 
        </property>  
        <property name="name" value="cardLayout"/>  
        <property name="showMode" value="CardLayout"/> 
      </bean> 
    </property>  
    <property name="actions"> 
      <list> 
        <ref bean="addAction"/>  
        <ref bean="editAction"/>  
        <ref bean="deleteScriptAction"/>  
        <ref bean="defaultQueryAction"/>  
        <ref bean="copyAction"/>  
        <ref bean="separatorAction"/>  
        <ref bean="defaultRefreshAction"/>  
        <ref bean="separatorAction"/>  
        <ref bean="commitScriptAction"/>  
        <ref bean="unCommitScriptAction"/>  
        <ref bean="approveScriptAction"/>  
        <ref bean="uNApproveScriptAction"/>  
        <ref bean="separatorAction"/>  
        <ref bean="linkQueryAction"/>  
        <ref bean="separatorAction"/>  
        <ref bean="metaDataBasedPrintAction"/>  
        <ref bean="metaDataBasedPrintActiona"/>  
        <ref bean="outputAction"/>  
        <ref bean="separatorAction"/>  
        <ref bean="pFApproveStatusInfoAction"/> 
      </list> 
    </property>  
    <property name="editActions"> 
      <list> 
        <ref bean="saveScriptAction"/>  
        <ref bean="cancelAction"/> 
      </list> 
    </property>  
    <property name="model"> 
      <ref bean="bmModel"/> 
    </property> 
  </bean>  
  <!-- 打开节点监听 newadd-->  
  <bean id="InitDataListener" class="nc.ui.pubapp.uif2app.model.DefaultFuncNodeInitDataListener"> 
    <property name="model" ref="bmModel"/>  
    <property name="context" ref="context"/>  
    <property name="voClassName" value="nc.vo.fdc_crmbd.h3h001.AggFdcxmda"/> 
  </bean>  
  <!-- ClosingListener 编辑态关闭节点时提示是否保存//newadd***************************************************-->  
  <!-- 节点关闭前校验 -->  
  <bean id="ClosingListener" class="nc.ui.pubapp.common.validateservice.ClosingCheck"> 
    <property name="model" ref="bmModel"/>  
    <property name="saveAction" ref="saveScriptAction"/> 
  </bean>  
  
   <!--懒加载信息配置*******************************************************-->  
  <!--懒加载,加载表体数据-->  
  <bean id="billLazilyLoader" class="nc.ui.pubapp.uif2app.lazilyload.DefaultBillLazilyLoader"/>  
  <bean id="bmModelLasilyLodadMediator" class="nc.ui.pubapp.uif2app.lazilyload.LazilyLoadManager"> 
    <property name="model" ref="bmModel"/>  
    <property name="loader" ref="billLazilyLoader"/>  
    <property name="lazilyLoadSupporter"> 
      <list> 
        <bean class="nc.ui.pubapp.uif2app.lazilyload.CardPanelLazilyLoad"> 
          <property name="billform" ref="billForm"/> 
        </bean> 
      </list> 
    </property> 
  </bean>  
  <!-- 事件监听newadd -->  
  <bean id="bmModelEventMediator" class="nc.ui.pubapp.uif2app.model.AppEventHandlerMediator"> 
    <property name="model" ref="bmModel"/>  
    <property name="handlerGroup"> 
      <list> 
        <!-- nc.ui.pubapp.uif2app.event.OrgChangedEvent -->  
        <bean class="nc.ui.pubapp.uif2app.event.EventHandlerGroup"> 
          <property name="event" value="nc.ui.pubapp.uif2app.event.OrgChangedEvent"/>  
          <property name="handler"> 
            <bean class="nc.ui.fdc_crmbd.h3h001.ace.handler.AceOrgChangeHandler"> 
              <property name="billForm" ref="billForm"/> 
            </bean> 
          </property> 
        </bean>  
        <!-- nc.ui.pubapp.uif2app.event.billform.AddEvent -->  
        <bean class="nc.ui.pubapp.uif2app.event.EventHandlerGroup"> 
          <property name="event" value="nc.ui.pubapp.uif2app.event.billform.AddEvent"/>  
          <property name="handler"> 
            <bean class="nc.ui.fdc_crmbd.h3h001.ace.handler.AceAddHandler"/> 
          </property> 
        </bean> 
      </list> 
    </property> 
  </bean>  
 
  <!-- 行号自动处理 -->  
  <bean id="rowNoMediator" class="nc.ui.pubapp.uif2app.view.RowNoMediator"> 
    <property name="model" ref="bmModel"/>  
    <property name="editor" ref="billForm"/> 
  </bean>  
  <!-- 单据号 -->  
  <bean id="billCodeMediator" class="nc.ui.pubapp.bill.BillCodeMediator" init-method="initUI"> 
    <property name="billForm" ref="billForm"/>  
    <property name="billCodeKey" value="vbillcode"/>  
    <property name="billType" value="H001"/> 
  </bean>  
  <!-- Action部分 ***********************************************************-->  
  <!--======= 动作:[newActions] [新增] ===========-->  
  <bean id="addAction" class="nc.ui.pubapp.uif2app.actions.AddAction"> 
    <property name="model">
      <ref bean="bmModel"/>
    </property>  
    <property name="interceptor"> 
      <bean class="nc.ui.pubapp.uif2app.actions.interceptor.CompositeActionInterceptor"> 
        <property name="interceptors"> 
          <list> 
            <bean class="nc.ui.pubapp.uif2app.actions.interceptor.ShowUpComponentInterceptor"> 
              <property name="showUpComponent" ref="billForm"/> 
            </bean>  
            <!--此处可以扩展添加自己的拦截器--> 
          </list> 
        </property> 
      </bean> 
    </property>  
    <property name="exceptionHandler">
      <ref bean="exceptionHandler"/>
    </property> 
  </bean>  
  <!--======= 动作:[newActions] [修改] ===========-->  
  <bean id="editAction" class="nc.ui.pubapp.uif2app.actions.EditAction"> 
    <property name="model">
      <ref bean="bmModel"/>
    </property>  
    <property name="exceptionHandler">
      <ref bean="exceptionHandler"/>
    </property> 
  </bean>  
  <!--======= 动作:[newActions] [删除] ===========-->  
  <bean id="deleteScriptAction" class="nc.ui.pubapp.uif2app.actions.pflow.DeleteScriptAction"> 
    <property name="model">
      <ref bean="bmModel"/>
    </property>  
    <property name="billType" value="H001"/>  
    <property name="filledUpInFlow" value="true"/>  
    <property name="actionName" value="DELETE"/>  
    <property name="exceptionHandler">
      <ref bean="exceptionHandler"/>
    </property> 
  </bean>  
  <bean id="defaultQueryActionQueryTemplateContainer" class="nc.ui.uif2.editor.QueryTemplateContainer"> 
    <property name="nodeKey" value="qt"/>  
    <property name="context">
      <ref bean="context"/>
    </property> 
  </bean>  
  <!--======= 动作:[newActions] [查询] ===========-->  
  <bean id="defaultQueryAction" class="nc.ui.pubapp.uif2app.query2.action.DefaultQueryAction"> 
    <property name="model">
      <ref bean="bmModel"/>
    </property>  
    <property name="templateContainer">
      <ref bean="defaultQueryActionQueryTemplateContainer"/>
    </property>  
    <property name="nodeKey" value="qt"/>  
    <property name="dataManager">
      <ref bean="bmModelModelDataManager"/>
    </property>  
    <property name="exceptionHandler">
      <ref bean="exceptionHandler"/>
    </property>  
    <property name="btnName" value="查询"/> 
  </bean>  
  <!--======= 动作:[newActions] [复制] ===========-->  
  <bean id="copyAction" class="nc.ui.pubapp.uif2app.actions.CopyAction"> 
    <property name="model">
      <ref bean="bmModel"/>
    </property>  
    <property name="editor">
      <ref bean="billForm"/>
    </property>  
    <property name="exceptionHandler">
      <ref bean="exceptionHandler"/>
    </property> 
  </bean>  
  <!--======= 动作:[newActions] [刷新] ===========-->  
  <bean id="defaultRefreshAction" class="nc.ui.pubapp.uif2app.query2.action.DefaultRefreshAction"> 
    <property name="model">
      <ref bean="bmModel"/>
    </property>  
    <property name="dataManager">
      <ref bean="bmModelModelDataManager"/>
    </property>  
    <property name="exceptionHandler">
      <ref bean="exceptionHandler"/>
    </property> 
  </bean>  
  <!--======= 动作:[newActions] [提交] ===========-->  
  <bean id="commitScriptAction" class="nc.ui.pubapp.uif2app.actions.pflow.CommitScriptAction"> 
    <property name="model">
      <ref bean="bmModel"/>
    </property>  
    <property name="editor">
      <ref bean="billForm"/>
    </property>  
    <property name="billType" value="H001"/>  
    <property name="filledUpInFlow" value="true"/>  
    <property name="actionName" value="SAVE"/>  
    <property name="exceptionHandler">
      <ref bean="exceptionHandler"/>
    </property> 
  </bean>  
  <!--======= 动作:[newActions] [收回] ===========-->  
  <bean id="unCommitScriptAction" class="nc.ui.pubapp.uif2app.actions.pflow.UnCommitScriptAction"> 
    <property name="model">
      <ref bean="bmModel"/>
    </property>  
    <property name="editor">
      <ref bean="billForm"/>
    </property>  
    <property name="billType" value="H001"/>  
    <property name="filledUpInFlow" value="true"/>  
    <property name="actionName" value="UNSAVEBILL"/>  
    <property name="exceptionHandler">
      <ref bean="exceptionHandler"/>
    </property> 
  </bean>  
  <!--======= 动作:[newActions] [审批] ===========-->  
  <bean id="approveScriptAction" class="nc.ui.pubapp.uif2app.actions.pflow.ApproveScriptAction"> 
    <property name="model">
      <ref bean="bmModel"/>
    </property>  
    <property name="editor">
      <ref bean="billForm"/>
    </property>  
    <property name="billType" value="H001"/>  
    <property name="filledUpInFlow" value="true"/>  
    <property name="actionName" value="APPROVE"/>  
    <property name="exceptionHandler">
      <ref bean="exceptionHandler"/>
    </property> 
  </bean>  
  <!--======= 动作:[newActions] [取消审批] ===========-->  
  <bean id="uNApproveScriptAction" class="nc.ui.pubapp.uif2app.actions.pflow.UNApproveScriptAction"> 
    <property name="model">
      <ref bean="bmModel"/>
    </property>  
    <property name="editor">
      <ref bean="billForm"/>
    </property>  
    <property name="billType" value="H001"/>  
    <property name="filledUpInFlow" value="true"/>  
    <property name="actionName" value="UNAPPROVE"/>  
    <property name="exceptionHandler">
      <ref bean="exceptionHandler"/>
    </property> 
  </bean>  
  <!--======= 动作:[newActions] [联查单据] ===========-->  
  <bean id="linkQueryAction" class="nc.ui.pubapp.uif2app.actions.LinkQueryAction"> 
    <property name="model">
      <ref bean="bmModel"/>
    </property>  
    <property name="exceptionHandler">
      <ref bean="exceptionHandler"/>
    </property> 
  </bean>  
  <!--======= 动作:[newActions] [预览] ===========-->  
  <bean id="metaDataBasedPrintAction" class="nc.ui.pubapp.uif2app.actions.MetaDataBasedPrintAction"> 
    <property name="model">
      <ref bean="bmModel"/>
    </property>  
    <property name="actioncode" value="Preview"/>  
    <property name="actionname" value="预览"/>  
    <property name="preview" value="true"/>  
    <property name="nodeKey" value="ot"/>  
    <property name="exceptionHandler">
      <ref bean="exceptionHandler"/>
    </property>  
    <property name="btnName" value="预览"/> 
  </bean>  
  <!--======= 动作:[newActions] [打印] ===========-->  
  <bean id="metaDataBasedPrintActiona" class="nc.ui.pubapp.uif2app.actions.MetaDataBasedPrintAction"> 
    <property name="model">
      <ref bean="bmModel"/>
    </property>  
    <property name="actioncode" value="Print"/>  
    <property name="actionname" value="打印"/>  
    <property name="preview" value="false"/>  
    <property name="nodeKey" value="ot"/>  
    <property name="exceptionHandler">
      <ref bean="exceptionHandler"/>
    </property>  
    <property name="btnName" value="打印"/> 
  </bean>  
  <!--======= 动作:[newActions] [输出...] ===========-->  
  <bean id="outputAction" class="nc.ui.pubapp.uif2app.actions.OutputAction"> 
    <property name="model">
      <ref bean="bmModel"/>
    </property>  
    <property name="editor">
      <ref bean="billForm"/>
    </property>  
    <property name="nodeKey" value="ot"/>  
    <property name="exceptionHandler">
      <ref bean="exceptionHandler"/>
    </property> 
  </bean>  
  <!--======= 动作:[newActions] [查看审批意见] ===========-->  
  <bean id="pFApproveStatusInfoAction" class="nc.ui.pubapp.uif2app.actions.pflow.PFApproveStatusInfoAction"> 
    <property name="model">
      <ref bean="bmModel"/>
    </property>  
    <property name="exceptionHandler">
      <ref bean="exceptionHandler"/>
    </property> 
  </bean>  
  <!--======= 动作:[newActions] [保存] ===========-->  
  <bean id="saveScriptAction" class="nc.ui.pubapp.uif2app.actions.pflow.SaveScriptAction"> 
    <property name="model">
      <ref bean="bmModel"/>
    </property>  
    <property name="editor">
      <ref bean="billForm"/>
    </property>  
    <property name="billType" value="H001"/>  
    <property name="filledUpInFlow" value="true"/>  
    <property name="actionName" value="SAVEBASE"/>  
    <property name="exceptionHandler">
      <ref bean="exceptionHandler"/>
    </property> 
  </bean>  
  <!--======= 动作:[newActions] [取消] ===========-->  
  <bean id="cancelAction" class="nc.ui.pubapp.uif2app.actions.CancelAction"> 
    <property name="model">
      <ref bean="bmModel"/>
    </property>  
    <property name="editor">
      <ref bean="billForm"/>
    </property>  
    <property name="exceptionHandler">
      <ref bean="exceptionHandler"/>
    </property> 
  </bean>  
  <!--分隔按钮-->  
  <bean id="separatorAction" class="nc.funcnode.ui.action.SeparatorAction"/>  
  <bean id="exceptionHandler" class="nc.ui.uif2.DefaultExceptionHanler"> 
    <constructor-arg>
      <ref bean="container"/>
    </constructor-arg>  
    <property name="context">
      <ref bean="context"/>
    </property> 
  </bean>  
  <!-- 批量保存校验服务类 --> 
</beans>

二:xml中需要添加的源代码:

QueryService

package nc.ui.orgpm.indicatorcl2.tree;

import nc.bs.framework.common.NCLocator;
import nc.itf.org.ICorpQryService;
import nc.ui.uif2.model.IAppModelService;
import nc.vo.uif2.LoginContext;

public class QueryService implements IAppModelService {

	@Override
	public Object insert(Object object) throws Exception {
		return null;
	}
	@Override
	public Object update(Object object) throws Exception {
		return null;
	}
	@Override
	public void delete(Object object) throws Exception {
	}
	@Override
	public Object[] queryByDataVisibilitySetting(LoginContext context)
			throws Exception {
		// TODO 自动生成的方法存根
//		nc.vo.vorg.CorpVersionVO
		ICorpQryService bs = NCLocator.getInstance().lookup(ICorpQryService.class);
		return bs.queryAllCorpVOs();
	}

}

TreeManagerMediator
package nc.ui.orgpm.indicatorcl2.tree;

import nc.bs.logging.Logger;
import nc.ui.pubapp.uif2app.model.pagination.PaginationModelDataManager;
import nc.ui.uif2.AppEvent;
import nc.ui.uif2.AppEventListener;
import nc.ui.uif2.UIState;
import nc.ui.uif2.model.AppEventConst;
import nc.ui.uif2.model.BillManageModel;
import nc.ui.uif2.model.HierachicalDataAppModel;

public class TreeManagerMediator {

	private HierachicalDataAppModel treeModel;
	private BillManageModel manageModel;
	private PaginationModelDataManager manageModelMng;
	private TreeEventListener listener;
	public static String TREE_STATUS_CHANGED = "TREE_STATUS_CHANGED";
	public static int TREE_DISABLE = 1;
	public static int TREE_ENABLE = 0;
	
	public TreeEventListener getListener() {
		return listener;
	}

	public void setListener(TreeEventListener listener) {
		this.listener = listener;
	}

	public TreeManagerMediator() {
		listener = new TreeEventListener();
	}

	class TreeEventListener implements AppEventListener {

		@Override
		public void handleEvent(AppEvent event) {
			// TODO 自动生成的方法存根
			try {
				if (event.getSource() == getManageModel()) {
					if (AppEventConst.MODEL_INITIALIZED == event.getType()) {
						Object[] treedatas = getTreeModel().getAllDatas();
						if ((null == treedatas || treedatas.length <= 0)) {
							Object[] data;
							data = getTreeModel().getService()
									.queryByDataVisibilitySetting(
											getManageModel().getContext());
							getTreeModel().initModel(data);
						}
					}
				}
				if (event.getSource() == getTreeModel()) {// 左侧树模型监听
					if (AppEventConst.SELECTION_CHANGED == event.getType()) {
					   Object o  = getTreeModel().getSelectedData();
					   if(o == null)//选择跟节点,得到数据为null
						   return ;
					   
//						//1.查询数据
//						IXpm_billMaintain maitain = NCLocator.getInstance()
//								.lookup(IXpm_billMaintain.class);
//						AggBillTestHeadVO[] data = maitain.queryBillByPK(new String[]{"1001ZZ10000000002M5A"});
//						//2.设置模型
//						getManageModel().initModel(data);

					} 
				} else {
					if (AppEventConst.UISTATE_CHANGED.equals(event.getType())) {
						if (getManageModel().getUiState() == UIState.ADD) {
							getTreeModel().fireEvent(
									new AppEvent(TREE_STATUS_CHANGED, getTreeModel(),
											TREE_DISABLE));
						} else {
							getTreeModel().fireEvent(
									new AppEvent(TREE_STATUS_CHANGED, getTreeModel(),
											TREE_ENABLE));
						}
					}
				}
			} catch (Exception e) {
				// TODO 自动生成的 catch 块
				e.printStackTrace();
				Logger.debug(e.getMessage());
			}

		}
	}

	public HierachicalDataAppModel getTreeModel() {
		return treeModel;
	}

	public void setTreeModel(HierachicalDataAppModel treeModel) {
		this.treeModel = treeModel;
		treeModel.addAppEventListener(getListener());
	}

	public BillManageModel getManageModel() {
		return manageModel;
	}

	public void setManageModel(BillManageModel manageModel) {
		this.manageModel = manageModel;
		manageModel.addAppEventListener(getListener());
	}

	public PaginationModelDataManager getManageModelMng() {
		return manageModelMng;
	}

	public void setManageModelMng(PaginationModelDataManager manageModelMng) {
		this.manageModelMng = manageModelMng;
	}

}

TreeMoeldataManager

package nc.ui.orgpm.indicatorcl2.tree;

import nc.bs.logging.Logger;
import nc.ui.uif2.model.HierachicalDataAppModel;
import nc.ui.uif2.model.IAppModelDataManager;

public class TreeMoeldataManager implements IAppModelDataManager {
	
	private HierachicalDataAppModel model;

	public TreeMoeldataManager(){
		super();
	}
	@Override
	public void initModel() {
		Object [] obj =null;
		 try {
			 obj = this.getModel().getService().queryByDataVisibilitySetting(this.getModel().getContext());
		} catch (Exception e) {
			e.printStackTrace();
		
		}
		this.getModel().initModel(obj);

	}
	public HierachicalDataAppModel getModel() {
		return model;
	}
	public void setModel(HierachicalDataAppModel model) {
		this.model = model;
	}

}




评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值