From 74caf0e3ea92b08f601a671af37e8750d4cf8cb2 Mon Sep 17 00:00:00 2001 From: "ruX[Ruslan Zaharov]" <post4ruX@gmail.com> Date: Sat, 21 Dec 2013 13:32:49 +0400 Subject: [PATCH] Chart constructor with custom theme --- .../src/main/java/com/xeiam/xchart/Chart.java | 34 +++++++++---------- .../java/com/xeiam/xchart/StyleManager.java | 29 ++++++++++++---- 2 files changed, 39 insertions(+), 24 deletions(-) diff --git a/xchart/src/main/java/com/xeiam/xchart/Chart.java b/xchart/src/main/java/com/xeiam/xchart/Chart.java index ab928a3a..6daa6aab 100644 --- a/xchart/src/main/java/com/xeiam/xchart/Chart.java +++ b/xchart/src/main/java/com/xeiam/xchart/Chart.java @@ -15,18 +15,16 @@ */ package com.xeiam.xchart; -import java.awt.Graphics2D; +import com.xeiam.xchart.StyleManager.ChartTheme; +import com.xeiam.xchart.internal.chartpart.ChartPainter; +import com.xeiam.xchart.internal.style.Theme; + +import java.awt.*; import java.util.ArrayList; import java.util.Collection; import java.util.Date; import java.util.Map; -import com.xeiam.xchart.StyleManager.ChartTheme; -import com.xeiam.xchart.internal.chartpart.ChartPainter; -import com.xeiam.xchart.internal.style.GGPlot2Theme; -import com.xeiam.xchart.internal.style.MatlabTheme; -import com.xeiam.xchart.internal.style.XChartTheme; - /** * An XChart Chart * @@ -56,18 +54,20 @@ public class Chart { * @param chartTheme */ public Chart(int width, int height, ChartTheme chartTheme) { + this(width, height, chartTheme.newInstance(chartTheme)); + } - chartPainter = new ChartPainter(width, height); + /** + * Constructor + * + * @param width + * @param height + * @param theme instance of Theme class + */ + public Chart(int width, int height, Theme theme) { - if (chartTheme == ChartTheme.XChart) { - chartPainter.getStyleManager().setTheme(new XChartTheme()); - } - else if (chartTheme == ChartTheme.GGPlot2) { - chartPainter.getStyleManager().setTheme(new GGPlot2Theme()); - } - else if (chartTheme == ChartTheme.Matlab) { - chartPainter.getStyleManager().setTheme(new MatlabTheme()); - } + chartPainter = new ChartPainter(width, height); + chartPainter.getStyleManager().setTheme(theme); } /** diff --git a/xchart/src/main/java/com/xeiam/xchart/StyleManager.java b/xchart/src/main/java/com/xeiam/xchart/StyleManager.java index 27cb1443..1fec3dbe 100644 --- a/xchart/src/main/java/com/xeiam/xchart/StyleManager.java +++ b/xchart/src/main/java/com/xeiam/xchart/StyleManager.java @@ -15,15 +15,15 @@ */ package com.xeiam.xchart; -import java.awt.Color; -import java.awt.Font; -import java.awt.Stroke; -import java.util.Locale; -import java.util.TimeZone; - +import com.xeiam.xchart.internal.style.GGPlot2Theme; +import com.xeiam.xchart.internal.style.MatlabTheme; import com.xeiam.xchart.internal.style.Theme; import com.xeiam.xchart.internal.style.XChartTheme; +import java.awt.*; +import java.util.Locale; +import java.util.TimeZone; + /** * The StyleManager is used to manage all things related to styling of the vast number of Chart components * @@ -46,7 +46,22 @@ public class StyleManager { public enum ChartTheme { - XChart, GGPlot2, Matlab + XChart, GGPlot2, Matlab; + + public Theme newInstance(ChartTheme chartTheme) { + + switch (chartTheme) { + case GGPlot2: + return new GGPlot2Theme(); + + case Matlab: + return new MatlabTheme(); + + case XChart: + default: + return new XChartTheme(); + } + } } /** the default Theme */ -- GitLab