summaryrefslogtreecommitdiff
path: root/src/main/java/com/benburwell/planes/gui/aircraftmap/symbols/RouteSymbol.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/benburwell/planes/gui/aircraftmap/symbols/RouteSymbol.java')
-rw-r--r--src/main/java/com/benburwell/planes/gui/aircraftmap/symbols/RouteSymbol.java58
1 files changed, 33 insertions, 25 deletions
diff --git a/src/main/java/com/benburwell/planes/gui/aircraftmap/symbols/RouteSymbol.java b/src/main/java/com/benburwell/planes/gui/aircraftmap/symbols/RouteSymbol.java
index edd622a..7221d86 100644
--- a/src/main/java/com/benburwell/planes/gui/aircraftmap/symbols/RouteSymbol.java
+++ b/src/main/java/com/benburwell/planes/gui/aircraftmap/symbols/RouteSymbol.java
@@ -3,6 +3,7 @@ package com.benburwell.planes.gui.aircraftmap.symbols;
import com.benburwell.planes.graph.Airway;
import com.benburwell.planes.gui.GraphicsTheme;
import com.benburwell.planes.gui.aircraftmap.AircraftMap;
+import com.benburwell.planes.gui.aircraftmap.DisplayMode;
import com.benburwell.planes.gui.aircraftmap.Drawable;
import com.benburwell.planes.gui.aircraftmap.GeoPoint;
@@ -14,6 +15,7 @@ import java.util.stream.Collectors;
* @author ben
*/
public class RouteSymbol implements Drawable {
+ public final int VERTEX_RADIUS = 3;
private final Airway airway;
public RouteSymbol(Airway airway) {
@@ -25,32 +27,38 @@ public class RouteSymbol implements Drawable {
}
@Override
- public void drawOn(Graphics graphicsContext, AircraftMap map) {
- int w = map.getWidth();
- int h = map.getHeight();
- graphicsContext.setColor(GraphicsTheme.Styles.MAP_ROUTE_COLOR);
- List<GeoPoint> points = this.airway.getPoints().stream().map(GeoPoint::new).collect(Collectors.toList());
- for (int i = 0; i < points.size() - 1; i++) {
- GeoPoint p1 = points.get(i);
- int p1x = p1.getX(map);
- int p1y = p1.getY(map);
-
- GeoPoint p2 = points.get(i + 1);
- int p2x = p2.getX(map);
- int p2y = p2.getY(map);
-
- boolean p1OnMap = inRange(0, p1x, w) && inRange(0, p1y, h);
- boolean p2OnMap = inRange(0, p2x, w) && inRange(0, p2y, h);
- boolean showEdge = p1OnMap || p2OnMap;
- if (showEdge) {
- graphicsContext.drawLine(p1x, p1y, p2x, p2y);
- graphicsContext.fillOval(p1x - 2, p1y - 2, 4, 4);
+ public void drawOn(Graphics graphicsContext, AircraftMap map, DisplayMode displayMode) {
+ if (!displayMode.equals(DisplayMode.HIDDEN)) {
+ int w = map.getWidth();
+ int h = map.getHeight();
+ graphicsContext.setColor(GraphicsTheme.Styles.MAP_ROUTE_COLOR);
+ List<GeoPoint> points = this.airway.getPoints().stream().map(GeoPoint::new).collect(Collectors.toList());
+ for (int i = 0; i < points.size() - 1; i++) {
+ GeoPoint p1 = points.get(i);
+ int p1x = p1.getX(map);
+ int p1y = p1.getY(map);
+
+ GeoPoint p2 = points.get(i + 1);
+ int p2x = p2.getX(map);
+ int p2y = p2.getY(map);
+
+ boolean p1OnMap = inRange(0, p1x, w) && inRange(0, p1y, h);
+ boolean p2OnMap = inRange(0, p2x, w) && inRange(0, p2y, h);
+ boolean showEdge = p1OnMap || p2OnMap;
+ if (showEdge) {
+ graphicsContext.drawLine(p1x, p1y, p2x, p2y);
+ if (displayMode.equals(DisplayMode.DETAILED)) {
+ graphicsContext.fillOval(p1x - VERTEX_RADIUS, p1y - VERTEX_RADIUS, VERTEX_RADIUS * 2, VERTEX_RADIUS * 2);
+ }
+ }
+ }
+ int pnx = points.get(points.size() - 1).getX(map);
+ int pny = points.get(points.size() - 1).getY(map);
+ if (inRange(0, pnx, w) && inRange(0, pny, h)) {
+ if (displayMode.equals(DisplayMode.DETAILED)) {
+ graphicsContext.fillOval(pnx - VERTEX_RADIUS, pny - VERTEX_RADIUS, VERTEX_RADIUS * 2, VERTEX_RADIUS * 2);
+ }
}
- }
- int pnx = points.get(points.size() - 1).getX(map);
- int pny = points.get(points.size() - 1).getY(map);
- if (inRange(0, pnx, w) && inRange(0, pny, h)) {
- graphicsContext.fillOval(pnx - 2, pny - 2, 4, 4);
}
}
}