/[schmitzm]/trunk/src/skrueger/geotools/StyledLayerInterface.java
ViewVC logotype

Contents of /trunk/src/skrueger/geotools/StyledLayerInterface.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 224 - (show annotations)
Tue Jul 14 15:57:19 2009 UTC (15 years, 7 months ago) by alfonx
File size: 4072 byte(s)
* big biG BIG refactoring: StyledMap[Interface,Util,Style] never dealt with Maps (=Orchestrations of layers), but always only with single Layers. Now it has been refactored to StyledLayer[Interface,Util,Style]. 
* Some variable names and methodNames have been corrected also, but many will still be missing.
* New JARs committed
1 package skrueger.geotools;
2
3 import java.net.URL;
4
5 import javax.swing.ImageIcon;
6
7 import org.geotools.feature.FeatureCollection;
8 import org.geotools.styling.Style;
9 import org.opengis.referencing.crs.CoordinateReferenceSystem;
10
11 import skrueger.AttributeMetaData;
12 import skrueger.RasterLegendData;
13 import skrueger.i8n.Translation;
14
15 import com.vividsolutions.jts.geom.Envelope;
16
17 /**
18 * This class is the top interface for styled objects to be managed in
19 * {@link MapContextManagerInterface}. The (rough) classe structure is the
20 * following:
21 * <ul>
22 * <li><b>{@link StyledLayerInterface StyledLayerInterface<E>}</b>
23 * <ul>
24 * <li>{@link #getId()} -> String</li>
25 * <li>{@link #getKeywords() get/setKeywords()} -> {@link Translation}</li>
26 * <li>{@link #getTitle() set/getTitle()} -> {@link Translation} (short
27 * description for layer list)</li>
28 * <li>{@link #getDesc() set/getDesc()} -> {@link Translation} (long description
29 * for details)</li>
30 * <li>{@link #getCrs()} -> {@link CoordinateReferenceSystem}</li>
31 * <li>{@link #getCRSString()} -> String (readable description of CRS)</li>
32 * <li>{@link #getEnvelope()} -> {@link Envelope} (JTS-Envelope)</li>
33 * <li>{@link #getGeoObject()} -> E (GridCoverage/FeatureCollection/...)</li>
34 * <li>{@link #getStyle() set/getStyle()} -> {@link Style}</li>
35 * <li>{@link #uncache()}</li>
36 * <li>{@link #dispose()}</li>
37 * </ul>
38 * </li>
39 * <li><b>{@link StyledFeatureCollectionInterface} extends
40 * {@link StyledLayerInterface StyledLayerInterface<FeatureCollection>}</b>
41 * <ul>
42 * <li>{@link StyledFeatureCollectionInterface#getAttributeMetaDataMap()} ->
43 * Map<Integer,AttributeMetaData></li>
44 * </ul>
45 * </li>
46 * <li><b>{@link StyledRasterInterface} extends {@link StyledLayerInterface
47 * StyledLayerInterface<GridCoverage2D>}</b>
48 * <ul>
49 * <li>{@link StyledRasterInterface#getLegendMetaData()} ->
50 * {@link RasterLegendData}</li>
51 * </ul>
52 * </li>
53 * </ul>
54 * <br>
55 * <b>Restrictions:</b>
56 * <ul>
57 * <li>layer list only depends on {@link StyledLayerInterface}</li>
58 * <li>methods returning {@link Translation} must not return {@code null}</li>
59 * <li>methods returning {@link AttributeMetaData}-Map must not return {@code
60 * null}</li>
61 * <li>static helper method to get a new {@link AttributeMetaData}-map withe the
62 * visible attributes only</li>
63 * <li>static helper method to create a "default" {@link AttributeMetaData}-map
64 * for a {@link FeatureCollection} with all attributes visible and without real
65 * translations, but the attribute name as description.</li>
66 * </ul>
67 */
68 public interface StyledLayerInterface<E> {
69 public String getId();
70
71 public Translation getTitle();
72
73 public void setTitle(Translation title);
74
75 public Translation getDesc();
76
77 public void setDesc(Translation dec);
78
79 public Translation getKeywords();
80
81 public void setKeywords(Translation keywords);
82
83 public CoordinateReferenceSystem getCrs();
84
85 public String getCRSString();
86
87 public Envelope getEnvelope();
88
89 /**
90 * @return return an ImageIcon - <code>null</code> is valid and no icon or a
91 * default icon will then be shown
92 */
93 public ImageIcon getImageIcon();
94
95 public void setImageIcon(ImageIcon icon);
96
97 /**
98 * Returns the underlying GeoTools Object
99 *
100 * @throws RuntimeException
101 */
102 public E getGeoObject();
103
104 public Style getStyle();
105
106 public void setStyle(Style style);
107
108 /**
109 * Returns the {@link URL} to a (HTML) file that provides more information
110 * about this layer. If no HTML if associated with this
111 * {@link StyledLayerInterface}, then <code>null</code> will be returned.
112 *
113 * @return null or an {@link URL}
114 */
115 public URL getInfoURL();
116
117 /**
118 * Should be called when this Object is not needed anymore.
119 */
120 public void dispose();
121
122 /** Is the object already disposed? * */
123 public boolean isDisposed();
124
125 /**
126 * Clears any caches. For example the GeoObject could be released, and
127 * reread on next call of getGeoObject()
128 */
129 public void uncache();
130
131
132 }

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26