Merge branch 'change-to-short-names' into 'master'

Changed the team names to their abbreviated versions

- Also halved the size of the wake lines
- Updated tests to support the shorter team names
- Wake lines are now hidden with the other annotations

Tags: #story[23,21]

See merge request !25
This commit is contained in:
Michael Rausch
2017-03-24 21:01:55 +13:00
5 changed files with 18 additions and 8 deletions
@@ -39,7 +39,7 @@ public class BoatPositionController {
positionVbox.getChildren().removeAll();
for (Boat boat: boatOrder){
positionVbox.getChildren().add(new Text(boat.getTeamName() + " " + boat.getSpeedInKnots() + " Knots"));
positionVbox.getChildren().add(new Text(boat.getShortName() + " " + boat.getSpeedInKnots() + " Knots"));
}
}
@@ -14,7 +14,6 @@ import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.FontSmoothingType;
import javafx.scene.text.Text;
import javafx.util.Duration;
import seng302.models.Boat;
@@ -265,7 +264,7 @@ public class CanvasController {
boat.setLocation(timelineInfo.getY().doubleValue(), timelineInfo.getX().doubleValue());
drawBoat(boat.getLongitude(), boat.getLatitude(), boat.getColor(), boat.getTeamName(), boat.getSpeedInKnots(), boat.getHeading());
drawBoat(boat.getLongitude(), boat.getLatitude(), boat.getColor(), boat.getShortName(), boat.getSpeedInKnots(), boat.getHeading());
}
}
@@ -280,6 +279,7 @@ public class CanvasController {
*/
private void drawWake(GraphicsContext gc, double x, double y, double speed, Color color, double heading){
double angle = Math.toRadians(heading);
speed = speed * 0.50; // Half the size of the wake
double newX = x + speed * Math.cos(angle);//(nextX * Math.cos(angle) - nextY * Math.sin(angle)) * length;
double newY = y + speed * Math.sin(angle);//(nextX * Math.sin(angle) + nextY * Math.cos(angle)) * length;
@@ -312,13 +312,15 @@ public class CanvasController {
// Set boat text
gc.setFont(new Font(14));
gc.setLineWidth(3);
gc.setFontSmoothingType(FontSmoothingType.GRAY);
gc.fillText(name + ", " + speed + " knots", x + 15, y + 15);
}
gc.fillOval(x, y, diameter, diameter);
if (annotationCheck){
drawWake(gc, x, y, speed, color, heading);
}
}
/**
* Draws the course.
+9 -1
View File
@@ -15,6 +15,7 @@ public class Boat {
private Color color;
private int markLastPast;
private double heading;
private String shortName;
public Boat(String teamName) {
this.teamName = teamName;
@@ -22,6 +23,7 @@ public class Boat {
this.lat = 0.0;
this.lon = 0.0;
this.distanceToNextMark = 0.0;
this.shortName = "";
}
/**
@@ -29,12 +31,14 @@ public class Boat {
*
* @param teamName The name of the team sailing the boat
* @param boatVelocity The speed of the boat in meters/second
* @param shortName A shorter version of the teams name
*/
public Boat(String teamName, double boatVelocity) {
public Boat(String teamName, double boatVelocity, String shortName) {
this.teamName = teamName;
this.velocity = boatVelocity;
this.distanceToNextMark = 0.0;
this.color = Colors.getColor();
this.shortName = shortName;
}
/**
@@ -119,4 +123,8 @@ public class Boat {
public double getHeading(){
return this.heading;
}
public String getShortName(){
return this.shortName;
}
}
@@ -27,7 +27,7 @@ public class TeamsParser extends FileParser {
String name = element.getElementsByTagName("name").item(0).getTextContent();
String alias = element.getElementsByTagName("alias").item(0).getTextContent();
double velocity = Double.valueOf(element.getElementsByTagName("velocity").item(0).getTextContent());
Boat boat = new Boat(name, velocity);
Boat boat = new Boat(name, velocity, alias);
return boat;
} else {
throw new NoSuchElementException("Cannot generate a boat by given node");
+1 -1
View File
@@ -26,7 +26,7 @@ public class BoatTest {
@Test
public void testSetVelocity() {
Boat boat1 = new Boat("Team 1", 29.0);
Boat boat1 = new Boat("Team 1", 29.0, "");
assertEquals(boat1.getVelocity(), (double) 29.0, 1e-15);
boat1.setVelocity(12.0);