Worldwind public release 0.2
[worldwind-tracker.git] / gov / nasa / worldwind / layers / IconLayer.java
blob87d2e56621b96a39d18a5b67af9e07ac1a82de23
1 /*
2 Copyright (C) 2001, 2006 United States Government
3 as represented by the Administrator of the
4 National Aeronautics and Space Administration.
5 All Rights Reserved.
6 */
7 package gov.nasa.worldwind.layers;
9 import gov.nasa.worldwind.*;
10 import gov.nasa.worldwind.geom.*;
12 /**
13 * @author tag
14 * @version $Id$
16 public class IconLayer extends AbstractLayer
18 private final java.util.Collection<WWIcon> icons = new java.util.ArrayList<WWIcon>();
19 private java.util.Iterator<WWIcon> iconIterator;
20 private IconRenderer iconRenderer = new IconRenderer();
21 private Pedestal pedestal;
23 public IconLayer()
27 public void setIcons(java.util.Iterator<WWIcon> iconIterator)
29 this.iconIterator = iconIterator;
32 public void addIcon(WWIcon icon)
34 if (icon == null)
36 String msg = WorldWind.retrieveErrMsg("nullValue.Icon");
37 WorldWind.logger().log(java.util.logging.Level.FINE, msg);
38 throw new IllegalArgumentException(msg);
41 this.icons.add(icon);
44 public void removeIcon(WWIcon icon)
46 if (icon == null)
48 String msg = WorldWind.retrieveErrMsg("nullValue.Icon");
49 WorldWind.logger().log(java.util.logging.Level.FINE, msg);
50 throw new IllegalArgumentException(msg);
53 this.icons.remove(icon);
56 public java.util.Collection<WWIcon> getIcons()
58 return this.icons;
61 public void dispose()
63 this.iconRenderer.dispose();
66 public Pedestal getPedestal()
68 return pedestal;
71 public void setPedestal(Pedestal pedestal)
73 this.pedestal = pedestal;
76 @Override
77 protected void doPick(DrawContext dc, java.awt.Point pickPoint)
79 if (this.iconIterator == null)
80 this.iconIterator = this.icons.iterator();
82 this.iconRenderer.setPedestal(this.pedestal);
83 this.iconRenderer.pick(dc, this.iconIterator, pickPoint, this);
85 this.iconIterator = null;
88 @Override
89 protected void doRender(DrawContext dc)
91 if (this.iconIterator == null)
92 this.iconIterator = this.icons.iterator();
94 this.iconRenderer.setPedestal(this.pedestal);
95 this.iconRenderer.render(dc, this.iconIterator);
97 this.iconIterator = null;
100 @Override
101 public String toString()
103 return WorldWind.retrieveErrMsg("layers.IconLayer.Name");