Skip to content
Snippets Groups Projects
StyleManager.java 27.2 KiB
Newer Older
Tim Molter's avatar
Tim Molter committed
/**
 * Copyright 2015 Knowm Inc. (http://knowm.org) and contributors.
 * Copyright 2011-2015 Xeiam LLC (http://xeiam.com) and contributors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
Tim Molter's avatar
Tim Molter committed
 */
package org.knowm.xchart;
Tim Molter's avatar
Tim Molter committed

Tim Molter's avatar
Tim Molter committed
import java.awt.Color;
import java.awt.Font;
import java.awt.Stroke;
import java.util.Locale;
import java.util.TimeZone;

import org.knowm.xchart.internal.style.GGPlot2Theme;
import org.knowm.xchart.internal.style.MatlabTheme;
import org.knowm.xchart.internal.style.Theme;
import org.knowm.xchart.internal.style.XChartTheme;
Tim Molter's avatar
Tim Molter committed

Tim Molter's avatar
Tim Molter committed
/**
Tim Molter's avatar
Tim Molter committed
 * The StyleManager is used to manage all things related to styling of the vast number of Chart components
Tim Molter's avatar
Tim Molter committed
 * @author timmolter
 */
public class StyleManager {

    Line, Scatter, Area, Bar
  public enum LegendPosition {
    OutsideE, InsideNW, InsideNE, InsideSE, InsideSW, InsideN
Tim Molter's avatar
Tim Molter committed
  public enum ChartTheme {

    XChart, GGPlot2, Matlab;

