package org.chartsy.main;
import java.awt.Color;
import java.awt.Font;
import java.awt.Stroke;
import org.chartsy.main.chart.AbstractPropertyListener;
import org.chartsy.main.utils.SerialVersion;
import org.chartsy.main.utils.StrokeGenerator;
import org.chartsy.main.utils.XMLUtil;
import org.chartsy.main.utils.XMLUtil.XMLTemplate;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
/**
*
* @author Administrator
*/
public class ChartProperties
extends AbstractPropertyListener
implements XMLTemplate
{
private static final long serialVersionUID = SerialVersion.APPVERSION;
public static final double AXIS_TICK = 6;
public static final double AXIS_DATE_STICK = 10;
public static final double AXIS_PRICE_STICK = 5;
public static final Color AXIS_COLOR = new Color(0x2e3436);
public static final int AXIS_STROKE_INDEX = 0;
public static final boolean AXIS_LOGARITHMIC_FLAG = false;
public static final double BAR_WIDTH = 8;
public static final Color BAR_COLOR = new Color(0x2e3436);
public static final int BAR_STROKE_INDEX = 0;
public static final boolean BAR_VISIBILITY = true;
public static final Color BAR_DOWN_COLOR = new Color(0xef2929);
public static final boolean BAR_DOWN_VISIBILITY = true;
public static final Color BAR_UP_COLOR = new Color(0x73d216);
public static final boolean BAR_UP_VISIBILITY = true;
public static final Color GRID_HORIZONTAL_COLOR = new Color(0xeeeeec);
public static final int GRID_HORIZONTAL_STROKE_INDEX = 0;
public static final boolean GRID_HORIZONTAL_VISIBILITY = true;
public static final Color GRID_VERTICAL_COLOR = new Color(0xeeeeec);
public static final int GRID_VERTICAL_STROKE_INDEX = 0;
public static final boolean GRID_VERTICAL_VISIBILITY = true;
public static final Color BACKGROUND_COLOR = new Color(0xffffff);
public static final Font FONT = new Font("Dialog", Font.PLAIN, 12);
public static final Color FONT_COLOR = new Color(0x2e3436);
public static final boolean MARKER_VISIBILITY = true;
public static final boolean TOOLBAR_VISIBILITY = true;
public static final boolean TOOLBAR_SMALL_ICONS = false;
public static final boolean TOOLBAR_SHOW_LABELS = true;
private double axisTick = AXIS_TICK;
private double axisDateStick = AXIS_DATE_STICK;
private double axisPriceStick = AXIS_PRICE_STICK;
private Color axisColor = AXIS_COLOR;
private int axisStrokeIndex = AXIS_STROKE_INDEX;
private boolean axisLogarithmicFlag = AXIS_LOGARITHMIC_FLAG;
private double barWidth = BAR_WIDTH;
private Color barColor = BAR_COLOR;
private int barStrokeIndex = BAR_STROKE_INDEX;
private boolean barVisibility = BAR_VISIBILITY;
private Color barDownColor = BAR_DOWN_COLOR;
private boolean barDownVisibility = BAR_DOWN_VISIBILITY;
private Color barUpColor = BAR_UP_COLOR;
private boolean barUpVisibility = BAR_UP_VISIBILITY;
private Color gridHorizontalColor = GRID_HORIZONTAL_COLOR;
private int gridHorizontalStrokeIndex = GRID_HORIZONTAL_STROKE_INDEX;
private boolean gridHorizontalVisibility = GRID_HORIZONTAL_VISIBILITY;
private Color gridVerticalColor = GRID_VERTICAL_COLOR;
private int gridVerticalStrokeIndex = GRID_VERTICAL_STROKE_INDEX;
private boolean gridVerticalVisibility = GRID_VERTICAL_VISIBILITY;
private Color backgroundColor = BACKGROUND_COLOR;
private Font font = FONT;
private Color fontColor = FONT_COLOR;
private boolean markerVisibility = MARKER_VISIBILITY;
private String[] months = {"", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
private boolean toolbarVisibility = TOOLBAR_VISIBILITY;
private boolean toolbarSmallIcons = TOOLBAR_SMALL_ICONS;
private boolean toolbarShowLabels = TOOLBAR_SHOW_LABELS;
public ChartProperties()
{
}
public double getAxisTick() { return this.axisTick; }
public double getAxisDateStick() { return this.axisDateStick; }
public double getAxisPriceStick() { return this.axisPriceStick; }
public Color getAxisColor()
{
return this.axisColor;
}
public void setAxisColor(Color color)
{
if (color == null)
return;
axisColor = color;
}
public int getAxisStrokeIndex()
{
return this.axisStrokeIndex;
}
public void setAxisStrokeIndex(int i)
{
if (!StrokeGenerator.isStrokeIndex(i))
return;
axisStrokeIndex = i;
}
public Stroke getAxisStroke()
{
return StrokeGenerator.getStroke(axisStrokeIndex);
}
public void setAxisStroke(Stroke s)
{
if (s == null)
return;
axisStrokeIndex = StrokeGenerator.getStrokeIndex(s);
}
public boolean getAxisLogarithmicFlag()
{
return axisLogarithmicFlag;
}
public void setAxisLogarithmicFlag(boolean b)
{
axisLogarithmicFlag = b;
}
public void setBarWidth(double itemWidth)
{
if (itemWidth <= 0)
return;
barWidth = itemWidth;
}
public double getBarWidth()
{
return barWidth;
}
public Color getBarColor()
{
return this.barColor;
}
public void setBarColor(Color color)
{
if (color == null)
return;
barColor = color;
}
public int getBarStrokeIndex()
{
return this.barStrokeIndex;
}
public void setBarStrokeIndex(int i)
{
if (!StrokeGenerator.isStrokeIndex(i))
return;
barStrokeIndex = i;
}
public Stroke getBarStroke()
{
return StrokeGenerator.getStroke(barStrokeIndex);
}
public void setBarStroke(Stroke s)
{
if (s == null)
return;
barStrokeIndex = StrokeGenerator.getStrokeIndex(s);
}
public boolean getBarVisibility()
{
return this.barVisibility;
}
public void setBarVisibility(boolean b)
{
barVisibility = b;
}
public Color getBarDownColor()
{
return this.barDownColor;
}
public void setBarDownColor(Color color)
{
if (color == null)
return;
barDownColor = color;
}
public boolean getBarDownVisibility()
{
return this.barDownVisibility;
}
public void setBarDownVisibility(boolean b)
{
barDownVisibility = b;
}
public Color getBarUpColor()
{
return this.barUpColor;
}
public void setBarUpColor(Color color)
{
if (color == null)
return;
barUpColor = color;
}
public boolean getBarUpVisibility()
{
return this.barUpVisibility;
}
public void setBarUpVisibility(boolean b)
{
barUpVisibility = b;
}
public Color getGridHorizontalColor()
{
return this.gridHorizontalColor;
}
public void setGridHorizontalColor(Color color)
{
if (color == null)
return;
gridHorizontalColor = color;
}
public int getGridHorizontalStrokeIndex()
{
return this.gridHorizontalStrokeIndex;
}
public void setGridHorizontalStrokeIndex(int i)
{
if (!StrokeGenerator.isStrokeIndex(i))
return;
gridHorizontalStrokeIndex = i;
}
public Stroke getGridHorizontalStroke()
{
return StrokeGenerator.getStroke(gridHorizontalStrokeIndex);
}
public void setGridHorizontalStroke(Stroke s)
{
if (s == null)
return;
gridHorizontalStrokeIndex = StrokeGenerator.getStrokeIndex(s);
}
public boolean getGridHorizontalVisibility()
{
return this.gridHorizontalVisibility;
}
public void setGridHorizontalVisibility(boolean b)
{
gridHorizontalVisibility = b;
}
public Color getGridVerticalColor()
{
return this.gridVerticalColor;
}
public void setGridVerticalColor(Color color)
{
if (color == null)
return;
gridVerticalColor = color;
}
public int getGridVerticalStrokeIndex()
{
return this.gridVerticalStrokeIndex;
}
public void setGridVerticalStrokeIndex(int i)
{
if (!StrokeGenerator.isStrokeIndex(i))
return;
gridVerticalStrokeIndex = i;
}
public Stroke getGridVerticalStroke() {
return StrokeGenerator.getStroke(gridVerticalStrokeIndex);
}
public void setGridVerticalStroke(Stroke s)
{
if (s == null)
return;
gridVerticalStrokeIndex = StrokeGenerator.getStrokeIndex(s);
}
public boolean getGridVerticalVisibility()
{
return this.gridVerticalVisibility;
}
public void setGridVerticalVisibility(boolean b)
{
gridVerticalVisibility = b;
}
public Color getBackgroundColor()
{
return this.backgroundColor;
}
public void setBackgroundColor(Color color)
{
if (color == null)
return;
backgroundColor = color;
}
public Font getFont()
{
return this.font;
}
public void setFont(Font font)
{
if (font == null)
return;
this.font = font;
}
public Color getFontColor()
{
return this.fontColor;
}
public void setFontColor(Color color)
{
if (color == null)
return;
fontColor = color;
}
public void setMarkerVisibility(boolean b)
{
markerVisibility = b;
}
public boolean getMarkerVisibility()
{
return markerVisibility;
}
public String[] getMonths()
{
return this.months;
}
public boolean getToolbarVisibility()
{
return toolbarVisibility;
}
public void setToolbarVisibility(boolean b)
{
toolbarVisibility = b;
}
public void toggleToolbarVisibility()
{
setToolbarVisibility(!toolbarVisibility);
}
public boolean getToolbarSmallIcons()
{
return toolbarSmallIcons;
}
public void setToolbarSmallIcons(boolean b)
{
toolbarSmallIcons = b;
}
public void toggleToolbarSmallIcons()
{
setToolbarSmallIcons(!toolbarSmallIcons);
}
public boolean getToolbarShowLabels()
{
return toolbarShowLabels;
}
public void setToolbarShowLabels(boolean b)
{
toolbarShowLabels = b;
}
public void toggleShowLabels()
{
setToolbarShowLabels(!toolbarShowLabels);
}
public void copyFrom(ChartProperties chartProperties)
{
setAxisColor(chartProperties.getAxisColor());
setAxisStrokeIndex(chartProperties.getAxisStrokeIndex());
setBarColor(chartProperties.getBarColor());
setBarStrokeIndex(chartProperties.getBarStrokeIndex());
setBarVisibility(chartProperties.getBarVisibility());
setBarDownColor(chartProperties.getBarDownColor());
setBarDownVisibility(chartProperties.getBarDownVisibility());
setBarUpColor(chartProperties.getBarUpColor());
setBarUpVisibility(chartProperties.getBarUpVisibility());
setGridHorizontalColor(chartProperties.getGridHorizontalColor());
setGridHorizontalStrokeIndex(chartProperties.getGridHorizontalStrokeIndex());
setGridHorizontalVisibility(chartProperties.getGridHorizontalVisibility());
setGridVerticalColor(chartProperties.getGridVerticalColor());
setGridVerticalStrokeIndex(chartProperties.getGridVerticalStrokeIndex());
setGridVerticalVisibility(chartProperties.getGridVerticalVisibility());
setBackgroundColor(chartProperties.getBackgroundColor());
setFont(chartProperties.getFont());
setFontColor(chartProperties.getFontColor());
}
@Override
public void saveToTemplate(Document document, Element element)
{
XMLUtil.addColorProperty (document, element, "axisColor", axisColor);
XMLUtil.addIntegerProperty (document, element, "axisStrokeIndex", axisStrokeIndex);
XMLUtil.addDoubleProperty (document, element, "barWidth", barWidth);
XMLUtil.addColorProperty (document, element, "barColor", barColor);
XMLUtil.addIntegerProperty (document, element, "barStrokeIndex", barStrokeIndex);
XMLUtil.addBooleanProperty (document, element, "barVisibility", barVisibility);
XMLUtil.addColorProperty (document, element, "barDownColor", barDownColor);
XMLUtil.addBooleanProperty (document, element, "barDownVisibility", barDownVisibility);
XMLUtil.addColorProperty (document, element, "barUpColor", barUpColor);
XMLUtil.addBooleanProperty (document, element, "barUpVisibility", barUpVisibility);
XMLUtil.addColorProperty (document, element, "gridHorizontalColor", gridHorizontalColor);
XMLUtil.addIntegerProperty (document, element, "gridHorizontalStrokeIndex", gridHorizontalStrokeIndex);
XMLUtil.addBooleanProperty (document, element, "gridHorizontalVisibility", gridHorizontalVisibility);
XMLUtil.addColorProperty (document, element, "gridVerticalColor", gridVerticalColor);
XMLUtil.addIntegerProperty (document, element, "gridVerticalStrokeIndex", gridVerticalStrokeIndex);
XMLUtil.addBooleanProperty (document, element, "gridVerticalVisibility", gridVerticalVisibility);
XMLUtil.addColorProperty (document, element, "backgroundColor", backgroundColor);
XMLUtil.addFontProperty (document, element, "font", font);
XMLUtil.addColorProperty (document, element, "fontColor", fontColor);
}
@Override
public void loadFromTemplate(Element element)
{
axisColor = XMLUtil.getColorProperty(element, "axisColor");
axisStrokeIndex = XMLUtil.getIntegerProperty(element, "axisStrokeIndex");
barWidth = XMLUtil.getDoubleProperty(element, "barWidth");
barColor = XMLUtil.getColorProperty(element, "barColor");
barStrokeIndex = XMLUtil.getIntegerProperty(element, "barStrokeIndex");
barVisibility = XMLUtil.getBooleanProperty(element, "barVisibility");
barDownColor = XMLUtil.getColorProperty(element, "barDownColor");
barDownVisibility = XMLUtil.getBooleanProperty(element, "barDownVisibility");
barUpColor = XMLUtil.getColorProperty(element, "barUpColor");
barUpVisibility = XMLUtil.getBooleanProperty(element, "barUpVisibility");
gridHorizontalColor = XMLUtil.getColorProperty(element, "gridHorizontalColor");
gridHorizontalStrokeIndex = XMLUtil.getIntegerProperty(element, "gridHorizontalStrokeIndex");
gridHorizontalVisibility = XMLUtil.getBooleanProperty(element, "gridHorizontalVisibility");
gridVerticalColor = XMLUtil.getColorProperty(element, "gridVerticalColor");
gridVerticalStrokeIndex = XMLUtil.getIntegerProperty(element, "gridVerticalStrokeIndex");
gridVerticalVisibility = XMLUtil.getBooleanProperty(element, "gridVerticalVisibility");
backgroundColor = XMLUtil.getColorProperty(element, "backgroundColor");
font = XMLUtil.getFontProperty(element, "font");
fontColor = XMLUtil.getColorProperty(element, "fontColor");
}
}