001: /***********************************************************************************************
002: * Copyright 2002 (C) Nathaniel G. Auvil. All Rights Reserved.
003: *
004: * Redistribution and use of this software and associated documentation ("Software"), with or
005: * without modification, are permitted provided that the following conditions are met:
006: *
007: * 1. Redistributions of source code must retain copyright statements and notices.
008: * Redistributions must also contain a copy of this document.
009: *
010: * 2. Redistributions in binary form must reproduce the above copyright notice, this list of
011: * conditions and the following disclaimer in the documentation and/or other materials
012: * provided with the distribution.
013: *
014: * 3. The name "jCharts" or "Nathaniel G. Auvil" must not be used to endorse or promote
015: * products derived from this Software without prior written permission of Nathaniel G.
016: * Auvil. For written permission, please contact nathaniel_auvil@users.sourceforge.net
017: *
018: * 4. Products derived from this Software may not be called "jCharts" nor may "jCharts" appear
019: * in their names without prior written permission of Nathaniel G. Auvil. jCharts is a
020: * registered trademark of Nathaniel G. Auvil.
021: *
022: * 5. Due credit should be given to the jCharts Project (http://jcharts.sourceforge.net/).
023: *
024: * THIS SOFTWARE IS PROVIDED BY Nathaniel G. Auvil AND CONTRIBUTORS ``AS IS'' AND ANY
025: * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
026: * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
027: * jCharts OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
028: * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
029: * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
030: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,STRICT LIABILITY, OR TORT
031: * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
032: * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
033: ************************************************************************************************/package org.krysalis.jcharts.properties;
034:
035: import org.krysalis.jcharts.test.HTMLGenerator;
036: import org.krysalis.jcharts.test.HTMLTestable;
037: import org.krysalis.jcharts.properties.util.ChartStroke;
038: import org.krysalis.jcharts.properties.util.ChartFont;
039:
040: import java.awt.*;
041:
042: /*************************************************************************************
043: *
044: * @author Nathaniel Auvil, Sandor Dornbush
045: * @version $Id: LegendProperties.java,v 1.3 2003/07/05 13:23:50 nathaniel_auvil Exp $
046: ************************************************************************************/
047: public class LegendProperties extends LegendAreaProperties implements
048: HTMLTestable {
049: public static final Font DEFAULT_FONT = new Font("Serif",
050: Font.PLAIN, 12);
051: public static final Paint DEFAULT_FONT_PAINT = Color.black;
052: public static final Stroke DEFAULT_ICON_BORDER_STROKE = new BasicStroke(
053: 1.0f);
054: public static final Paint DEFAULT_ICON_BORDER_PAINT = Color.black;
055:
056: private ChartFont font = ChartFont.DEFAULT_LEGEND;
057:
058: private Paint iconBorderPaint = DEFAULT_ICON_BORDER_PAINT;
059: private Stroke iconBorderStroke = DEFAULT_ICON_BORDER_STROKE;
060: private Dimension size = null;
061:
062: /*********************************************************************************************
063: *
064: **********************************************************************************************/
065: public LegendProperties() {
066: super ();
067:
068: //---Legend background should be transparent by default.
069: super .setBackgroundPaint(null);
070:
071: super .setBorderStroke(ChartStroke.DEFAULT_LEGEND_OUTLINE);
072: }
073:
074: /*********************************************************************************************
075: * Sets the Font used by the Legend.
076: *
077: * @param legendFont
078: **********************************************************************************************/
079: public void setChartFont(ChartFont legendFont) {
080: this .font = legendFont;
081: }
082:
083: /*********************************************************************************************
084: * Returns the Font used by the Legend.
085: *
086: * @return ChartFont
087: **********************************************************************************************/
088: public ChartFont getChartFont() {
089: return this .font;
090: }
091:
092: /*********************************************************************************************
093: * Sets the Icon border color used by the Legend. If NULL is passed, there will be no border.
094: *
095: * @param iconBorderPaint
096: **********************************************************************************************/
097: public void setIconBorderPaint(Paint iconBorderPaint) {
098: this .iconBorderPaint = iconBorderPaint;
099: }
100:
101: /*********************************************************************************************
102: * Returns the Icon border Color used by the Legend.
103: *
104: * @return Paint
105: **********************************************************************************************/
106: public Paint getIconBorderPaint() {
107: return this .iconBorderPaint;
108: }
109:
110: /*********************************************************************************************
111: * Sets the icon border Stroke. If NULL is passed, there will be no border.
112: *
113: * @param stroke
114: **********************************************************************************************/
115: public void setIconBorderStroke(Stroke stroke) {
116: this .iconBorderStroke = stroke;
117: }
118:
119: /*********************************************************************************************
120: * Returns the icon border Stroke
121: *
122: * @return Stroke
123: **********************************************************************************************/
124: public Stroke getIconBorderStroke() {
125: return this .iconBorderStroke;
126: }
127:
128: /*********************************************************************************************
129: * Enables the testing routines to display the contents of this Object.
130: *
131: * @param htmlGenerator
132: **********************************************************************************************/
133: public void toHTML(HTMLGenerator htmlGenerator) {
134: htmlGenerator.propertiesTableStart("LegendProperties");
135: super .toHTML(htmlGenerator);
136: htmlGenerator.addTableRow("Icon Border Paint", this
137: .getIconBorderPaint());
138: htmlGenerator.addTableRow("Icon Border Stroke", this
139: .getIconBorderStroke());
140: htmlGenerator.addTableRow("Chart Font", this .getChartFont());
141: htmlGenerator.propertiesTableEnd();
142: }
143:
144: /** Getter for property size.
145: * @return Value of property size.
146: *
147: */
148: public java.awt.Dimension getSize() {
149: return this .size;
150: }
151:
152: /** Setter for property size.
153: * @param size New value of property size.
154: *
155: */
156: public void setSize(java.awt.Dimension size) {
157: this.size = size;
158: }
159:
160: }
|