<?xml version="1.0" encoding="UTF-8"?>
<otrunk id="13d3fb4f-123a-425f-9d60-d84e145c0678">
  <imports>
  	<import class="org.concord.otrunk.OTIncludeRootObject" />
  	<import class="org.concord.otrunk.OTInclude" />
    <import class="org.concord.otrunk.OTSystem" />
    <import class="org.concord.otrunk.biologica.OTOrganismPlacement" />
    <import class="org.concord.otrunk.biologica.OTEnvironment" />
    <import class="org.concord.otrunk.biologica.OTOrganism" />
    <import class="org.concord.otrunk.biologica.OTWorld" />
    <import class="org.concord.otrunk.biologica.agent.OTAgentSpecies" />
    <import class="org.concord.otrunk.biologica.agent.OTAgentTrait" />
    <import class="org.concord.otrunk.biologica.agent.OTAgentPropertyImageMap" />
    <import class="org.concord.otrunk.biologica.environment.OTEnvironmentHolder"/>
    <import class="org.concord.otrunk.biologica.rules.OTRule"/>
    <import class="org.concord.otrunk.biologica.rules.OTRuleCondition"/>
    <import class="org.concord.otrunk.biologica.rules.OTRuleConsequence"/>
    <import class="org.concord.otrunk.view.OTViewEntry" />
    <import class="org.concord.otrunk.view.OTViewBundle" />
    <import class="org.concord.otrunk.view.document.OTCompoundDoc" />
    <import class="org.concord.otrunk.script.ui.OTScriptObject" />
    <import class="org.concord.otrunk.script.js.OTJavascript" />
    <import class="org.concord.otrunk.script.OTScriptEngineBundle" />
    <import class="org.concord.otrunk.script.OTScriptEngineEntry" />
    <import class="org.concord.otrunk.script.ui.OTScriptVariable" />
    <import class="org.concord.otrunk.script.ui.OTScriptVariableComponent" />
    <import class="org.concord.otrunk.script.ui.OTScriptVariableRealObject" />
    <import class="org.concord.otrunk.script.ui.OTScriptVariableView" />
    <import class="org.concord.otrunk.script.ui.OTScriptButton" />
    <import class="org.concord.framework.otrunk.view.OTFrame" />
  </imports>
	<idMap> 
	  <idMapping local_id="rabbit-species" id="f05fc1b1-ea0e-4d6e-a21e-7d089860445a"/> 
	  <idMapping local_id="fox-species" id="c59a7a17-5585-4860-b6a5-803e74ea2dbd"/>
	</idMap> 
  <objects>
    <OTSystem>

      <bundles>
        <OTViewBundle showLeftPanel="false">
          <viewEntries>
            <OTViewEntry
              objectClass="org.concord.otrunk.biologica.OTEnvironment"
              viewClass="org.concord.otrunk.biologica.ui.OTEnvironmentView" />
            <OTViewEntry
              objectClass="org.concord.otrunk.script.ui.OTScriptObject"
              viewClass="org.concord.otrunk.script.ui.OTScriptObjectView" />
            <OTViewEntry
              objectClass="org.concord.otrunk.view.document.OTDocument"
              viewClass="org.concord.otrunk.view.document.OTDocumentView" />
            <OTViewEntry 
          	objectClass="org.concord.otrunk.script.ui.OTScriptButton" 
          	viewClass="org.concord.otrunk.script.ui.OTScriptButtonView"/>
          	<OTViewEntry 
          		objectClass="org.concord.otrunk.biologica.environment.OTEnvironmentHolder" 
          		viewClass="org.concord.otrunk.biologica.environment.OTEnvironmentHolderView"/>
          </viewEntries>
          <frame>
            <OTFrame useScrollPane="false" width="800" height="590" />
          </frame>
        </OTViewBundle>
        <OTScriptEngineBundle>
          <engines>
            <OTScriptEngineEntry
              objectClass="org.concord.otrunk.script.js.OTJavascript"
              engineClass="org.concord.otrunk.script.js.OTJavascriptEngine" />
          </engines>
        </OTScriptEngineBundle>
      </bundles>
	  <includes>
        <OTInclude href="species/rabbits.otml" />
        <OTInclude href="species/foxes.otml" />
      </includes>
      <root>
        <OTCompoundDoc name="Population">
          <bodyText>
          
            <table >
              <tr height="690">
	              <td>
	              	<object refid="${env-holder}" />
	              </td>
	              <td>
	              	<object refid="${add-rabbits-button}"/><br/>
	              	<object refid="${add-foxes-button}"/><br />
                  <object refid="${clear-button}"/><br/>
	              </td>
              </tr>
            </table>
          
          		<object refid="${setup-script}"/>
            </bodyText>
          <documentRefs>
          	<OTEnvironmentHolder local_id="env-holder" width="730" height="600" >
          		<environment>
		          	<OTEnvironment local_id="environment" world="${peasimple_world}" 
		            	width="550" height="500" environmentWidth="10" environmentHeight="10"
		            	showRunButton="false">
		            </OTEnvironment>
		        </environment>
		    </OTEnvironmentHolder>
		    <OTScriptObject local_id="setup-script">
             		<script>
             			<OTJavascript src="scripts/rabbits/setup.js"/>
             		</script>
             		<variables>
             			<OTScriptVariableRealObject name="env" reference="${environment}"/>
             		</variables>
             </OTScriptObject>
             <OTScriptButton local_id="add-rabbits-button" text="Add rabbits">
             		<script>
             			<object refid="${add-orgs.js}"/>
             		</script>
             		<scriptVariables>
             			<OTScriptVariableRealObject name="environment" reference="${environment}"/>
             			<OTScriptVariableRealObject name="species" reference="${rabbit-species}"/>
             		</scriptVariables>
             </OTScriptButton>
             <OTScriptButton local_id="add-foxes-button" text="Add foxes">
             		<script>
             			<object refid="${add-orgs.js}"/>
             		</script>
             		<scriptVariables>
             			<OTScriptVariableRealObject name="environment" reference="${environment}"/>
             			<OTScriptVariableRealObject name="species" reference="${fox-species}"/>
             		</scriptVariables>
             </OTScriptButton>
            

            <!-- World definition: is ignored -->
            <OTWorld
              speciesPath="org/concord/biologica/worlds/peasimple.xml"
              local_id="peasimple_world" />
              
              <OTJavascript local_id="add-orgs.js">
     				<script>
      				function clicked()
      				{
      					for (var i = 0; i&lt;8; i++){
      						environment.addAgent(species.createAgent());
      					}
      				}
     				</script>
     			</OTJavascript>
     			<OTScriptButton local_id="clear-button" text="Clear">
             		<script>
             			<OTJavascript>
     				<script>function clicked()
      				{
      					environment.removeAllAgents();
      				}
     				</script>
     			</OTJavascript>
             		</script>
             		<scriptVariables>
             			<OTScriptVariableRealObject name="environment" reference="${environment}"/>
             		</scriptVariables>
             </OTScriptButton>
          </documentRefs>
        </OTCompoundDoc>

      </root>

    </OTSystem>
  </objects>
</otrunk>