diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example1.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example1.java index 409d81da12ea0907e53f3304c332c86449024928..a42d16ac4d38ea74dc742a68ef751e2de85eb840 100644 --- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example1.java +++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example1.java @@ -20,8 +20,8 @@ import java.util.Collection; import com.xeiam.xchart.Chart; import com.xeiam.xchart.SwingWrapper; -import com.xeiam.xchart.appearance.Series; -import com.xeiam.xchart.appearance.SeriesMarker; +import com.xeiam.xchart.style.Series; +import com.xeiam.xchart.style.SeriesMarker; /** * Manual Data diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example10.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example10.java index 269e4d05feb89da1396c56dcdcc8a388af2591f3..969667519286e7013764a4d1b29514f8683f8022 100644 --- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example10.java +++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example10.java @@ -17,10 +17,10 @@ package com.xeiam.xchart.demo.charts; import com.xeiam.xchart.Chart; import com.xeiam.xchart.SwingWrapper; -import com.xeiam.xchart.appearance.Series; -import com.xeiam.xchart.appearance.SeriesColor; -import com.xeiam.xchart.appearance.SeriesLineStyle; -import com.xeiam.xchart.appearance.SeriesMarker; +import com.xeiam.xchart.style.Series; +import com.xeiam.xchart.style.SeriesColor; +import com.xeiam.xchart.style.SeriesLineStyle; +import com.xeiam.xchart.style.SeriesMarker; /** * Plots Hundreds of Series on One Plot diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example2.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example2.java index 2a60a46afa021e68fea17dd44d7776f6cc379ab0..cf6d62a66511c0b3e725fc1409af0f1882469097 100644 --- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example2.java +++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example2.java @@ -20,10 +20,10 @@ import java.util.Collection; import com.xeiam.xchart.Chart; import com.xeiam.xchart.SwingWrapper; -import com.xeiam.xchart.appearance.Series; -import com.xeiam.xchart.appearance.SeriesColor; -import com.xeiam.xchart.appearance.SeriesLineStyle; -import com.xeiam.xchart.appearance.SeriesMarker; +import com.xeiam.xchart.style.Series; +import com.xeiam.xchart.style.SeriesColor; +import com.xeiam.xchart.style.SeriesLineStyle; +import com.xeiam.xchart.style.SeriesMarker; /** * Sine wave with customized series style diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example4.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example4.java index 37be3ffaec5b1d9c2e765023586b57fe8896cc68..5884ae3498b245198553d50b86c14d4669233215 100644 --- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example4.java +++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example4.java @@ -25,7 +25,7 @@ import java.util.TimeZone; import com.xeiam.xchart.Chart; import com.xeiam.xchart.SwingWrapper; -import com.xeiam.xchart.appearance.Series; +import com.xeiam.xchart.style.Series; /** * Date Axis diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example8.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example8.java index bc93ee1ddfe62e8a14ea2dae3a62a2f9ed2068cd..59a6550cbf7058f86b5d42317c0531cb62173829 100644 --- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example8.java +++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example8.java @@ -20,10 +20,10 @@ import java.util.Collection; import com.xeiam.xchart.Chart; import com.xeiam.xchart.SwingWrapper; -import com.xeiam.xchart.appearance.Series; -import com.xeiam.xchart.appearance.SeriesColor; -import com.xeiam.xchart.appearance.SeriesLineStyle; -import com.xeiam.xchart.appearance.SeriesMarker; +import com.xeiam.xchart.style.Series; +import com.xeiam.xchart.style.SeriesColor; +import com.xeiam.xchart.style.SeriesLineStyle; +import com.xeiam.xchart.style.SeriesMarker; /** * Error bars diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example9.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example9.java index 0eb6fe628da7fa0b8ccc1a0e861fe2659ed39dc7..933a0c4a0e76d30cf983abd4573ee1faf44d1546 100644 --- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example9.java +++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example9.java @@ -27,11 +27,11 @@ import java.util.Locale; import com.xeiam.xchart.Chart; import com.xeiam.xchart.SwingWrapper; -import com.xeiam.xchart.appearance.ChartColor; -import com.xeiam.xchart.appearance.Series; -import com.xeiam.xchart.appearance.SeriesColor; -import com.xeiam.xchart.appearance.SeriesLineStyle; -import com.xeiam.xchart.appearance.SeriesMarker; +import com.xeiam.xchart.style.ChartColor; +import com.xeiam.xchart.style.Series; +import com.xeiam.xchart.style.SeriesColor; +import com.xeiam.xchart.style.SeriesLineStyle; +import com.xeiam.xchart.style.SeriesMarker; /** * Extensive chart customization diff --git a/xchart/src/main/java/com/xeiam/xchart/Chart.java b/xchart/src/main/java/com/xeiam/xchart/Chart.java index 3167c92abce65b8ff58489563b9e4eb89ce8d246..8f16cf5c7a084455da8c17ef77240a6eb70abf54 100644 --- a/xchart/src/main/java/com/xeiam/xchart/Chart.java +++ b/xchart/src/main/java/com/xeiam/xchart/Chart.java @@ -25,12 +25,13 @@ import java.util.Date; import java.util.Locale; import java.util.TimeZone; -import com.xeiam.xchart.appearance.Series; -import com.xeiam.xchart.appearance.StyleManager; import com.xeiam.xchart.internal.chartpart.AxisPair; import com.xeiam.xchart.internal.chartpart.ChartTitle; import com.xeiam.xchart.internal.chartpart.Legend; import com.xeiam.xchart.internal.chartpart.Plot; +import com.xeiam.xchart.style.Series; +import com.xeiam.xchart.style.StyleManager; +import com.xeiam.xchart.style.theme.Theme; /** * An XChart Chart @@ -476,4 +477,15 @@ public class Chart { return styleManager; } + /** + * Set the theme the Chart's style manager should use + * + * @param theme + */ + public void setTheme(Theme theme) { + + styleManager.setTheme(theme); + + } + } diff --git a/xchart/src/main/java/com/xeiam/xchart/QuickChart.java b/xchart/src/main/java/com/xeiam/xchart/QuickChart.java index 22ba2eb47d43776a0bb3fe1b612ecc51915cd88e..452dc79e24a89fbee091c9112e6b0ede67516281 100644 --- a/xchart/src/main/java/com/xeiam/xchart/QuickChart.java +++ b/xchart/src/main/java/com/xeiam/xchart/QuickChart.java @@ -17,8 +17,8 @@ package com.xeiam.xchart; import java.util.Collection; -import com.xeiam.xchart.appearance.Series; -import com.xeiam.xchart.appearance.SeriesMarker; +import com.xeiam.xchart.style.Series; +import com.xeiam.xchart.style.SeriesMarker; /** * A convenience class for making Charts with one line of code diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisPair.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisPair.java index 6df987ba32cc2876a6a226fe36ad083f65c8d3cc..07e229705d29689ad03a3e7febf8e65884fbd09d 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisPair.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisPair.java @@ -25,10 +25,10 @@ import java.util.LinkedHashMap; import java.util.Map; import com.xeiam.xchart.Chart; -import com.xeiam.xchart.appearance.Series; import com.xeiam.xchart.internal.chartpart.Axis.AxisType; import com.xeiam.xchart.internal.interfaces.IChartPart; import com.xeiam.xchart.internal.misc.SeriesColorMarkerLineStyleCycler; +import com.xeiam.xchart.style.Series; /** * @author timmolter diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/Legend.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/Legend.java index 7084c0a44a343cebd4f8cdda21639df8c8c60855..ed577be38a6a3bfc80753f321d8727c0324d6b8e 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/Legend.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/Legend.java @@ -24,11 +24,11 @@ import java.awt.font.TextLayout; import java.util.Map; import com.xeiam.xchart.Chart; -import com.xeiam.xchart.appearance.ChartColor; -import com.xeiam.xchart.appearance.Series; import com.xeiam.xchart.internal.interfaces.IChartPart; import com.xeiam.xchart.internal.interfaces.IHideable; import com.xeiam.xchart.internal.markers.Marker; +import com.xeiam.xchart.style.ChartColor; +import com.xeiam.xchart.style.Series; /** * @author timmolter diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/PlotContent.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/PlotContent.java index d2970a87b948df80dbeeb09118bfb92cdcef5233..62bf88cfae754597a7d82e65dba2aa9ae42ebb7a 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/PlotContent.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/PlotContent.java @@ -24,9 +24,9 @@ import java.util.Date; import java.util.Iterator; import java.util.Map; -import com.xeiam.xchart.appearance.Series; import com.xeiam.xchart.internal.chartpart.Axis.AxisType; import com.xeiam.xchart.internal.interfaces.IChartPart; +import com.xeiam.xchart.style.Series; /** * @author timmolter diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/PlotSurface.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/PlotSurface.java index 29ad0049ea152f2a1120e9c516e47281a6c87dbb..8eb5e2057771020299f7dc9ccb5fd09f8340d773 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/PlotSurface.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/PlotSurface.java @@ -21,9 +21,9 @@ import java.awt.Graphics2D; import java.awt.Rectangle; import java.util.List; -import com.xeiam.xchart.appearance.ChartColor; import com.xeiam.xchart.internal.interfaces.IChartPart; import com.xeiam.xchart.internal.interfaces.IHideable; +import com.xeiam.xchart.style.ChartColor; /** * @author timmolter diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/misc/SeriesColorMarkerLineStyleCycler.java b/xchart/src/main/java/com/xeiam/xchart/internal/misc/SeriesColorMarkerLineStyleCycler.java index 23166c8313d514097809db5ae2276378285cd7ec..92d7cf05c778c3f9cf90e4ad0b819dd8e6dfdbb2 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/misc/SeriesColorMarkerLineStyleCycler.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/misc/SeriesColorMarkerLineStyleCycler.java @@ -25,9 +25,9 @@ import java.util.EnumSet; import java.util.HashMap; import java.util.Map; -import com.xeiam.xchart.appearance.SeriesColor; -import com.xeiam.xchart.appearance.SeriesLineStyle; -import com.xeiam.xchart.appearance.SeriesMarker; +import com.xeiam.xchart.style.SeriesColor; +import com.xeiam.xchart.style.SeriesLineStyle; +import com.xeiam.xchart.style.SeriesMarker; /** * Cycles through the different colors, markers, and strokes in a predetermined way diff --git a/xchart/src/main/java/com/xeiam/xchart/appearance/ChartColor.java b/xchart/src/main/java/com/xeiam/xchart/style/ChartColor.java similarity index 97% rename from xchart/src/main/java/com/xeiam/xchart/appearance/ChartColor.java rename to xchart/src/main/java/com/xeiam/xchart/style/ChartColor.java index dffbfa85e7045f89e50b431f797e345b5f473d66..6dab696f395f422869662ac03367cb5462778642 100644 --- a/xchart/src/main/java/com/xeiam/xchart/appearance/ChartColor.java +++ b/xchart/src/main/java/com/xeiam/xchart/style/ChartColor.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.xeiam.xchart.appearance; +package com.xeiam.xchart.style; import java.awt.Color; diff --git a/xchart/src/main/java/com/xeiam/xchart/appearance/Series.java b/xchart/src/main/java/com/xeiam/xchart/style/Series.java similarity index 99% rename from xchart/src/main/java/com/xeiam/xchart/appearance/Series.java rename to xchart/src/main/java/com/xeiam/xchart/style/Series.java index 3b05288f8ab06d5e415a9885d425234dfeeee75a..a9da1851de952d3d1e18a367bcfb04093bec2742 100644 --- a/xchart/src/main/java/com/xeiam/xchart/appearance/Series.java +++ b/xchart/src/main/java/com/xeiam/xchart/style/Series.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.xeiam.xchart.appearance; +package com.xeiam.xchart.style; import java.awt.BasicStroke; import java.awt.Color; diff --git a/xchart/src/main/java/com/xeiam/xchart/appearance/SeriesColor.java b/xchart/src/main/java/com/xeiam/xchart/style/SeriesColor.java similarity index 98% rename from xchart/src/main/java/com/xeiam/xchart/appearance/SeriesColor.java rename to xchart/src/main/java/com/xeiam/xchart/style/SeriesColor.java index f5994a6529b737dfe116c88165e0f8697d7b99c3..3b99122a8a95559caa66bf2ebfdb54678c7d34b4 100644 --- a/xchart/src/main/java/com/xeiam/xchart/appearance/SeriesColor.java +++ b/xchart/src/main/java/com/xeiam/xchart/style/SeriesColor.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.xeiam.xchart.appearance; +package com.xeiam.xchart.style; import java.awt.Color; diff --git a/xchart/src/main/java/com/xeiam/xchart/appearance/SeriesLineStyle.java b/xchart/src/main/java/com/xeiam/xchart/style/SeriesLineStyle.java similarity index 98% rename from xchart/src/main/java/com/xeiam/xchart/appearance/SeriesLineStyle.java rename to xchart/src/main/java/com/xeiam/xchart/style/SeriesLineStyle.java index b73d6d35806f59516fc46dd7d292ff4bda722fa5..060ef115e4d9e48a22cf71a3ab109beeaa12e360 100644 --- a/xchart/src/main/java/com/xeiam/xchart/appearance/SeriesLineStyle.java +++ b/xchart/src/main/java/com/xeiam/xchart/style/SeriesLineStyle.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.xeiam.xchart.appearance; +package com.xeiam.xchart.style; import java.awt.BasicStroke; diff --git a/xchart/src/main/java/com/xeiam/xchart/appearance/SeriesMarker.java b/xchart/src/main/java/com/xeiam/xchart/style/SeriesMarker.java similarity index 97% rename from xchart/src/main/java/com/xeiam/xchart/appearance/SeriesMarker.java rename to xchart/src/main/java/com/xeiam/xchart/style/SeriesMarker.java index e486620f97ab0a72a2b434829c2143630e9dab7f..8ffa8d257acab1e27c2474bce88e9b8792a830c0 100644 --- a/xchart/src/main/java/com/xeiam/xchart/appearance/SeriesMarker.java +++ b/xchart/src/main/java/com/xeiam/xchart/style/SeriesMarker.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.xeiam.xchart.appearance; +package com.xeiam.xchart.style; import com.xeiam.xchart.internal.markers.Circle; import com.xeiam.xchart.internal.markers.Diamond; diff --git a/xchart/src/main/java/com/xeiam/xchart/appearance/StyleManager.java b/xchart/src/main/java/com/xeiam/xchart/style/StyleManager.java similarity index 82% rename from xchart/src/main/java/com/xeiam/xchart/appearance/StyleManager.java rename to xchart/src/main/java/com/xeiam/xchart/style/StyleManager.java index 64bcce889d908b2f44c9a6b348ecf1593ef12fef..944444fb46df6f8495be9c8c35524fbe058ebe04 100644 --- a/xchart/src/main/java/com/xeiam/xchart/appearance/StyleManager.java +++ b/xchart/src/main/java/com/xeiam/xchart/style/StyleManager.java @@ -19,15 +19,20 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -package com.xeiam.xchart.appearance; +package com.xeiam.xchart.style; import java.awt.Color; +import com.xeiam.xchart.style.theme.Theme; +import com.xeiam.xchart.style.theme.XChartTheme; + /** * @author timmolter */ public class StyleManager { + private Theme theme = new XChartTheme(); + private Color backgroundColor; public Color bordersColor; public Color fontColor; @@ -37,9 +42,19 @@ public class StyleManager { */ public StyleManager() { - backgroundColor = ChartColor.getAWTColor(ChartColor.GREY); - bordersColor = ChartColor.getAWTColor(ChartColor.DARK_GREY); - fontColor = ChartColor.getAWTColor(ChartColor.BLACK); + backgroundColor = theme.getChartBackgroundColor(); + bordersColor = theme.getChartBordersColor(); + fontColor = theme.getChartFontColor(); + } + + /** + * Set the theme the style manager should use + * + * @param theme + */ + public void setTheme(Theme theme) { + + this.theme = theme; } /** diff --git a/xchart/src/main/java/com/xeiam/xchart/style/theme/Theme.java b/xchart/src/main/java/com/xeiam/xchart/style/theme/Theme.java new file mode 100644 index 0000000000000000000000000000000000000000..f6893b2adf5ff9163ea664cc07177fe02311d217 --- /dev/null +++ b/xchart/src/main/java/com/xeiam/xchart/style/theme/Theme.java @@ -0,0 +1,37 @@ +/** + * Copyright (C) 2013 Xeiam LLC http://xeiam.com + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is furnished to do + * so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package com.xeiam.xchart.style.theme; + +import java.awt.Color; + +/** + * @author timmolter + */ +public interface Theme { + + public Color getChartBackgroundColor(); + + public Color getChartBordersColor(); + + public Color getChartFontColor(); + +} diff --git a/xchart/src/main/java/com/xeiam/xchart/style/theme/XChartTheme.java b/xchart/src/main/java/com/xeiam/xchart/style/theme/XChartTheme.java new file mode 100644 index 0000000000000000000000000000000000000000..94b4d07b5ca813b219cc3e451d33c4a80af5450c --- /dev/null +++ b/xchart/src/main/java/com/xeiam/xchart/style/theme/XChartTheme.java @@ -0,0 +1,51 @@ +/** + * Copyright (C) 2013 Xeiam LLC http://xeiam.com + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is furnished to do + * so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package com.xeiam.xchart.style.theme; + +import java.awt.Color; + +import com.xeiam.xchart.style.ChartColor; + +/** + * @author timmolter + */ +public class XChartTheme implements Theme { + + @Override + public Color getChartBackgroundColor() { + + return ChartColor.getAWTColor(ChartColor.GREY); + } + + @Override + public Color getChartBordersColor() { + + return ChartColor.getAWTColor(ChartColor.DARK_GREY); + } + + @Override + public Color getChartFontColor() { + + return ChartColor.getAWTColor(ChartColor.BLACK); + } + +}