<?xml version="1.0" encoding="UTF-8"?>
<otrunk id="fba5ef80-db43-11dc-95ff-0800200c9a66">
  <imports>
    <import class="org.concord.data.state.OTDataChannelDescription"/>
    <import class="org.concord.data.state.OTDataColumnDescription"/>
    <import class="org.concord.data.state.OTDataColumnDescription"/>
    <import class="org.concord.data.state.OTDataField"/>
    <import class="org.concord.data.state.OTDataStore"/>
    <import class="org.concord.data.state.OTDataTable"/>
    <import class="org.concord.data.state.OTDataTable"/>
    <import class="org.concord.data.state.OTPropertyDataProducer"/>
    <import class="org.concord.data.state.OTWaveGenerator"/>
    <import class="org.concord.datagraph.state.OTDataAxis"/>
    <import class="org.concord.datagraph.state.OTDataBarGraphable"/>
    <import class="org.concord.datagraph.state.OTDataCollector"/>
    <import class="org.concord.datagraph.state.OTDataGraph"/>
    <import class="org.concord.datagraph.state.OTDataGraphable"/>
    <import class="org.concord.datagraph.state.OTDataPointLabel"/>
    <import class="org.concord.datagraph.state.OTDataPointRuler"/>
    <import class="org.concord.datagraph.state.OTMultiDataGraph"/>
    <import class="org.concord.datagraph.state.OTPluginView"/>
    <import class="org.concord.examples.smartgraph.OTDataFilterScript"/>
    <import class="org.concord.framework.otrunk.view.OTFrame"/>
    <import class="org.concord.graph.util.state.OTDrawingImageIcon"/>
    <import class="org.concord.graph.util.state.OTDrawingShape"/>
    <import class="org.concord.graph.util.state.OTDrawingStamp"/>
    <import class="org.concord.graph.util.state.OTDrawingTool"/>
    <import class="org.concord.graph.util.state.OTDrawingTool2"/>
    <import class="org.concord.graph.util.state.OTPointTextLabel"/>
    <import class="org.concord.otrunk.browser.mozswing.OTMozSwing"/>
    <import class="org.concord.otrunk.graph.OTDataCollectorViewConfig"/>
    <import class="org.concord.otrunk.OTInclude"/>
    <import class="org.concord.otrunk.OTProperty"/>
    <import class="org.concord.otrunk.OTProperty"/>
    <import class="org.concord.otrunk.OTSystem"/>
    <import class="org.concord.otrunk.script.jruby.OTJRuby"/>
    <import class="org.concord.otrunk.script.js.OTJavascript"/>
    <import class="org.concord.otrunk.script.OTScript"/>
    <import class="org.concord.otrunk.script.OTScriptEngineBundle"/>
    <import class="org.concord.otrunk.script.OTScriptEngineEntry"/>
    <import class="org.concord.otrunk.script.ui.OTScriptObject"/>
    <import class="org.concord.otrunk.script.ui.OTScriptVariable"/>
    <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.OTImage"/>
    <import class="org.concord.otrunk.ui.OTModeSwitcher"/>
    <import class="org.concord.otrunk.ui.OTSoundPlayer"/>
    <import class="org.concord.otrunk.ui.OTText"/>
    <import class="org.concord.otrunk.ui.snapshot.OTSnapshot"/>
    <import class="org.concord.otrunk.ui.snapshot.OTSnapshotAlbum"/>
    <import class="org.concord.otrunk.ui.snapshot.OTSnapshotButton"/>
    <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.document.edit.OTDocumentEditViewConfig"/>
    <import class="org.concord.otrunk.view.document.OTCompoundDoc"/>
    <import class="org.concord.otrunk.view.document.OTCssText"/>
    <import class="org.concord.otrunk.view.document.OTDocumentViewConfig"/>
    <import class="org.concord.otrunk.view.OTFolderObject"/>
    <import class="org.concord.otrunk.view.OTViewBundle"/>
    <import class="org.concord.otrunk.view.OTViewChild"/>
    <import class="org.concord.otrunk.view.OTViewEntry"/>
    <import class="org.concord.otrunk.view.OTViewMode"/>
    <import class="org.concord.otrunk.view.OTViewService"/>
    <import class="org.concord.otrunk.view.prototype.OTPrototypeEventController"/>
    <import class="org.concord.otrunk.view.prototype.OTPrototypeMapEntry"/>
    <import class="org.concord.otrunk.view.prototype.OTPrototypeViewEntry"/>
    <import class="org.concord.otrunkmw.OTModelerPage"/>
    <import class="org.concord.otrunknl4.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.smartgraph.OTDataStoreFilter"/>
    <import class="org.concord.smartgraph.OTDataStoreFilter"/>
    <import class="org.concord.smartgraph.OTDataStoreFilterDescription"/>
    <import class="org.concord.smartgraph.OTDataStoreFilterDescription"/>
    <import class="org.concord.otrunk.ui.OTBorderContainer"/>
    <import class="org.concord.otrunk.udl3.OTUDLMenu"/>
    <import class="org.concord.otrunk.udl.OTUDLMenuRule"/>
    <import class="org.concord.datagraph.state.OTDataCollectorDataStore"/>
  </imports>
  <objects>
    <OTSystem local_id="system">
      <includes>
        <OTInclude href="../UDL/global-imports/predefined-sensor-graphs.otml"/>
      </includes>
      <bundles>
        <OTViewBundle id="8d880970-c22a-11dc-95ff-0800200c9a66" showLeftPanel="false"
          currentMode="student">
          <modes>
            <OTViewMode name="authoring">
              <map>
                <entry key="${moz-swing-view}">
                  <OTViewEntry objectClass="org.concord.otrunk.browser.mozswing.OTMozSwing"
                    viewClass="org.concord.otrunk.browser.mozswing.OTMozSwingEditView"/>
                </entry>
                <entry key="${snapshot_button_view}">
                  <OTViewEntry objectClass="org.concord.otrunk.ui.snapshot.OTSnapshotButton"
                    viewClass="org.concord.otrunk.ui.snapshot.OTSnapshotButtonEditView"/>
                </entry>
                <entry key="${choice-radio-view}">
                  <OTChoiceViewConfig objectClass="org.concord.otrunk.ui.OTChoice"
                    viewClass="org.concord.otrunk.ui.swing.OTChoiceComboBoxEditView"
                    useViewsAsChoices="true"/>
                </entry>
                <entry key="${choice-checkbox-view}">
                  <OTChoiceViewConfig objectClass="org.concord.otrunk.ui.OTChoiceMultiple"
                    viewClass="org.concord.otrunk.ui.swing.OTChoiceComboBoxEditView"
                    useViewsAsChoices="true"/>
                </entry>
                <entry key="${data-table-view}">
                  <OTViewEntry objectClass="org.concord.data.state.OTDataTable"
                    viewClass="org.concord.otrunk.ui.swing.OTDataTableEditView"/>
                </entry>
                <entry key="${netlogo-view}">
                  <OTViewEntry viewClass="org.concord.otrunknl4.OTNLogoModelEditView"
                    objectClass="org.concord.otrunknl4.OTNLogoModel"/>
                </entry>
                <entry key="${compound-doc-view}">
                  <OTDocumentEditViewConfig
                    objectClass="org.concord.otrunk.view.document.OTCompoundDoc"
                    viewClass="org.concord.otrunk.view.document.edit.OTDocumentEditView">
                    <documentViewConfig>
                      <object refid="${compound-doc-view}"/>
                    </documentViewConfig>
                    <objectsToInsert>
                      <OTText name="Text field"/>
                      <OTDrawingTool2 name="Draw tool"/>
                      <OTChoice name="Multiple-choice (single answer)"/>
                      <OTChoiceMultiple name="Multiple-choice (check boxes)"/>
                      <OTDataTable name="Data table" showLastRowForAddingNew="true">
                        <dataStore>
                          <OTDataStore numberChannels="2"/>
                        </dataStore>
                      </OTDataTable>
                      <OTDataCollector name="Data graph" title="Data graph">
                        <source>
                          <OTDataGraphable name="Data Graph" connectPoints="true"
                            controllable="true" yColumn="1" drawMarks="false" color="16711680"
                            xColumn="0" lineWidth="2.0">
                            <dataStore>
                              <OTDataStore/>
                            </dataStore>
                          </OTDataGraphable>
                        </source>
                        <xDataAxis>
                          <OTDataAxis max="60.0" units="s" min="0.0" label="Time"/>
                        </xDataAxis>
                        <yDataAxis>
                          <OTDataAxis max="40.0" units="" min="-0.0" label=""/>
                        </yDataAxis>
                      </OTDataCollector>
                      <OTSnapshotButton name="Snapshot button"/>
                      <OTSnapshotChooser name="Snapshot chooser"/>
                      <OTMozSwing name="Web browser"/>
                      <OTSoundPlayer name="Sound player"/>
                      <OTModelerPage name="Molecular workbench"
                        authoredDataURL="http://mw2.concord.org/public/student/classic/motion/undershotwaterwheel.cml"/>
                      <OTNLogoModel name="NetLogo model"/>
                    </objectsToInsert>
                  </OTDocumentEditViewConfig>
                </entry>
                <entry key="${data-collector-view}">
                  <OTDataCollectorViewConfig
                    viewClass="org.concord.otrunk.graph.OTDataCollectorEditView"
                    objectClass="org.concord.datagraph.state.OTDataCollector">
                    <predefinedGraphs>
                      <object refid="088786c2-8719-11dc-8314-0800200c9a66"/>
                    </predefinedGraphs>
                  </OTDataCollectorViewConfig>
                </entry>
                <entry key="${drawing-view}">
                  <OTViewEntry viewClass="org.concord.datagraph.state.OTDataDrawingToolEditView"
                    objectClass="org.concord.graph.util.state.OTDrawingTool"/>
                </entry>
                <entry key="${text-edit}">
                  <OTViewEntry objectClass="org.concord.otrunk.ui.OTText"
                    viewClass="org.concord.otrunk.ui.swing.OTTextEditEditView"/>
                </entry>
                <entry key="${sound-player-view}">
                  <OTViewEntry objectClass="org.concord.otrunk.ui.OTSoundPlayer"
                    viewClass="org.concord.otrunk.ui.swing.OTSoundPlayerEditView"/>
                </entry>
                <entry key="${mw-view}">
                  <OTViewEntry objectClass="org.concord.otrunkmw.OTModelerPage"
                    viewClass="org.concord.otrunkmw.OTModelerPageEditView"/>
                </entry>
                <entry key="${menu-horizontal-circle}">
                  <OTViewEntry objectClass="org.concord.otrunk.udl3.OTUDLMenu"
                    viewClass="org.concord.otrunk.udl.ui.OTUDLMenuPageEditView"/>
                </entry>
                <entry key="${mode-switcher}">
                  <OTViewEntry objectClass="org.concord.otrunk.ui.OTModeSwitcher"
                    viewClass="org.concord.otrunk.ui.swing.OTModeSwitcherView"/>
                </entry>
              </map>
            </OTViewMode>
            <OTViewMode name="student">
              <map> </map>
            </OTViewMode>
          </modes>
          <frame>
            <OTFrame useScrollPane="false" width="1000" height="650" positionX="20" positionY="40"/>
          </frame>
          <views>
            <OTViewEntry objectClass="org.concord.otrunk.script.ui.OTScriptObject"
              viewClass="org.concord.otrunk.script.ui.OTScriptObjectView"/>
            <OTViewEntry local_id="mw-view" objectClass="org.concord.otrunkmw.OTModelerPage"
              viewClass="org.concord.otrunkmw.OTModelerPageView"/>
            <OTViewEntry objectClass="org.concord.otrunk.OTIncludeRootObject"
              viewClass="org.concord.otrunk.OTIncludeRootObjectView"/>
            <OTViewEntry local_id="moz-swing-view"
              objectClass="org.concord.otrunk.browser.mozswing.OTMozSwing"
              viewClass="org.concord.otrunk.browser.mozswing.OTMozSwingView"/>
            <OTViewEntry local_id="mode-switcher" objectClass="org.concord.otrunk.ui.OTModeSwitcher"
              viewClass="org.concord.otrunk.ui.swing.OTModeSwitcherBypassView"/>
            <OTViewEntry objectClass="org.concord.otrunk.ui.OTImage"
              viewClass="org.concord.otrunk.ui.swing.OTImageView"/>
            <OTViewEntry objectClass="org.concord.otrunk.ui.OTModeSwitcher"
              viewClass="org.concord.otrunk.ui.swing.OTModeSwitcherView"/>
            <OTViewEntry local_id="snapshot_button_view"
              objectClass="org.concord.otrunk.ui.snapshot.OTSnapshotButton"
              viewClass="org.concord.otrunk.ui.snapshot.OTSnapshotButtonView"/>
            <OTViewEntry local_id="snapshot-chooser-view"
              objectClass="org.concord.otrunk.ui.snapshot.OTSnapshotChooser"
              viewClass="org.concord.otrunk.ui.snapshot.OTSnapshotChooserView"/>
            <OTViewEntry objectClass="org.concord.otrunk.ui.snapshot.OTSnapshotAlbum"
              viewClass="org.concord.otrunk.ui.snapshot.OTSnapshotAlbumView"/>
            <OTViewEntry objectClass="org.concord.otrunk.ui.OTButton"
              viewClass="org.concord.otrunk.ui.swing.OTButtonView"/>
            <OTChoiceViewConfig local_id="choice-checkbox-view"
              objectClass="org.concord.otrunk.ui.OTChoiceMultiple"
              viewClass="org.concord.otrunk.ui.swing.OTChoiceCheckBoxView" useViewsAsChoices="true"/>
            <OTChoiceViewConfig local_id="choice-radio-view"
              objectClass="org.concord.otrunk.ui.OTChoice"
              viewClass="org.concord.otrunk.ui.swing.OTChoiceRadioButtonView"
              useViewsAsChoices="true"/>
            <OTViewEntry id="453a61b0-e18b-11dc-95ff-0800200c9a66"
              objectClass="org.concord.otrunk.ui.OTChoice"
              viewClass="org.concord.otrunk.ui.swing.OTChoiceComboBoxView"/>
            <OTViewEntry objectClass="org.concord.otrunk.ui.OTCardContainer"
              viewClass="org.concord.otrunk.ui.swing.OTCardContainerView"/>
            <OTViewEntry objectClass="org.concord.otrunk.ui.OTBorderContainer"
              viewClass="org.concord.otrunk.ui.swing.OTBorderContainerView"/>
            <OTViewEntry objectClass="org.concord.otrunk.ui.OTPlacementContainer"
              viewClass="org.concord.otrunk.ui.swing.OTPlacementContainerView"/>
            <OTViewEntry local_id="text-edit" objectClass="org.concord.otrunk.ui.OTText"
              viewClass="org.concord.otrunk.ui.swing.OTTextEditView"/>
            <OTViewEntry objectClass="org.concord.otrunk.ui.OTText"
              viewClass="org.concord.otrunk.ui.swing.OTTextView"/>
            <OTViewEntry local_id="data-collector-view"
              viewClass="org.concord.datagraph.state.OTDataCollectorView"
              objectClass="org.concord.datagraph.state.OTDataCollector"/>
            <OTViewEntry viewClass="org.concord.datagraph.state.OTDataGraphView"
              objectClass="org.concord.datagraph.state.OTDataGraph"/>
            <OTViewEntry viewClass="org.concord.data.state.OTDataFieldView"
              objectClass="org.concord.data.state.OTDataField"/>
            <OTViewEntry local_id="drawing-view"
              viewClass="org.concord.datagraph.state.OTDataDrawingToolView"
              objectClass="org.concord.graph.util.state.OTDrawingTool"/>
            <OTViewEntry viewClass="org.concord.datagraph.state.OTMultiDataGraphView"
              objectClass="org.concord.datagraph.state.OTMultiDataGraph"/>
            <OTViewEntry local_id="data-table-view" objectClass="org.concord.data.state.OTDataTable"
              viewClass="org.concord.data.state.OTDataTableView"/>
            <OTViewEntry local_id="netlogo-view" viewClass="org.concord.otrunknl4.OTNLogoModelView"
              objectClass="org.concord.otrunknl4.OTNLogoModel"/>
            <OTViewEntry local_id="sound-player-view"
              objectClass="org.concord.otrunk.ui.OTSoundPlayer"
              viewClass="org.concord.otrunk.ui.swing.OTSoundPlayerView"/>
            <OTDocumentViewConfig local_id="compound-doc-view"
              objectClass="org.concord.otrunk.view.document.OTCompoundDoc"
              viewClass="org.concord.otrunk.view.document.OTDocumentView">
              <cssBlocks>
                <OTCssText
                  cssText="                 body {        font-size: 18;        FONT-STYLE: normal;        FONT-FAMILY: Verdana, Arial;        FONT-VARIANT: normal;       TEXT-DECORATION: none     }"
                />
              </cssBlocks>
            </OTDocumentViewConfig>
            <OTViewEntry objectClass="org.concord.graph.util.state.OTDrawingTool2"
              viewClass="org.concord.datagraph.state.OTDataDrawingToolView"/>
            <OTViewEntry local_id="menu-horizontal-circle"
              objectClass="org.concord.otrunk.udl3.OTUDLMenu"
              viewClass="org.concord.otrunk.udl.ui.OTUDLMenuPageView"/>
            <OTViewEntry objectClass="org.concord.otrunk.ui.OTBorderContainer"
              viewClass="org.concord.otrunk.ui.swing.OTBorderContainerView"/>
          </views>
        </OTViewBundle>
        <OTScriptEngineBundle>
          <engines>
            <OTScriptEngineEntry objectClass="org.concord.otrunk.script.js.OTJavascript"
              engineClass="org.concord.otrunk.script.js.OTJavascriptEngine"/>
            <OTScriptEngineEntry objectClass="org.concord.otrunk.script.jruby.OTJRuby"
              engineClass="org.concord.otrunk.script.jruby.OTJRubyEngine"/>
          </engines>
        </OTScriptEngineBundle>
        <OTSharingBundle>
          <sharedObjects>
            <object refid="b9f16067-204c-11dd-b9fc-a3ab42a2d8df"/>
            <object refid="afb9fbe3-21ed-11dd-a687-771073841843"/>
          </sharedObjects>
        </OTSharingBundle>
        <OTInterfaceManager>
          <deviceConfigs>
            <OTDeviceConfig configString="none" deviceId="10"/>
          </deviceConfigs>
        </OTInterfaceManager>
      </bundles>
      <root>
        <OTModeSwitcher>
          <otObject>
            <OTBorderContainer>
              <center>
                <OTCardContainer local_id="section-1-card-container" contentsMayScroll="true"
                  loadViewOnlyOnDemand="true">
                  <cards>
                    <OTCompoundDoc local_id="page-1" name="1">
                      <bodyText>
                        The graph below shows the movement of an object at several points in time.
                        <br/>
                        Can you make the same graph using a Motion Probe and your body?
                        <br/>
                        <table width="900" cellspacing="20" border="0">
                          <tr>
                            <td width="600">
                              <object refid="b9f16067-204c-11dd-b9fc-a3ab42a2d8df"/>
                            </td>
                            <td>
                              What do you need to remember to make another graph like this one?
                              <br/>
                              <br/>
                              Any data point labels you put on this graph will also appear in the 
                              table below.
                              <br/>
                              <br/>
                            </td>
                          </tr>
                        </table>
                        <br/>
                        <table width="900" cellspacing="20" border="0">
                          <tr>
                            <td width="600">
                              <object refid="822fe487-21ef-11dd-8da8-97905ebedd82"/>
                            </td>
                            <td>On the next page you won't be able to see this graph but you will be 
                              able to see any data in this table.</td>
                          </tr>
                        </table>
                        <br/>
                      </bodyText>
                      <documentRefs>
                        <OTDataTable id="822fe487-21ef-11dd-8da8-97905ebedd82" name="Data table"
                          showLastRowForAddingNew="true">
                          <dataStore>
                            <OTDataCollectorDataStore dataType="0">
                              <dataCollector>
                                <object refid="b9f16067-204c-11dd-b9fc-a3ab42a2d8df"/>
                              </dataCollector>
                            </OTDataCollectorDataStore>
                          </dataStore>
                        </OTDataTable>
                      </documentRefs>
                    </OTCompoundDoc>
                    <OTCompoundDoc local_id="page-2" name="2">
                      <bodyText>
                        Here's the data point label table from the first page:
                        <br/>
                        <table width="900" cellspacing="20" border="0">
                          <tr>
                            <td width="600">
                              <object refid="822fe487-21ef-11dd-8da8-97905ebedd82"/>
                            </td>
                            <td>Use the data in this table to help you make a distance/time graph below
                              that is as close as you can make it to the original graph on the previous page.</td>
                          </tr>
                        </table>
                        <table width="900" cellspacing="20" border="0">
                          <tr>
                            <td width="600">
                              <object refid="afb9fbe3-21ed-11dd-a687-771073841843"/>
                            </td>
                            <td>Use the motion probe to make a graph like the one in the previous page.</td>
                          </tr>
                        </table>
                        When you are ready go to the next page to compare the two graphs.
                        <br/>
                      </bodyText>
                      <documentRefs>
                        <OTDataCollector id="afb9fbe3-21ed-11dd-a687-771073841843"
                          name="SensorMotion1" title="Motion Sensor Graph" autoScaleEnabled="true"
                          multipleGraphableEnabled="false">
                          <source>
                            <OTDataGraphable name="Sensor" connectPoints="true" yColumn="1"
                              drawMarks="false" color="255" xColumn="0" lineWidth="2.0">
                              <dataProducer>
                                <OTSensorDataProxy
                                  id="afb9fbe3-21ed-11dd-a687-771073841843/source/dataProducer"
                                  name="dataproducer">
                                  <request>
                                    <OTExperimentRequest period="0.1">
                                      <sensorRequests>
                                        <OTSensorRequest stepSize="0.1" type="13" unit="m" port="0"
                                          requiredMax="4.0" displayPrecision="-2" requiredMin="-4.0"
                                        />
                                      </sensorRequests>
                                    </OTExperimentRequest>
                                  </request>
                                </OTSensorDataProxy>
                              </dataProducer>
                              <dataStore>
                                <OTDataStore
                                  id="afb9fbe3-21ed-11dd-a687-771073841843/source/dataStore"
                                  dt="0.1" numberChannels="1">
                                  <channelDescriptions>
                                    <OTDataChannelDescription name="dt" precision="2"
                                      numericData="true"/>
                                    <OTDataChannelDescription name="" unit="m" precision="-2"
                                      numericData="true"/>
                                  </channelDescriptions>
                                </OTDataStore>
                              </dataStore>
                            </OTDataGraphable>
                          </source>
                          <xDataAxis>
                            <OTDataAxis max="20.0" units="s" min="0.0" label="Time"/>
                          </xDataAxis>
                          <yDataAxis>
                            <OTDataAxis max="3.25" units="m" min="-0.0" label="Distance"/>
                          </yDataAxis>
                        </OTDataCollector>
                      </documentRefs>
                    </OTCompoundDoc>
                    <OTCompoundDoc local_id="page-3" name="3">
                      <bodyText>
                        How close did you get to the original graph with your motion graph?
                        <br/>
                        <table cellspacing="20" width="900" border="0">
                          <tr>
                            <td width="700">
                              <object refid="852ea1d9-21f6-11dd-8da8-97905ebedd82"/>
                            </td>
                            <td> </td>
                          </tr>
                        </table>
                        <br/>
                      </bodyText>
                      <documentRefs>
                        <OTDataCollector id="852ea1d9-21f6-11dd-8da8-97905ebedd82" name="Data graph">
                          <xDataAxis>
                            <OTDataAxis max="20.0" units="s" min="0.0" label="Time"/>
                          </xDataAxis>
                          <yDataAxis>
                            <OTDataAxis max="3.25" units="m" min="-0.0" label="Distance"/>
                          </yDataAxis>
                          <graphables>
                            <OTDataGraphable name="Object Graph" connectPoints="true"
                              controllable="true" yColumn="1" drawMarks="true" color="16711680"
                              xColumn="0" lineWidth="2.0" locked="true">
                              <dataStore>
                                <object refid="${datastore_01}"/>
                              </dataStore>
                            </OTDataGraphable>
                            <OTDataGraphable name="Sensor Graph" connectPoints="true" yColumn="1"
                              drawMarks="false" color="255" xColumn="0" lineWidth="2.0"
                              locked="true">
                              <dataProducer>
                                <object
                                  refid="afb9fbe3-21ed-11dd-a687-771073841843/source/dataProducer"/>
                              </dataProducer>
                              <dataStore>
                                <object
                                  refid="afb9fbe3-21ed-11dd-a687-771073841843/source/dataStore"/>
                              </dataStore>
                            </OTDataGraphable>
                          </graphables>
                          <source> </source>
                        </OTDataCollector>
                      </documentRefs>
                    </OTCompoundDoc>
                  </cards>
                  <currentCard>
                    <object refid="${page-1}"/>
                  </currentCard>
                  <viewedCards> </viewedCards>
                </OTCardContainer>
              </center>
              <south>
                <OTCompoundDoc showEditBar="false">
                  <bodyText>
                    <div align="center">
                      <table>
                        <tr>
                          <td>
                            <object refid="${section-1-menu}"/>
                          </td>
                        </tr>
                      </table>
                    </div>
                  </bodyText>
                </OTCompoundDoc>
              </south>
            </OTBorderContainer>
          </otObject>
        </OTModeSwitcher>
      </root>
      <library>
        <OTUDLMenu local_id="section-1-menu">
          <cardContainer>
            <object refid="${section-1-card-container}"/>
          </cardContainer>
          <menuRule>
            <object refid="${page-rule}"/>
          </menuRule>
        </OTUDLMenu>
        <OTUDLMenuRule local_id="page-rule" jumpToViewedCard="true" stepAhead="true"/>
        <OTDataCollector id="b9f16067-204c-11dd-b9fc-a3ab42a2d8df" name="ObjectMotion1">
          <source>
            <OTDataGraphable name="Object Graph" connectPoints="true" controllable="false"
              yColumn="1" drawMarks="true" color="16711680" xColumn="0" lineWidth="2.0">
              <dataStore>
                <OTDataStore local_id="datastore_01" numberChannels="2">
                  <values>
                    <float>0.0</float>
                    <float>0.5</float>
                    <float>1.0</float>
                    <float>0.7</float>
                    <float>2.0</float>
                    <float>0.9</float>
                    <float>3.0</float>
                    <float>1.1</float>
                    <float>4.0</float>
                    <float>1.3</float>
                    <float>5.0</float>
                    <float>1.5</float>
                    <float>6.0</float>
                    <float>1.7</float>
                    <float>7.0</float>
                    <float>1.9</float>
                    <float>8.0</float>
                    <float>2.1</float>
                    <float>9.0</float>
                    <float>2.3</float>
                  </values>
                </OTDataStore>
              </dataStore>
            </OTDataGraphable>
          </source>
          <xDataAxis>
            <OTDataAxis local_id="standard_x_axis" max="20.0" units="s" min="0.0" label="Time"/>
          </xDataAxis>
          <yDataAxis>
            <OTDataAxis local_id="standard_y_axis" max="3.25" units="m" min="-0.0" label="Distance"
            />
          </yDataAxis>
        </OTDataCollector>
        <OTDataFilterScript local_id="datafilter_01">
          <description>
            <OTDataStoreFilterDescription operation="custom script"/>
          </description>
          <filterScript>
            <object refid="${script_02}"/>
          </filterScript>
          <inputDataStore>
            <object refid="${datastore_01}"/>
          </inputDataStore>
        </OTDataFilterScript>
        <OTJavascript local_id="script_01">
          <script>importClass(Packages.java.lang.System);
              importClass(Packages.java.lang.Float);
              /** 
              * This function returns the y value of the filter 
              */ 
              function filterYValue(x, y) { 
                return y + 1;
                //return y + 10; 
                // original y value + 10 
                //return y - y/2; 
              }</script>
        </OTJavascript>
        <OTJRuby local_id="script_02">
          <script># 
              # This function returns the y value of the filter 
              # 
              require 'java' 
              def self.filterYValue(x, y) 
              y + 1 
              end</script>
        </OTJRuby>
        <OTScriptObject local_id="script_03">
          <variables>
            <OTScriptVariable name="datastore_02"/>
            <OTScriptVariable name="displayText">
              <reference>
                <object refid="${script_03_text_object}"/>
              </reference>
            </OTScriptVariable>
          </variables>
          <script>
            <OTJRuby>
              <script># 
                  # This is intended to subtract 0.25 from the Y values of datastore_02 ... someday 
                  # The variables passed in are referenced in JRuby as global variables. 
                  # That's why they are prefixed with the '$' character below.
                  #
                  require 'java' 
                  def self.init 
                    require 'rbconfig'
                    display = "" 
                    display += "Ruby version: JRuby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE} [i386-jruby#{JRUBY_VERSION}]" 
                    display += ",platform: Java, version #{java.lang.System.getProperty('java.version')}" + "\n\n" 
                    display += "self.methods: " + self.methods.join(', ') + "\n\n" 
                    display += "$datastore_02.inspect: " + $datastore_02.inspect + "\n\n" 
                    display += "getNumberChannels: " + $datastore_02.getNumberChannels.to_s + "\n\n" 
                    display += "getValues.get(0): " + $datastore_02.getValues.get(0).to_s + "\n\n" 
                    display += "getValues.get(1): " + $datastore_02.getValues.get(1).to_s + "\n\n"
                    display += "getValues.set(1, java.lang.Float.new(0.75)) \n"
                    $datastore_02.getValues.set(1, java.lang.Float.new(0.75))
                    $displayText.setText(display) # puts self.methods.join(', ') 
                  end</script>
            </OTJRuby>
          </script>
        </OTScriptObject>
        <OTText local_id="script_03_text_object"/>
      </library>
    </OTSystem>
  </objects>
</otrunk>
