/* Copyright 2014 Malcolm Herring * * This is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, version 3 of the License. * * For a copy of the GNU General Public License, see <http://www.gnu.org/licenses/>. */ package panels; import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Rectangle; import java.awt.geom.Point2D; import java.util.ArrayList; import javax.swing.JFrame; import javax.swing.JPanel; import org.openstreetmap.josm.data.osm.OsmPrimitive; import render.ChartContext; import render.Renderer; import s57.S57map; import s57.S57map.Feature; import s57.S57map.Snode; public class ShowFrame extends JFrame { S57map showMap; Picture picture; class Picture extends JPanel implements ChartContext { public void drawPicture(OsmPrimitive osm, S57map map) { long id; Feature feature; id = osm.getUniqueId(); feature = map.index.get(id); showMap = new S57map(true); showMap.nodes = map.nodes; showMap.edges = map.edges; showMap.index = map.index; if (feature != null) { showMap.features.put(feature.type, new ArrayList<Feature>()); showMap.features.get(feature.type).add(feature); } repaint(); } @Override public void paintComponent(Graphics g) { Graphics2D g2 = (Graphics2D) g; g2.setBackground(new Color(0xb5d0d0)); Rectangle rect = new Rectangle(0, 0, 300, 300); g2.clearRect(rect.x, rect.y, rect.width, rect.height); Renderer.reRender(g2, rect, 16, 32, showMap, this); } @Override public Point2D getPoint(Snode coord) { return new Point2D.Double(150, 150); } @Override public double mile(Feature feature) { return 1000; } @Override public boolean clip() { // TODO Auto-generated method stub return false; } @Override public Color background(S57map map) { // TODO Auto-generated method stub return null; } @Override public RuleSet ruleset() { // TODO Auto-generated method stub return null; } } public ShowFrame(String title) { super(title); picture = new Picture(); picture.setVisible(true); add(picture); pack(); } public void showFeature(OsmPrimitive osm, S57map map) { picture.drawPicture(osm, map); } }