diff --git a/src/main/java/eu/hansolo/tilesfx/Tile.java b/src/main/java/eu/hansolo/tilesfx/Tile.java index 0c97b9e4..e7ecb7f8 100644 --- a/src/main/java/eu/hansolo/tilesfx/Tile.java +++ b/src/main/java/eu/hansolo/tilesfx/Tile.java @@ -87,7 +87,7 @@ public class Tile extends Control { public enum SkinType { AREA_CHART, BAR_CHART, LINE_CHART, CLOCK, GAUGE, HIGH_LOW, PERCENTAGE, PLUS_MINUS, SLIDER, SPARK_LINE, SWITCH, WORLDMAP, - TIMER_CONTROL, NUMBER, TEXT, WEATHER, TIME, CUSTOM } + TIMER_CONTROL, NUMBER, TEXT, WEATHER, TIME, CUSTOM, LEADER_BOARD } public enum TextSize { NORMAL(0.06), BIGGER(0.08); @@ -177,7 +177,8 @@ public enum TextSize { private StringProperty text; private LocalTime _duration; private ObjectProperty duration; - private ObservableList barChartData; + private ObservableList barChartItems; + private List leaderBoardItems; private ObjectProperty graphic; // UI related @@ -457,7 +458,8 @@ private void update() { timeSections = FXCollections.observableArrayList(); alarms = FXCollections.observableArrayList(); alarmsToRemove = new ArrayList<>(); - barChartData = FXCollections.observableArrayList(); + barChartItems = FXCollections.observableArrayList(); + leaderBoardItems = new ArrayList(); gradientStops = new ArrayList<>(4); _textSize = TextSize.NORMAL; @@ -1132,24 +1134,46 @@ public void clearSeries() { fireTileEvent(SERIES_EVENT); } - public ObservableList getBarChartData() { return barChartData; } - public void setBarChartData(final List DATA) { - barChartData.setAll(DATA); + public ObservableList getBarChartItems() { return barChartItems; } + public void setBarChartItems(final List ITEMS) { + barChartItems.setAll(ITEMS); fireTileEvent(DATA_EVENT); } - public void setBarChartData(final BarChartSegment... DATA) { setBarChartData(Arrays.asList(DATA)); } - public void addBarChartData(final BarChartSegment DATA) { - if (null == DATA) return; - barChartData.add(DATA); + public void setBarChartItems(final BarChartItem... ITEMS) { setBarChartItems(Arrays.asList(ITEMS)); } + public void addBarChartItem(final BarChartItem ITEM) { + if (null == ITEM) return; + barChartItems.add(ITEM); fireTileEvent(DATA_EVENT); } - public void removeBarChartData(final BarChartSegment DATA) { - if (null == DATA) return; - barChartData.remove(DATA); + public void removeBarChartItem(final BarChartItem ITEM) { + if (null == ITEM) return; + barChartItems.remove(ITEM); fireTileEvent(DATA_EVENT); } - public void clearBarChartData() { - barChartData.clear(); + public void clearBarChartItems() { + barChartItems.clear(); + fireTileEvent(DATA_EVENT); + } + + public List getLeaderBoardItems() { return leaderBoardItems; } + public void setLeaderBoardItems(final List ITEMS) { + leaderBoardItems.clear(); + leaderBoardItems.addAll(ITEMS); + fireTileEvent(DATA_EVENT); + } + public void setLeaderBoardItems(final LeaderBoardItem... ITEMS) { setLeaderBoardItems(Arrays.asList(ITEMS)); } + public void addLeaderBoardItem(final LeaderBoardItem ITEM) { + if (null == ITEM) return; + leaderBoardItems.add(ITEM); + fireTileEvent(DATA_EVENT); + } + public void removeLeaderBoardItem(final LeaderBoardItem ITEM) { + if (null == ITEM) return; + leaderBoardItems.remove(ITEM); + fireTileEvent(DATA_EVENT); + } + public void clearLeaderBoardItems() { + leaderBoardItems.clear(); fireTileEvent(DATA_EVENT); } @@ -3870,6 +3894,7 @@ public void fireTimeEvent(final TimeEvent EVENT) { case WEATHER : return new WeatherTileSkin(Tile.this); case TIME : return new TimeTileSkin(Tile.this); case CUSTOM : return new CustomTileSkin(Tile.this); + case LEADER_BOARD : return new LeaderBoardTileSkin(Tile.this); default : return new TileSkin(Tile.this); } } @@ -3955,6 +3980,9 @@ public void setSkinType(final SkinType SKIN_TYPE) { setTextVisible(true); super.setSkin(new CustomTileSkin(Tile.this)); break; + case LEADER_BOARD: + super.setSkin(new LeaderBoardTileSkin(Tile.this)); + break; default: super.setSkin(new TileSkin(Tile.this)); break; diff --git a/src/main/java/eu/hansolo/tilesfx/TileBuilder.java b/src/main/java/eu/hansolo/tilesfx/TileBuilder.java index f258afff..f8f24585 100644 --- a/src/main/java/eu/hansolo/tilesfx/TileBuilder.java +++ b/src/main/java/eu/hansolo/tilesfx/TileBuilder.java @@ -21,6 +21,8 @@ import eu.hansolo.tilesfx.events.AlarmEventListener; import eu.hansolo.tilesfx.events.TileEventListener; import eu.hansolo.tilesfx.events.TimeEventListener; +import eu.hansolo.tilesfx.skins.BarChartItem; +import eu.hansolo.tilesfx.skins.LeaderBoardItem; import eu.hansolo.tilesfx.weather.DarkSky; import javafx.beans.InvalidationListener; import javafx.beans.property.BooleanProperty; @@ -299,13 +301,23 @@ public final B series(final List> SERIES) { return (B)this; } - public final B barChartData(final BarChartSegment... DATA) { - properties.put("barDataArray", new SimpleObjectProperty<>(DATA)); + public final B barChartItems(final BarChartItem... ITEMS) { + properties.put("barChartItemsArray", new SimpleObjectProperty<>(ITEMS)); return (B)this; } - public final B barChartData(final List DATA) { - properties.put("barDataList", new SimpleObjectProperty<>(DATA)); + public final B barChartItems(final List ITEMS) { + properties.put("barChartItemsList", new SimpleObjectProperty<>(ITEMS)); + return (B)this; + } + + public final B leaderBoardItems(final LeaderBoardItem... ITEMS) { + properties.put("leaderBoardItemsArray", new SimpleObjectProperty<>(ITEMS)); + return (B)this; + } + + public final B leaderBoardItems(final List ITEMS) { + properties.put("leaderBoardItemsList", new SimpleObjectProperty<>(ITEMS)); return (B)this; } @@ -731,6 +743,8 @@ public final Tile build() { break; case CUSTOM: break; + case LEADER_BOARD: + break; } } else { CONTROL = new Tile(); @@ -777,11 +791,18 @@ public final Tile build() { CONTROL.setSeries(((ObjectProperty>>) properties.get("seriesList")).get()); } - if (properties.keySet().contains("barDataArray")) { - CONTROL.setBarChartData(((ObjectProperty) properties.get("barDataArray")).get()); + if (properties.keySet().contains("barChartItemsArray")) { + CONTROL.setBarChartItems(((ObjectProperty) properties.get("barChartItemsArray")).get()); + } + if(properties.keySet().contains("barChartItemsList")) { + CONTROL.setBarChartItems(((ObjectProperty>) properties.get("barChartItemsList")).get()); + } + + if (properties.keySet().contains("leaderBoardItemsArray")) { + CONTROL.setLeaderBoardItems(((ObjectProperty) properties.get("leaderBoardItemsArray")).get()); } - if(properties.keySet().contains("barDataList")) { - CONTROL.setBarChartData(((ObjectProperty>) properties.get("barDataList")).get()); + if(properties.keySet().contains("leaderBoardItemsList")) { + CONTROL.setLeaderBoardItems(((ObjectProperty>) properties.get("leaderBoardItemsList")).get()); } if (properties.keySet().contains("gradientStopsArray")) {