<?xml version="1.0" encoding="utf-8"?>
<!-- Manual test from build dir $CAMITK_BUILD_DIR and sources in $CAMITK_SOURCE_DIR
export CAMITK_BUILD_DIR=~/Dev/CamiTK/build/camitk
export CAMITK_SOURCE_DIR=~/Dev/CamiTK/src/camitk
workingDir=$(mktemp \-\-tmpdir -d camitk-test-tmp.XXXXXXXXXX)
cd ~/Dev/CamiTK/build/camitk/
bin/camitk-cepgenerator -f $CAMITK_SOURCE_DIR/sdk/libraries/cepcoreschema/testdata/complete-test-1.xml -d $workingDir
cp $CAMITK_SOURCE_DIR/sdk/libraries/cepcoreschema/testdata/TestLib.* $workingDir/completetestcep1/libraries/testlib
cd $workingDir
mkdir build
cd build
CAMITK_DIR=$CAMITK_BUILD_DIR cmake -DCMAKE_MODULE_PATH:PATH="$CAMITK_SOURCE_DIR/sdk/cmake/modules;$CAMITK_SOURCE_DIR/sdk/cmake/modules/macros" ../completetestcep1
make
$CAMITK_BUILD_DIR/bin/camitk-config \-\-config | grep "\[W\]"
cd
rm -rf $workingDir
  -->
