// License: GPL. Copyright (C) 2012 Russell Edwards package org.openstreetmap.josm.plugins.gpsblam; import static org.openstreetmap.josm.tools.I18n.tr; import java.awt.Graphics2D; import java.awt.Toolkit; import java.util.Collection; import java.util.LinkedList; import javax.swing.Action; import javax.swing.Icon; import javax.swing.ImageIcon; import org.openstreetmap.josm.data.Bounds; import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor; import org.openstreetmap.josm.gui.MapView; import org.openstreetmap.josm.gui.dialogs.LayerListDialog; import org.openstreetmap.josm.gui.dialogs.LayerListPopup; import org.openstreetmap.josm.gui.layer.Layer; class GPSBlamLayer extends Layer { private final Collection<GPSBlamMarker> blamMarkers; GPSBlamLayer(String name) { super(name); blamMarkers = new LinkedList<>(); } private static final Icon ICON = new ImageIcon(Toolkit.getDefaultToolkit().createImage( GPSBlamPlugin.class.getResource("/images/gpsblam_layer.png"))); @Override public Icon getIcon() { return ICON; } @Override public Object getInfoComponent() { return getToolTipText(); } @Override public Action[] getMenuEntries() { return new Action[] { LayerListDialog.getInstance().createShowHideLayerAction(), LayerListDialog.getInstance().createDeleteLayerAction(), new LayerListPopup.InfoAction(this)}; } @Override public String getToolTipText() { return tr("GPS Blams"); } @Override public boolean isMergable(Layer arg0) { return false; } @Override public void mergeFrom(Layer arg0) { // Do nothing } @Override public void paint(Graphics2D g, MapView mv, Bounds bounds) { for (GPSBlamMarker blamMarker : blamMarkers){ blamMarker.paint(g, mv); } } @Override public void visitBoundingBox(BoundingXYVisitor arg0) { // Do nothing } void addBlamMarker(GPSBlamMarker blamMarker) { blamMarkers.add(blamMarker); } }