<?xml version="1.0" encoding="UTF-8"?>
<otrunk id="2767fe20-6c7d-11dc-8314-0800200c9a66">
  <imports>
    <import class="org.concord.data.state.OTDataStore" />
    <import class="org.concord.data.state.OTDataChannelDescription" />
    <import class="org.concord.data.state.OTDataField" />
    <import class="org.concord.data.state.OTDataTable" />
    <import class="org.concord.datagraph.state.OTDataGraph" />
    <import class="org.concord.datagraph.state.OTDataAxis" />
    <import class="org.concord.datagraph.state.OTDataGraphable" />
    <import class="org.concord.datagraph.state.OTDataCollector" />
    <import class="org.concord.datagraph.state.OTMultiDataGraph" />
    <import class="org.concord.datagraph.state.OTPluginView" />
    <import class="org.concord.datagraph.state.OTDataBarGraphable" />
    <import class="org.concord.framework.otrunk.view.OTFrame" />
    <import class="org.concord.framework.otrunk.wrapper.OTBlob" />
    <import class="org.concord.graph.util.state.OTDrawingTool" />
    <import class="org.concord.graph.util.state.OTDrawingStamp" />
    <import class="org.concord.graph.util.state.OTDrawingImageIcon" />
    <import class="org.concord.graph.util.state.OTDrawingShape" />
    <import class="org.concord.graph.util.state.OTDrawingTool2" />
    <import class="org.concord.graph.util.state.OTPointTextLabel" />
    <import class="org.concord.otrunk.OTInclude" />
    <import class="org.concord.otrunk.OTSystem" />
    <import class="org.concord.otrunk.browser.mozswing.OTMozSwing" />
    <import class="org.concord.otrunk.overlay.OTOverlay" />
    <import class="org.concord.otrunk.script.ui.OTScriptObject" />
    <import class="org.concord.otrunk.script.ui.OTScriptVariable" />
    <import class="org.concord.otrunk.script.ui.OTScriptVariableComponent" />
    <import class="org.concord.otrunk.script.ui.OTScriptVariableView" />
    <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.graph.OTDataCollectorViewConfig" />
    <import class="org.concord.otrunk.ui.OTButton" />
    <import class="org.concord.otrunk.ui.OTCardContainer" />
    <import class="org.concord.otrunk.ui.OTChoice" />
    <import class="org.concord.otrunk.ui.OTChoiceMultiple" />
    <import class="org.concord.otrunk.ui.OTCurriculumUnit" />
    <import class="org.concord.otrunk.ui.OTImage" />
    <import class="org.concord.otrunk.ui.OTImageMap" />
    <import class="org.concord.otrunk.ui.OTLayerContainer" />
    <import class="org.concord.otrunk.ui.OTModeSwitcher" />
    <import class="org.concord.otrunk.ui.OTText" />
    <import class="org.concord.otrunk.ui.OTPlacement" />
    <import class="org.concord.otrunk.ui.OTPlacementContainer" />
    <import class="org.concord.otrunk.ui.snapshot.OTSnapshot" />
    <import class="org.concord.otrunk.ui.snapshot.OTSnapshotButton" />
    <import class="org.concord.otrunk.ui.snapshot.OTSnapshotAlbum" />
    <import class="org.concord.otrunk.ui.snapshot.OTSnapshotChooser" />
    <import class="org.concord.otrunk.ui.swing.OTChoiceViewConfig" />
    <import class="org.concord.otrunk.util.OTSharingBundle" />
    <import class="org.concord.otrunk.view.OTObjectEditViewConfig" />
    <import class="org.concord.otrunk.view.OTViewChild" />
    <import class="org.concord.otrunk.view.OTViewEntry" />
    <import class="org.concord.otrunk.view.OTViewBundle" />
    <import class="org.concord.otrunk.view.OTViewMode" />
    <import class="org.concord.otrunk.view.document.OTCompoundDoc" />
    <import class="org.concord.otrunk.view.document.OTCssText" />
    <import class="org.concord.otrunk.view.prototype.OTPrototypeViewEntry" />
    <import class="org.concord.otrunk.view.prototype.OTPrototypeEventController" />
    <import class="org.concord.otrunk.view.prototype.OTPrototypeMapEntry" />
    <import class="org.concord.otrunknl41.OTNLogoModel" />
    <import class="org.concord.sensor.state.OTDeviceConfig" />
    <import class="org.concord.sensor.state.OTExperimentRequest" />
    <import class="org.concord.sensor.state.OTInterfaceManager" />
    <import class="org.concord.sensor.state.OTSensorDataProxy" />
    <import class="org.concord.sensor.state.OTSensorRequest" />
    <import class="org.concord.sensor.state.OTZeroSensor" />
    <import class="org.concord.datagraph.state.OTDataPointLabel" />
    <import class="org.concord.otrunkmw.OTModelerPage" />
    <import class="org.concord.otrunkmw.OTMwDataProducer" />
    <import class="org.concord.otrunkmw.OTMwChannelData" />
    <import class="org.concord.otrunk.ui.OTSoundPlayer" />
    <import class="org.concord.otrunk.util.OTReference" />
    <import class="org.concord.smartgraph.OTSmartGraphTool" />
    <import class="org.concord.otrunk.script.ui.OTScriptButton" />
    <import class="org.concord.otrunk.script.jruby.OTJRuby" />
    <import class="org.concord.otrunk.script.ui.OTScriptVariableRealObject" />
    <import class="org.concord.framework.otrunk.wrapper.OTInt" />
    <import class="org.concord.framework.otrunk.wrapper.OTBoolean" />
    <import class="org.concord.otrunk.overlay.OTOverlayWrapper" />
    <import class="org.concord.otrunk.intrasession.OTMultiUserPickN" />
    <import class="org.concord.otrunk.intrasession.OTMultiUserPollingGraph" />
    <import class="org.concord.otrunk.ui.menu.OTNavBar" />
    <import class="org.concord.otrunk.view.document.OTCompoundDoc" />
    <import class="org.concord.otrunk.ui.question.OTQuestion" />
    <import class="org.concord.otrunk.ui.menu.OTMenu" />
    <import class="org.concord.otrunk.ui.OTSection" />
    <import class="org.concord.otrunk.ui.menu.OTMenuRule" />
    <import class="org.concord.framework.otrunk.wrapper.OTObjectSet" />
  </imports>
  <objects>
    <OTSystem local_id="system">
      <includes>
        <OTInclude href="../LOOPS/global-imports/loops-view-bundle.otml" />
      </includes>
      <bundles>
        <object refid="8d880970-c22a-11dc-95ff-0800200c9a66" />
        <OTScriptEngineBundle>
          <engines>
            <OTScriptEngineEntry objectClass="org.concord.otrunk.script.jruby.OTJRuby" engineClass="org.concord.otrunk.script.jruby.OTJRubyEngine" />
            <OTScriptEngineEntry objectClass="org.concord.otrunk.script.js.OTJavascript" engineClass="org.concord.otrunk.script.js.OTJavascriptEngine" />
          </engines>
        </OTScriptEngineBundle>
        <OTSharingBundle />
        <OTInterfaceManager>
          <deviceConfigs>
            <OTDeviceConfig configString="none" deviceId="10" />
          </deviceConfigs>
        </OTInterfaceManager>
      </bundles>
      <overlays>
        <object refid="6cc8e2b0-c44e-11dc-95ff-0800200c9a66" />
        <object refid="b5d8b4a0-db35-11dc-95ff-0800200c9a66" />
      </overlays>
      <root>
        <OTCurriculumUnit version="2" name="LOOPS Activity">
          <activity>
            <OTSection local_id="section_1">
              <header>
                <OTCompoundDoc id="2767fe20-6c7d-11dc-8314-0800200c9a66!/section_1/header" showEditBar="false">
                  <bodyText>
                    <div class="title">Space Rescue Games for Learning Force and Motion</div>
                  </bodyText>
                </OTCompoundDoc>
              </header>
              <content>
                <OTCardContainer local_id="activity-card-container" contentsMayScroll="true" loadViewOnlyOnDemand="true">
                  <cards>
                    <OTCompoundDoc local_id="page-1" name="1">
                      <bodyText>
                        <div class="buffer">
                          <div class="border">
                            <div class="body">
                              Practice Game:  To begin, press "Setup" then "Start/Stop." Fire the 
          rocket engines with the Left and Right buttons.
                              <br />
                              <object refid="da6fbb40-5b45-11de-914d-6b8ca6afb695" />
                              <br />
                              <object refid="${datagraph}" />
                              <br />
                              <object refid="${button-script}" />
                              <br />
                              When 
          you rescue the Shuttle, go on to the next page.
                              <br />
                              <br />
                            </div>
                          </div>
                        </div>
                      </bodyText>
                      <documentRefs>
                        <OTNLogoModel id="da6fbb40-5b45-11de-914d-6b8ca6afb695" name="NetLogo model" authoredDataURL="../LOOPS/models/SpaceShip.1D.Docking.nlogo" startButtonName="Start/stop" resetButtonName="Setup">
                          <variables>
                            <string>rocket-x-vel</string>
                          </variables>
                        </OTNLogoModel>
                        <OTDataCollector local_id="datagraph" name="Velocity" title="Velocity Graph" autoScaleEnabled="true" showControlBar="false">
                          <source>
                            <OTDataGraphable id="08baa804-2f22-4a06-8243-13b3c608e3d8" name="Sensor" connectPoints="true" yColumn="1" drawMarks="false" color="255" xColumn="0" lineWidth="2.0" showAllChannels="false" visible="true">
                              <dataProducer>
                                <object refid="da6fbb40-5b45-11de-914d-6b8ca6afb695" />
                              </dataProducer>
                              <dataStore>
                                <OTDataStore dt="0.01" numberChannels="1">
                                  <channelDescriptions>
                                    <OTDataChannelDescription name="time" unit="s" precision="2" numericData="true" />
                                    <OTDataChannelDescription numericData="true" />
                                  </channelDescriptions>
                                </OTDataStore>
                              </dataStore>
                            </OTDataGraphable>
                          </source>
                          <xDataAxis>
                            <OTDataAxis id="9b846778-f27f-4151-a51d-3cb42ff4d644" max="17.314041" min="0.0" label="Time">
                              <customGridLabels />
                            </OTDataAxis>
                          </xDataAxis>
                          <yDataAxis>
                            <OTDataAxis max="30.0" min="-30.0" label="Velocity">
                              <customGridLabels />
                            </OTDataAxis>
                          </yDataAxis>
                          <labels>
                            <OTDataPointLabel x="Infinity" y="Infinity" color="0xffffbe" fontSize="10" text="Data Point" />
                          </labels>
                        </OTDataCollector>
                        <OTScriptObject local_id="button-script">
                          <script>
                            <OTJavascript>
                              <script>importPackage(Packages.java.lang);
