<?xml version="1.0" encoding="UTF-8"?>
<!-- ******************************************************************* -->
<!--                                                                     -->
<!-- © Copyright IBM Corp. 2010, 2013                                    -->
<!--                                                                     -->
<!-- Licensed under the Apache License, Version 2.0 (the "License");     -->
<!-- you may not use this file except in compliance with the License.    -->
<!-- You may obtain a copy of the License at:                            -->
<!--                                                                     -->
<!-- http://www.apache.org/licenses/LICENSE-2.0                          -->
<!--                                                                     -->
<!-- Unless required by applicable law or agreed to in writing, software -->
<!-- distributed under the License is distributed on an "AS IS" BASIS,   -->
<!-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or     -->
<!-- implied. See the License for the specific language governing        -->
<!-- permissions and limitations under the License.                      -->
<!--                                                                     -->
<!-- ******************************************************************* -->
<faces-config>

  <faces-config-extension>
    <namespace-uri>http://www.ibm.com/xsp/coreex</namespace-uri>
    <default-prefix>xe</default-prefix>
  </faces-config-extension>

<!-- TODO Introduce new <complex-type> for Dojo Simple Actions -->
<!-- TODO For all, update to reflect Simple Action naming conventions suffix -->

    <!-- Start of Dojo Actions Properties -->
    <group>
        <!-- key-suffix: client_node -->
        <group-type>com.ibm.xsp.extlib.group.Node</group-type>

        <property>
            <description>Specifies the target node or control referenced by the animation</description>
            <display-name>Animation Target</display-name>
            <property-name>node</property-name>
            <property-class>java.lang.String</property-class>
            <property-extension>
                <designer-extension>
                    <editor>com.ibm.xsp.extlib.designer.tooling.editor.XPageControlIDEditor</editor>
                </designer-extension>
            </property-extension>
        </property>

        <property>
            <description>Specifies a variable name to reference the animation</description>
            <display-name>Animation Variable Name</display-name>
            <property-name>var</property-name>
            <property-class>java.lang.String</property-class>
            <property-extension>
                <designer-extension>
                    <!-- This is not a server requestScope variable name,
                    it's a client-side browser variable name.-->
                    <tags>
                        not-server-variable-name
                    </tags>
                </designer-extension>
            </property-extension>
        </property>

        <property>
            <description>Specifies a list of JSON formatted values to pass as is. Mainly used for client side computed values.</description>
            <display-name>Passthrough Attributes</display-name>
            <property-name>attributes</property-name>
            <property-class>java.util.ArrayList</property-class>
            <property-extension>
                <collection-property>true</collection-property>
                <property-item-class>com.ibm.xsp.complex.Parameter</property-item-class>
                <property-add-method>addAttribute</property-add-method>
                <allow-run-time-binding>false</allow-run-time-binding>
            </property-extension>
        </property>

        <group-extension>
            <designer-extension>
                <tags>
                    group-in-complex
                </tags>
            </designer-extension>
        </group-extension>
    </group>

    <group>
        <!-- key-suffix: client_fadeEffect -->
        <group-type>com.ibm.xsp.extlib.group.FadeEffect</group-type>

        <property>
            <description>Specifies a JavaScript function to determine the rate of change of the animation over its duration.</description>
            <display-name>Easing Function</display-name>
            <property-name>easing</property-name>
            <property-class>java.lang.String</property-class>
            <property-extension>
                <designer-extension>
                    <!-- TODO Editor comboParameterEditor -->
                    <!-- TODO editor-parameter "dojo.fx.easing.*" -->
                    <!-- TODO Renderer include Dojo module "dojo.fx.easing" -->
                    <tags>
                        todo
                    </tags>
                </designer-extension>
            </property-extension>
        </property>

        <property>
            <description>Specifies the time duration in milliseconds of the animation. If omitted, defaults to 350 milliseconds.</description>
            <display-name>Time Duration</display-name>
            <property-name>duration</property-name>
            <property-class>int</property-class>
            <property-extension>
                <default-value>-1</default-value>
                <!-- 
                The default fade duration or anim duration is 350ms in the .js file.
                You could explicitly set the value to 0 to mean instantaneous.
                Negative durations don't make sense.
                The getter and renderer are using -1 as the not-set value,
                and not rendering the property when negative values are detected.
                 -->
            </property-extension>
        </property>

        <group-extension>
            <designer-extension>
                <tags>
                    group-in-complex
                </tags>
            </designer-extension>
        </group-extension>
    </group>
    <!-- End of Dojo Actions Properties -->

    <!-- Start of Dojo Actions Complex Types -->
    <complex-type>
        <description>Animates the opacity of the target from opaque to transparent</description>
        <display-name>Dojo Fade Out Effect</display-name>
        <complex-id>com.ibm.xsp.extlib.actions.client.dojo.FadeOutAction</complex-id>
        <complex-class>com.ibm.xsp.extlib.actions.client.dojo.FadeOutAction</complex-class>

        <group-type-ref>com.ibm.xsp.extlib.group.Node</group-type-ref>
        <group-type-ref>com.ibm.xsp.extlib.group.FadeEffect</group-type-ref>

        <complex-extension>
            <base-complex-id>simpleActionInterface</base-complex-id>
            <tag-name>dojoFadeOut</tag-name>
            <designer-extension>
                <action-type>client</action-type>
                <category>%complex-category.dojo_effects%</category>
            </designer-extension>
        </complex-extension>
    </complex-type>

    <complex-type>
        <description>Animates the opacity of the target from transparent to opaque</description>
        <display-name>Dojo Fade In Effect</display-name>
        <complex-id>com.ibm.xsp.extlib.actions.client.dojo.FadeInAction</complex-id>
        <complex-class>com.ibm.xsp.extlib.actions.client.dojo.FadeInAction</complex-class>

        <group-type-ref>com.ibm.xsp.extlib.group.Node</group-type-ref>
        <group-type-ref>com.ibm.xsp.extlib.group.FadeEffect</group-type-ref>

        <complex-extension>
            <base-complex-id>simpleActionInterface</base-complex-id>
            <tag-name>dojoFadeIn</tag-name>
            <designer-extension>
                <action-type>client</action-type>
                <category>%complex-category.dojo_effects%</category>
            </designer-extension>
        </complex-extension>
    </complex-type>

    <complex-type>
        <description>Defines a property to be animated</description>
        <display-name>Dojo Animation Properties</display-name>
        <complex-id>com.ibm.xsp.extlib.actions.client.dojo.AnimationProps</complex-id>
        <complex-class>com.ibm.xsp.extlib.actions.client.dojo.AnimationProps</complex-class>

        <property>
            <description>Specifies the name of the property to be animated.</description>
            <display-name>Property Name</display-name>
            <property-name>name</property-name>
            <property-class>java.lang.String</property-class>
        </property>

        <property>
            <description>Specifies the initial starting value of the property being animated.</description>
            <display-name>Start Value</display-name>
            <property-name>start</property-name>
            <property-class>java.lang.String</property-class>
        </property>

        <property>
            <description>Specifies the ending value of the property being animated.</description>
            <display-name>End Value</display-name>
            <property-name>end</property-name>
            <property-class>java.lang.String</property-class>
        </property>

        <property>
            <!-- # "em", "ex", "x", "in", "cm", "mm", "pt", "pc", "px" should not be translated -->
            <description>Specifies the unit of measurement of the associated property value. Accepted values are "em" (Based on the font size of the relevant font), "ex" (Based on the height of the lowercase "x" character of the relevant font), "in" (Inches), "cm" (Centimeters), "mm" (Millimeters), "pt" (Points), "pc" (Picas), "px" (Pixels). If omitted, this property defaults to "px" (Pixels).</description>
            <display-name>Property Value Unit Identifier</display-name>
            <property-name>unit</property-name>
            <property-class>java.lang.String</property-class>
            <property-extension>
                <designer-extension>
                    <editor>com.ibm.workplace.designer.property.editors.comboParameterEditor</editor>
                    <editor-parameter>
                        em
                        ex
                        in
                        cm
                        mm
                        pt
                        pc
                        px
                    </editor-parameter>
                </designer-extension>
            </property-extension>
        </property>

        <complex-extension>
            <tag-name>dojoAnimationProps</tag-name>
        </complex-extension>
    </complex-type>

    <complex-type>
        <description>Apply a Dojo animation to a control.</description>
        <display-name>Dojo Animation</display-name>
        <complex-id>com.ibm.xsp.extlib.actions.client.dojo.AnimatePropertyAction</complex-id>
        <complex-class>com.ibm.xsp.extlib.actions.client.dojo.AnimatePropertyAction</complex-class>

        <group-type-ref>com.ibm.xsp.extlib.group.Node</group-type-ref>
        <group-type-ref>com.ibm.xsp.extlib.group.FadeEffect</group-type-ref>

        <property>
            <description>Specifies how many times the animation should loop</description>
            <display-name>Repeat</display-name>
            <property-name>repeat</property-name>
            <property-class>int</property-class>
        </property>

        <property>
            <description>Specifies the number of milliseconds to wait between successive frames in the animation. If omitted, by default this value is 20 which is the equivalent of 50 frames per second.</description>
            <display-name>Animation Frame Rate</display-name>
            <property-name>rate</property-name>
            <property-class>int</property-class>
            <property-extension>
                <default-value>-1</default-value>
            </property-extension>
        </property>

        <property>
            <description>Specifies the number of milliseconds to wait before starting the animation. If omitted, by default this value is zero.</description>
            <display-name>Animation Starting Delay</display-name>
            <property-name>delay</property-name>
            <property-class>int</property-class>
        </property>

        <property>
            <description>Specifies the list of properties which will transition during this animation</description>
            <display-name>Animation Properties</display-name>
            <property-name>properties</property-name>
            <property-class>java.util.List</property-class>
            <property-extension>
                <allow-run-time-binding>false</allow-run-time-binding>
                <collection-property>true</collection-property>
                <property-item-class>com.ibm.xsp.extlib.actions.client.dojo.AnimationProps</property-item-class>
                <property-add-method>addProperty</property-add-method>
                <pass-through>false</pass-through>
            </property-extension>
        </property>

        <complex-extension>
            <base-complex-id>simpleActionInterface</base-complex-id>
            <tag-name>dojoAnimateProperty</tag-name>
            <designer-extension>
                <action-type>client</action-type>
                <category>%complex-category.dojo_effects%</category>
            </designer-extension>
        </complex-extension>
    </complex-type>

    <complex-type>
        <description>Animates the expansion of the height of the target</description>
        <display-name>Dojo Wipe In Effect</display-name>
        <complex-id>com.ibm.xsp.extlib.actions.client.dojo.fx.WipeInAction</complex-id>
        <complex-class>com.ibm.xsp.extlib.actions.client.dojo.fx.WipeInAction</complex-class>

        <group-type-ref>com.ibm.xsp.extlib.group.Node</group-type-ref>
        <group-type-ref>com.ibm.xsp.extlib.group.FadeEffect</group-type-ref>

        <complex-extension>
            <base-complex-id>simpleActionInterface</base-complex-id>
            <tag-name>dojofxWipeIn</tag-name>
            <designer-extension>
                <action-type>client</action-type>
                <category>%complex-category.dojo_effects%</category>
            </designer-extension>
        </complex-extension>
    </complex-type>

    <complex-type>
        <description>Animates the reduction of the height of the target</description>
        <display-name>Dojo Wipe Out Effect</display-name>
        <complex-id>com.ibm.xsp.extlib.actions.client.dojo.fx.WipeOutAction</complex-id>
        <complex-class>com.ibm.xsp.extlib.actions.client.dojo.fx.WipeOutAction</complex-class>

        <group-type-ref>com.ibm.xsp.extlib.group.Node</group-type-ref>
        <group-type-ref>com.ibm.xsp.extlib.group.FadeEffect</group-type-ref>

        <complex-extension>
            <base-complex-id>simpleActionInterface</base-complex-id>
            <tag-name>dojofxWipeOut</tag-name>
            <designer-extension>
                <action-type>client</action-type>
                <category>%complex-category.dojo_effects%</category>
            </designer-extension>
        </complex-extension>
    </complex-type>

    <complex-type>
        <description>Animates the movement of the target to a new position.</description>
        <display-name>Dojo Slide To Effect</display-name>
        <complex-id>com.ibm.xsp.extlib.actions.client.dojo.fx.SlideToAction</complex-id>
        <complex-class>com.ibm.xsp.extlib.actions.client.dojo.fx.SlideToAction</complex-class>

        <group-type-ref>com.ibm.xsp.extlib.group.Node</group-type-ref>
        <group-type-ref>com.ibm.xsp.extlib.group.FadeEffect</group-type-ref>

        <property>
            <description>Specifies the new position of the left edge of the target measured in absolute pixels.</description>
            <display-name>Left Edge Position</display-name>
            <property-name>left</property-name>
            <property-class>int</property-class>
            <property-extension>
                <default-value>-2147483648</default-value>
            </property-extension>
        </property>

        <property>
            <description>Specifies the new position of the top edge of the target measured in absolute pixels.</description>
            <display-name>Top Edge Position</display-name>
            <property-name>top</property-name>
            <property-class>int</property-class>
            <property-extension>
                <default-value>-2147483648</default-value>
            </property-extension>
        </property>

        <complex-extension>
            <base-complex-id>simpleActionInterface</base-complex-id>
            <tag-name>dojofxSlideTo</tag-name>
            <designer-extension>
                <action-type>client</action-type>
                <category>%complex-category.dojo_effects%</category>
            </designer-extension>
        </complex-extension>
    </complex-type>
    <!-- End of Dojo Actions Complex Types -->

</faces-config>
