Add possibility to show/hide a marker after its creation without having to delete/recreate it.
This commit is contained in:
parent
9ae576a058
commit
422a3267ca
@ -46,9 +46,13 @@ public class BasicDrawing extends JPanel implements Drawing {
|
||||
// Image of the marker
|
||||
protected BufferedImage image;
|
||||
|
||||
// Visible?
|
||||
protected boolean visible;
|
||||
|
||||
public BasicMarkerTracker(Point point, BufferedImage image) {
|
||||
this.point = point;
|
||||
this.image = image;
|
||||
this.visible = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -62,6 +66,12 @@ public class BasicDrawing extends JPanel implements Drawing {
|
||||
BasicDrawing.this.repaint();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setVisible(boolean visible) {
|
||||
this.visible = visible;
|
||||
BasicDrawing.this.repaint();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void delete() {
|
||||
BasicDrawing.this.markers.remove(this);
|
||||
@ -151,10 +161,12 @@ public class BasicDrawing extends JPanel implements Drawing {
|
||||
|
||||
// Draw markers
|
||||
for (BasicMarkerTracker mtracker: markers) {
|
||||
BufferedImage img = mtracker.image;
|
||||
int px = this.projx(mtracker.getPoint().getLongitude());
|
||||
int py = this.projy(mtracker.getPoint().getLatitude());
|
||||
g.drawImage(img, px - img.getWidth() / 2, py - img.getHeight(), this);
|
||||
if (mtracker.visible) {
|
||||
BufferedImage img = mtracker.image;
|
||||
int px = this.projx(mtracker.getPoint().getLongitude());
|
||||
int py = this.projy(mtracker.getPoint().getLatitude());
|
||||
g.drawImage(img, px - img.getWidth() / 2, py - img.getHeight(), this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -69,6 +69,11 @@ public class MapViewDrawing extends MapView implements Drawing {
|
||||
MapViewDrawing.this.getLayerManager().getLayers().add(this.marker);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setVisible(boolean visible) {
|
||||
this.marker.setVisible(visible);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void delete() {
|
||||
MapViewDrawing.this.getLayerManager().getLayers().remove(marker);
|
||||
|
@ -14,6 +14,13 @@ public interface MarkerTracker {
|
||||
*/
|
||||
public void moveTo(Point point);
|
||||
|
||||
/**
|
||||
* Show or hide this marker - A marker should be visible when created.
|
||||
*
|
||||
* @param visible true to show the marker, false to hide.
|
||||
*/
|
||||
public void setVisible(boolean visible);
|
||||
|
||||
/**
|
||||
* Delete this marker.
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user