<?xml version="1.0" encoding="UTF-8"?>
<a:screen xmlns:a="http://www.leaf-framework.org/application" xmlns:p="uncertain.proc">
    <a:init-procedure>
        <p:method-invoke className="leaf.application.features.cstm.CustomSourceCode" methodName="getBusinessObjectInContainer" resultPath="/model/results">
            <p:arguments>
                <p:argument path="instance" type="uncertain.ocm.IObjectRegistry"/>
                <p:argument type="java.lang.String" value="${/parameter/@service_name}"/>
                <p:argument type="java.lang.String" value="${/parameter/@type}"/>
                <p:argument type="java.lang.String" value="${/parameter/@form_id}"/>
            </p:arguments>
        </p:method-invoke>
    </a:init-procedure>
    <a:view>
        <script type="text/javascript"><![CDATA[
            function dynamicFlexFieldSave() {
            	var qr = $('sys_dynamic_business_query_ds').getCurrentRecord();
                var fds = $('sys_dynamic_business_field_ds');
                var all = fds.getSelected();
                var ds = $('${/parameter/@ds}');
                for(var i=0;i<all.length;i++){
                	var record = all[i]
	                ds.create({
	                    field_id:record.get('field_id'),
	                    name:record.get('field_name'),
	                    prompt:record.get('field_description'),
	                    bind_target:qr.get('bindtarget')
	                });
                }
                dynamicFlexFieldClose();
            }
            
            function dynamicFlexFieldClose() {
                $('buz_obj_flexfield_add_window').close()
            }
            
            
            function onDynamicBuzObjectUpdate(ds, record, name, value, ov){
                if(name=='object_id'){
                    $('sys_dynamic_business_field_ds').setQueryParameter('business_object_id',value);
                    $('sys_dynamic_business_field_ds').query();
                }
            }
            
            function processFlexFieldSelection(record){
                var field_name = record.get('field_name');
                var ds = $('${/parameter/@ds}');
                return ds.find('name',field_name) == null;
            }
            
            
        ]]></script>
        <a:dataSets>
            <a:dataSet id="sys_dynamic_business_object_ds">
                <a:datas dataSource="/model/results"/>
            </a:dataSet>
            <a:dataSet id="sys_dynamic_business_query_ds" autoCreate="true">
                <a:fields>
                    <a:field name="business_name" displayField="object_name" options="sys_dynamic_business_object_ds" valueField="object_id">
                        <a:mapping>
                            <a:map from="object_id" to="object_id"/>
                            <a:map from="object_name" to="business_name"/>
                            <a:map from="bindtarget" to="bindtarget"/>
                        </a:mapping>
                    </a:field>
                </a:fields>
                <a:events>
                    <a:event name="update" handler="onDynamicBuzObjectUpdate"/>
                </a:events>
            </a:dataSet>
            <a:dataSet id="sys_dynamic_business_field_ds" autoCount="false" autoQuery="false" fetchall="true" model="sys.SYS1090.sys_business_flexfields" selectable="true" selectfunction="processFlexFieldSelection"/>
        </a:dataSets>
        <a:screenBody>
            <a:fieldSet column="1" title="动态配置" width="500">
                <a:comboBox name="business_name" bindTarget="sys_dynamic_business_query_ds" prompt="业务对象" width="200"/>
            </a:fieldSet>
            <a:grid bindTarget="sys_dynamic_business_field_ds" height="385" width="580">
                <a:columns>
                    <a:column name="field_name" align="left" prompt="字段名" width="100"/>
                    <a:column name="field_description" align="left" prompt="字段描述" width="100"/>
                    <a:column name="comments" align="left" prompt="备注" width="200"/>
                    <a:column name="type_display" align="center" prompt="编辑器类型" width="100"/>
                </a:columns>
            </a:grid>
        </a:screenBody>
        <a:windowToolbar>
            <a:button click="dynamicFlexFieldSave" text="确定" width="90"/>
            <a:button click="dynamicFlexFieldClose" text="关闭" width="90"/>
        </a:windowToolbar>
    </a:view>
</a:screen>