    public Theme newInstance(ChartTheme chartTheme) {

      switch (chartTheme) {
Tim Molter's avatar
Tim Molter committed
      case GGPlot2:
        return new GGPlot2Theme();
Tim Molter's avatar
Tim Molter committed
      case Matlab:
        return new MatlabTheme();
Tim Molter's avatar
Tim Molter committed
      case XChart:
      default:
        return new XChartTheme();
Tim Molter's avatar
Tim Molter committed
  }

    Left, Centre, Right;
Tim Molter's avatar
Tim Molter committed
  /** the default Theme */
Tim Molter's avatar
Tim Molter committed
  private Theme theme = new XChartTheme();

  // Chart Style ///////////////////////////////
Tim Molter's avatar
Tim Molter committed
  private Color chartBackgroundColor;
  public Color chartFontColor;
Tim Molter's avatar
Tim Molter committed
  private int chartPadding;
Tim Molter's avatar
Tim Molter committed

  // Chart Title ///////////////////////////////
Tim Molter's avatar
Tim Molter committed
  private Font chartTitleFont;
Tim Molter's avatar
Tim Molter committed
  private boolean isChartTitleVisible;
  private boolean isChartTitleBoxVisible;
  private Color chartTitleBoxBackgroundColor;
  private Color chartTitleBoxBorderColor;
Tim Molter's avatar
Tim Molter committed
  private int chartTitlePadding;
Tim Molter's avatar
Tim Molter committed

  // Chart Legend ///////////////////////////////
  private boolean isLegendVisible;
  private Color legendBackgroundColor;
Tim Molter's avatar
Tim Molter committed
  private Color legendBorderColor;
  private Font legendFont;
  private int legendPadding;
  private int legendSeriesLineLength;
  private LegendPosition legendPosition;
  // Chart Axes ///////////////////////////////
  private boolean xAxisTitleVisible;
  private boolean yAxisTitleVisible;
  private Font axisTitleFont;
  private boolean xAxisTicksVisible;
  private boolean yAxisTicksVisible;
Tim Molter's avatar
Tim Molter committed
  private Font axisTickLabelsFont;
Tim Molter's avatar
Tim Molter committed
  private int axisTickMarkLength;
  private int axisTickPadding;
Tim Molter's avatar
Tim Molter committed
  private Color axisTickMarksColor;
  private Stroke axisTickMarksStroke;
  private Color axisTickLabelsColor;
Tim Molter's avatar
Tim Molter committed
  private boolean isAxisTicksLineVisible;
Tim Molter's avatar
Tim Molter committed
  private boolean isAxisTicksMarksVisible;
Tim Molter's avatar
Tim Molter committed
  private int plotPadding;
  private int axisTitlePadding;
  private int xAxisTickMarkSpacingHint;
  private int yAxisTickMarkSpacingHint;
Tim Molter's avatar
Tim Molter committed
  private boolean isXAxisLogarithmic;
  private boolean isYAxisLogarithmic;
  private Double xAxisMin;
  private Double xAxisMax;
  private Double yAxisMin;
  private Double yAxisMax;
Tim Molter's avatar
Tim Molter committed
  private double axisTickSpacePercentage;
  private TextAlignment xAxisLabelAlignment = TextAlignment.Centre;
  private TextAlignment yAxisLabelAlignment = TextAlignment.Left;
  private int xAxisLabelRotation = 0;
  // Chart Plot Area ///////////////////////////////
  private boolean isPlotGridHorizontalLinesVisible;
  private boolean isPlotGridVerticalLinesVisible;
  private Color plotBackgroundColor;
Tim Molter's avatar
Tim Molter committed
  private Color plotBorderColor;
  private boolean isPlotBorderVisible;
Tim Molter's avatar
Tim Molter committed
  private boolean isPlotTicksMarksVisible;
  private Color plotGridLinesColor;
Tim Molter's avatar
Tim Molter committed
  private Stroke plotGridLinesStroke;

  // Bar Charts ///////////////////////////////
  private double barWidthPercentage;
  private boolean isBarsOverlapped;
  private boolean isBarFilled;

  // Line, Scatter, Area Charts ///////////////////////////////
  private int markerSize;

  // Error Bars ///////////////////////////////
  private Color errorBarsColor;
  private boolean isErrorBarsColorSeriesColor;
Tim Molter's avatar
Tim Molter committed
  // Formatting ////////////////////////////////
Tim Molter's avatar
Tim Molter committed
  private Locale locale;
  private TimeZone timezone;
  private String decimalPattern;
  private String xAxisDecimalPattern;
  private String yAxisDecimalPattern;
Tim Molter's avatar
Tim Molter committed

Tim Molter's avatar
Tim Molter committed
  /**
   * Constructor
   */
  public StyleManager() {

Tim Molter's avatar
Tim Molter committed
    setAllStyles();
  }

  private void setAllStyles() {

    // Chart Style ///////////////////////////////
Tim Molter's avatar
Tim Molter committed
    chartBackgroundColor = theme.getChartBackgroundColor();
    chartFontColor = theme.getChartFontColor();
Tim Molter's avatar
Tim Molter committed
    chartPadding = theme.getChartPadding();

    // Chart Title ///////////////////////////////
Tim Molter's avatar
Tim Molter committed
    chartTitleFont = theme.getChartTitleFont();
Tim Molter's avatar
Tim Molter committed
    isChartTitleVisible = theme.isChartTitleVisible();
    isChartTitleBoxVisible = theme.isChartTitleBoxVisible();
    chartTitleBoxBackgroundColor = theme.getChartTitleBoxBackgroundColor();
    chartTitleBoxBorderColor = theme.getChartTitleBoxBorderColor();
Tim Molter's avatar
Tim Molter committed
    chartTitlePadding = theme.getChartTitlePadding();
    // legend
    isLegendVisible = theme.isLegendVisible();
    legendBackgroundColor = theme.getLegendBackgroundColor();
Tim Molter's avatar
Tim Molter committed
    legendBorderColor = theme.getLegendBorderColor();
    legendFont = theme.getLegendFont();
    legendPadding = theme.getLegendPadding();
    legendSeriesLineLength = theme.getLegendSeriesLineLength();
    legendPosition = theme.getLegendPosition();
    // axes
    xAxisTitleVisible = theme.isXAxisTitleVisible();
    yAxisTitleVisible = theme.isYAxisTitleVisible();
    axisTitleFont = theme.getAxisTitleFont();
    xAxisTicksVisible = theme.isXAxisTicksVisible();
    yAxisTicksVisible = theme.isYAxisTicksVisible();
Tim Molter's avatar
Tim Molter committed
    axisTickLabelsFont = theme.getAxisTickLabelsFont();
Tim Molter's avatar
Tim Molter committed
    axisTickMarkLength = theme.getAxisTickMarkLength();
    axisTickPadding = theme.getAxisTickPadding();
Tim Molter's avatar
Tim Molter committed
    axisTickMarksColor = theme.getAxisTickMarksColor();
    axisTickMarksStroke = theme.getAxisTickMarksStroke();
    axisTickLabelsColor = theme.getAxisTickLabelsColor();
Tim Molter's avatar
Tim Molter committed
    isAxisTicksLineVisible = theme.isAxisTicksLineVisible();
Tim Molter's avatar
Tim Molter committed
    isAxisTicksMarksVisible = theme.isAxisTicksMarksVisible();
Tim Molter's avatar
Tim Molter committed
    plotPadding = theme.getPlotPadding();
    axisTitlePadding = theme.getAxisTitlePadding();
    xAxisTickMarkSpacingHint = theme.getXAxisTickMarkSpacingHint();
    yAxisTickMarkSpacingHint = theme.getYAxisTickMarkSpacingHint();
Tim Molter's avatar
Tim Molter committed
    isXAxisLogarithmic = false;
    isYAxisLogarithmic = false;
    xAxisMin = null;
    xAxisMax = null;
    yAxisMin = null;
    yAxisMax = null;
Tim Molter's avatar
Tim Molter committed
    axisTickSpacePercentage = .95;

    // Chart Plot Area ///////////////////////////////
    isPlotGridVerticalLinesVisible = theme.isPlotGridVerticalLinesVisible();
    isPlotGridHorizontalLinesVisible = theme.isPlotGridHorizontalLinesVisible();
    plotBackgroundColor = theme.getPlotBackgroundColor();
Tim Molter's avatar
Tim Molter committed
    plotBorderColor = theme.getPlotBorderColor();
    isPlotBorderVisible = theme.isPlotBorderVisible();
Tim Molter's avatar
Tim Molter committed
    isPlotTicksMarksVisible = theme.isPlotTicksMarksVisible();
    plotGridLinesColor = theme.getPlotGridLinesColor();
Tim Molter's avatar
Tim Molter committed
    plotGridLinesStroke = theme.getPlotGridLinesStroke();

    // Bar Charts ///////////////////////////////
    barWidthPercentage = theme.getBarWidthPercentage();
    isBarsOverlapped = theme.isBarsOverlapped();
    isBarFilled = theme.isBarFilled();

    // Line, Scatter, Area Charts ///////////////////////////////

    markerSize = theme.getMarkerSize();

    // Error Bars ///////////////////////////////
    errorBarsColor = theme.getErrorBarsColor();
    isErrorBarsColorSeriesColor = theme.isErrorBarsColorSeriesColor();
Tim Molter's avatar
Tim Molter committed

    // Formatting ////////////////////////////////
Tim Molter's avatar
Tim Molter committed
    locale = Locale.getDefault();
    timezone = TimeZone.getDefault();
    datePattern = null; // if not null, this override pattern will be used
    decimalPattern = null;
    xAxisDecimalPattern = null;
    yAxisDecimalPattern = null;
Tim Molter's avatar
Tim Molter committed
  }

  /**
   * Set the theme the style manager should use
Tim Molter's avatar
Tim Molter committed
   * @param theme
   */
Tim Molter's avatar
Tim Molter committed

    this.theme = theme;
Tim Molter's avatar
Tim Molter committed
    setAllStyles();
Tim Molter's avatar
Tim Molter committed
  }

Tim Molter's avatar
Tim Molter committed
  public Theme getTheme() {

    return theme;
  }

Tim Molter's avatar
Tim Molter committed
  // Chart Style ///////////////////////////////