<cep xmlns="http://camitk.imag.fr/cepcoreschema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://camitk.imag.fr/cepcoreschema Cep.xsd">
  <name>Complete test CEP 1</name>
  <contact>
    <email>timc-camitk@univ-grenoble-alpes.fr</email>
  </contact>
  <description>This CEP is trying to achieve a complete test of all possible cepcoreschema element</description>
  <readme>This CEP is trying to achieve a complete test of all possible cepcoreschema element. Probably some specific cases are not included, but it is our best shot</readme>
  <copyright><![CDATA[/*****************************************************************************
$USERDEF_LICENCE_BEGIN$
CamiTK - Computer Assisted Medical Intervention ToolKit
(c) 2001-2025 Univ. Grenoble Alpes, CNRS, Grenoble INP - UGA, TIMC, 38000 Grenoble, France
        
Visit http://camitk.imag.fr for more information
        
This file is part of CamiTK.
        
$CEP_NAME$ is under the following licence:
This is the complete licence, it covers everything, everywhere, for everyone at everytime.
Please consider thatthis is just an example...
$USERDEF_LICENCE_END$
****************************************************************************/
    ]]></copyright>
  <actionExtensions>
    <actionExtension>
      <name>Test Action Extension 1</name>
      <description>Test the first action extension</description>
      <actions>
        <action>
          <name>Test Action 1</name>
          <description>Test a first action, for image component, with a lot of parameters</description>
          <component>ImageComponent</component>
          <classification>
            <family>Complete Test Actions #1</family>
            <tag>Test</tag>
            <tag>Action #1</tag>
            <tag>ImageComponent</tag>
            <itkFilter outputType="Same as Input" />
          </classification>
          <parameters>
            <parameter name="p1" type="int" description="This is p1" unit="unit 1" defaultValue="42" editable="true" />
            <parameter name="p2" type="bool" description="This is p2" unit="unit 2" defaultValue="true" editable="true" />
            <parameter name="p3" type="double" description="This is p3" unit="unit 3" defaultValue="42.42" editable="true" />
            <parameter name="p4" type="QString" description="This is p4" unit="unit 4" defaultValue="Default value" editable="true" />
            <parameter name="p5" type="QDate" description="This is p5" unit="unit 5" defaultValue="QDate(1952,3,11)" editable="true" />
            <parameter name="p6" type="QColor" description="This is p6" unit="unit 6" defaultValue='QColor("gold")' editable="true" />
            <parameter name="p7" type="QPoint" description="This is p7" unit="unit 7" defaultValue="QPoint(42,84)" editable="true" />
            <parameter name="p8" type="QPointF" description="This is p8" unit="unit 8" defaultValue="QPointF(42.42,84.84)" editable="true" />
            <parameter name="p9" type="QVector3D" description="This is p9" unit="unit 9" defaultValue="QVariant().value&lt;QVector3D>()" editable="true" />
            <parameter name="p10" type="QVector4D" description="This is p10" unit="unit 10" defaultValue="QVariant().value&lt;QVector4D>()" editable="true" />
            <parameter name="p11" type="QTime" description="This is p11" unit="unit 11" defaultValue="QTime(23,58)" editable="true" />
          </parameters>
          <properties modal="false" embedded="true" delayed="false" />
        </action>
        <action>
          <name>Test Action 2</name>
          <description>Test a second action, with no tag, no component, and with just one non editable parameters</description>
          <component></component>
          <classification>
            <family>Complete Test Actions #1</family>
            <!-- no tag... -->
          </classification>
          <parameters>
              <parameter name="No Tag Action" type="bool" description="A &lt;b>small&lt;/b> description with &lt;i>hyper text&lt;i>" unit="€" defaultValue="false" editable="false"/>
          </parameters>
          <properties modal="true" embedded="false" delayed="false" />
        </action>
        <action>
          <name>Test Action 3</name>
          <description>Test a third action, with non existing \"Mesh Component\", and with lots of parameters and defautl editable</description>
          <component></component>
          <classification>
            <family>Complete Test Actions #1</family>
            <tag>Mesh Component</tag>
          </classification>
          <parameters>
            <parameter name="p1" type="int" description="This is p1" unit="unit 1" defaultValue="42"/>
            <parameter name="p2" type="bool" description="This is p2" unit="unit 2" defaultValue="true"/>
            <parameter name="p3" type="double" description="This is p3" unit="unit 3" defaultValue="42.42"/>
            <parameter name="p4" type="QString" description="This is p4" unit="unit 4" defaultValue="Default value"/>
            <parameter name="p5" type="QDate" description="This is p5" unit="unit 5" defaultValue="QDate(1952,3,11)"/>
            <parameter name="p6" type="QColor" description="This is p6" unit="unit 6" defaultValue='QColor("gold")'/>
            <parameter name="p7" type="QPoint" description="This is p7" unit="unit 7" defaultValue="QPoint(42,84)"/>
            <parameter name="p8" type="QPointF" description="This is p8" unit="unit 8" defaultValue="QPointF(42.42,84.84)"/>
            <parameter name="p9" type="QVector3D" description="This is p9" unit="unit 9" defaultValue="QVariant().value&lt;QVector3D>()"/>
            <parameter name="p10" type="QVector4D" description="This is p10" unit="unit 10" defaultValue="QVariant().value&lt;QVector4D>()"/>
            <parameter name="p11" type="QTime" description="This is p11" unit="unit 11" defaultValue="QTime(23,58)" editable="true" />
          </parameters>
          <properties modal="true" embedded="false" delayed="false" />
        </action>
      </actions>
      <dependencies>
        <dependency type="library" name="itk"/>
        <dependency type="cepLibrary" name="testlib"/>
      </dependencies>
    </actionExtension>
    <actionExtension>
      <name>Test Action Extension 2</name>
      <description>Test the second action extension</description>
      <actions>
        <action>
          <name>Test Action 4</name>
          <description>This action use the Test Component 1</description>
          <component>TestComponent1</component>
          <classification>
            <family>Complete Test Actions #2</family>
            <tag>Test</tag>
            <tag>Action #2</tag>
            <tag>Test Component 1</tag>
          </classification>
          <parameters>
            <parameter name="message" type="QString" description="This is a message parameter" unit="none" defaultValue="hello!" editable="true" />
          </parameters>
          <properties modal="false" embedded="true" delayed="false" />
        </action>
      </actions>
      <dependencies>
        <dependency type="component" name="testcomponentextension1"/>
      </dependencies>
    </actionExtension>
  </actionExtensions>
  <applications>
    <application>
      <name>testapp</name>
      <description>Test application</description>
      <directoryName>testappdir</directoryName>
    </application>
  </applications>
  <componentExtensions>
    <componentExtension>
      <name>Test Component Extension 1</name>
      <description>Test the first component extension</description>
      <components>
        <component>
          <name>Test Component 1</name>
          <description>Test a first action with an image representation</description>
          <representation>Image</representation>
          <properties>
            <parameter name="p1" type="int" description="This is p1" unit="unit 1" defaultValue="42" editable="true" />
            <parameter name="p2" type="bool" description="This is p2" unit="unit 2" defaultValue="true" editable="true" />
            <parameter name="p3" type="double" description="This is p3" unit="unit 3" defaultValue="42.42" editable="true" />
            <parameter name="p4" type="QString" description="This is p4" unit="unit 4" defaultValue="Default value" editable="true" />
            <parameter name="p5" type="QDate" description="This is p5" unit="unit 5" defaultValue="QDate(1952,3,11)" editable="true" />
            <parameter name="p6" type="QColor" description="This is p6" unit="unit 6" defaultValue='QColor("gold")' editable="true" />
            <parameter name="p7" type="QPoint" description="This is p7" unit="unit 7" defaultValue="QPoint(42,84)" editable="true" />
            <parameter name="p8" type="QPointF" description="This is p8" unit="unit 8" defaultValue="QPointF(42.42,84.84)" editable="true" />
            <parameter name="p9" type="QVector3D" description="This is p9" unit="unit 9" defaultValue="QVariant().value&lt;QVector3D>()" editable="true" />
            <parameter name="p10" type="QVector4D" description="This is p10" unit="unit 10" defaultValue="QVariant().value&lt;QVector4D>()" editable="true" />
            <parameter name="p11" type="QTime" description="This is p11" unit="unit 11" defaultValue="QTime(23,58)" editable="true" />
          </properties>
          <fileSuffix>test</fileSuffix>
        </component>
      </components>
      <dependencies>
        <dependency type="cepLibrary" name="testlib"/>
      </dependencies>
    </componentExtension>
  </componentExtensions>
  <libraries>
      <library static="false">
      <name>testlib</name>
      <description>A simple test lib. This lib will not compile unless some minimal C++ code is present in the generated source. Copy TestLib.h and TestLib.cpp to the library directory before configuration time.</description>
      <dependencies>
        <dependency type="library" name="XSD"/>
        <dependency type="library" name="ITK"/>
        <dependency type="cepLibrary" name="qtpropertybrowser"/>
      </dependencies>
    </library>
  </libraries>
</cep>
