<?xml version="1.0" encoding="gbk"?>
<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
 <!-- 環境變量 -->
 <bean id="context" class="nc.vo.uif2.LoginContext" />
 <!-- 管理應用模型 -->
 <!--樹開始 -->
 <!-- 對象轉換器工廠,由此獲取操作對象的特征信息 -->
 <!--<bean id="boadatorfactory" class="nc.ui.pubapp.uif2app.view.value.AggVOMetaBDObjectAdapterFactory" 
 /> -->
 <!-- 對於有元數據的VO,可以使用下面的配置 -->
 <bean id="boadatorfactory" class="nc.vo.bd.meta.BDObjectAdpaterFactory" />
 <!--Service -->
 <bean id="TreeModelService" class="nc.ui.chs.cs12.treeClass.CS12TreeService" />
 <bean id="BillModelService" class="nc.ui.chs.cs12.treeClass.CS12BillService" />
 <!-- 樹的層次結構構造策略 -->
 <bean id="treeCreateStrategy" class="nc.vo.bd.meta.BDObjectTreeCreateStrategy">
 <property name="factory" ref="boadatorfactory" />
 <property name="rootName" value="部門" />
 </bean>
 <!--樹的model -->
 <bean id="TreeModel" class="nc.ui.uif2.model.HierachicalDataAppModel">
 <property name="service" ref="TreeModelService"></property>
 <property name="treeCreateStrategy" ref="treeCreateStrategy"></property>
 <property name="businessObjectAdapterFactory" ref="boadatorfactory"></property>
 <property name="context" ref="context"></property>
 </bean>
 <!-- 數據模型管理器,主要負責各種方式的模型初始化 -->
 <bean id="TreeDataManager" class="nc.ui.chs.cs12.treeClass.CS12TreeDataManager">
 <property name="treeModel" ref="TreeModel"></property>
 </bean>
 <!-- 樹控件,如果進行管理,需要實現接口IComponentWithActions存儲動作 lxiaofan -->
 <bean id="treePanel" class="nc.ui.uif2.components.TreePanel"
 init-method="initUI">
 <property name="model" ref="TreeModel"></property>
 </bean>
 <!--分頁控件 -->
 <bean id="paginationModel" class="nc.ui.chs.cs12.treeClass.PaginationModel"
 init-method="init">
 <property name="paginationQueryService" ref="maintainProxy" />
 <property name="billModelService" ref="BillModelService" />
 </bean>
 <!--表的數據模型管理器 -->
 <bean id="BillDataManager" class="nc.ui.chs.cs12.treeClass.CS12BillDataManager">
 <property name="billModel" ref="manageAppModel"></property>
 <property name="paginationModel" ref="paginationModel" />
 <property name="listView" ref="listView" />
 <property name="billFormEditor" ref="billFormEditor" />
 </bean>
 <!-- a)層次模型和管理模型之間的協調者,以Mediator結尾,不區分大小寫; b)該類對兩個模型進行監聽,負責相互事件的中轉; c)屬性可以擴展; -->
 <bean id="TreeBillMediator" class="nc.ui.chs.cs12.treeClass.CS12Mediator">
 <property name="treeModel" ref="TreeModel"></property>
 <property name="manageAppModel" ref="manageAppModel"></property>
 <property name="billDataManager" ref="BillDataManager"></property>
 </bean>
 <!--專供查詢使用的manager -->
 <bean id="PaginationModelDataManager"
 class="nc.ui.pubapp.uif2app.model.pagination.PaginationModelDataManager">
 <property name="model" ref="manageAppModel"></property>
 <property name="paginationModel" ref="paginationModel" />
 <property name="pageQueryService" ref="pageQueryService" />
 </bean>
 <!-- 查詢按鈕 -->
 <bean id="queryAction" class="nc.ui.pubapp.uif2app.query2.action.DefaultQueryAction">
 <property name="model" ref="manageAppModel" />
 <property name="dataManager" ref="PaginationModelDataManager" />
 <property name="qryCondDLGInitializer" ref="qryCondInitializer" />
 <property name="showUpComponent" ref="listView" />
 <property name="templateContainer" ref="queryTemplateContainer" />
 </bean>
 <!-- 列表下刷新 -->
 <bean id="refreshAction" class="nc.ui.pubapp.uif2app.query2.action.DefaultRefreshAction">
 <property name="dataManager" ref="TreeDataManager" />
 <property name="model" ref="manageAppModel" />
 </bean>
 <!--樹結束 -->
 <!-- 模型部分配置 -->
 <!-- 單據操作代理 -->
 <bean id="maintainProxy" class="nc.ui.chs.cs12.ace.serviceproxy.AceCs12MaintainProxy" />
 <!-- 單據刪除代理,支持批操作 -->
 <bean id="deleteProxy" class="nc.ui.chs.cs12.ace.serviceproxy.AceCs12DeleteProxy" />
 <!-- 管理應用模型 -->
 <bean id="manageAppModel" class="nc.ui.pubapp.uif2app.model.BillManageModel">
 <property name="businessObjectAdapterFactory" ref="boadatorfactory"></property>
 <property name="context" ref="context"></property>
 </bean>
 <bean id="pageQueryService"
 class="nc.ui.pubapp.uif2app.model.pagination.UIPageQueryService">
 <property name="allPagePkQueryServiceMethod" value="nc.itf.chs.cs12.ICs12Maintain.queryPKs"></property>
 <property name="dataOfPksQueryServiceMethod" value="nc.itf.chs.cs12.ICs12Maintain.queryBillByPK"></property>
 </bean>
 <bean id="paginationBar" class="nc.ui.uif2.components.pagination.PaginationBar"
 init-method="onStructChanged">
 <property name="paginationModel" ref="paginationModel" />
 </bean>
 <!-- 模板容器,負責對模板的統一裝載 -->
 <bean id="templateContainer" class="nc.ui.pubapp.uif2app.view.TemplateContainer">
 <property name="context" ref="context" />
 <property name="nodeKeies">
 <list>
 <value>bt</value>
 </list>
 </property>
 </bean>
 <!-- 查詢模板加載bean -->
 <bean id="queryTemplateContainer" class="nc.ui.uif2.editor.QueryTemplateContainer">
 <property name="context" ref="context"></property>
 <property name="nodeKey" value="qt"></property>
 </bean>
 <!-- 界面元素 -->
 <!-- 列表視圖 -->
 <bean id="listView" class="nc.ui.pubapp.uif2app.view.ShowUpableBillListView"
 init-method="initUI">
 <property name="paginationBar" ref="paginationBar" />
 <property name="model" ref="manageAppModel"></property>
 <property name="templateContainer" ref="templateContainer"></property>
 </bean>
 <!--卡控件 -->
 <bean id="billFormEditor" class="nc.ui.pubapp.uif2app.view.ShowUpableBillForm"
 init-method="initUI">
 <property name="model" ref="manageAppModel"></property>
 <property name="templateContainer" ref="templateContainer" />
 <property name="showOrgPanel" value="true" />
 </bean>
 <!-- 快速查詢區域 -->
 <bean id="queryArea" class="nc.ui.pubapp.uif2app.tangramlayout.UEQueryAreaShell"
 init-method="initUI">
 <property name="queryAreaCreator" ref="queryAction" />
 </bean>
 <!-- 查詢信息欄 -->
 <bean id="queryInfo" class="nc.ui.uif2.tangramlayout.CardLayoutToolbarPanel">
 <property name="model" ref="manageAppModel" />
 </bean>
 <!-- 卡片界面的工具欄和返回按鈕 -->
 <bean id="cardInfoPnl"
 class="nc.ui.pubapp.uif2app.tangramlayout.UECardLayoutToolbarPanel">
 <property name="titleAction">
 <bean id="returnaction" class="nc.ui.pubapp.uif2app.actions.UEReturnAction">
 <property name="goComponent" ref="listView" />
 <property name="saveAction" ref="saveAction" />
 <property name="model" ref="manageAppModel" />
 </bean>
 </property>
 <property name="model" ref="manageAppModel" />
 </bean>
 <!-- 界面布局總裝 -->
 <bean id="container" class="nc.ui.uif2.TangramContainer"
 init-method="initUI">
 <property name="model" ref="manageAppModel" />
 <property name="tangramLayoutRoot">
 <bean class="nc.ui.uif2.tangramlayout.node.TBNode">
 <property name="showMode" value="CardLayout" />
 <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" ref="treePanel" />
 </bean>
 </property>
 <property name="right">
 <bean class="nc.ui.uif2.tangramlayout.node.VSNode">
 <property name="up">
 <bean class="nc.ui.uif2.tangramlayout.node.CNode">
 <property name="component" ref="queryInfo" />
 </bean>
 </property>
 <property name="down">
 <bean class="nc.ui.uif2.tangramlayout.node.CNode">
 <property name="name">
 <bean class="nc.ui.uif2.I18nFB">
 <property name="resDir" value="common"></property>
 <property name="resId" value="UC001-0000107"></property>
 <property name="defaultValue" value="列表"></property>
 </bean>
 </property>
 <property name="component" ref="listView" />
 </bean>
 </property>
 <property name="dividerLocation" value="25f" />
 </bean>
 </property>
 <property name="dividerLocation" value="0.22f" />
 </bean>
 <bean class="nc.ui.uif2.tangramlayout.node.VSNode">
 <property name="up">
 <bean class="nc.ui.uif2.tangramlayout.node.CNode">
 <property name="component" ref="cardInfoPnl" />
 </bean>
 </property>
 <property name="down">
 <bean class="nc.ui.uif2.tangramlayout.node.CNode">
 <property name="name">
 <bean class="nc.ui.uif2.I18nFB">
 <property name="resDir" value="common"></property>
 <property name="resId" value="UC001-0000106"></property>
 <property name="defaultValue" value="卡片"></property>
 </bean>
 </property>
 <property name="component" ref="billFormEditor" />
 </bean>
 </property>
 <property name="dividerLocation" value="30f" />
 </bean>
 </list>
 </property>
 </bean>
 </property>
 </bean>
 <!-- 事件監聽 -->
 <bean id="eventMediator" class="nc.ui.pubapp.uif2app.model.AppEventHandlerMediator">
 <property name="model" ref="manageAppModel" />
 <property name="handlerGroup">
 <list>
 <!-- 表頭表尾字段編輯前事件 -->
 <bean class="nc.ui.pubapp.uif2app.event.EventHandlerGroup">
 <property name="event"
 value="nc.ui.pubapp.uif2app.event.card.CardHeadTailBeforeEditEvent" />
 <property name="handler">
 <bean class="nc.ui.chs.cs12.ace.handler.AceHeadTailBeforeEditHandler" />
 </property>
 </bean>
 <!-- 表頭表尾字段編輯后事件 -->
 <bean class="nc.ui.pubapp.uif2app.event.EventHandlerGroup">
 <property name="event"
 value="nc.ui.pubapp.uif2app.event.card.CardHeadTailAfterEditEvent" />
 <property name="handler">
 <bean class="nc.ui.chs.cs12.ace.handler.AceHeadTailAfterEditHandler" />
 </property>
 </bean>
 <!-- 新增事件 -->
 <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.chs.cs12.ace.handler.AceAddHandler" >
 <property name="treeModel" ref="TreeModel" />
 </bean>
 </property>
 </bean>
 <!-- 組織改變事件 -->
 <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.chs.cs12.ace.handler.AceOrgChangedHandler">
 <constructor-arg ref="billFormEditor" />
 </bean>
 </property>
 </bean>
 </list>
 </property>
 </bean>
 <!-- Actions -->
 <bean id="toftpanelActionContributors" class="nc.ui.uif2.actions.ActionContributors">
 <property name="contributors">
 <list>
 <ref bean="actionsOfList" />
 <ref bean="actionsOfCard" />
 </list>
 </property>
 </bean>
 <!-- 列表顯示下的按鈕 -->
 <bean id="actionsOfList" class="nc.ui.uif2.actions.StandAloneToftPanelActionContainer">
 <constructor-arg ref="listView" />
 <property name="model" ref="manageAppModel" />
 <property name="actions">
 <list>
 <ref bean="addAction" />
 <ref bean="editAction" />
 <ref bean="deleteAction" />
 <ref bean="copyAction" />
 <ref bean="separatorAction" />
 <ref bean="queryAction" />
 <ref bean="refreshAction" />
 <ref bean="separatorAction" />
 <ref bean="printMenuAction" />
 <ref bean="separatorAction" />
 </list>
 </property>
 </bean>
 <!-- 卡片顯示下的按鈕 -->
 <bean id="actionsOfCard" class="nc.ui.uif2.actions.StandAloneToftPanelActionContainer">
 <constructor-arg ref="billFormEditor" />
 <property name="model" ref="manageAppModel" />
 <!-- 此處配置的Action瀏覽態始終可見 -->
 <property name="actions">
 <list>
 <ref bean="addAction" />
 <ref bean="editAction" />
 <ref bean="deleteAction" />
 <ref bean="copyAction" />
 <ref bean="separatorAction" />
 <ref bean="queryAction" />
 <ref bean="cardRefreshAction" />
 <ref bean="separatorAction" />
 <ref bean="printMenuAction" />
 <ref bean="separatorAction" />
 </list>
 </property>
 <!-- 此處配置的Action編輯態始終可見 -->
 <property name="editActions">
 <list>
 <ref bean="saveAction" />
 <ref bean="cancelAction" />
 </list>
 </property>
 </bean>
 <!-- 分隔按鈕 -->
 <bean id="separatorAction" class="nc.funcnode.ui.action.SeparatorAction" />
 <!-- 顯示列表的攔截器 -->
 <bean id="showListInterceptor"
 class="nc.ui.pubapp.uif2app.actions.interceptor.ShowUpComponentInterceptor">
 <property name="showUpComponent" ref="listView" />
 </bean>
 <!-- 顯示卡片的攔截器 -->
 <bean id="showCardInterceptor"
 class="nc.ui.pubapp.uif2app.actions.interceptor.ShowUpComponentInterceptor">
 <property name="showUpComponent" ref="billFormEditor" />
 </bean>
 <bean id="addAction" class="nc.ui.pubapp.uif2app.actions.AddAction">
 <property name="model" ref="manageAppModel" />
 <property name="interceptor" ref="showCardInterceptor" />
 </bean>
 <bean id="editAction" class="nc.ui.pubapp.uif2app.actions.EditAction">
 <property name="model" ref="manageAppModel" />
 <property name="interceptor" ref="showCardInterceptor" />
 </bean>
 <bean id="deleteAction" class="nc.ui.pubapp.uif2app.actions.DeleteAction">
 <property name="model" ref="manageAppModel" />
 <property name="singleBillService" ref="deleteProxy" />
 </bean>
 <bean id="saveAction" class="nc.ui.pubapp.uif2app.actions.DifferentVOSaveAction">
 <property name="model" ref="manageAppModel" />
 <property name="editor" ref="billFormEditor" />
 <property name="service" ref="maintainProxy" />
 <property name="validationService" ref="validateService" />
 </bean>
 <!-- 保存組合校驗 -->
 <bean id="validateService" class="nc.ui.pubapp.uif2app.validation.CompositeValidation">
 <property name="validators">
 <list>
 <bean class="nc.ui.pubapp.uif2app.validation.TemplateNotNullValidation">
 <property name="billForm" ref="billFormEditor" />
 </bean>
 </list>
 </property>
 </bean>
 <bean id="cancelAction" class="nc.ui.pubapp.uif2app.actions.CancelAction">
 <property name="model" ref="manageAppModel" />
 </bean>
 <!-- 復制 -->
 <bean id="copyAction" class="nc.ui.pubapp.uif2app.actions.CopyAction">
 <property name="model" ref="manageAppModel" />
 <property name="interceptor" ref="showCardInterceptor" />
 <property name="editor" ref="billFormEditor" />
 <property name="copyActionProcessor">
 <bean class="nc.ui.chs.cs12.action.CopyActionProcessor"></bean>
 </property>
 </bean>
