diff options
| author | Ben Burwell <ben.burwell@trifecta.com> | 2016-11-19 00:17:13 -0500 | 
|---|---|---|
| committer | Ben Burwell <ben.burwell@trifecta.com> | 2016-11-19 00:17:13 -0500 | 
| commit | 44ac0ca64197a9e21ed78e128ef816a6c85e05fe (patch) | |
| tree | 3056368c6cc7b30fab0c79d25630705dedf0af23 /src | |
| parent | 118254a9bb006c0001fc467f04521a9e2c11753f (diff) | |
Show range info
Diffstat (limited to 'src')
| -rw-r--r-- | src/com/benburwell/planes/gui/AircraftMapComponent.java | 23 | 
1 files changed, 23 insertions, 0 deletions
| diff --git a/src/com/benburwell/planes/gui/AircraftMapComponent.java b/src/com/benburwell/planes/gui/AircraftMapComponent.java index d680b60..780f1db 100644 --- a/src/com/benburwell/planes/gui/AircraftMapComponent.java +++ b/src/com/benburwell/planes/gui/AircraftMapComponent.java @@ -84,6 +84,7 @@ public class AircraftMapComponent implements ViewComponent {          private final double MIN_LATITUDE = -90.0;          private final double MAX_LONGITUDE = 180.0;          private final double MIN_LONGITUDE = -180.0; +        private final int RING_SPACING = 10;          private List<Drawable> planes = new ArrayList<>();          private double centerLatitude;          private double centerLongitude; @@ -101,6 +102,7 @@ public class AircraftMapComponent implements ViewComponent {              super.paintComponent(g);              this.planes.forEach(item -> item.drawOn(g, this));              this.drawPositionAndScale(g); +            this.drawRange(g);          }          public void drawPositionAndScale(Graphics g) { @@ -112,6 +114,23 @@ public class AircraftMapComponent implements ViewComponent {              g.drawString(String.format("%08.5f E", this.centerLongitude), TEXT_PADDING, (int)FONT_SIZE * 2 + TEXT_PADDING);          } +        public void drawRange(Graphics g) { +            int centerX = this.getWidth() / 2; +            int centerY = this.getHeight() / 2; +            g.setColor(GraphicsTheme.Colors.BASE_3); +            int diameter = (int) this.getPixelsPerNauticalMile() * RING_SPACING; +            int ringNumber = 1; +            while (diameter < this.getWidth() || diameter < this.getHeight()) { +                g.drawOval(centerX - (diameter / 2), centerY - (diameter / 2), diameter, diameter); +                g.drawString(String.format("%d", ringNumber * RING_SPACING), centerX + (diameter / 2) + TEXT_PADDING, (int) (centerY + FONT_SIZE + TEXT_PADDING)); +                g.drawString(String.format("%d", ringNumber * RING_SPACING), centerX + TEXT_PADDING, centerY - (int) ((diameter / 2) + FONT_SIZE)); +                diameter += this.getPixelsPerNauticalMile() * 10; +                ringNumber++; +            } +            g.drawLine(centerX, 0, centerX, this.getHeight()); +            g.drawLine(0, centerY, this.getWidth(), centerY); +        } +          public void setPlanes(List<Drawable> planes) {              this.planes = planes;              this.invalidate(); @@ -134,6 +153,10 @@ public class AircraftMapComponent implements ViewComponent {              return this.pixelsPerDegree;          } +        public double getPixelsPerNauticalMile() { +            return this.pixelsPerDegree / 60.0; +        } +          public void zoomIn() {              this.pixelsPerDegree += ZOOM_INTERVAL;              this.invalidate(); | 
