// ********************************************************************** // // <copyright> // // BBN Technologies // 10 Moulton Street // Cambridge, MA 02138 // (617) 873-8000 // // Copyright (C) BBNT Solutions LLC. All rights reserved. // // </copyright> // ********************************************************************** // // $Source: /cvs/distapps/openmap/src/openmap/com/bbn/openmap/layer/test/HelloWorldLayer.java,v $ // $RCSfile: HelloWorldLayer.java,v $ // $Revision: 1.5 $ // $Date: 2009/01/21 01:24:42 $ // $Author: dietrick $ // // ********************************************************************** package com.bbn.openmap.layer.test; import java.awt.Color; import java.awt.Graphics; import com.bbn.openmap.Layer; import com.bbn.openmap.event.ProjectionEvent; import com.bbn.openmap.omGraphics.OMGraphic; import com.bbn.openmap.omGraphics.OMGraphicList; import com.bbn.openmap.omGraphics.OMPoly; /** * Layer objects are components which can be added to the MapBean to * make a map. * <p> * Layers implement the ProjectionListener interface to listen for * ProjectionEvents. When the projection changes, they may need to * refetch, regenerate their graphics, and then repaint themselves * into the new view. */ public class HelloWorldLayer extends Layer { protected OMGraphicList graphics; /** * Construct the layer. */ public HelloWorldLayer() { super(); graphics = new OMGraphicList(10); createGraphics(graphics); } /** * Sets the properties for the <code>Layer</code>. This allows * <code>Layer</code> s to get a richer set of parameters than * the <code>setArgs</code> method. * * @param prefix the token to prefix the property names * @param props the <code>Properties</code> object */ public void setProperties(String prefix, java.util.Properties props) { super.setProperties(prefix, props); } /** * Invoked when the projection has changed or this Layer has been * added to the MapBean. * * @param e ProjectionEvent */ public void projectionChanged(ProjectionEvent e) { graphics.generate(e.getProjection()); repaint(); } /** * Paints the layer. * * @param g the Graphics context for painting */ public void paint(Graphics g) { graphics.render(g); } /** * Create graphics. */ protected void createGraphics(OMGraphicList list) { // NOTE: all this is very non-optimized... OMPoly poly; // H poly = new OMPoly(new double[] { 10f, -150f, 35f, -150f, 35f, -145f, 25f, -145f, 25f, -135f, 35f, -135f, 35f, -130f, 10f, -130f, 10f, -135f, 20f, -135f, 20f, -145f, 10f, -145f, 10f, -150f }, OMGraphic.DECIMAL_DEGREES, OMGraphic.LINETYPE_RHUMB, 32); poly.setLinePaint(Color.black); poly.setFillPaint(Color.green); list.add(poly); // E poly = new OMPoly(new double[] { 10f, -120f, 35f, -120f, 35f, -100f, 30f, -100f, 30f, -115f, 25f, -115f, 25f, -105f, 20f, -105f, 20f, -115f, 15f, -115f, 15f, -100f, 10f, -100f, 10f, -120f }, OMGraphic.DECIMAL_DEGREES, OMGraphic.LINETYPE_RHUMB, 32); poly.setLinePaint(Color.black); poly.setFillPaint(Color.green); list.add(poly); // L poly = new OMPoly(new double[] { 10f, -90f, 35f, -90f, 35f, -85f, 15f, -85f, 15f, -75f, 10f, -75f, 10f, -90f }, OMGraphic.DECIMAL_DEGREES, OMGraphic.LINETYPE_RHUMB, 32); poly.setLinePaint(Color.black); poly.setFillPaint(Color.green); list.add(poly); // L poly = new OMPoly(new double[] { 10f, -70f, 35f, -70f, 35f, -65f, 15f, -65f, 15f, -55f, 10f, -55f, 10f, -70f }, OMGraphic.DECIMAL_DEGREES, OMGraphic.LINETYPE_RHUMB, 32); poly.setLinePaint(Color.black); poly.setFillPaint(Color.green); list.add(poly); // O poly = new OMPoly(new double[] { 10f, -50f, 35f, -50f, 35f, -30f, 10f, -30f, 10f, -50f }, OMGraphic.DECIMAL_DEGREES, OMGraphic.LINETYPE_RHUMB, 32); poly.setLinePaint(Color.black); poly.setFillPaint(OMGraphic.clear); list.add(poly); poly = new OMPoly(new double[] { 15f, -45f, 30f, -45f, 30f, -35f, 15f, -35f, 15f, -45f }, OMGraphic.DECIMAL_DEGREES, OMGraphic.LINETYPE_RHUMB, 32); poly.setLinePaint(Color.black); poly.setFillPaint(OMGraphic.clear); list.add(poly); poly = new OMPoly(new double[] { 10f, -50f, 35f, -50f, 35f, -30f, 10f, -30f, 10f, -45f, 15f, -45f, 15f, -35f, 30f, -35f, 30f, -45f, 10f, -45f, 10f, -50f }, OMGraphic.DECIMAL_DEGREES, OMGraphic.LINETYPE_RHUMB, 32); poly.setLinePaint(OMGraphic.clear); poly.setFillPaint(Color.green); list.add(poly); // W poly = new OMPoly(new double[] { -35f, -5f, -10f, -5f, -10f, 0f, -25f, 0f, -25f, 5f, -20f, 5f, -20f, 10f, -25f, 10f, -25f, 15f, -10f, 15f, -10f, 20f, -35f, 20f, -35f, 10f, -30f, 10f, -30f, 5f, -35f, 5f, -35f, -5f }, OMGraphic.DECIMAL_DEGREES, OMGraphic.LINETYPE_RHUMB, 32); poly.setLinePaint(Color.black); poly.setFillPaint(Color.green); list.add(poly); // O poly = new OMPoly(new double[] { -35f, 30f, -10f, 30f, -10f, 50f, -35f, 50f, -35f, 30f }, OMGraphic.DECIMAL_DEGREES, OMGraphic.LINETYPE_RHUMB, 32); poly.setLinePaint(Color.black); poly.setFillPaint(OMGraphic.clear); list.add(poly); poly = new OMPoly(new double[] { -30f, 35f, -15f, 35f, -15f, 45f, -30f, 45f, -30f, 35f, }, OMGraphic.DECIMAL_DEGREES, OMGraphic.LINETYPE_RHUMB, 32); poly.setLinePaint(Color.black); poly.setFillPaint(OMGraphic.clear); list.add(poly); poly = new OMPoly(new double[] { -35f, 30f, -10f, 30f, -10f, 50f, -35f, 50f, -35f, 35f, -30f, 35f, -30f, 45f, -15f, 45f, -15f, 35f, -35f, 35f, -35f, 30f }, OMGraphic.DECIMAL_DEGREES, OMGraphic.LINETYPE_RHUMB, 32); poly.setLinePaint(OMGraphic.clear); poly.setFillPaint(Color.green); list.add(poly); // R poly = new OMPoly(new double[] { -35f, 60f, -10f, 60f, -10f, 75f, -20f, 75f, -25f, 70f, -30f, 80f, -35f, 80f, -35f, 75f, -30f, 70f, -30f, 65f, -35f, 65f, -35f, 60f }, OMGraphic.DECIMAL_DEGREES, OMGraphic.LINETYPE_RHUMB, 32); poly.setLinePaint(Color.black); poly.setFillPaint(OMGraphic.clear); list.add(poly); poly = new OMPoly(new double[] { -20f, 65f, -15f, 65f, -15f, 70f, -20f, 70f, -20f, 65f }, OMGraphic.DECIMAL_DEGREES, OMGraphic.LINETYPE_RHUMB, 32); poly.setLinePaint(Color.black); poly.setFillPaint(OMGraphic.clear); list.add(poly); poly = new OMPoly(new double[] { -35f, 60f, -10f, 60f, -10f, 75f, -20f, 75f, -25f, 70f, -30f, 80f, -35f, 80f, -35f, 75f, -30f, 70f, -30f, 65f, -20f, 65f, -20f, 70f, -15f, 70f, -15f, 65f, -35f, 65f, -35f, 60f }, OMGraphic.DECIMAL_DEGREES, OMGraphic.LINETYPE_RHUMB, 32); poly.setLinePaint(OMGraphic.clear); poly.setFillPaint(Color.green); list.add(poly); // L poly = new OMPoly(new double[] { -35f, 90f, -10f, 90f, -10f, 95f, -30f, 95f, -30f, 105f, -35f, 105f, -35f, 90f }, OMGraphic.DECIMAL_DEGREES, OMGraphic.LINETYPE_RHUMB, 32); poly.setLinePaint(Color.black); poly.setFillPaint(Color.green); list.add(poly); // D poly = new OMPoly(new double[] { -35f, 110f, -10f, 110f, -10f, 125f, -15f, 130f, -30f, 130f, -35f, 125f, -35f, 110f }, OMGraphic.DECIMAL_DEGREES, OMGraphic.LINETYPE_RHUMB, 32); poly.setLinePaint(Color.black); poly.setFillPaint(OMGraphic.clear); list.add(poly); poly = new OMPoly(new double[] { -30f, 115f, -15f, 115f, -15f, 120f, -20f, 125f, -25f, 125f, -30f, 120f, -30f, 115f }, OMGraphic.DECIMAL_DEGREES, OMGraphic.LINETYPE_RHUMB, 32); poly.setLinePaint(Color.black); poly.setFillPaint(OMGraphic.clear); list.add(poly); poly = new OMPoly(new double[] { -35f, 110f, -10f, 110f, -10f, 125f, -15f, 130f, -30f, 130f, -35f, 125f, -35f, 115f, -30f, 115f, -30f, 120f, -25f, 125f, -20f, 125f, -15f, 120f, -15f, 115f, -35f, 115f, -35f, 110f }, OMGraphic.DECIMAL_DEGREES, OMGraphic.LINETYPE_RHUMB, 32); poly.setLinePaint(OMGraphic.clear); poly.setFillPaint(Color.green); list.add(poly); } }