<bean id="qryCondInitializer" class="nc.ui.chs.cs12.query.Cs12QueryConditionInitializer" />
 <!-- 卡片下刷新 -->
 <bean id="cardRefreshAction" class="nc.ui.pubapp.uif2app.actions.RefreshSingleAction">
 <property name="model" ref="manageAppModel" />
 </bean>
 <!-- 打印 -->
 <bean id="printAction" class="nc.ui.pubapp.uif2app.actions.MetaDataBasedPrintAction">
 <property name="preview" value="false" />
 <property name="model" ref="manageAppModel" />
 <property name="nodeKey" value="ot" />
 </bean>
 <!-- 預覽 -->
 <bean id="previewAction" class="nc.ui.pubapp.uif2app.actions.MetaDataBasedPrintAction">
 <property name="preview" value="true" />
 <property name="model" ref="manageAppModel" />
 <property name="nodeKey" value="ot" />
 </bean>
 <!-- 輸出 -->
 <bean id="outputAction" class="nc.ui.pubapp.uif2app.actions.OutputAction">
 <property name="model" ref="manageAppModel" />
 <property name="parent" ref="billFormEditor" />
 <property name="nodeKey" value="ot" />
 </bean>
 <!-- 打印按鈕組 -->
 <bean id="printMenuAction" class="nc.funcnode.ui.action.GroupAction">
 <property name="code" value="printMenuAction" />
 <property name="name">
 <bean class="nc.ui.uif2.I18nFB">
 <property name="resDir" value="common"></property>
 <property name="resId" value="UC001-0000007"></property>
 <property name="defaultValue" value="打印"></property>
 </bean>
 </property>
 <property name="actions">
 <list>
 <ref bean="printAction" />
 <ref bean="previewAction" />
 <ref bean="outputAction" />
 </list>
 </property>
 </bean>
 <!-- 打開節點監聽 -->
 <bean id="InitDataListener"
 class="nc.ui.pubapp.uif2app.model.DefaultFuncNodeInitDataListener">
 <property name="model" ref="manageAppModel" />
 <property name="context" ref="context"></property>
 <!-- VO的類名 -->
 <property name="voClassName" value="nc.vo.chs.cs12.AggCs12VO" />
 <!-- 打開節點節點后要顯示的界面 -->
 <property name="autoShowUpComponent" ref="billFormEditor" />
 </bean>
 <!-- 節點關閉的校驗 -->
 <bean id="ClosingListener" class="nc.ui.pubapp.common.validateservice.ClosingCheck">
 <property name="model" ref="manageAppModel" />
 <property name="saveAction" ref="saveAction" />
 </bean>
 <!-- 自動修正卡片界面的分數顯示控件(換算率) -->
 <bean id="fractionFixMediator" class="nc.ui.pubapp.uif2app.view.FractionFixMediator"
 init-method="initUI">
 <constructor-arg ref="billFormEditor" />
 </bean>
 <!-- 雙擊列表行后顯示卡片 -->
 <bean id="mouseClickShowPanelMediator" class="nc.ui.pubapp.uif2app.view.MouseClickShowPanelMediator">
 <property name="listView" ref="listView" />
 <property name="showUpComponent" ref="billFormEditor" />
 <property name="hyperLinkColumn" value="vbillno" />
 </bean>
 <bean id="remoteCallCombinatorCaller" class="nc.ui.uif2.editor.UIF2RemoteCallCombinatorCaller">
 <property name="remoteCallers">
 <list>
 <ref bean="queryTemplateContainer" />
 <ref bean="templateContainer" />
 </list>
 </property>
 </bean>
</beans>
