I've removed the getters and the setters I've added to SimulatorWindDTO.

This commit is contained in:
I077899 committed 2012-12-19 16:25:09 +02:00
1 parent 1cf4c861af
commit 60891382d7
10 files changed
+124 -158

No files matched your search

@@ -29,7 +29,7 @@ public class PathDTO extends NamedDTO implements IsSerializable {
return 0;
}
return points.get(points.size() - 1).getTimepoint() - points.get(0).getTimepoint();
return points.get(points.size() - 1).timepoint - points.get(0).timepoint;
}
}
@@ -3,13 +3,18 @@ package com.sap.sailing.gwt.ui.shared;
import com.google.gwt.user.client.rpc.IsSerializable;
public class SimulatorWindDTO implements IsSerializable {
private Boolean isTurn;
private Double trueWindSpeedInKnots;
private Double trueWindBearingDeg;
private PositionDTO position;
private Long timepoint;
public Boolean isTurn;
public Double trueWindSpeedInKnots;
public Double trueWindBearingDeg;
public PositionDTO position;
public Long timepoint;
public SimulatorWindDTO() {
this.isTurn = false;
this.trueWindBearingDeg = 0.0;
this.trueWindSpeedInKnots = 0.0;
this.position = null;
this.timepoint = 0L;
}
public SimulatorWindDTO(final PositionDTO position, final double windSpeedKn, final double windBearingDeg, final long timepointMsec) {
@@ -74,44 +79,4 @@ public class SimulatorWindDTO implements IsSerializable {
return false;
}
}
public Boolean isTurn() {
return this.isTurn;
}
public void setTurn(final Boolean isTurn) {
this.isTurn = isTurn;
}
public Double getTrueWindSpeedInKnots() {
return this.trueWindSpeedInKnots;
}
public void setTrueWindSpeedInKnots(final Double trueWindSpeedInKnots) {
this.trueWindSpeedInKnots = trueWindSpeedInKnots;
}
public Double getTrueWindBearingDeg() {
return this.trueWindBearingDeg;
}
public void setTrueWindBearingDeg(final Double trueWindBearingDeg) {
this.trueWindBearingDeg = trueWindBearingDeg;
}
public PositionDTO getPosition() {
return this.position;
}
public void setPosition(final PositionDTO position) {
this.position = position;
}
public Long getTimepoint() {
return this.timepoint;
}
public void setTimepoint(final Long timepoint) {
this.timepoint = timepoint;
}
}
@@ -105,7 +105,7 @@ public class PathCanvasOverlay extends WindFieldCanvasOverlay implements Named {
return;
}
String title = "Path at " + numPoints + " points.";
final long totalTime = windDTOList.get(numPoints - 1).getTimepoint() - windDTOList.get(0).getTimepoint();
final long totalTime = windDTOList.get(numPoints - 1).timepoint - windDTOList.get(0).timepoint;
//LatLng start = LatLng.newInstance(windDTOList.get(0).position.latDeg, windDTOList.get(0).position.latDeg);
//LatLng end = LatLng.newInstance(windDTOList.get(numPoints - 1).position.latDeg, windDTOList.get(numPoints - 1).position.latDeg);
@@ -140,7 +140,7 @@ public class PathCanvasOverlay extends WindFieldCanvasOverlay implements Named {
windDTOIter = windDTOList.iterator();
int index = 0;
final long startTime = windDTOList.get(0).getTimepoint();
final long startTime = windDTOList.get(0).timepoint;
prevWindDTO = null; //For the last time arrow was displayed
while (windDTOIter.hasNext()) {
final SimulatorWindDTO windDTO = windDTOIter.next();
@@ -148,7 +148,7 @@ public class PathCanvasOverlay extends WindFieldCanvasOverlay implements Named {
//if ((displayWindAlongPath) && ((index % arrowInterleave) == 0)) {
if (displayWindAlongPath) {
if (checkPointsAreFarEnough(windDTO,prevWindDTO)) {
final DegreeBearingImpl dbi = new DegreeBearingImpl(windDTO.getTrueWindBearingDeg());
final DegreeBearingImpl dbi = new DegreeBearingImpl(windDTO.trueWindBearingDeg);
// System.out.print("index: "+index+"\n");
drawScaledArrow(windDTO, dbi.getRadians(), index, true);
@@ -158,7 +158,7 @@ public class PathCanvasOverlay extends WindFieldCanvasOverlay implements Named {
index++;
final long timeStep = windParams.getTimeStep().getTime();
if ((windDTO.getTimepoint() - startTime) % (timeStep) == 0) {
if ((windDTO.timepoint - startTime) % (timeStep) == 0) {
drawPoint(windDTO);
}
@@ -181,7 +181,7 @@ public class PathCanvasOverlay extends WindFieldCanvasOverlay implements Named {
final double weight = 3.0;
PositionDTO position = p1.getPosition();
PositionDTO position = p1.position;
LatLng positionLatLng = LatLng.newInstance(position.latDeg, position.lngDeg);
Point canvasPositionInPx = getMap().convertLatLngToDivPixel(positionLatLng);
@@ -189,7 +189,7 @@ public class PathCanvasOverlay extends WindFieldCanvasOverlay implements Named {
final int x1 = canvasPositionInPx.getX() - this.getWidgetPosLeft();
final int y1 = canvasPositionInPx.getY() - this.getWidgetPosTop();
position = p2.getPosition();
position = p2.position;
positionLatLng = LatLng.newInstance(position.latDeg, position.lngDeg);
canvasPositionInPx = getMap().convertLatLngToDivPixel(positionLatLng);
final int x2 = canvasPositionInPx.getX() - this.getWidgetPosLeft();
@@ -206,7 +206,7 @@ public class PathCanvasOverlay extends WindFieldCanvasOverlay implements Named {
final double weight = 3.0;
final PositionDTO position = p.getPosition();
final PositionDTO position = p.position;
final LatLng positionLatLng = LatLng.newInstance(position.latDeg, position.lngDeg);
final Point canvasPositionInPx = getMap().convertLatLngToDivPixel(positionLatLng);
@@ -226,7 +226,7 @@ public class PathCanvasOverlay extends WindFieldCanvasOverlay implements Named {
if (p1 == null || p2 == null) {
return true;
}
PositionDTO position = p1.getPosition();
PositionDTO position = p1.position;
LatLng positionLatLng = LatLng.newInstance(position.latDeg, position.lngDeg);
Point canvasPositionInPx = getMap().convertLatLngToDivPixel(positionLatLng);
@@ -234,7 +234,7 @@ public class PathCanvasOverlay extends WindFieldCanvasOverlay implements Named {
final int x1 = canvasPositionInPx.getX();
final int y1 = canvasPositionInPx.getY();
position = p2.getPosition();
position = p2.position;
positionLatLng = LatLng.newInstance(position.latDeg, position.lngDeg);
canvasPositionInPx = getMap().convertLatLngToDivPixel(positionLatLng);
final int x2 = canvasPositionInPx.getX();
@@ -259,7 +259,7 @@ public class PathCanvasOverlay extends WindFieldCanvasOverlay implements Named {
} else {
final List<SimulatorWindDTO> windDTOList = wl.getMatrix();
final int numPoints = windDTOList.size();
final long totalTime = windDTOList.get(numPoints - 1).getTimepoint() - windDTOList.get(0).getTimepoint();
final long totalTime = windDTOList.get(numPoints - 1).timepoint - windDTOList.get(0).timepoint;
return totalTime;
}
}
@@ -36,7 +36,7 @@ public class ReplayPathCanvasOverlay extends PathCanvasOverlay {
windDTOToDraw = new ArrayList<SimulatorWindDTO>();
for (final SimulatorWindDTO windDTO : wl.getMatrix()) {
if (windDTO.getTimepoint() <= date.getTime()) {
if (windDTO.timepoint <= date.getTime()) {
windDTOToDraw.add(windDTO);
}
}
@@ -101,7 +101,7 @@ public class SimulatorMap extends AbsolutePanel implements RequiresDataInitializ
final PathDTO[] paths = result.getPaths();
logger.info("Number of Paths : " + paths.length);
final long startTime = paths[0].getPoints().get(0).getTimepoint();
final long startTime = paths[0].getPoints().get(0).timepoint;
long maxDurationTime = 0;
if (mode == SailingSimulatorUtil.measured) {
@@ -83,10 +83,10 @@ public class WindFieldCanvasOverlay extends FullCanvasOverlay implements TimeLis
timePointWindDTOMap.clear();
if (wl != null) {
for(final SimulatorWindDTO w : wl.getMatrix()) {
if (!timePointWindDTOMap.containsKey(w.getTimepoint())) {
timePointWindDTOMap.put(w.getTimepoint(), new LinkedList<SimulatorWindDTO>());
if (!timePointWindDTOMap.containsKey(w.timepoint)) {
timePointWindDTOMap.put(w.timepoint, new LinkedList<SimulatorWindDTO>());
}
timePointWindDTOMap.get(w.getTimepoint()).add(w);
timePointWindDTOMap.get(w.timepoint).add(w);
}
}
@@ -153,8 +153,8 @@ public class WindFieldCanvasOverlay extends FullCanvasOverlay implements TimeLis
protected void drawScaledArrow(final SimulatorWindDTO windDTO, final double angle, final int index, final boolean drawHead) {
final double aWidth = Math.max(1., (PathPolyline.knotsToMetersPerSecond(windDTO.getTrueWindSpeedInKnots()) / 2.));
final double aLength = Math.max(10., (4. * PathPolyline.knotsToMetersPerSecond(windDTO.getTrueWindSpeedInKnots())));
final double aWidth = Math.max(1., (PathPolyline.knotsToMetersPerSecond(windDTO.trueWindSpeedInKnots) / 2.));
final double aLength = Math.max(10., (4. * PathPolyline.knotsToMetersPerSecond(windDTO.trueWindSpeedInKnots)));
//System.out.println("arrow speed: "+windDTO.trueWindSpeedInMetersPerSecond+" angle:"+angle+" aWidth: "+aWidth+" aLength: "+aLength);
drawArrow(windDTO, angle, aLength, aWidth, index, drawHead);
@@ -172,7 +172,7 @@ public class WindFieldCanvasOverlay extends FullCanvasOverlay implements TimeLis
while (windDTOIter.hasNext()) {
final SimulatorWindDTO windDTO = windDTOIter.next();
//System.out.println("wind angle: "+windDTO.trueWindBearingDeg);
final DegreeBearingImpl dbi = new DegreeBearingImpl(windDTO.getTrueWindBearingDeg());
final DegreeBearingImpl dbi = new DegreeBearingImpl(windDTO.trueWindBearingDeg);
drawScaledArrow(windDTO, dbi.getRadians(), ++index, drawHead);
}
final String title = "Wind Field at " + windDTOList.size() + " points.";
@@ -181,12 +181,12 @@ public class WindFieldCanvasOverlay extends FullCanvasOverlay implements TimeLis
}
protected void drawArrow(final SimulatorWindDTO windDTO, final double angle, final double length, final double weight, final int index, final boolean drawHead) {
final String msg = "Wind @ P" + index + ": time : " + windDTO.getTimepoint() + " speed: " + windDTO.getTrueWindSpeedInKnots()
final String msg = "Wind @ P" + index + ": time : " + windDTO.timepoint + " speed: " + windDTO.trueWindSpeedInKnots
+ "knots "
+ windDTO.getTrueWindBearingDeg();
+ windDTO.trueWindBearingDeg;
logger.fine(msg);
final PositionDTO position = windDTO.getPosition();
final PositionDTO position = windDTO.position;
final LatLng positionLatLng = LatLng.newInstance(position.latDeg, position.lngDeg);
final Point canvasPositionInPx = getMap().convertLatLngToDivPixel(positionLatLng);
@@ -74,7 +74,7 @@ public class WindGridCanvasOverlay extends FullCanvasOverlay implements TimeList
@Override
public int compare(final SimulatorWindDTO w1, final SimulatorWindDTO w2) {
return Double.compare(w1.getTrueWindSpeedInKnots(), w2.getTrueWindSpeedInKnots());
return Double.compare(w1.trueWindSpeedInKnots, w2.trueWindSpeedInKnots);
}
}
@@ -83,7 +83,7 @@ public class WindGridCanvasOverlay extends FullCanvasOverlay implements TimeList
@Override
public int compare(final SimulatorWindDTO w1, final SimulatorWindDTO w2) {
return Double.compare(w1.getPosition().latDeg, w2.getPosition().latDeg);
return Double.compare(w1.position.latDeg, w2.position.latDeg);
}
}
@@ -92,7 +92,7 @@ public class WindGridCanvasOverlay extends FullCanvasOverlay implements TimeList
@Override
public int compare(final SimulatorWindDTO w1, final SimulatorWindDTO w2) {
return Double.compare(w1.getPosition().lngDeg, w2.getPosition().lngDeg);
return Double.compare(w1.position.lngDeg, w2.position.lngDeg);
}
}
@@ -123,15 +123,15 @@ public class WindGridCanvasOverlay extends FullCanvasOverlay implements TimeList
timePointWindDTOMap.clear();
if (wl != null) {
for (final SimulatorWindDTO w : wl.getMatrix()) {
if (!timePointWindDTOMap.containsKey(w.getTimepoint())) {
timePointWindDTOMap.put(w.getTimepoint(), new LinkedList<SimulatorWindDTO>());
if (!timePointWindDTOMap.containsKey(w.timepoint)) {
timePointWindDTOMap.put(w.timepoint, new LinkedList<SimulatorWindDTO>());
}
timePointWindDTOMap.get(w.getTimepoint()).add(w);
timePointWindDTOMap.get(w.timepoint).add(w);
}
final SortByWindSpeed windSpeedSorter = new SortByWindSpeed();
final double maxSpeed = Collections.max(wl.getMatrix(), windSpeedSorter).getTrueWindSpeedInKnots();
final double minSpeed = Collections.min(wl.getMatrix(), windSpeedSorter).getTrueWindSpeedInKnots();
final double maxSpeed = Collections.max(wl.getMatrix(), windSpeedSorter).trueWindSpeedInKnots;
final double minSpeed = Collections.min(wl.getMatrix(), windSpeedSorter).trueWindSpeedInKnots;
System.out.println("minSpeed: " + minSpeed + " maxSpeed: " + maxSpeed);
colorPalette = new WindGridColorPalette(minSpeed, maxSpeed);
@@ -251,6 +251,7 @@ public class WindGridCanvasOverlay extends FullCanvasOverlay implements TimeList
* @param windDTOList
* @return the horizontal pixel distance between the first two points in the list
*/
@SuppressWarnings("unused")
private double getGridWidth(final List<SimulatorWindDTO> windDTOList) {
if (windDTOList.size() > 1) {
final SortByLatitude sortLatitude = new SortByLatitude();
@@ -259,10 +260,10 @@ public class WindGridCanvasOverlay extends FullCanvasOverlay implements TimeList
final SimulatorWindDTO windDTO1 = windDTOList.get(0);
final SimulatorWindDTO windDTO2 = windDTOList.get(1);
final LatLng positionLatLng1 = LatLng.newInstance(windDTO1.getPosition().latDeg, windDTO1.getPosition().lngDeg);
final LatLng positionLatLng1 = LatLng.newInstance(windDTO1.position.latDeg, windDTO1.position.lngDeg);
final Point canvasPositionInPx1 = getMap().convertLatLngToDivPixel(positionLatLng1);
final LatLng positionLatLng2 = LatLng.newInstance(windDTO2.getPosition().latDeg, windDTO2.getPosition().lngDeg);
final LatLng positionLatLng2 = LatLng.newInstance(windDTO2.position.latDeg, windDTO2.position.lngDeg);
final Point canvasPositionInPx2 = getMap().convertLatLngToDivPixel(positionLatLng2);
return canvasPositionInPx2.getX() - canvasPositionInPx1.getX();
@@ -275,6 +276,7 @@ public class WindGridCanvasOverlay extends FullCanvasOverlay implements TimeList
* @param windDTOList
* @return the horizontal pixel distance between the first two points in the list
*/
@SuppressWarnings("unused")
private double getGridHeight(final List<SimulatorWindDTO> windDTOList) {
if (windDTOList.size() > 1) {
final SortByLongitude sortLongitude = new SortByLongitude();
@@ -283,10 +285,10 @@ public class WindGridCanvasOverlay extends FullCanvasOverlay implements TimeList
final SimulatorWindDTO windDTO1 = windDTOList.get(0);
final SimulatorWindDTO windDTO2 = windDTOList.get(1);
final LatLng positionLatLng1 = LatLng.newInstance(windDTO1.getPosition().latDeg, windDTO1.getPosition().lngDeg);
final LatLng positionLatLng1 = LatLng.newInstance(windDTO1.position.latDeg, windDTO1.position.lngDeg);
final Point canvasPositionInPx1 = getMap().convertLatLngToDivPixel(positionLatLng1);
final LatLng positionLatLng2 = LatLng.newInstance(windDTO2.getPosition().latDeg, windDTO2.getPosition().lngDeg);
final LatLng positionLatLng2 = LatLng.newInstance(windDTO2.position.latDeg, windDTO2.position.lngDeg);
final Point canvasPositionInPx2 = getMap().convertLatLngToDivPixel(positionLatLng2);
return canvasPositionInPx2.getY() - canvasPositionInPx1.getY();
@@ -344,14 +346,14 @@ public class WindGridCanvasOverlay extends FullCanvasOverlay implements TimeList
*/
for (int j = 0; j < xRes; ++j) {
final PositionDTO position = new PositionDTO();
final PositionDTO p1 = windMatrix[1][j].getPosition();
final PositionDTO p2 = windMatrix[2][j].getPosition();
final PositionDTO p1 = windMatrix[1][j].position;
final PositionDTO p2 = windMatrix[2][j].position;
position.latDeg = 2 * p1.latDeg - p2.latDeg;
position.lngDeg = 2 * p1.lngDeg - p2.lngDeg;
final SimulatorWindDTO windDTO = new SimulatorWindDTO();
// Only the position of this windDTO is used
windDTO.setPosition(position);
windDTO.setTrueWindSpeedInKnots(0.0);
windDTO.position = position;
windDTO.trueWindSpeedInKnots = 0.0;
windMatrix[0][j] = windDTO;
}
@@ -360,13 +362,13 @@ public class WindGridCanvasOverlay extends FullCanvasOverlay implements TimeList
*/
for (int j = 0; j < xRes; ++j) {
final PositionDTO position = new PositionDTO();
final PositionDTO p1 = windMatrix[numRow - 2][j].getPosition();
final PositionDTO p2 = windMatrix[numRow - 3][j].getPosition();
final PositionDTO p1 = windMatrix[numRow - 2][j].position;
final PositionDTO p2 = windMatrix[numRow - 3][j].position;
position.latDeg = 2 * p1.latDeg - p2.latDeg;
position.lngDeg = 2 * p1.lngDeg - p2.lngDeg;
final SimulatorWindDTO windDTO = new SimulatorWindDTO();
// Only the position of this windDTO is used
windDTO.setPosition(position);
windDTO.position = position;
// windDTO.trueWindSpeedInKnots = 0.0;
windMatrix[numRow - 1][j] = windDTO;
}
@@ -381,15 +383,15 @@ public class WindGridCanvasOverlay extends FullCanvasOverlay implements TimeList
gridCellMap = new HashMap<Pair<Integer, Integer>, GridCell>();
for (int i = 1; i < numRow - 1; ++i) {
for (int j = 1; j < numCol - 1; ++j) {
final PositionDTO bl = getCenter(windMatrix[i - 1][j - 1].getPosition(), windMatrix[i - 1][j].getPosition(),
windMatrix[i][j].getPosition(), windMatrix[i][j - 1].getPosition());
final PositionDTO tl = getCenter(windMatrix[i][j - 1].getPosition(), windMatrix[i][j].getPosition(),
windMatrix[i + 1][j - 1].getPosition(), windMatrix[i + 1][j].getPosition());
final PositionDTO br = getCenter(windMatrix[i - 1][j].getPosition(), windMatrix[i - 1][j + 1].getPosition(),
windMatrix[i][j].getPosition(), windMatrix[i][j + 1].getPosition());
final PositionDTO tr = getCenter(windMatrix[i][j].getPosition(), windMatrix[i][j + 1].getPosition(),
windMatrix[i + 1][j].getPosition(), windMatrix[i + 1][j + 1].getPosition());
final GridCell cell = new GridCell(bl, br, tl, tr, windMatrix[i - 1][j].getTrueWindSpeedInKnots());
final PositionDTO bl = getCenter(windMatrix[i - 1][j - 1].position, windMatrix[i - 1][j].position,
windMatrix[i][j].position, windMatrix[i][j - 1].position);
final PositionDTO tl = getCenter(windMatrix[i][j - 1].position, windMatrix[i][j].position,
windMatrix[i + 1][j - 1].position, windMatrix[i + 1][j].position);
final PositionDTO br = getCenter(windMatrix[i - 1][j].position, windMatrix[i - 1][j + 1].position,
windMatrix[i][j].position, windMatrix[i][j + 1].position);
final PositionDTO tr = getCenter(windMatrix[i][j].position, windMatrix[i][j + 1].position,
windMatrix[i + 1][j].position, windMatrix[i + 1][j + 1].position);
final GridCell cell = new GridCell(bl, br, tl, tr, windMatrix[i - 1][j].trueWindSpeedInKnots);
final Pair<Integer, Integer> cellPair = new Pair<Integer, Integer>(i, j);
gridCellMap.put(cellPair, cell);
// drawGridCell(cell);
@@ -411,7 +413,7 @@ public class WindGridCanvasOverlay extends FullCanvasOverlay implements TimeList
for (int j = 1; j < numCol - 1; ++j) {
final Pair<Integer, Integer> cellPair = new Pair<Integer, Integer>(i, j);
final GridCell cell = gridCellMap.get(cellPair);
cell.windSpeedInKnots = windMatrix[i - 1][j].getTrueWindSpeedInKnots();
cell.windSpeedInKnots = windMatrix[i - 1][j].trueWindSpeedInKnots;
}
}
}
@@ -13,7 +13,6 @@ import java.util.SortedMap;
import java.util.logging.Logger;
import com.google.gwt.canvas.dom.client.Context2d;
import com.google.gwt.canvas.dom.client.Context2d.Composite;
import com.google.gwt.maps.client.MapWidget;
import com.google.gwt.maps.client.geom.LatLng;
import com.google.gwt.maps.client.geom.Point;
@@ -38,7 +37,7 @@ public class WindLineCanvasOverlay extends FullCanvasOverlay implements TimeList
private static Logger logger = Logger.getLogger(WindLineCanvasOverlay.class.getName());
public WindLineCanvasOverlay(Timer timer) {
public WindLineCanvasOverlay(final Timer timer) {
super();
this.timer = timer;
windLinesDTO = null;
@@ -47,23 +46,23 @@ public class WindLineCanvasOverlay extends FullCanvasOverlay implements TimeList
}
@Override
public void timeChanged(Date date) {
Map<PositionDTO, SortedMap<Long, List<PositionDTO>>> windLinesMap = windLinesDTO.getWindLinesMap();
public void timeChanged(final Date date) {
final Map<PositionDTO, SortedMap<Long, List<PositionDTO>>> windLinesMap = windLinesDTO.getWindLinesMap();
if (windLinesMap == null) {
return;
}
clear();
Context2d context2d = canvas.getContext2d();
final Context2d context2d = canvas.getContext2d();
context2d.setGlobalAlpha(0.2);
//context2d.setGlobalCompositeOperation(Composite.LIGHTER) ;
int index = 0;
for (Entry<PositionDTO, SortedMap<Long, List<PositionDTO>>> entry : windLinesMap.entrySet()) {
for (final Entry<PositionDTO, SortedMap<Long, List<PositionDTO>>> entry : windLinesMap.entrySet()) {
List<PositionDTO> positionDTOToDraw = new ArrayList<PositionDTO>();
SortedMap<Long, List<PositionDTO>> headMap = (entry.getValue().headMap(date.getTime() + 1));
final SortedMap<Long, List<PositionDTO>> headMap = (entry.getValue().headMap(date.getTime() + 1));
if (!headMap.isEmpty()) {
positionDTOToDraw = headMap.get(headMap.lastKey());
@@ -77,19 +76,19 @@ public class WindLineCanvasOverlay extends FullCanvasOverlay implements TimeList
@Override
public int stop() {
Map<PositionDTO, SortedMap<Long, List<PositionDTO>>> positionTimePointPositionDTOMap = windLinesDTO
final Map<PositionDTO, SortedMap<Long, List<PositionDTO>>> positionTimePointPositionDTOMap = windLinesDTO
.getWindLinesMap();
if (!this.isVisible() || positionTimePointPositionDTOMap == null || timer == null
|| positionTimePointPositionDTOMap.isEmpty()) {
return 0;
}
Set<PositionDTO> positions = positionTimePointPositionDTOMap.keySet();
final Set<PositionDTO> positions = positionTimePointPositionDTOMap.keySet();
if (positions != null && !positions.isEmpty()) {
/**
* Just check for one position as it would be the same for all the other positions
*/
SortedMap<Long, List<PositionDTO>> timePointPositionDTOMap = positionTimePointPositionDTOMap.get(positions
final SortedMap<Long, List<PositionDTO>> timePointPositionDTOMap = positionTimePointPositionDTOMap.get(positions
.iterator().next());
if (timePointPositionDTOMap.lastKey() < timer.getTime().getTime()) {
return 0;
@@ -110,12 +109,12 @@ public class WindLineCanvasOverlay extends FullCanvasOverlay implements TimeList
return windLinesDTO;
}
public void setWindLinesDTO(WindLinesDTO windLinesDTO) {
public void setWindLinesDTO(final WindLinesDTO windLinesDTO) {
this.windLinesDTO = windLinesDTO;
}
@Override
protected void initialize(MapWidget map) {
protected void initialize(final MapWidget map) {
super.initialize(map);
if (timer != null) {
this.timer.addTimeListener(this);
@@ -133,7 +132,7 @@ public class WindLineCanvasOverlay extends FullCanvasOverlay implements TimeList
}
@Override
protected void redraw(boolean force) {
protected void redraw(final boolean force) {
super.redraw(force);
if (this.windLinesDTO != null) {
clear();
@@ -154,28 +153,28 @@ public class WindLineCanvasOverlay extends FullCanvasOverlay implements TimeList
}
}
protected void drawWindLine(final List<PositionDTO> positionDTOList, int index) {
protected void drawWindLine(final List<PositionDTO> positionDTOList, final int index) {
if (positionDTOList == null) {
return;
}
int numPoints = positionDTOList.size();
final int numPoints = positionDTOList.size();
if (numPoints < 1) {
return;
}
String title = "Wind line at " + numPoints + " points.";
final String title = "Wind line at " + numPoints + " points.";
getCanvas().setTitle(title);
Iterator<PositionDTO> positionDTOIter = positionDTOList.iterator();
final Iterator<PositionDTO> positionDTOIter = positionDTOList.iterator();
PositionDTO prevPositionDTO = null;
while (positionDTOIter.hasNext()) {
PositionDTO positionDTO = positionDTOIter.next();
final PositionDTO positionDTO = positionDTOIter.next();
if (prevPositionDTO != null) {
if (checkPointInGrid(prevPositionDTO) && checkPointInGrid(positionDTO) ) {
drawLine(prevPositionDTO, positionDTO);
} else {
PositionDTO pointOnBoundary = getPointOnBoundary(prevPositionDTO, positionDTO);
final PositionDTO pointOnBoundary = getPointOnBoundary(prevPositionDTO, positionDTO);
if (pointOnBoundary != null) {
drawLine(prevPositionDTO, pointOnBoundary);
}
@@ -208,30 +207,30 @@ public class WindLineCanvasOverlay extends FullCanvasOverlay implements TimeList
*/
}
private PositionDTO getPointOnBoundary(PositionDTO p1, PositionDTO p2) {
private PositionDTO getPointOnBoundary(final PositionDTO p1, final PositionDTO p2) {
if (boundary != null) {
LineSegment line = new LineSegment(p1.latDeg, p1.lngDeg, p2.latDeg, p2.lngDeg);
final LineSegment line = new LineSegment(p1.latDeg, p1.lngDeg, p2.latDeg, p2.lngDeg);
com.sap.sailing.gwt.ui.simulator.util.LineSegment.Point p = line.intersect(boundary[0]);
if (p != null) {
PositionDTO pDTO = new PositionDTO(p.getX(), p.getY());
final PositionDTO pDTO = new PositionDTO(p.getX(), p.getY());
return pDTO;
}
p = line.intersect(boundary[2]);
if (p != null) {
PositionDTO pDTO = new PositionDTO(p.getX(), p.getY());
final PositionDTO pDTO = new PositionDTO(p.getX(), p.getY());
return pDTO;
}
p = line.intersect(boundary[1]);
if (p != null) {
PositionDTO pDTO = new PositionDTO(p.getX(), p.getY());
final PositionDTO pDTO = new PositionDTO(p.getX(), p.getY());
return pDTO;
}
p = line.intersect(boundary[3]);
if (p != null) {
PositionDTO pDTO = new PositionDTO(p.getX(), p.getY());
final PositionDTO pDTO = new PositionDTO(p.getX(), p.getY());
return pDTO;
}
@@ -241,26 +240,26 @@ public class WindLineCanvasOverlay extends FullCanvasOverlay implements TimeList
}
private void drawLine(PositionDTO p1, PositionDTO p2) {
private void drawLine(final PositionDTO p1, final PositionDTO p2) {
double weight = 1.0;
final double weight = 1.0;
LatLng positionLatLng = LatLng.newInstance(p1.latDeg, p1.lngDeg);
Point canvasPositionInPx = getMap().convertLatLngToDivPixel(positionLatLng);
int x1 = canvasPositionInPx.getX() - this.getWidgetPosLeft();
int y1 = canvasPositionInPx.getY() - this.getWidgetPosTop();
final int x1 = canvasPositionInPx.getX() - this.getWidgetPosLeft();
final int y1 = canvasPositionInPx.getY() - this.getWidgetPosTop();
positionLatLng = LatLng.newInstance(p2.latDeg, p2.lngDeg);
canvasPositionInPx = getMap().convertLatLngToDivPixel(positionLatLng);
int x2 = canvasPositionInPx.getX() - this.getWidgetPosLeft();
int y2 = canvasPositionInPx.getY() - this.getWidgetPosTop();
final int x2 = canvasPositionInPx.getX() - this.getWidgetPosLeft();
final int y2 = canvasPositionInPx.getY() - this.getWidgetPosTop();
drawLine(x1, y1, x2, y2, weight, lineColor);
}
public void setGridCorners(PositionDTO[] gridCorners) {
public void setGridCorners(final PositionDTO[] gridCorners) {
this.corners = gridCorners;
if (corners != null && corners.length == 4) {
this.boundary = new LineSegment[4];
@@ -276,34 +275,35 @@ public class WindLineCanvasOverlay extends FullCanvasOverlay implements TimeList
}
private Point getPointInDivPixel(PositionDTO p) {
LatLng pLatLng = LatLng.newInstance(p.latDeg, p.lngDeg);
Point canvasPositionInPx = getMap().convertLatLngToDivPixel(pLatLng);
int x = canvasPositionInPx.getX();
int y = canvasPositionInPx.getY();
private Point getPointInDivPixel(final PositionDTO p) {
final LatLng pLatLng = LatLng.newInstance(p.latDeg, p.lngDeg);
final Point canvasPositionInPx = getMap().convertLatLngToDivPixel(pLatLng);
final int x = canvasPositionInPx.getX();
final int y = canvasPositionInPx.getY();
return Point.newInstance(x, y);
}
@Override
protected void setCanvasSettings() {
if (corners != null && corners.length == 4) {
Point corner0 = getPointInDivPixel(corners[0]);
Point corner1 = getPointInDivPixel(corners[1]);
Point corner3 = getPointInDivPixel(corners[3]);
final Point corner0 = getPointInDivPixel(corners[0]);
final Point corner1 = getPointInDivPixel(corners[1]);
final Point corner3 = getPointInDivPixel(corners[3]);
int canvasWidth = (int) Math.sqrt(Math.pow(corner0.getX() - corner1.getX(), 2)
final int canvasWidth = (int) Math.sqrt(Math.pow(corner0.getX() - corner1.getX(), 2)
+ Math.pow(corner0.getY() - corner1.getY(), 2));
int canvasHeight = (int) Math.sqrt(Math.pow(corner3.getX() - corner0.getX(), 2)
final int canvasHeight = (int) Math.sqrt(Math.pow(corner3.getX() - corner0.getX(), 2)
+ Math.pow(corner3.getY() - corner0.getY(), 2));
int canvasRadius = (int) Math.sqrt(canvasWidth * canvasWidth / 4 + canvasHeight * canvasHeight / 4);
final int canvasRadius = (int) Math.sqrt(canvasWidth * canvasWidth / 4 + canvasHeight * canvasHeight / 4);
canvas.setSize("" + 2 * canvasRadius + "px", "" + 2 * canvasRadius + "px");
canvas.setCoordinateSpaceWidth(2 * canvasRadius); canvas.setCoordinateSpaceHeight(2 * canvasRadius);
Point anchorPoint = getAnchorPoint();
final Point anchorPoint = getAnchorPoint();
setWidgetPosLeft(anchorPoint.getX());
setWidgetPosTop(anchorPoint.getY());
@@ -320,10 +320,10 @@ public class WindLineCanvasOverlay extends FullCanvasOverlay implements TimeList
private Point getAnchorPoint() {
if (corners != null) {
List<Integer> xlist = new LinkedList<Integer>();
List<Integer> ylist = new LinkedList<Integer>();
final List<Integer> xlist = new LinkedList<Integer>();
final List<Integer> ylist = new LinkedList<Integer>();
for (int i = 0; i < corners.length; ++i) {
Point corner = getPointInDivPixel(corners[i]);
final Point corner = getPointInDivPixel(corners[i]);
xlist.add(corner.getX());
ylist.add(corner.getY());
}
@@ -335,7 +335,7 @@ public class WindLineCanvasOverlay extends FullCanvasOverlay implements TimeList
private PositionDTO getCenter() {
if (corners != null && corners.length == 4) {
PositionDTO center = new PositionDTO();
final PositionDTO center = new PositionDTO();
center.latDeg = (corners[0].latDeg + corners[1].latDeg + corners[2].latDeg + corners[3].latDeg) / 4.0;
center.lngDeg = (corners[0].lngDeg + corners[1].lngDeg + corners[2].lngDeg + corners[3].lngDeg) / 4.0;
return center;
@@ -343,9 +343,9 @@ public class WindLineCanvasOverlay extends FullCanvasOverlay implements TimeList
return null;
}
private boolean checkPointInGrid(PositionDTO point) {
private boolean checkPointInGrid(final PositionDTO point) {
if (center != null ) {
PositionDTO pointOnBoundary = getPointOnBoundary(center,point);
final PositionDTO pointOnBoundary = getPointOnBoundary(center,point);
if (pointOnBoundary == null) { // Line through center and the point does not intersect
return true;
} else {
@@ -83,10 +83,10 @@ public class WindStreamletsCanvasOverlay extends FullCanvasOverlay implements Ti
timePointWindDTOMap.clear();
if (wl != null) {
for(final SimulatorWindDTO w : wl.getMatrix()) {
if (!timePointWindDTOMap.containsKey(w.getTimepoint())) {
timePointWindDTOMap.put(w.getTimepoint(), new LinkedList<SimulatorWindDTO>());
if (!timePointWindDTOMap.containsKey(w.timepoint)) {
timePointWindDTOMap.put(w.timepoint, new LinkedList<SimulatorWindDTO>());
}
timePointWindDTOMap.get(w.getTimepoint()).add(w);
timePointWindDTOMap.get(w.timepoint).add(w);
}
}
@@ -168,8 +168,8 @@ public class WindStreamletsCanvasOverlay extends FullCanvasOverlay implements Ti
Iterator<SimulatorWindDTO> windDTOIter = windDTOList.iterator();
final SimulatorWindDTO w0 = windDTOIter.next();
final SimulatorWindDTO w1 = windDTOIter.next();
final LatLng pg0 = LatLng.newInstance(w0.getPosition().latDeg, w0.getPosition().lngDeg);
final LatLng pg1 = LatLng.newInstance(w1.getPosition().latDeg, w1.getPosition().lngDeg);
final LatLng pg0 = LatLng.newInstance(w0.position.latDeg, w0.position.lngDeg);
final LatLng pg1 = LatLng.newInstance(w1.position.latDeg, w1.position.lngDeg);
final Point px0 = getMap().convertLatLngToDivPixel(pg0);
final Point px1 = getMap().convertLatLngToDivPixel(pg1);
final double dx = px0.getX()-px1.getX();
@@ -182,7 +182,7 @@ public class WindStreamletsCanvasOverlay extends FullCanvasOverlay implements Ti
while (windDTOIter.hasNext()) {
final SimulatorWindDTO windDTO = windDTOIter.next();
//System.out.println("wind angle: "+windDTO.trueWindBearingDeg);
final DegreeBearingImpl dbi = new DegreeBearingImpl(windDTO.getTrueWindBearingDeg());
final DegreeBearingImpl dbi = new DegreeBearingImpl(windDTO.trueWindBearingDeg);
drawScaledArrow(windDTO, dbi.getRadians(), ++index, pxLength, drawHead);
}
final String title = "Wind Field at " + windDTOList.size() + " points.";
@@ -191,12 +191,11 @@ public class WindStreamletsCanvasOverlay extends FullCanvasOverlay implements Ti
}
protected void drawArrow(final SimulatorWindDTO windDTO, final double angle, final double length, final double weight, final int index, final boolean drawHead) {
final String msg = "Wind @ P" + index + ": time : " + windDTO.getTimepoint() + " speed: " + windDTO.getTrueWindSpeedInKnots()
+ "knots "
+ windDTO.getTrueWindBearingDeg();
final String msg = "Wind @ P" + index + ": time : " + windDTO.timepoint + " speed: " + windDTO.trueWindSpeedInKnots + "knots "
+ windDTO.trueWindBearingDeg;
logger.fine(msg);
final PositionDTO position = windDTO.getPosition();
final PositionDTO position = windDTO.position;
final LatLng positionLatLng = LatLng.newInstance(position.latDeg, position.lngDeg);
final Point canvasPositionInPx = getMap().convertLatLngToDivPixel(positionLatLng);
@@ -74,8 +74,8 @@ public class WindFieldMapMouseMoveHandler implements MapMouseMoveHandler {
context2d.fillRect(x + 3, y + 3, ToolTip.toolRectW - 6, ToolTip.toolRectH - 6);
context2d.setFillStyle("Blue");
final String speedStr = NumberFormat.getFormat("#.00").format(windDTO.getTrueWindSpeedInKnots());
final String bearingStr = NumberFormat.getFormat("#.00").format(windDTO.getTrueWindBearingDeg());
final String speedStr = NumberFormat.getFormat("#.00").format(windDTO.trueWindSpeedInKnots);
final String bearingStr = NumberFormat.getFormat("#.00").format(windDTO.trueWindBearingDeg);
final String ttMsg = speedStr + " kn " + bearingStr + "°";
context2d.fillText(ttMsg, x+10,y+15,60);
}