001: /*
002: * GeoTools - OpenSource mapping toolkit
003: * http://geotools.org
004: * (C) 2002-2006, GeoTools Project Managment Committee (PMC)
005: * (C) 2002, Center for Computational Geography
006: *
007: * This library is free software; you can redistribute it and/or
008: * modify it under the terms of the GNU Lesser General Public
009: * License as published by the Free Software Foundation;
010: * version 2.1 of the License.
011: *
012: * This library is distributed in the hope that it will be useful,
013: * but WITHOUT ANY WARRANTY; without even the implied warranty of
014: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
015: * Lesser General Public License for more details.
016: *
017: * Contacts:
018: * UNITED KINGDOM: James Macgill. j.macgill@geog.leeds.ac.uk
019: */
020: package org.geotools.styling;
021:
022: import org.opengis.filter.expression.Expression;
023: import org.geotools.event.GTComponent;
024:
025: /**
026: * A Halo fills an extended area outside the glyphs of a rendered textlabel to
027: * make it easier to read over a background.
028: *
029: * <p>
030: * The details of this object are taken from the <a
031: * href="https://portal.opengeospatial.org/files/?artifact_id=1188"> OGC
032: * Styled-Layer Descriptor Report (OGC 02-070) version 1.0.0.</a>:
033: * <pre><code>
034: * <xsd:element name="Halo">
035: * <xsd:annotation>
036: * <xsd:documentation>
037: * A "Halo" fills an extended area outside the glyphs of a rendered
038: * text label to make the label easier to read over a background.
039: * </xsd:documentation>
040: * </xsd:annotation>
041: * <xsd:complexType>
042: * <xsd:sequence>
043: * <xsd:element ref="sld:Radius" minOccurs="0"/>
044: * <xsd:element ref="sld:Fill" minOccurs="0"/>
045: * </xsd:sequence>
046: * </xsd:complexType>
047: * </xsd:element>
048: * </code></pre>
049: * </p>
050: *
051: * <p>
052: * Renderers can use this information when displaying styled features, though
053: * it must be remembered that not all renderers will be able to fully
054: * represent strokes as set out by this interface. For example, opacity may
055: * not be supported.
056: * </p>
057: *
058: * <p>
059: * Notes:
060: *
061: * <ul>
062: * <li>
063: * The graphical parameters and their values are derived from SVG/CSS2
064: * standards with names and semantics which are as close as possible.
065: * </li>
066: * </ul>
067: * </p>
068: * $Id: Halo.java 25459 2007-05-08 05:19:25Z jgarnett $
069: *
070: * @author Ian Turton, CCG
071: * @source $URL: http://svn.geotools.org/geotools/tags/2.4.1/modules/library/api/src/main/java/org/geotools/styling/Halo.java $
072: */
073: public interface Halo extends GTComponent {
074: /**
075: * Expression that represents the the distance the halo extends from the
076: * text
077: *
078: * @return DOCUMENT ME!
079: */
080: Expression getRadius();
081:
082: /**
083: * Expression that represents the the distance the halo extends from the
084: * text
085: *
086: * @param radius DOCUMENT ME!
087: */
088: void setRadius(Expression radius);
089:
090: /**
091: * The fill (color) of the halo
092: *
093: * @return DOCUMENT ME!
094: */
095: Fill getFill();
096:
097: /**
098: * The fill (color) of the halo
099: *
100: * @param fill DOCUMENT ME!
101: */
102: void setFill(Fill fill);
103:
104: void accept(StyleVisitor visitor);
105: }
|