Worked on XML reader to read a given race.xml in the format for the AC35. Added the ability to read the course limit and race settings #Pair[jjg64, cbt24] #Story[782]

main
Joseph Gardner 9 years ago
parent 9e3ca68df8
commit 0d0b9e143f

@ -0,0 +1,124 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Palette2">
<group name="Swing">
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
</item>
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
</item>
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.png" removable="false" auto-create-binding="false" can-attach-label="true">
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
</item>
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
<initial-values>
<property name="text" value="Button" />
</initial-values>
</item>
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="RadioButton" />
</initial-values>
</item>
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="CheckBox" />
</initial-values>
</item>
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
<initial-values>
<property name="text" value="Label" />
</initial-values>
</item>
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
</item>
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
</item>
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
<preferred-size width="-1" height="20" />
</default-constraints>
</item>
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
</item>
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
</item>
</group>
</component>
</project>

@ -13,127 +13,153 @@
<component name="CreatePatchCommitExecutor">
<option name="PATCH_PATH" value="" />
</component>
<component name="DockManager">
<window id="1">
<content type="file-editors">
<state>
<leaf>
<file leaf-file-name="RaceXMLReader.java" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/RaceXMLReader.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="588">
<caret line="101" column="7" lean-forward="true" selection-start-line="101" selection-start-column="7" selection-end-line="101" selection-end-column="7" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="RaceXMLTest.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/test/java/seng302/Model/RaceXMLTest.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-167">
<caret line="40" column="58" lean-forward="true" selection-start-line="40" selection-start-column="58" selection-end-line="40" selection-end-column="58" />
<folding />
</state>
</provider>
</entry>
</file>
</leaf>
</state>
</content>
</window>
</component>
<component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
<component name="FavoritesManager">
<favorites_list name="visualiser" />
</component>
<component name="FileEditorManager">
<leaf>
<file leaf-file-name="StreamedRace.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Mock/StreamedRace.java">
<file leaf-file-name="StreamedRaceTest.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/test/java/seng302/Mock/StreamedRaceTest.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="306">
<caret line="23" column="0" lean-forward="true" selection-start-line="23" selection-start-column="0" selection-end-line="23" selection-end-column="0" />
<state relative-caret-position="188">
<caret line="21" column="0" lean-forward="false" selection-start-line="21" selection-start-column="0" selection-end-line="21" selection-end-column="0" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#778#779#0" expanded="true" />
<element signature="e#806#807#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="ConstantVelocityRace.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Model/ConstantVelocityRace.java">
<file leaf-file-name="StreamedCourseXMLReader.java" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Mock/StreamedCourseXMLReader.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-1487">
<caret line="66" column="70" lean-forward="true" selection-start-line="66" selection-start-column="70" selection-end-line="66" selection-end-column="70" />
<folding />
<state relative-caret-position="191">
<caret line="75" column="41" lean-forward="false" selection-start-line="75" selection-start-column="41" selection-end-line="75" selection-end-column="41" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#4826#4827#0" expanded="true" />
<element signature="e#4865#4866#0" expanded="true" />
<element signature="e#4903#4904#0" expanded="true" />
<element signature="e#4939#4940#0" expanded="true" />
<element signature="e#4969#4970#0" expanded="true" />
<element signature="e#4998#4999#0" expanded="true" />
<element signature="e#5033#5034#0" expanded="true" />
<element signature="e#5064#5065#0" expanded="true" />
<element signature="e#5099#5100#0" expanded="true" />
<element signature="e#5130#5131#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="Race.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Model/Race.java">
<file leaf-file-name="BoatInRace.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Model/BoatInRace.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-3683">
<caret line="27" column="36" lean-forward="true" selection-start-line="27" selection-start-column="36" selection-end-line="27" selection-end-column="36" />
<state relative-caret-position="144">
<caret line="17" column="13" lean-forward="false" selection-start-line="17" selection-start-column="13" selection-end-line="17" selection-end-column="13" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="ConstantVelocityRaceTest.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/test/java/seng302/Model/ConstantVelocityRaceTest.java">
<file leaf-file-name="MarkerTest.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/test/java/seng302/Model/MarkerTest.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="504">
<caret line="91" column="0" lean-forward="true" selection-start-line="91" selection-start-column="0" selection-end-line="91" selection-end-column="0" />
<state relative-caret-position="126">
<caret line="10" column="13" lean-forward="false" selection-start-line="10" selection-start-column="13" selection-end-line="10" selection-end-column="13" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="RaceDataSource.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/RaceDataSource.java">
<file leaf-file-name="Marker.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Model/Marker.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="180">
<caret line="13" column="38" lean-forward="true" selection-start-line="13" selection-start-column="38" selection-end-line="13" selection-end-column="38" />
<state relative-caret-position="126">
<caret line="10" column="21" lean-forward="false" selection-start-line="10" selection-start-column="21" selection-end-line="10" selection-end-column="21" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="StreamedCourse.java" pinned="false" current-in-tab="true">
<file leaf-file-name="StreamedCourse.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Mock/StreamedCourse.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="414">
<caret line="23" column="0" lean-forward="true" selection-start-line="23" selection-start-column="0" selection-end-line="23" selection-end-column="0" />
<state relative-caret-position="205">
<caret line="16" column="53" lean-forward="false" selection-start-line="16" selection-start-column="53" selection-end-line="16" selection-end-column="53" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#505#506#0" expanded="true" />
<element signature="e#547#548#0" expanded="true" />
<element signature="e#589#590#0" expanded="true" />
<element signature="e#616#617#0" expanded="true" />
<element signature="e#650#651#0" expanded="true" />
<element signature="e#677#678#0" expanded="true" />
<element signature="e#725#726#0" expanded="true" />
<element signature="e#752#753#0" expanded="true" />
<element signature="e#790#791#0" expanded="true" />
<element signature="e#817#818#0" expanded="true" />
<element signature="e#861#862#0" expanded="true" />
<element signature="e#888#889#0" expanded="true" />
<element signature="e#936#937#0" expanded="true" />
<element signature="e#963#964#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="GPSCoordinate.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/GPSCoordinate.java">
<file leaf-file-name="ResizableRaceCanvas.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Model/ResizableRaceCanvas.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-108">
<caret line="6" column="13" lean-forward="false" selection-start-line="6" selection-start-column="13" selection-end-line="6" selection-end-column="13" />
<state relative-caret-position="-3834">
<caret line="22" column="18" lean-forward="false" selection-start-line="22" selection-start-column="18" selection-end-line="22" selection-end-column="18" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="RaceXMLReader.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/RaceXMLReader.java">
<file leaf-file-name="RaceDataSource.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/RaceDataSource.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="252">
<caret line="25" column="53" lean-forward="true" selection-start-line="25" selection-start-column="53" selection-end-line="25" selection-end-column="53" />
<state relative-caret-position="216">
<caret line="15" column="19" lean-forward="true" selection-start-line="15" selection-start-column="19" selection-end-line="15" selection-end-column="19" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="RegattaXMLReader.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Mock/RegattaXMLReader.java">
<file leaf-file-name="RaceController.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Controllers/RaceController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-497">
<caret line="13" column="13" lean-forward="false" selection-start-line="13" selection-start-column="13" selection-end-line="13" selection-end-column="13" />
<state relative-caret-position="188">
<caret line="135" column="41" lean-forward="false" selection-start-line="135" selection-start-column="41" selection-end-line="135" selection-end-column="41" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="Regatta.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Mock/Regatta.java">
<file leaf-file-name="RaceClock.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Model/RaceClock.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="270">
<caret line="15" column="0" lean-forward="false" selection-start-line="15" selection-start-column="0" selection-end-line="15" selection-end-column="0" />
<state relative-caret-position="431">
<caret line="35" column="29" lean-forward="false" selection-start-line="35" selection-start-column="29" selection-end-line="35" selection-end-column="29" />
<folding />
</state>
</provider>
@ -148,6 +174,11 @@
</list>
</option>
</component>
<component name="FindInProjectRecents">
<findStrings>
<find>legs</find>
</findStrings>
</component>
<component name="GradleLocalSettings">
<option name="externalProjectsViewState">
<projects_view />
@ -156,16 +187,20 @@
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/src/test/resources/mockXML/raceXML/raceTest.xml" />
<option value="$PROJECT_DIR$/src/test/java/seng302/Mock/BoatsXMLTest.java" />
<option value="$PROJECT_DIR$/src/main/java/seng302/Mock/StreamedBoat.java" />
<option value="$PROJECT_DIR$/src/main/java/seng302/Model/Marker.java" />
<option value="$PROJECT_DIR$/src/main/java/seng302/Mock/CompoundMark.java" />
<option value="$PROJECT_DIR$/src/main/java/seng302/Model/Race.java" />
<option value="$PROJECT_DIR$/src/main/java/seng302/Mock/StreamedRace.java" />
<option value="$PROJECT_DIR$/src/test/java/seng302/Mock/StreamedRaceTest.java" />
<option value="$PROJECT_DIR$/src/main/java/seng302/Mock/Regatta.java" />
<option value="$PROJECT_DIR$/src/test/java/seng302/Mock/RegattaXMLTest.java" />
<option value="$PROJECT_DIR$/src/test/java/seng302/Mock/StreamedRaceTest.java" />
<option value="$PROJECT_DIR$/src/test/resources/mockXML/raceXML/raceTest.xml" />
<option value="$PROJECT_DIR$/src/main/java/seng302/Mock/StreamedRaceXMLReader.java" />
<option value="$PROJECT_DIR$/src/main/java/seng302/Mock/StreamedCourse.java" />
<option value="$PROJECT_DIR$/src/main/java/seng302/Model/Marker.java" />
<option value="$PROJECT_DIR$/src/main/java/seng302/Model/RaceClock.java" />
<option value="$PROJECT_DIR$/src/main/java/seng302/Mock/StreamedCourseXMLReader.java" />
</list>
</option>
</component>
@ -228,6 +263,66 @@
<option name="myItemId" value="resources" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="raceXML" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="visualiser" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="visualiser" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="src" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="test" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="resources" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="mockXML" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="visualiser" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="visualiser" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="src" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="test" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="resources" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="mockXML" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="raceXML" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
@ -393,6 +488,36 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="visualiser" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="visualiser" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="src" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="main" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="java" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="seng302" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="Controllers" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
</subPane>
</pane>
<pane id="Scope" />
@ -413,7 +538,7 @@
<recent name="$PROJECT_DIR$/src/test/resources" />
</key>
</component>
<component name="RunManager" selected="JUnit.RegattaXMLTest">
<component name="RunManager" selected="JUnit.StreamedRaceTest">
<configuration default="false" name="RegattaXMLTest" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea">
<pattern>
@ -440,6 +565,32 @@
<patterns />
<method />
</configuration>
<configuration default="false" name="StreamedRaceTest" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea">
<pattern>
<option name="PATTERN" value="seng302.Mock.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<module name="visualiser" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="PACKAGE_NAME" value="seng302.Mock" />
<option name="MAIN_CLASS_NAME" value="seng302.Mock.StreamedRaceTest" />
<option name="METHOD_NAME" />
<option name="TEST_OBJECT" value="class" />
<option name="VM_PARAMETERS" value="-ea" />
<option name="PARAMETERS" />
<option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<option name="TEST_SEARCH_SCOPE">
<value defaultName="singleModule" />
</option>
<envs />
<patterns />
<method />
</configuration>
<configuration default="true" type="#org.jetbrains.idea.devkit.run.PluginConfigurationType" factoryName="Plugin">
<module name="" />
<option name="VM_PARAMETERS" value="-Xmx512m -Xms256m -XX:MaxPermSize=250m -ea" />
@ -813,12 +964,14 @@
<configuration default="true" type="osgi.bnd.run" factoryName="Test Launcher (JUnit)">
<method />
</configuration>
<list size="1">
<list size="2">
<item index="0" class="java.lang.String" itemvalue="JUnit.RegattaXMLTest" />
<item index="1" class="java.lang.String" itemvalue="JUnit.StreamedRaceTest" />
</list>
<recent_temporary>
<list size="1">
<item index="0" class="java.lang.String" itemvalue="JUnit.RegattaXMLTest" />
<list size="2">
<item index="0" class="java.lang.String" itemvalue="JUnit.StreamedRaceTest" />
<item index="1" class="java.lang.String" itemvalue="JUnit.RegattaXMLTest" />
</list>
</recent_temporary>
</component>
@ -832,17 +985,44 @@
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1492733921956</updated>
<workItem from="1492733923212" duration="4152000" />
<workItem from="1492733923212" duration="15127000" />
</task>
<servers />
</component>
<component name="TestHistory">
<history-entry file="RegattaXMLTest - 2017.04.21 at 12h 21m 41s.xml">
<configuration name="RegattaXMLTest" configurationId="JUnit" />
<history-entry file="StreamedRaceTest - 2017.04.21 at 15h 47m 58s.xml">
<configuration name="StreamedRaceTest" configurationId="JUnit" />
</history-entry>
<history-entry file="StreamedRaceTest - 2017.04.21 at 15h 48m 27s.xml">
<configuration name="StreamedRaceTest" configurationId="JUnit" />
</history-entry>
<history-entry file="StreamedRaceTest - 2017.04.21 at 15h 49m 38s.xml">
<configuration name="StreamedRaceTest" configurationId="JUnit" />
</history-entry>
<history-entry file="StreamedRaceTest - 2017.04.21 at 15h 51m 04s.xml">
<configuration name="StreamedRaceTest" configurationId="JUnit" />
</history-entry>
<history-entry file="StreamedRaceTest - 2017.04.21 at 15h 51m 21s.xml">
<configuration name="StreamedRaceTest" configurationId="JUnit" />
</history-entry>
<history-entry file="StreamedRaceTest - 2017.04.21 at 15h 52m 52s.xml">
<configuration name="StreamedRaceTest" configurationId="JUnit" />
</history-entry>
<history-entry file="StreamedRaceTest - 2017.04.21 at 15h 53m 34s.xml">
<configuration name="StreamedRaceTest" configurationId="JUnit" />
</history-entry>
<history-entry file="StreamedRaceTest - 2017.04.21 at 16h 00m 19s.xml">
<configuration name="StreamedRaceTest" configurationId="JUnit" />
</history-entry>
<history-entry file="StreamedRaceTest - 2017.04.21 at 16h 01m 44s.xml">
<configuration name="StreamedRaceTest" configurationId="JUnit" />
</history-entry>
<history-entry file="StreamedRaceTest - 2017.04.21 at 16h 02m 32s.xml">
<configuration name="StreamedRaceTest" configurationId="JUnit" />
</history-entry>
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="4152000" />
<option name="totallyTimeSpent" value="15127000" />
</component>
<component name="ToolWindowManager">
<frame x="0" y="0" width="1680" height="1023" extended-state="0" />
@ -857,7 +1037,7 @@
<window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="true" content_ui="tabs" />
<window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.32937366" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32937366" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Properties" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
@ -865,6 +1045,7 @@
<window_info id="Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.24970202" sideWeight="0.5" order="6" side_tool="false" content_ui="combo" />
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.32937366" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
<window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
@ -875,7 +1056,6 @@
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="9" side_tool="false" content_ui="combo" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
</layout>
</component>
@ -910,198 +1090,271 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Model/ResizableRaceCanvas.java">
<entry file="file://$PROJECT_DIR$/src/test/resources/mockXML/boatXML/boatTest.xml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="360">
<caret line="30" column="40" lean-forward="true" selection-start-line="30" selection-start-column="40" selection-end-line="30" selection-end-column="40" />
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/test/resources/mockXML/raceXML/raceTest.xml">
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Model/Boat.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="18">
<caret line="1" column="0" lean-forward="true" selection-start-line="1" selection-start-column="0" selection-end-line="1" selection-end-column="0" />
<state relative-caret-position="126">
<caret line="8" column="13" lean-forward="false" selection-start-line="8" selection-start-column="13" selection-end-line="8" selection-end-column="13" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/test/java/seng302/Mock/RegattaXMLTest.java">
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Mock/StreamedBoat.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="414">
<caret line="28" column="65" lean-forward="true" selection-start-line="28" selection-start-column="65" selection-end-line="28" selection-end-column="65" />
<state relative-caret-position="162">
<caret line="9" column="39" lean-forward="false" selection-start-line="9" selection-start-column="39" selection-end-line="9" selection-end-column="39" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/test/java/seng302/Mock/BoatsXMLTest.java">
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Mock/CompoundMark.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90">
<caret line="5" column="27" lean-forward="false" selection-start-line="5" selection-start-column="27" selection-end-line="5" selection-end-column="27" />
<state relative-caret-position="144">
<caret line="8" column="36" lean-forward="false" selection-start-line="8" selection-start-column="36" selection-end-line="8" selection-end-column="36" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/test/resources/mockXML/boatXML/boatTest.xml">
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Model/Race.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<state relative-caret-position="-3683">
<caret line="27" column="36" lean-forward="true" selection-start-line="27" selection-start-column="36" selection-end-line="27" selection-end-column="36" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Model/Boat.java">
<entry file="file://$PROJECT_DIR$/src/test/java/seng302/Model/ConstantVelocityRaceTest.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="126">
<caret line="8" column="13" lean-forward="false" selection-start-line="8" selection-start-column="13" selection-end-line="8" selection-end-column="13" />
<state relative-caret-position="504">
<caret line="91" column="0" lean-forward="true" selection-start-line="91" selection-start-column="0" selection-end-line="91" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Model/BoatInRace.java">
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Mock/Regatta.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="36">
<caret line="17" column="13" lean-forward="false" selection-start-line="17" selection-start-column="13" selection-end-line="17" selection-end-column="13" />
<state relative-caret-position="270">
<caret line="15" column="0" lean-forward="false" selection-start-line="15" selection-start-column="0" selection-end-line="15" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Mock/StreamedBoat.java">
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/GPSCoordinate.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="162">
<caret line="9" column="39" lean-forward="false" selection-start-line="9" selection-start-column="39" selection-end-line="9" selection-end-column="39" />
<state relative-caret-position="18">
<caret line="6" column="13" lean-forward="false" selection-start-line="6" selection-start-column="13" selection-end-line="6" selection-end-column="13" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Model/Marker.java">
<entry file="file://$PROJECT_DIR$/src/test/java/seng302/Model/RaceXMLTest.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="385">
<caret line="30" column="5" lean-forward="false" selection-start-line="30" selection-start-column="5" selection-end-line="30" selection-end-column="5" />
<state relative-caret-position="-167">
<caret line="40" column="58" lean-forward="true" selection-start-line="40" selection-start-column="58" selection-end-line="40" selection-end-column="58" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Mock/CompoundMark.java">
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Mock/RegattaXMLReader.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="144">
<caret line="8" column="36" lean-forward="false" selection-start-line="8" selection-start-column="36" selection-end-line="8" selection-end-column="36" />
<state relative-caret-position="-144">
<caret line="28" column="34" lean-forward="true" selection-start-line="28" selection-start-column="34" selection-end-line="28" selection-end-column="34" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/test/java/seng302/Mock/StreamedRaceTest.java">
<entry file="file://$PROJECT_DIR$/src/test/java/seng302/Mock/BoatsXMLTest.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="108">
<caret line="6" column="0" lean-forward="false" selection-start-line="6" selection-start-column="0" selection-end-line="6" selection-end-column="0" />
<state relative-caret-position="90">
<caret line="5" column="27" lean-forward="false" selection-start-line="5" selection-start-column="27" selection-end-line="5" selection-end-column="27" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/test/java/seng302/Model/RaceTest.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-1116">
<state relative-caret-position="-1451">
<caret line="16" column="13" lean-forward="false" selection-start-line="16" selection-start-column="13" selection-end-line="16" selection-end-column="13" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Model/Race.java">
<entry file="file://$PROJECT_DIR$/src/test/java/seng302/Mock/RegattaXMLTest.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-3683">
<caret line="27" column="36" lean-forward="true" selection-start-line="27" selection-start-column="36" selection-end-line="27" selection-end-column="36" />
<state relative-caret-position="187">
<caret line="18" column="88" lean-forward="false" selection-start-line="18" selection-start-column="88" selection-end-line="18" selection-end-column="88" />
<folding>
<element signature="e#644#645#0" expanded="true" />
<element signature="e#712#713#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/XMLReader.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="376">
<caret line="32" column="0" lean-forward="false" selection-start-line="32" selection-start-column="0" selection-end-line="32" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/test/java/seng302/Model/ConstantVelocityRaceTest.java">
<entry file="file://$PROJECT_DIR$/src/test/resources/mockXML/raceXML/raceTest.xml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="504">
<caret line="91" column="0" lean-forward="true" selection-start-line="91" selection-start-column="0" selection-end-line="91" selection-end-column="0" />
<state relative-caret-position="144">
<caret line="8" column="46" lean-forward="true" selection-start-line="8" selection-start-column="46" selection-end-line="8" selection-end-column="46" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Mock/StreamedRace.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="306">
<state relative-caret-position="414">
<caret line="23" column="0" lean-forward="true" selection-start-line="23" selection-start-column="0" selection-end-line="23" selection-end-column="0" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#778#779#0" expanded="true" />
<element signature="e#806#807#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/RaceXMLReader.java">
<entry file="file://$PROJECT_DIR$/src/test/java/seng302/Mock/StreamedRaceTest.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="188">
<caret line="21" column="0" lean-forward="false" selection-start-line="21" selection-start-column="0" selection-end-line="21" selection-end-column="0" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/test/java/seng302/Model/MarkerTest.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="126">
<caret line="10" column="13" lean-forward="false" selection-start-line="10" selection-start-column="13" selection-end-line="10" selection-end-column="13" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Model/ConstantVelocityRace.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="288">
<caret line="66" column="70" lean-forward="true" selection-start-line="66" selection-start-column="70" selection-end-line="66" selection-end-column="70" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Mock/StreamedCourse.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="252">
<caret line="25" column="53" lean-forward="true" selection-start-line="25" selection-start-column="53" selection-end-line="25" selection-end-column="53" />
<state relative-caret-position="205">
<caret line="16" column="53" lean-forward="false" selection-start-line="16" selection-start-column="53" selection-end-line="16" selection-end-column="53" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/RaceMap.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-299">
<caret line="5" column="13" lean-forward="false" selection-start-line="5" selection-start-column="13" selection-end-line="5" selection-end-column="13" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/RaceDataSource.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="180">
<caret line="13" column="38" lean-forward="true" selection-start-line="13" selection-start-column="38" selection-end-line="13" selection-end-column="38" />
<state relative-caret-position="216">
<caret line="15" column="19" lean-forward="true" selection-start-line="15" selection-start-column="19" selection-end-line="15" selection-end-column="19" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Mock/Regatta.java">
<entry file="file://$PROJECT_DIR$/src/test/resources/raceXML/bermuda_AC35.xml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="270">
<caret line="15" column="0" lean-forward="false" selection-start-line="15" selection-start-column="0" selection-end-line="15" selection-end-column="0" />
<state relative-caret-position="241">
<caret line="43" column="22" lean-forward="false" selection-start-line="43" selection-start-column="22" selection-end-line="43" selection-end-column="22" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Mock/RegattaXMLReader.java">
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Model/ResizableRaceCanvas.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-497">
<caret line="13" column="13" lean-forward="false" selection-start-line="13" selection-start-column="13" selection-end-line="13" selection-end-column="13" />
<state relative-caret-position="-3834">
<caret line="22" column="18" lean-forward="false" selection-start-line="22" selection-start-column="18" selection-end-line="22" selection-end-column="18" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/GPSCoordinate.java">
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Controllers/RaceController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-108">
<caret line="6" column="13" lean-forward="false" selection-start-line="6" selection-start-column="13" selection-end-line="6" selection-end-column="13" />
<state relative-caret-position="188">
<caret line="135" column="41" lean-forward="false" selection-start-line="135" selection-start-column="41" selection-end-line="135" selection-end-column="41" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Model/ConstantVelocityRace.java">
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Model/RaceClock.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-1487">
<caret line="66" column="70" lean-forward="true" selection-start-line="66" selection-start-column="70" selection-end-line="66" selection-end-column="70" />
<state relative-caret-position="431">
<caret line="35" column="29" lean-forward="false" selection-start-line="35" selection-start-column="29" selection-end-line="35" selection-end-column="29" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Mock/StreamedCourse.java">
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/RaceXMLReader.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="414">
<caret line="23" column="0" lean-forward="true" selection-start-line="23" selection-start-column="0" selection-end-line="23" selection-end-column="0" />
<state relative-caret-position="588">
<caret line="101" column="7" lean-forward="true" selection-start-line="101" selection-start-column="7" selection-end-line="101" selection-end-column="7" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Model/Leg.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="126">
<caret line="9" column="13" lean-forward="false" selection-start-line="9" selection-start-column="13" selection-end-line="9" selection-end-column="13" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Model/Marker.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="126">
<caret line="10" column="21" lean-forward="false" selection-start-line="10" selection-start-column="21" selection-end-line="10" selection-end-column="21" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Model/BoatInRace.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="144">
<caret line="17" column="13" lean-forward="false" selection-start-line="17" selection-start-column="13" selection-end-line="17" selection-end-column="13" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Mock/StreamedCourseXMLReader.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="191">
<caret line="75" column="41" lean-forward="false" selection-start-line="75" selection-start-column="41" selection-end-line="75" selection-end-column="41" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#505#506#0" expanded="true" />
<element signature="e#547#548#0" expanded="true" />
<element signature="e#589#590#0" expanded="true" />
<element signature="e#616#617#0" expanded="true" />
<element signature="e#650#651#0" expanded="true" />
<element signature="e#677#678#0" expanded="true" />
<element signature="e#725#726#0" expanded="true" />
<element signature="e#752#753#0" expanded="true" />
<element signature="e#790#791#0" expanded="true" />
<element signature="e#817#818#0" expanded="true" />
<element signature="e#861#862#0" expanded="true" />
<element signature="e#888#889#0" expanded="true" />
<element signature="e#936#937#0" expanded="true" />
<element signature="e#963#964#0" expanded="true" />
<element signature="e#4826#4827#0" expanded="true" />
<element signature="e#4865#4866#0" expanded="true" />
<element signature="e#4903#4904#0" expanded="true" />
<element signature="e#4939#4940#0" expanded="true" />
<element signature="e#4969#4970#0" expanded="true" />
<element signature="e#4998#4999#0" expanded="true" />
<element signature="e#5033#5034#0" expanded="true" />
<element signature="e#5064#5065#0" expanded="true" />
<element signature="e#5099#5100#0" expanded="true" />
<element signature="e#5130#5131#0" expanded="true" />
</folding>
</state>
</provider>

