<?xml version='1.0' encoding='utf-8'?>
<program_description>
    <program provider="ITTB" name="plotValueFunctions" version="1.1" displayName="plotValueFunctions" />
    <documentation>
        <description>This web service allows to plot utility functions. Compared to the web service plotValueFunctions, some parameters are added. Colors can be used. You can specify how to display the utility functions: by line, by column or by square. A linear interpolation can be processed in order to connect the different points in the generated utility function.</description>
        <contact><![CDATA[Sébastien Bigaret (sebastien.bigaret@telecom-bretagne.eu)]]></contact>
    </documentation>
    <parameters>

        <input id="criteria" name="criteria" displayName="criteria" isoptional="1">
            <documentation>
                <description>A list of criteria. Criteria can be activated or desactivated via the &lt;active&gt; tag (true or false). By default (no &lt;active&gt; tag), criteria are considered as active.</description>
            </documentation>
            <xmcda tag="criteria"><![CDATA[
                            
                    <criteria>
                        <criterion>
                            <active>[...]</active>
                            [...]
                        </criterion>
                        [...]
                    </criteria>
                    
                     ]]></xmcda>
        </input>

        <input id="valueFunctions" name="valueFunctions" displayName="valueFunctions" isoptional="0">
            <documentation>
                <description>Values of utilities of chosen criteria abscissa - Utility functions</description>
            </documentation>
            <xmcda tag="criteria"><![CDATA[
                   
					<criteria>
						<criterion>
							<criterionID>[...]</criterionID>
							<criterionFunction>
								<points>
									<point>
										<abscissa><real>[...]</real></abscissa>
										<ordinate><real>[...]</real></ordinate>
									</point>
								</points>
							</criterionFunction>
						</criterion>
					</criteria>
				
               ]]></xmcda>
        </input>

        <input id="methodPlotOptions" name="methodPlotOptions" displayName="methodPlotOptions" isoptional="0">
            <documentation>
                <description />
            </documentation>
            <xmcda tag="methodParameters"><![CDATA[
                   
					<methodParameters>	
						  <parameter id="unique_plot" name="Unique plot">
							<value>
            					<label>%1</label>
       						 </value>
						</parameter>
						 <parameter id="plots_display" name="Plots' display">
							<value>
            					<label>%2</label>
       						 </value>
						</parameter>
						<parameter id="linear_interpolation" name="Linear interpolation">
							<value>
            					<label>%3</label>
       						 </value>
						</parameter>
						<parameter id="vertical_lines" name="Vertical lines">
							<value>
            					<label>%4</label>
       						 </value>
						</parameter>	
						 <parameter id="use_color" name="Colors in the plots">
							<value>
            					<label>%5</label>
       						 </value>
						</parameter>
						 <parameter id="selected_color" name="Selected color">
							<value>
            					<label>%6</label>
       						 </value>
       						 </parameter>
					</methodParameters>
				
               ]]></xmcda>
            <gui status="preferGUI">
                <entry id="%1" type="enum" displayName="Unique or multiple plot(s)?">
                    <documentation>
                        <description>In a unique plot, only one image is generated containing all the utility functions. Multiple plots can be obtained. The default value is true.</description>
                    </documentation>
                    <items>
                        <item id="true">
                            <description>Unique</description>
                            <value>true</value>
                        </item>
                        <item id="false">
                            <description>Multiple</description>
                            <value>false</value>
                        </item>
                    </items>
                    <defaultValue>true</defaultValue>
                </entry>
                <entry id="%2" type="enum" displayName="Plots arrangement">
                    <documentation>
                        <description>In the case of a unique plot, you can specify how to display the utility functions: by line, by column or by square. The default value is by column.</description>
                    </documentation>
                    <items>
                        <item id="by_column">
                            <description>Column</description>
                            <value>column</value>
                        </item>
                        <item id="by_line">
                            <description>Line</description>
                            <value>line</value>
                        </item>
                        <item id="by_square">
                            <description>Grid</description>
                            <value>grid</value>
                        </item>
                    </items>
                    <defaultValue>by_column</defaultValue>
                </entry>
                <entry id="%3" type="enum" displayName="Linear interpolation ?">
                    <documentation>
                        <description>Linear interpolation means that lines connect the points in each utility function. The default value is true.</description>
                    </documentation>
                    <items>
                        <item id="true">
                            <description>Yes</description>
                            <value>true</value>
                        </item>
                        <item id="false">
                            <description>No</description>
                            <value>false</value>
                        </item>
                    </items>
                    <defaultValue>true</defaultValue>
                </entry>
                <entry id="%4" type="enum" displayName="Add vertical bars ?">
                    <documentation>
                        <description>Without linear interpolation, you can add vertical lines so that points are more visible. The default value is false.</description>
                    </documentation>
                    <items>
                        <item id="true">
                            <description>Yes</description>
                            <value>true</value>
                        </item>
                        <item id="false">
                            <description>No</description>
                            <value>false</value>
                        </item>
                    </items>
                    <defaultValue>false</defaultValue>
                </entry>
                <entry id="%5" type="enum" displayName="Use Colors?">
                    <documentation>
                        <description>The use of colors: true for colored functions.</description>
                    </documentation>
                    <items>
                        <item id="true">
                            <description>Yes</description>
                            <value>true</value>
                        </item>
                        <item id="false">
                            <description>No</description>
                            <value>false</value>
                        </item>
                    </items>
                    <defaultValue>false</defaultValue>
                </entry>
                <entry id="%6" type="enum" displayName="Choose color:">
                    <documentation>
                        <description>Choose between "Black", "Red", "Blue", "Green", "Yellow", "Magenta" and "Cyan".</description>
                    </documentation>
                    <items>
                        <item id="black">
                            <description>Black</description>
                            <value>Black</value>
                        </item>
                        <item id="red">
                            <description>Red</description>
                            <value>Red</value>
                        </item>
                        <item id="blue">
                            <description>Blue</description>
                            <value>Blue</value>
                        </item>
                        <item id="green">
                            <description>Green</description>
                            <value>Green</value>
                        </item>
                        <item id="yellow">
                            <description>Yellow</description>
                            <value>Yellow</value>
                        </item>
                        <item id="magenta">
                            <description>Magenta</description>
                            <value>Magenta</value>
                        </item>
                        <item id="cyan">
                            <description>Cyan</description>
                            <value>Cyan</value>
                        </item>
                    </items>
                    <defaultValue>black</defaultValue>
                </entry>
            </gui>
        </input>

        <output id="valueFunctionsPlot" name="valueFunctionsPlot" displayName="valueFunctionsPlot">
            <documentation>
                <description>A string containing the base64 representation of the png image of the generated multi-subplot.</description>
            </documentation>
            <xmcda tag="criterionValue" />
        </output>

        <output id="messages" name="messages" displayName="messages">
            <documentation>
                <description>A list of messages generated by the algorithm.</description>
            </documentation>
            <xmcda tag="methodMessages" />
        </output>

    </parameters>
</program_description>
