<?xml version="1.0" encoding="UTF-8"?>
<process xmlns:blue="http://www.e-marson.com/bluelemon">

  <descriptor>
    <name>com/emarson/lemonade/examples/mobank/moaccount/_deployment/Package</name>
    <version>1.0</version>
    <description>
      It generates a package containing the following nodes:
       - com/emarson/lemonade/examples/mobank/moaccount/MainScreen
       - com/emarson/lemonade/examples/mobank/moaccount/AccountBalanceScreen
       - com/emarson/lemonade/examples/mobank/moaccount/TransferScreen
       - com/emarson/lemonade/examples/mobank/moaccount/HistoryScreen
       - com/emarson/lemonade/examples/mobank/moaccount/DownloadingScreen
    </description>
    <vendor>E-MARSON</vendor>
  </descriptor>

  <path>

    <!-- ASSOCIATIONS --->
    
    <subprocess name="action for 'Exit'">
      <source>com/emarson/lemonade/templates/ExitFromApplication</source>
      <resultTo>actionForExit</resultTo>
    </subprocess>
    
      
    <!-- CONTENT OF THE PACKAGE --->

    <subprocess name="main screen">
      <source>com/emarson/lemonade/examples/mobank/moaccount/MainScreen</source>
      <arguments>
        <argument key="actionForExit">actionForExit</argument>
        <argument key="labelForExit">"Exit"</argument>
      </arguments>
      <resultTo>mainScreen</resultTo>
    </subprocess>

    <subprocess name="account balance screen">
      <source>com/emarson/lemonade/examples/mobank/moaccount/AccountBalanceScreen</source>
      <resultTo>accountBalanceScreen</resultTo>
    </subprocess>

    <subprocess name="transfer screen">
      <source>com/emarson/lemonade/examples/mobank/moaccount/TransferScreen</source>
      <resultTo>transferScreen</resultTo>
    </subprocess>
    
    <subprocess name="history screen">
      <source>com/emarson/lemonade/examples/mobank/moaccount/HistoryScreen</source>
      <resultTo>historyScreen</resultTo>
    </subprocess>
    
    <subprocess name="downloading screen">
      <source>com/emarson/lemonade/examples/mobank/moaccount/_deployment/DownloadingScreen</source>
      <resultTo>downloadingScreen</resultTo>
    </subprocess>
    
    
    <!-- INSTALL PACKAGE INSTRUCTION --->

    <action name="prepare the arrays with package definitions"> 
      <type>general/bcl</type>
      <definition>
        package = new Array(5);
        package[0] = mainScreen;
        package[1] = accountBalanceScreen;
        package[2] = transferScreen;
        package[3] = historyScreen;
        package[4] = downloadingScreen;
        packageNames = new Array(5);
        packageNames[0] = "com/emarson/lemonade/examples/mobank/moaccount/MainScreen";
        packageNames[1] = "com/emarson/lemonade/examples/mobank/moaccount/AccountBalanceScreen";
        packageNames[2] = "com/emarson/lemonade/examples/mobank/moaccount/TransferScreen";
        packageNames[3] = "com/emarson/lemonade/examples/mobank/moaccount/HistoryScreen";
        packageNames[4] = "com/emarson/lemonade/examples/mobank/moaccount/DownloadingScreen";
      </definition>
    </action>

    <action name="create the install package">
      <type>general/bluelemon/package</type>
      <definition resultTo="package" 
                  packageName="com/emarson/lemonade/examples/mobank/moaccount"
                  valuesContextKey="package" 
                  namesContextKey="packageNames"/>

    </action>
        
    <subprocess name="to be sure it will be processed correctly, wrap it">
      <source>com/emarson/lemonade/templates/ProcessCode</source>
      <arguments>
        <argument key="code">package</argument>
      </arguments>
      <resultTo>wrappedPackage</resultTo>
    </subprocess>

    <finish name="done">
      <return>wrappedPackage</return>
    </finish>

  </path>

</process>