@ -4,22 +4,20 @@ import seng302.GPSCoordinate;
import seng302.Model.BoatInRace;
import seng302.Model.Leg;
import seng302.RaceDataSource;
import seng302.XMLReader;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.List;
/**
* Created by jjg64 on 21/04/17.
*/
public class StreamedCourse implements RaceDataSource {
XMLReader xmlReader;
StreamedCourseXMLReader streamedCourseXMLReader;
List<GPSCoordinate> boundary = new ArrayList<>();
public StreamedCourse(XMLReader xmlReader) {
this.xmlReader = xmlReader;
public StreamedCourse(StreamedCourseXMLReader streamedCourseXMLReader) {
this.streamedCourseXMLReader = streamedCourseXMLReader;
}
public List<BoatInRace> getBoats() {
@ -47,4 +45,5 @@ public class StreamedCourse implements RaceDataSource {
}
}

@ -0,0 +1,149 @@
package seng302.Mock;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.xml.sax.SAXException;
import seng302.GPSCoordinate;
import seng302.XMLReader;
import javax.xml.parsers.ParserConfigurationException;
import java.io.IOException;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* Created by jjg64 on 21/04/17.
*/
public class StreamedCourseXMLReader extends XMLReader {
private static double COORDINATEPADDING = 0.0005;
private GPSCoordinate mapTopLeft, mapBottomRight;
private List<GPSCoordinate> boundary = new ArrayList<>();
Date creationTimeDate;
Date raceStartTime;
int raceID;
String raceType;
boolean postpone;
/**
* Constructor for Streamed Race XML
* @param filePath path of the file
* @throws IOException error
* @throws SAXException error
* @throws ParserConfigurationException error
*/
public StreamedCourseXMLReader(String filePath) throws IOException, SAXException, ParserConfigurationException, ParseException {
this(filePath, true);
}
/**
* Constructor for Streamed Race XML
* @param filePath file path to read
* @param read whether or not to read and store the files straight away.
* @throws IOException error
* @throws SAXException error
* @throws ParserConfigurationException error
*/
public StreamedCourseXMLReader(String filePath, boolean read) throws IOException, SAXException, ParserConfigurationException, ParseException {
super(filePath);
if (read) {
read();
}
}
private void read() throws ParseException {
readRace();
readParticipants();
readCourse();
}
private void readRace() throws ParseException {
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
Element settings = (Element) doc.getElementsByTagName("Race").item(0);
raceID = Integer.parseInt(getTextValueOfNode(settings, "RaceID"));
raceType = getTextValueOfNode(settings, "RaceType");
creationTimeDate = dateFormat.parse(getTextValueOfNode(settings, "CreationTimeDate"));
NamedNodeMap raceTimeTag = doc.getElementsByTagName("RaceStartTime").item(0).getAttributes();
raceStartTime = dateFormat.parse(raceTimeTag.getNamedItem("Time").getTextContent());
postpone = Boolean.parseBoolean(raceTimeTag.getNamedItem("Postpone").getTextContent());
}
private void readParticipants() {
//TODO Modify BoatInRace to take in a sourceID
//TODO Produce list of BoatInRace
}
private void readCourse() {
readCompoundMarks();
readCompoundMarkSequence();
readCourseLimit();
}
private void readCompoundMarks() {
// TODO Produce map of sequence id to compound mark nodes (in xml)
// TODO Populate list of markers
}
private void readCompoundMarkSequence() {
// TODO Produce list of legs according to mark sequence ids
}
private void readCourseLimit() {
Element nCourseLimit = (Element) doc.getElementsByTagName("CourseLimit").item(0);
for(int i = 0; i < nCourseLimit.getChildNodes().getLength(); i++) {
Node limit = nCourseLimit.getChildNodes().item(i);
if (limit.getNodeName().equals("Limit")) {
double lat = Double.parseDouble(limit.getAttributes().getNamedItem("Lat").getTextContent());
double lon = Double.parseDouble(limit.getAttributes().getNamedItem("Lon").getTextContent());
boundary.add(new GPSCoordinate(lat, lon));
}
}
double maxLatitude = boundary.stream().max(Comparator.comparingDouble(GPSCoordinate::getLatitude)).get().getLatitude() + COORDINATEPADDING;
double maxLongitude = boundary.stream().max(Comparator.comparingDouble(GPSCoordinate::getLongitude)).get().getLongitude() + COORDINATEPADDING;
double minLatitude = boundary.stream().min(Comparator.comparingDouble(GPSCoordinate::getLatitude)).get().getLatitude() + COORDINATEPADDING;
double minLongitude = boundary.stream().min(Comparator.comparingDouble(GPSCoordinate::getLongitude)).get().getLongitude() + COORDINATEPADDING;
mapTopLeft = new GPSCoordinate(minLatitude, minLongitude);
mapBottomRight = new GPSCoordinate(maxLatitude, maxLongitude);
}
public List<GPSCoordinate> getBoundary() {
return boundary;
}
public GPSCoordinate getMapTopLeft() {
return mapTopLeft;
}
public GPSCoordinate getMapBottomRight() {
return mapBottomRight;
}
public Double getPadding() {
return COORDINATEPADDING;
}
public Date getCreationTimeDate() {
return creationTimeDate;
}
public Date getRaceStartTime() {
return raceStartTime;
}
public int getRaceID() {
return raceID;
}
public String getRaceType() {
return raceType;
}
public boolean isPostpone() {
return postpone;
}
}

@ -9,7 +9,6 @@ import java.awt.geom.Point2D;
* Created by esa46 on 29/03/17.
*/
public class Marker {
private GPSCoordinate averageGPSCoordinate;
private GPSCoordinate mark1;
private GPSCoordinate mark2;

@ -20,7 +20,7 @@ public class RaceClock {
private String timeZone;
private ZoneId zoneId;
public RaceClock(GPSCoordinate gpsCoordinate){
public RaceClock(GPSCoordinate gpsCoordinate) {
TimeZoneLookup timeZoneLookup = new TimeZoneLookup();
TimeZoneResult timeZoneResult = timeZoneLookup.getTimeZone(gpsCoordinate.getLatitude(), gpsCoordinate.getLongitude());
zoneId = ZoneId.of(timeZoneResult.getResult());
@ -33,7 +33,7 @@ public class RaceClock {
timeZone = timeZoneFormatter.format(zonedDateTime);
}
public void updateTime(){
public void updateTime() {
LocalDateTime localDateTime = LocalDateTime.now(zoneId);
ZonedDateTime zonedDateTime = localDateTime.atZone(zoneId);
time.setValue(dateTimeFormatter.format(zonedDateTime));

@ -16,7 +16,7 @@ public class RegattaXMLTest {
@Before
public void findFile(){
try {
regattaXMLReader = new RegattaXMLReader("mockXML/regattaXML/regattaTest.xml", false);
regattaXMLReader = new RegattaXMLReader("mockXML/regattaXML/regattaTest.xml");
} catch (Exception e) {
fail("Cannot find mockXML/regattaXML/regattaTest.xml in the resources folder");
}
@ -24,29 +24,19 @@ public class RegattaXMLTest {
@Test
public void makeRegattaTest() {
try {
regattaXMLReader = new RegattaXMLReader("mockXML/regattaXML/regattaTest.xml");
assertNotEquals(regattaXMLReader.getRegatta(), null);
} catch (Exception e) {
fail("Did not make a Regatta object");
}
assertNotEquals(regattaXMLReader.getRegatta(), null);
}
@Test
public void correctValuesTest() {
try {
regattaXMLReader = new RegattaXMLReader("mockXML/regattaXML/regattaTest.xml");
Regatta regatta = regattaXMLReader.getRegatta();
assertEquals(regatta.getRegattaID(), 3);
assertEquals(regatta.getRegattaName(), "New Zealand Test");
assertEquals(regatta.getCourseName(), "North Head");
assertEquals(regatta.getCentralLatitude(), -36.82791529, 0.00000001);
assertEquals(regatta.getCentralLongitude(), 174.81218919, 0.00000001);
assertEquals(regatta.getCentralAltitude(), 0.00, 0.00000001);
assertEquals(regatta.getUtcOffset(), 12.0, 0.001);
assertEquals(regatta.getMagneticVariation(), 14.1, 0.001);
} catch (Exception e) {
fail("Did not have the correct values");
}
Regatta regatta = regattaXMLReader.getRegatta();
assertEquals(regatta.getRegattaID(), 3);
assertEquals(regatta.getRegattaName(), "New Zealand Test");
assertEquals(regatta.getCourseName(), "North Head");
assertEquals(regatta.getCentralLatitude(), -36.82791529, 0.00000001);
assertEquals(regatta.getCentralLongitude(), 174.81218919, 0.00000001);
assertEquals(regatta.getCentralAltitude(), 0.00, 0.00000001);
assertEquals(regatta.getUtcOffset(), 12.0, 0.001);
assertEquals(regatta.getMagneticVariation(), 14.1, 0.001);
}
}

@ -1,8 +1,63 @@
package seng302.Mock;
import org.junit.Before;
import org.junit.Test;
import seng302.GPSCoordinate;
import java.util.List;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
/**
* Created by jjg64 on 21/04/17.
* Tests only work on the current version of mockXML/raceXML/raceTest.xml
*/
public class StreamedRaceTest {
StreamedCourseXMLReader streamedCourseXMLReader;
List<GPSCoordinate> boundary;
@Before
public void setup() {
try {
streamedCourseXMLReader = new StreamedCourseXMLReader("mockXML/raceXML/raceTest.xml", true);
boundary = streamedCourseXMLReader.getBoundary();
} catch (Exception e) {
e.printStackTrace();
//fail("Cannot find mockXML/raceXML/raceTest.xml in the resources folder");
}
}
@Test
public void testAllBoundaryPointsRead() {
assertEquals(boundary.size(), 10);
}
@Test
public void testBoundaryPointData() {
// First point
assertEquals(boundary.get(0).getLatitude(), -36.8325, 1e-6);
assertEquals(boundary.get(0).getLongitude(), 174.8325, 1e-6);
// Last point
assertEquals(boundary.get(boundary.size() - 1).getLatitude(), -36.83417, 1e-6);
assertEquals(boundary.get(boundary.size() - 1).getLongitude(), 174.84767, 1e-6);
}
@Test
public void testMapEdges() {
double maxLatitude = streamedCourseXMLReader.getMapBottomRight().getLatitude() - streamedCourseXMLReader.getPadding();
double maxLongitude = streamedCourseXMLReader.getMapBottomRight().getLongitude() - streamedCourseXMLReader.getPadding();
double minLatitude = streamedCourseXMLReader.getMapTopLeft().getLatitude() - streamedCourseXMLReader.getPadding();
double minLongitude = streamedCourseXMLReader.getMapTopLeft().getLongitude() - streamedCourseXMLReader.getPadding();
assertEquals(maxLatitude, -36.81033, 1e-6);
assertEquals(maxLongitude, 174.88217, 1e-6);
assertEquals(minLatitude, -36.83417, 1e-6);
assertEquals(minLongitude, 174.81983, 1e-6);
}
@Test
public void testRaceSettings() {
}
}

Loading…
Cancel
Save