<?xml version="1.0" encoding="UTF-8"?>
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="uiInsertNode">
    <refnamediv>
        <refname>uiInsertNode</refname>
        <refpurpose>Insertion in a uitree </refpurpose>
    </refnamediv>
    <refsynopsisdiv>
        <title>Syntax</title>
        <synopsis>
            insertTree = uiInsertNode(tree, position, node)
            insertTree = uiInsertNode(tree, parentNode, node)
        </synopsis>
    </refsynopsisdiv>
    <refsection>
        <title>Input parameters</title>
        <variablelist>
            <varlistentry>
                <term>tree</term>
                <listitem>
                    <para>uitree where we do the insertion</para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>position</term>
                <listitem>
                    <para>a string, which is the position where we want to insert the node</para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>parentNode</term>
                <listitem>
                    <para>which is the parent node into we want to insert the node</para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>node</term>
                <listitem>
                    <para>node we want to insert</para>
                </listitem>
            </varlistentry>
        </variablelist>
    </refsection>
    <refsection>
        <title>Output parameters</title>
        <variablelist>
            <varlistentry>
                <term>insertTree</term>
                <listitem>
                    <para>an uitree with the node inserted</para>
                </listitem>
            </varlistentry>
        </variablelist>
    </refsection>
    <refsection>
        <title>Description</title>
        <para>
            Insertion of a node (subTree) into a tree.
            If we have 2 nodes called 'Node1' and 'Node2' each one at position 1.1 and 1.2. Insertion of a new node 'Node3' at position '1.2',  will move the 'Node2' to position 1.3.
        </para>
    </refsection>
    <refsection>
        <title>Examples</title>
        <programlisting role="example"><![CDATA[
// We should create nodes(subTrees) before creating trees
leaf11 = uiCreateNode('leaf 1.1', 'iconLeaf1.1', 'callbackLeaf1.1')
leaf12 = uiCreateNode('leaf 1.2', 'iconLeaf1.2', 'callbackLeaf1.2')
leaf31 = uiCreateNode('leaf 3.1', 'iconLeaf3.1', 'callbackLeaf3.1')
leaf32 = uiCreateNode('leaf 3.2', 'iconLeaf3.2', 'callbackLeaf3.2')
node1 = uiCreateNode('Node 1', 'iconNode1', 'callbackNode1')
node2 = uiCreateNode('Node 2', 'iconNode2', 'callbackNode2')
node3 = uiCreateNode('Node 3', 'iconNode3', 'callbackNode3')
root = uiCreateNode('Root', 'iconRoot', 'callbackRoot')

treeNode1 = uiCreateTree(node1, leaf11, leaf12)
treeNode3 = uiCreateTree(node3, leaf31, leaf32)
treeRoot = uiCreateTree(root, treeNode1, node2, treeNode3)

// Creation of a new nodes to insert
leaf13 = uiCreateNode('leaf 1.3', 'iconLeaf1.3', 'callbackLeaf1.3')
testNode = uiCreateNode('test', 'icon_test', 'callback_test')

// Insertion of 'leaf13' in 'node2'
treeInsert = uiInsertNode(treeRoot, node2, leaf13)
uiDisplayTree(treeInsert)

// Insertion of 'testNode' at position '1.1'
treeInsert = uiInsertNode(treeRoot, '1.1', testNode)
uiDisplayTree(treeInsert)

 ]]></programlisting>
    </refsection>
    <refsection role="see also">
        <title>See also</title>
        <simplelist type="inline">
            <member>
                <link linkend="uiCreateNode">uiCreateNode</link>
            </member>
            <member>
                <link linkend="uiCreateTree">uiCreateTree</link>
            </member>
            <member>
                <link linkend="uiDisplayTree">uiDisplayTree</link>
            </member>
            <member>
                <link linkend="uiDumpTree">uiDumpTree</link>
            </member>
            <member>
                <link linkend="uiDeleteNode">uiDeleteNode</link>
            </member>
            <member>
                <link linkend="uiConcatTree">uiConcatTree</link>
            </member>
            <member>
                <link linkend="uiEqualsTree">uiEqualsTree</link>
            </member>
            <member>
                <link linkend="uiFindNode">uiFindNode</link>
            </member>
            <member>
                <link linkend="uiGetParentNode">uiGetParentNode</link>
            </member>
            <member>
                <link linkend="uiGetChildrenNode">uiGetChildrenNode</link>
            </member>
            <member>
                <link linkend="uiGetNodePosition">uiGetNodePosition</link>
            </member>
        </simplelist>
    </refsection>
</refentry>
