<?xml version="1.0" encoding="UTF-8"?>
<!--
 * IBM Confidential
 *
 * OCO Source Materials
 *
 * @CODETOBEDEFINED
 *
 * (C) COPYRIGHT IBM CORP. 2014
 *
 * The source code for this program is not published or otherwise
 * divested of its trade secrets, irrespective of what has been
 * deposited with the U.S. Copyright Office.
 *
-->
<control-registry basedir="webclient/controls" package="psdi.webclient.controls" 
		xsi:noNamespaceSchemaLocation='../control-registry.xsd'
		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
		xmlns:xsd="http://www.w3.org/2001/XMLSchema">
	<control-descriptor name="miniapp"
		descriptor-class="psdi.webclient.system.runtime.DatasrcDescriptor"		
		instance-class="com.ibm.tivoli.maximo.miniapps.control.MiniAppControl"
	>
		<property-list>
		    <!-- Base DataBean class for handling App events -->
			<property name="beanclass">
				<flag name="nonconditional" />
			</property>			
			<property name="datasrc">
			</property>
			<property name="id">
				<flag name="final"/>
			</property>
			<property name="licensekey">
				<flag name="final"/>
			</property>
			<property name="sigoption">
				<flag name="nonconditional" />
				<flag name="final" />
			</property>
			<property name="sigoptiondatasrc">
				<flag name="nonconditional" />
				<flag name="final" />
			</property>
			
			<!-- JavaScript Entry Point -->	
			<property name="mainclass">
				<default-value>MiniApp</default-value>
			</property>
			
			<!-- Maps to the directory under miniapps root url -->						
			<property name="appid">
				<default-value></default-value>
			</property>
			
			<!-- Default size for Mini Apps -->
			<property name="width">
				<default-value>800px</default-value>
			</property>
			<property name="height">
				<default-value>600px</default-value>
			</property>
			
			<!-- 
			 dom ID of the parent node to which this control should be sized (h and w)
			 normally used to ensure the width of the app fills the screen
			-->
			<property name="sizetoparentdomid"/>
			
			<!-- if true, then control will attempt to vertically fill the  -->
			<property name="fillheight">
				<default-value>false</default-value>
			</property>
			
			<!-- if true, then progress indicator will be visible, until it is manually turned off  -->
			<property name="progressindicator">
				<default-value>true</default-value>
			</property>
			
			<!-- 
				If true, then only a single instance of a MiniApp with the same singleinstanceid can
				exist in the dom, at any given time.  When a new instance is created, the old one will
				be destroyed BEFORE the new one is created.
			 -->
			<property name="singleinstance">
				<default-value>true</default-value>
			</property>
			<property name="singleinstanceid">
				<default-value>_MiniAppInstance</default-value>
			</property>
			
			<!-- 
				if set, then this component will wait until the it receives the
				waitlock event id specified here is created BEFORE
				continuing to load the miniapp component.  ie, this is used to ensure one app is created
				and rendered before another app.
			 -->
			<property name="waitlockid">
				<default-value></default-value>
			</property>
			
			<!-- comma separated, json like, structure of options that passed to the JavaScript main class -->
			<property name="options">
			</property>
			
			<!-- 
			 CSS template file that has CSS code for the control
			 CSS is rendered inline with the control
			-->
			<property name="csstemplate">
			   <default-value>miniapp.css</default-value>
			</property>
			<!-- workflow-specific -->
			<property name="actiondatasrc">
			</property>
			<property name="nodedatasrc">
			</property>
		</property-list>
		<component-list>
			<components id="${name}_components_h" layout="horizontal">
				<miniapp id="${name}_miniapp" appid="@{appid}" progressindicator="@{progressindicator}" options="@{options}" mainclass="@{mainclass}" singleinstance="@{singleinstance}" datasrc="@{datasrc}" nodedatasrc="@{nodedatasrc}" actiondatasrc="@{actiondatasrc}" singleinstanceid="@{singleinstanceid}" waitlockid="@{waitlockid}"/>
			</components>
		</component-list>
		<containers>
			<container name="clientarea"/>
			<container name="section"/>
			<container name="page"/>
			<container name="tab"/>
		</containers>
	</control-descriptor>
	
    <control-descriptor name="html"
        descriptor-class="psdi.webclient.system.runtime.DatasrcDescriptor"      
    >
        <property-list>
            <property name="id">
                <flag name="final"/>
            </property>
            <property name="licensekey">
                <flag name="final"/>
            </property>
            <property name="sigoption">
                <flag name="nonconditional" />
                <flag name="final" />
            </property>
            <property name="sigoptiondatasrc">
                <flag name="nonconditional" />
                <flag name="final" />
            </property>
            <property name="tag">
                <flag name="final" />
            </property>
            <property name="attrs">
                <flag name="final" />
            </property>                
        </property-list>
        <component-list>
            <html id="${name}_html" tag="@{tag}" attrs="@{attrs}"/>
        </component-list>
        <containers>
            <container name="clientarea"/>
            <container name="section"/>
            <container name="page"/>
            <container name="tab"/>
        </containers>
    </control-descriptor>
    
    <control-descriptor name="hbox"
        descriptor-class="psdi.webclient.system.runtime.DatasrcDescriptor"   
    >
        <property-list>
            <property name="datasrc">
                <flag name="nonconditional" />
                <flag name="global" />
            </property>
            <property name="id">
                <flag name="final"/>
            </property>
            <property name="licensekey">
                <flag name="final"/>
            </property>
            <property name="sigoption">
                <flag name="nonconditional" />
                <flag name="final" />
            </property>
            <property name="sigoptiondatasrc">
                <flag name="nonconditional" />
                <flag name="final" />
            </property>
            <property name="cssclass">
                <flag name="final" />
            </property>
            <property name="childlayout">
                <!-- possible values are empty and table;  If table is used, then table is rendered around the component -->
                <flag name="final" />
            </property>
            <property name="display" type="xsd:boolean">
                <default-value>true</default-value>
            </property>
            
            
            
            <property name="allowqualifiedrestriction">
                <flag name="nonconditional" />
                <flag name="final" />
            </property>
            <property name="beanclass">
                <flag name="nonconditional" />
            </property>
            <property name="generated">
                <flag name="final"/>
            </property>
            <property name="inputmode">
                <flag name="global" />
            </property>
            <property name="licensekey">
                <flag name="final" />
            </property>
            <property name="listeners">
                <flag name="nonconditional" />
            </property>
            <property name="mboname">
                <flag name="nonconditional" />
            </property>
            <property name="orderby">
                <flag name="nonconditional" />
            </property>
            <property name="parentdatasrc">
                <flag name="final" />
                <flag name="nonconditional" />
            </property>
            <property name="relationship">
                <flag name="nonconditional" />
            </property>
            <property name="rerenderenabled" type="xsd:boolean">
                <flag name="final" />
                <default-value>true</default-value>
            </property>
            <property name="whereclause">
                <flag name="nonconditional" />
            </property>
        </property-list>
        <component-list>
            <hbox id="${name}_hbox"/>
        </component-list>
        <containers>
            <container name="clientarea"/>
            <container name="section"/>
            <container name="page"/>
            <container name="tab"/>
        </containers>
    </control-descriptor>
    
</control-registry>