   * @param chartType
   */
  public void setChartType(ChartType chartType) {

    this.chartType = chartType;
  }

  public ChartType getChartType() {

    return chartType;
  }

Tim Molter's avatar
Tim Molter committed
  /**
   * Set the chart background color - the part around the edge of the chart
Tim Molter's avatar
Tim Molter committed
   * @param color
   */
Tim Molter's avatar
Tim Molter committed
  public void setChartBackgroundColor(Color color) {

    this.chartBackgroundColor = color;
  }

  public Color getChartBackgroundColor() {
Tim Molter's avatar
Tim Molter committed

Tim Molter's avatar
Tim Molter committed
    return chartBackgroundColor;
Tim Molter's avatar
Tim Molter committed
   * Set the chart font color. includes: Chart title, axes label, legend
Tim Molter's avatar
Tim Molter committed
   * @param color
   */
Tim Molter's avatar
Tim Molter committed
  public void setChartFontColor(Color color) {
Tim Molter's avatar
Tim Molter committed

Tim Molter's avatar
Tim Molter committed
    this.chartFontColor = color;
Tim Molter's avatar
Tim Molter committed
  }

Tim Molter's avatar
Tim Molter committed
  public Color getChartFontColor() {
Tim Molter's avatar
Tim Molter committed

Tim Molter's avatar
Tim Molter committed
    return chartFontColor;
Tim Molter's avatar
Tim Molter committed
  }

Tim Molter's avatar
Tim Molter committed
  /**
   * Set the chart padding
Tim Molter's avatar
Tim Molter committed
   * @param chartPadding
   */
  public void setChartPadding(int chartPadding) {

    this.chartPadding = chartPadding;
  }

  public int getChartPadding() {

    return chartPadding;
  }

Tim Molter's avatar
Tim Molter committed
  // Chart Title ///////////////////////////////

  /**
   * Set the chart title font
Tim Molter's avatar
Tim Molter committed
   * @param font
   */
  public void setChartTitleFont(Font chartTitleFont) {
Tim Molter's avatar
Tim Molter committed

    this.chartTitleFont = chartTitleFont;
Tim Molter's avatar
Tim Molter committed
  }

Tim Molter's avatar
Tim Molter committed
  public Font getChartTitleFont() {
Tim Molter's avatar
Tim Molter committed

Tim Molter's avatar
Tim Molter committed
    return chartTitleFont;
Tim Molter's avatar
Tim Molter committed
  }

Tim Molter's avatar
Tim Molter committed
  /**
   * Set the chart title visibility
Tim Molter's avatar
Tim Molter committed
   * @param isChartTitleVisible
Tim Molter's avatar
Tim Molter committed
   */
  public void setChartTitleVisible(boolean isChartTitleVisible) {

    this.isChartTitleVisible = isChartTitleVisible;
  }

  public boolean isChartTitleVisible() {

    return isChartTitleVisible;
  }

Tim Molter's avatar
Tim Molter committed
  /**
   * Set the chart title box visibility
   * @param isChartTitleBoxVisible
Tim Molter's avatar
Tim Molter committed
   */
  public void setChartTitleBoxVisible(boolean isChartTitleBoxVisible) {
    this.isChartTitleBoxVisible = isChartTitleBoxVisible;
  public boolean isChartTitleBoxVisible() {
    return isChartTitleBoxVisible;
   * set the chart title box background color
   * @param chartTitleBoxBackgroundColor
Tim Molter's avatar
Tim Molter committed
   */
  public void setChartTitleBoxBackgroundColor(Color chartTitleBoxBackgroundColor) {
    this.chartTitleBoxBackgroundColor = chartTitleBoxBackgroundColor;
  public Color getChartTitleBoxBackgroundColor() {
    return chartTitleBoxBackgroundColor;
  }

  /**
   * set the chart title box border color
   * @param chartTitleBoxBorderColor
   */
  public void setChartTitleBoxBorderColor(Color chartTitleBoxBorderColor) {

    this.chartTitleBoxBorderColor = chartTitleBoxBorderColor;
  }

  public Color getChartTitleBoxBorderColor() {

    return chartTitleBoxBorderColor;
Tim Molter's avatar
Tim Molter committed
  }

  /**
   * set the chart title padding; the space between the chart title and the plot area
Tim Molter's avatar
Tim Molter committed
   * @param chartTitlePadding
   */
  public void setChartTitlePadding(int chartTitlePadding) {

    this.chartTitlePadding = chartTitlePadding;
  }

  public int getChartTitlePadding() {

    return chartTitlePadding;
  }

Tim Molter's avatar
Tim Molter committed
  // Chart Legend ///////////////////////////////
Tim Molter's avatar
Tim Molter committed
   * Set the chart legend background color
Tim Molter's avatar
Tim Molter committed
   * @param color
   */
  public void setLegendBackgroundColor(Color color) {
    this.legendBackgroundColor = color;
  public Color getLegendBackgroundColor() {
    return legendBackgroundColor;
Tim Molter's avatar
Tim Molter committed
  /**
   * Set the chart legend border color
Tim Molter's avatar
Tim Molter committed
   * @return
   */
  public Color getLegendBorderColor() {

    return legendBorderColor;
  }

  public void setLegendBorderColor(Color legendBorderColor) {

    this.legendBorderColor = legendBorderColor;
  }

Tim Molter's avatar
Tim Molter committed
  /**
   * Set the chart legend font
Tim Molter's avatar
Tim Molter committed
   * @param font
   */
  public void setLegendFont(Font font) {
    this.legendFont = font;
  public Font getLegendFont() {
    return legendFont;
Tim Molter's avatar
Tim Molter committed
  }

  /**
   * Set the chart legend visibility
   * @param isLegendVisible
  public void setLegendVisible(boolean isLegendVisible) {
    this.isLegendVisible = isLegendVisible;
  public boolean isLegendVisible() {
    return isLegendVisible;
Tim Molter's avatar
Tim Molter committed
  }

  /**
   * Set the chart legend padding
   * @param legendPadding
  public void setLegendPadding(int legendPadding) {
    this.legendPadding = legendPadding;
  public int getLegendPadding() {
    return legendPadding;
  /**
   * Set the chart legend series line length
   * @param legendPadding
   */
  public void setLegendSeriesLineLength(int legendSeriesLineLength) {

    if (legendSeriesLineLength < 0) {
      this.legendSeriesLineLength = 0;
    }
    else {
      this.legendSeriesLineLength = legendSeriesLineLength;
    }
  }

  public int getLegendSeriesLineLength() {

    return legendSeriesLineLength;
  }

  /**
   * sets the legend position
   * @param legendPosition
   */
  public void setLegendPosition(LegendPosition legendPosition) {

    this.legendPosition = legendPosition;
  }

  public LegendPosition getLegendPosition() {

    return legendPosition;
  }

  // Chart Axes ///////////////////////////////

  /**
   * Set the x-axis title visibility
   * @param isVisible
   */
  public void setXAxisTitleVisible(boolean xAxisTitleVisible) {

    this.xAxisTitleVisible = xAxisTitleVisible;
  }

  public boolean isXAxisTitleVisible() {

    return xAxisTitleVisible;
  }

  /**
   * Set the y-axis title visibility
   * @param isVisible
   */
  public void setYAxisTitleVisible(boolean yAxisTitleVisible) {

    this.yAxisTitleVisible = yAxisTitleVisible;
  }

  public boolean isYAxisTitleVisible() {

    return yAxisTitleVisible;
  }

  /**
   * Set the x- and y-axis titles visibility
   * @param isVisible
   */
  public void setAxisTitlesVisible(boolean isVisible) {

    this.xAxisTitleVisible = isVisible;
    this.yAxisTitleVisible = isVisible;
  }

  /**
   * Set the x- and y-axis title font
   * @param axisTitleFont
   */
  public void setAxisTitleFont(Font axisTitleFont) {

    this.axisTitleFont = axisTitleFont;
  }

  public Font getAxisTitleFont() {

    return axisTitleFont;
  }

  /**
   * Set the x-axis tick marks and labels visibility
   * @param isVisible
   */

  public void setXAxisTicksVisible(boolean xAxisTicksVisible) {

    this.xAxisTicksVisible = xAxisTicksVisible;
  }

  public boolean isXAxisTicksVisible() {

    return xAxisTicksVisible;
  }

  /**
   * Set the y-axis tick marks and labels visibility
   * @param isVisible
   */

  public void setYAxisTicksVisible(boolean yAxisTicksVisible) {

    this.yAxisTicksVisible = yAxisTicksVisible;
  }

  public boolean isYAxisTicksVisible() {

    return yAxisTicksVisible;
  }

  /**
   * Set the x- and y-axis tick marks and labels visibility
   * @param isVisible
   */
  public void setAxisTicksVisible(boolean isVisible) {

    this.xAxisTicksVisible = isVisible;
    this.yAxisTicksVisible = isVisible;
  }

  /**
   * Set the x- and y-axis tick label font
   * @param foxAxisTicksFontnt
   */
Tim Molter's avatar
Tim Molter committed
  public void setAxisTickLabelsFont(Font axisTicksFont) {
Tim Molter's avatar
Tim Molter committed
    this.axisTickLabelsFont = axisTicksFont;
Tim Molter's avatar
Tim Molter committed
  public Font getAxisTickLabelsFont() {
Tim Molter's avatar
Tim Molter committed
    return axisTickLabelsFont;
Tim Molter's avatar
Tim Molter committed

Tim Molter's avatar
Tim Molter committed
  /**
   * set the axis tick mark length
Tim Molter's avatar
Tim Molter committed
   * @param axisTickMarkLength
   */
  public void setAxisTickMarkLength(int axisTickMarkLength) {

    this.axisTickMarkLength = axisTickMarkLength;
  }

  public int getAxisTickMarkLength() {

    return axisTickMarkLength;
  }

  /**
Tim Molter's avatar
Tim Molter committed
   * sets the padding between the tick labels and the tick marks
Tim Molter's avatar
Tim Molter committed
   * @param axisTickPadding
   */
  public void setAxisTickPadding(int axisTickPadding) {

    this.axisTickPadding = axisTickPadding;
  }

  public int getAxisTickPadding() {

    return axisTickPadding;
  }

Tim Molter's avatar
Tim Molter committed
  /**
   * sets the axis tick mark color
Tim Molter's avatar
Tim Molter committed
   * @param axisTickColor
   */
  public void setAxisTickMarksColor(Color axisTickColor) {

    this.axisTickMarksColor = axisTickColor;
  }

  public Color getAxisTickMarksColor() {

    return axisTickMarksColor;
  }

  /**
   * sets the axis tick marks Stroke
Tim Molter's avatar
Tim Molter committed
   * @param axisTickMarksStroke
   */
  public void setAxisTickMarksStroke(Stroke axisTickMarksStroke) {

    this.axisTickMarksStroke = axisTickMarksStroke;
  }

  public Stroke getAxisTickMarksStroke() {

    return axisTickMarksStroke;
  }

  /**
   * sets the axis tick label color
Tim Molter's avatar
Tim Molter committed
   * @param axisTickLabelsColor
   */
  public void setAxisTickLabelsColor(Color axisTickLabelsColor) {

    this.axisTickLabelsColor = axisTickLabelsColor;
  }

  public Color getAxisTickLabelsColor() {

    return axisTickLabelsColor;
  }

Tim Molter's avatar
Tim Molter committed
  /**
   * sets the visibility of the line parallel to the plot edges that go along with the tick marks
Tim Molter's avatar
Tim Molter committed
   * @param isAxisTicksLineVisible
   */
  public void setAxisTicksLineVisible(boolean isAxisTicksLineVisible) {

    this.isAxisTicksLineVisible = isAxisTicksLineVisible;
  }

  public boolean isAxisTicksLineVisible() {

    return isAxisTicksLineVisible;
  }

  /**
Tim Molter's avatar
Tim Molter committed
   * sets the visibility of the tick marks
Tim Molter's avatar
Tim Molter committed
   * @param isAxisTicksMarksVisible
   */
  public void setAxisTicksMarksVisible(boolean isAxisTicksMarksVisible) {

    this.isAxisTicksMarksVisible = isAxisTicksMarksVisible;
  }

  public boolean isAxisTicksMarksVisible() {

    return isAxisTicksMarksVisible;
  }

  /**
   * sets the padding between the tick marks and the plot area
Tim Molter's avatar
Tim Molter committed
   * @param plotPadding
   */
  public void setPlotPadding(int plotPadding) {

    this.plotPadding = plotPadding;
  }

  public int getPlotPadding() {

    return plotPadding;
  }

  /**
   * sets the padding between the axis title and the tick labels
Tim Molter's avatar
Tim Molter committed
   * @param axisTitlePadding
   */
  public void setAxisTitlePadding(int axisTitlePadding) {

    this.axisTitlePadding = axisTitlePadding;
  }

  public int getAxisTitlePadding() {

    return axisTitlePadding;
  }
  /**
   * set the spacing between tick marks for the X-Axis
   * @param xAxisTickMarkSpacingHint
   */
  public void setXAxisTickMarkSpacingHint(int xAxisTickMarkSpacingHint) {

    this.xAxisTickMarkSpacingHint = xAxisTickMarkSpacingHint;
  }

  public int getXAxisTickMarkSpacingHint() {

    return xAxisTickMarkSpacingHint;
  }

  /**
   * set the spacing between tick marks for the Y-Axis
   * @param xAxisTickMarkSpacingHint
   */
  public void setYAxisTickMarkSpacingHint(int yAxisTickMarkSpacingHint) {

    this.yAxisTickMarkSpacingHint = yAxisTickMarkSpacingHint;
  }

  public int getYAxisTickMarkSpacingHint() {

    return yAxisTickMarkSpacingHint;
  }

Tim Molter's avatar
Tim Molter committed
  /**
   * sets the X-Axis to be rendered with a logarithmic scale or not
Tim Molter's avatar
Tim Molter committed
   */
  public void setXAxisLogarithmic(boolean isXAxisLogarithmic) {
Tim Molter's avatar
Tim Molter committed

    this.isXAxisLogarithmic = isXAxisLogarithmic;
  public boolean isXAxisLogarithmic() {
Tim Molter's avatar
Tim Molter committed

    return isXAxisLogarithmic;
  }

  /**
   * sets the Y-Axis to be rendered with a logarithmic scale or not
Tim Molter's avatar
Tim Molter committed
   */
  public void setYAxisLogarithmic(boolean isYAxisLogarithmic) {
Tim Molter's avatar
Tim Molter committed

    this.isYAxisLogarithmic = isYAxisLogarithmic;
  public boolean isYAxisLogarithmic() {
Tim Molter's avatar
Tim Molter committed

    return isYAxisLogarithmic;
  }

  public void setXAxisMin(double xAxisMin) {

    this.xAxisMin = xAxisMin;
  }

  public Double getXAxisMin() {

    return xAxisMin;
  }

  public void setXAxisMax(double xAxisMax) {

    this.xAxisMax = xAxisMax;
  }

  public Double getXAxisMax() {

    return xAxisMax;
  }

  public void setYAxisMin(double yAxisMin) {

    this.yAxisMin = yAxisMin;
  }

  public Double getYAxisMin() {

    return yAxisMin;
  }

  public void setYAxisMax(double yAxisMax) {

    this.yAxisMax = yAxisMax;
  }

  public Double getYAxisMax() {

    return yAxisMax;
  }

Tim Molter's avatar
Tim Molter committed
  public void setAxisTickSpacePercentage(double axisTickSpacePercentage) {
Tim Molter's avatar
Tim Molter committed
    this.axisTickSpacePercentage = axisTickSpacePercentage;
Tim Molter's avatar
Tim Molter committed
  public double getAxisTickSpacePercentage() {
Tim Molter's avatar
Tim Molter committed
    return axisTickSpacePercentage;
  public TextAlignment getXAxisLabelAlignment() {
    return xAxisLabelAlignment;
  }

  public void setXAxisLabelAlignment(TextAlignment xAxisLabelAlignment) {
    this.xAxisLabelAlignment = xAxisLabelAlignment;
  }

  public TextAlignment getYAxisLabelAlignment() {
    return yAxisLabelAlignment;
  }

  public void setYAxisLabelAlignment(TextAlignment yAxisLabelAlignment) {
    this.yAxisLabelAlignment = yAxisLabelAlignment;
  }

  public int getXAxisLabelRotation() {

    return xAxisLabelRotation;
  }

  public void setXAxisLabelRotation(int xAxisLabelRotation) {

    this.xAxisLabelRotation = xAxisLabelRotation;
  }

  // Chart Plot Area ///////////////////////////////

  /**
   * sets the visibility of the gridlines on the plot area
   * @param isPlotGridLinesVisible
   */
  public void setPlotGridLinesVisible(boolean isPlotGridLinesVisible) {

    this.isPlotGridHorizontalLinesVisible = isPlotGridLinesVisible;
    this.isPlotGridVerticalLinesVisible = isPlotGridLinesVisible;
  public boolean isPlotGridLinesVisible() {

    return isPlotGridHorizontalLinesVisible && isPlotGridVerticalLinesVisible;
  }

  /**
   * sets the visibility of the horizontal gridlines on the plot area
   *
   * @param isPlotGridLinesVisible
   */
  public void setPlotGridHorizontalLinesVisible(boolean isPlotGridHorizontalLinesVisible) {

    this.isPlotGridHorizontalLinesVisible = isPlotGridHorizontalLinesVisible;
  }

  public boolean isPlotGridHorizontalLinesVisible() {

    return isPlotGridHorizontalLinesVisible;
  }

  /**
   * sets the visibility of the vertical gridlines on the plot area
   *
   * @param isPlotGridLinesVisible
   */
  public void setPlotGridVerticalLinesVisible(boolean isPlotGridVerticalLinesVisible) {

    this.isPlotGridVerticalLinesVisible = isPlotGridVerticalLinesVisible;
  }

  public boolean isPlotGridVerticalLinesVisible() {

    return isPlotGridVerticalLinesVisible;

  /**
   * set the plot area's background color
   * @param plotBackgroundColor
   */
  public void setPlotBackgroundColor(Color plotBackgroundColor) {

    this.plotBackgroundColor = plotBackgroundColor;
  }

  public Color getPlotBackgroundColor() {

    return plotBackgroundColor;
  }

Tim Molter's avatar
Tim Molter committed
  /**
   * set the plot area's border color
Tim Molter's avatar
Tim Molter committed
   * @param plotBorderColor
   */
  public void setPlotBorderColor(Color plotBorderColor) {

    this.plotBorderColor = plotBorderColor;
  }

  public Color getPlotBorderColor() {

    return plotBorderColor;
  }

  /**
   * sets the visibility of the border around the plot area