importPackage(Packages.org.concord.otrunknl41);

var buttonHandler = {
	buttonEvent: function(evt){
		// ****** Button Event code starts here ******
		
		var buttonName = evt.buttonName				// e.g. "Run"
		var action = evt.action						// "pressed"/"released"
		var cause = evt.cause						// e.g. "user", "once"
		
		// uncomment next line for debugging:
		// System.out.println("Button event:  name = "+buttonName+"; action = "+action+"; cause = "+cause+");
		
		if (cause.equalsIgnoreCase("user")){
			if (buttonName.equalsIgnoreCase("right") || buttonName.equalsIgnoreCase("left")){
				addLabelAtEnd(buttonName)
			}
		}
		
		// ****** Button Event code ends here ******
	}
}
var buttonListener = new NLogoModel.NLogoButtonListener(buttonHandler);

function addLabelAtEnd(text){
	var graph_manager = graph_view.getGraphManager()
	graph_manager.addDataPointLabel(text, graphable, graphable.getTotalNumSamples() -1)
}

function init() {
	nlogo_model.addButtonListener(buttonListener);        
	return true;
}</script>
                            </OTJavascript>
                          </script>
                          <variables>
                            <OTScriptVariableRealObject name="nlogo_model">
                              <reference>
                                <object refid="da6fbb40-5b45-11de-914d-6b8ca6afb695" />
                              </reference>
                            </OTScriptVariableRealObject>
                            <OTScriptVariableRealObject name="graphable">
                              <reference>
                                <object refid="08baa804-2f22-4a06-8243-13b3c608e3d8" />
                              </reference>
                            </OTScriptVariableRealObject>
                            <OTScriptVariableView name="graph_view">
                              <reference>
                                <object refid="${datagraph}" />
                              </reference>
                            </OTScriptVariableView>
                          </variables>
                          <scriptState />
                        </OTScriptObject>
                      </documentRefs>
                    </OTCompoundDoc>
                  </cards>
                  <currentCard>
                    <object refid="${page-1}" />
                  </currentCard>
                  <viewedCards>
                    <object refid="77f3fc95-77c3-11de-8181-fb1fceaa9d84" />
                    <object refid="${page-1}" />
                  </viewedCards>
                </OTCardContainer>
              </content>
              <footer>
                <object refid="${nav-bar}" />
              </footer>
              <north>
                <object refid="2767fe20-6c7d-11dc-8314-0800200c9a66!/section_1/header" />
              </north>
              <center>
                <object refid="${activity-card-container}" />
              </center>
              <south>
                <object refid="${nav-bar}" />
              </south>
            </OTSection>
          </activity>
          <script>
            <object refid="${authoring-script}" />
          </script>
        </OTCurriculumUnit>
      </root>
      <library>
        <object refid="b6350a20-e3b4-11dc-95ff-0800200c9a66" />
        <OTMenu local_id="section-1-menu">
          <cardContainer>
            <object refid="${activity-card-container}" />
          </cardContainer>
          <menuRule>
            <object refid="${page-rule}" />
          </menuRule>
        </OTMenu>
        <OTSnapshotAlbum local_id="album" />
        <OTMenuRule local_id="page-rule" jumpToViewedCard="true" stepAhead="true" />
        <OTJavascript local_id="change_page.js" src="../common/scripts/change_page.js" />
        <OTJavascript local_id="show_message.js" src="../common/scripts/show_message.js" />
        <OTJavascript local_id="loops_authoring_script.js" src="../common/scripts/loops_authoring_script.js" />
        <OTScriptObject local_id="authoring-script">
          <variables>
            <OTScriptVariable name="cardContainer">
              <reference>
                <object refid="${activity-card-container}" />
              </reference>
            </OTScriptVariable>
            <OTScriptVariable name="system">
              <reference>
                <object refid="${system}" />
              </reference>
            </OTScriptVariable>
            <OTScriptVariable name="menuPageRule">
              <reference>
                <object refid="${page-rule}" />
              </reference>
            </OTScriptVariable>
          </variables>
          <script>
            <object refid="${loops_authoring_script.js}" />
          </script>
          <scriptState />
        </OTScriptObject>
        <OTNavBar local_id="nav-bar">
          <menuView>
            <object refid="29dc5ef0-c453-11dc-95ff-0800200c9a66" />
          </menuView>
          <cssColor>
            <object refid="31193bb0-c44f-11dc-95ff-0800200c9a66" />
          </cssColor>
        </OTNavBar>
      </library>
    </OTSystem>
  </objects>
</otrunk>

