protected abstract void paint(Graphics g, MapLayer layer, double zoom);
public void paint(Graphics g) { Graphics2D g2d = (Graphics2D)g; Iterator li = myMap.getLayers(); MapLayer layer; double currentZoom = zoom; Rectangle clip = g.getClipBounds();   g.setColor(new Color(64, 64, 64)); g.fillRect(clip.x, clip.y, clip.width, clip.height);  while (li.hasNext()) { layer = (MapLayer)li.next(); float opacity = layer.getOpacity(); if (layer.isVisible() && opacity > 0.0f) { if (opacity < 1.0f) { g2d.setComposite(AlphaComposite.getInstance( AlphaComposite.SRC_ATOP, opacity)); } else { g2d.setComposite(AlphaComposite.SrcOver); } paint(g, layer, currentZoom); } }  if (getMode(PF_GRIDMODE)) { g2d.setComposite(AlphaComposite.SrcOver); paintGrid(g, currentZoom); } }
    protected abstract void paint(Graphics g, MapLayer layer, double zoom);