dashboard redesign
This commit is contained in:
parent
5de13b6c5b
commit
3c6b212101
2 changed files with 592 additions and 508 deletions
|
@ -1,7 +1,6 @@
|
||||||
package es.kauron.estraba.controller;
|
package es.kauron.estraba.controller;
|
||||||
|
|
||||||
import com.jfoenix.controls.JFXButton;
|
import com.jfoenix.controls.JFXButton;
|
||||||
import com.jfoenix.controls.JFXListView;
|
|
||||||
import com.jfoenix.controls.JFXSnackbar;
|
import com.jfoenix.controls.JFXSnackbar;
|
||||||
import com.lynden.gmapsfx.GoogleMapView;
|
import com.lynden.gmapsfx.GoogleMapView;
|
||||||
import com.lynden.gmapsfx.javascript.object.GoogleMap;
|
import com.lynden.gmapsfx.javascript.object.GoogleMap;
|
||||||
|
@ -36,6 +35,9 @@ import javax.xml.bind.JAXBException;
|
||||||
import javax.xml.bind.Unmarshaller;
|
import javax.xml.bind.Unmarshaller;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
|
import java.time.LocalTime;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
import java.time.format.FormatStyle;
|
||||||
import java.util.ResourceBundle;
|
import java.util.ResourceBundle;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -52,16 +54,76 @@ public class DashboardController implements Initializable {
|
||||||
private Tab tabDashboard;
|
private Tab tabDashboard;
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
private JFXListView<?> listLeft;
|
private Label labelMotivationUpper;
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
private ImageView imgHR;
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
private Label valueHRAvg;
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
private Label valueHRMin;
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
private Label valueHRMax;
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
private ImageView imgSpeed;
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
private Label valueSpeedAvg;
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
private Label valueSpeedMax;
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
private ImageView imgCadence;
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
private Label valueCadenceAvg;
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
private Label valueCadenceMax;
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
private PieChart zoneChart;
|
private PieChart zoneChart;
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
private JFXListView<?> listRight;
|
private Label valueDate;
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
private Label motivationLabel;
|
private Label valueTime;
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
private Label valueActiveTime;
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
private Label valueTotalTime;
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
private ImageView imgDate;
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
private Label valueDistance;
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
private ImageView imgDistance;
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
private Label valueElevation;
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
private Label valueAscent;
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
private Label valueDescent;
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
private ImageView imgElevation;
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
private Label labelMotivationLower;
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
private Tab tabMap;
|
private Tab tabMap;
|
||||||
|
@ -69,9 +131,6 @@ public class DashboardController implements Initializable {
|
||||||
@FXML
|
@FXML
|
||||||
private GoogleMapView mapView;
|
private GoogleMapView mapView;
|
||||||
|
|
||||||
@FXML
|
|
||||||
private JFXListView<?> mapSummary;
|
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
private JFXButton elevationButton;
|
private JFXButton elevationButton;
|
||||||
|
|
||||||
|
@ -102,7 +161,6 @@ public class DashboardController implements Initializable {
|
||||||
@FXML
|
@FXML
|
||||||
private Tab tabSettings;
|
private Tab tabSettings;
|
||||||
|
|
||||||
private TrackData trackData;
|
|
||||||
private JFXSnackbar snackbar;
|
private JFXSnackbar snackbar;
|
||||||
private final double DISTANCE_EPSILON = 1;
|
private final double DISTANCE_EPSILON = 1;
|
||||||
|
|
||||||
|
@ -114,6 +172,13 @@ public class DashboardController implements Initializable {
|
||||||
((ImageView)hrButton.getGraphic()).setImage(new Image(App.class.getResourceAsStream("img/hr.png")));
|
((ImageView)hrButton.getGraphic()).setImage(new Image(App.class.getResourceAsStream("img/hr.png")));
|
||||||
((ImageView)cadenceButton.getGraphic()).setImage(new Image(App.class.getResourceAsStream("img/cadence.png")));
|
((ImageView)cadenceButton.getGraphic()).setImage(new Image(App.class.getResourceAsStream("img/cadence.png")));
|
||||||
|
|
||||||
|
// set icons of dashboard
|
||||||
|
imgHR.setImage(new Image(App.class.getResourceAsStream("img/hr.png")));
|
||||||
|
imgSpeed.setImage(new Image(App.class.getResourceAsStream("img/speed.png")));
|
||||||
|
imgCadence.setImage(new Image(App.class.getResourceAsStream("img/cadence.png")));
|
||||||
|
imgDate.setImage(new Image(App.class.getResourceAsStream("img/date.png")));
|
||||||
|
imgDistance.setImage(new Image(App.class.getResourceAsStream("img/distance.png")));
|
||||||
|
imgElevation.setImage(new Image(App.class.getResourceAsStream("img/elevation.png")));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -129,20 +194,40 @@ public class DashboardController implements Initializable {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void loadTrack(TrackData track) {
|
private void loadTrack(TrackData track) {
|
||||||
// populate dashboard
|
valueHRAvg.setText(track.getAverageHeartrate()
|
||||||
trackData.getStartTime();
|
+ App.GENERAL_BUNDLE.getString("unit.bpm"));
|
||||||
trackData.getTotalDuration();
|
valueHRMax.setText(track.getMaxHeartrate()
|
||||||
trackData.getMovingTime();
|
+ App.GENERAL_BUNDLE.getString("unit.bpm"));
|
||||||
trackData.getTotalDistance();
|
valueHRMin.setText(track.getMinHeartRate()
|
||||||
trackData.getTotalAscent();
|
+ App.GENERAL_BUNDLE.getString("unit.bpm"));
|
||||||
trackData.getTotalDescend();
|
|
||||||
trackData.getMaxSpeed();
|
valueSpeedAvg.setText(String.format("%.2f", track.getAverageSpeed())
|
||||||
trackData.getAverageSpeed();
|
+ App.GENERAL_BUNDLE.getString("unit.kmph"));
|
||||||
trackData.getMaxHeartrate();
|
valueSpeedMax.setText(String.format("%.2f", track.getMaxSpeed())
|
||||||
trackData.getMinHeartRate();
|
+ App.GENERAL_BUNDLE.getString("unit.kmph"));
|
||||||
trackData.getAverageHeartrate();
|
|
||||||
trackData.getMaxCadence();
|
valueCadenceAvg.setText(track.getAverageCadence()
|
||||||
trackData.getAverageCadence();
|
+ App.GENERAL_BUNDLE.getString("unit.hz"));
|
||||||
|
valueCadenceMax.setText(track.getMaxCadence()
|
||||||
|
+ App.GENERAL_BUNDLE.getString("unit.hz"));
|
||||||
|
|
||||||
|
valueDate.setText(track.getStartTime().format(DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL)));
|
||||||
|
valueTime.setText(track.getStartTime().format(DateTimeFormatter.ofLocalizedTime(FormatStyle.MEDIUM)));
|
||||||
|
valueActiveTime.setText(LocalTime.MIDNIGHT.plus(track.getMovingTime())
|
||||||
|
.format(DateTimeFormatter.ofLocalizedTime(FormatStyle.MEDIUM)));
|
||||||
|
valueTotalTime.setText(App.GENERAL_BUNDLE.getString("time.of")
|
||||||
|
+ LocalTime.MIDNIGHT.plus(track.getTotalDuration())
|
||||||
|
.format(DateTimeFormatter.ofLocalizedTime(FormatStyle.MEDIUM)));
|
||||||
|
|
||||||
|
valueDistance.setText(track.getTotalDistance()
|
||||||
|
+ App.GENERAL_BUNDLE.getString("unit.m"));
|
||||||
|
|
||||||
|
valueElevation.setText((int)(track.getTotalAscent() - track.getTotalDescend())
|
||||||
|
+ App.GENERAL_BUNDLE.getString("unit.m"));
|
||||||
|
valueAscent.setText((int)track.getTotalAscent()
|
||||||
|
+ App.GENERAL_BUNDLE.getString("unit.m"));
|
||||||
|
valueDescent.setText((int)track.getTotalDescend()
|
||||||
|
+ App.GENERAL_BUNDLE.getString("unit.m"));
|
||||||
|
|
||||||
// create charts data
|
// create charts data
|
||||||
XYChart.Series<Number, Number> elevationChartData = new XYChart.Series<>();
|
XYChart.Series<Number, Number> elevationChartData = new XYChart.Series<>();
|
||||||
|
@ -151,7 +236,8 @@ public class DashboardController implements Initializable {
|
||||||
XYChart.Series<Number, Number> cadenceChartData = new XYChart.Series<>();
|
XYChart.Series<Number, Number> cadenceChartData = new XYChart.Series<>();
|
||||||
MVCArray pathArray = new MVCArray();
|
MVCArray pathArray = new MVCArray();
|
||||||
|
|
||||||
ObservableList<Chunk> chunks = trackData.getChunks();
|
// traverse the chunks
|
||||||
|
ObservableList<Chunk> chunks = track.getChunks();
|
||||||
double currentDistance = 0.0;
|
double currentDistance = 0.0;
|
||||||
for (Chunk chunk : chunks) {
|
for (Chunk chunk : chunks) {
|
||||||
currentDistance += chunk.getDistance();
|
currentDistance += chunk.getDistance();
|
||||||
|
@ -190,6 +276,7 @@ public class DashboardController implements Initializable {
|
||||||
String name = file.getName();
|
String name = file.getName();
|
||||||
JAXBContext jaxbContext = JAXBContext.newInstance(GpxType.class, TrackPointExtensionT.class);
|
JAXBContext jaxbContext = JAXBContext.newInstance(GpxType.class, TrackPointExtensionT.class);
|
||||||
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
|
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
JAXBElement<Object> jaxbElement = (JAXBElement<Object>) unmarshaller.unmarshal(file);
|
JAXBElement<Object> jaxbElement = (JAXBElement<Object>) unmarshaller.unmarshal(file);
|
||||||
GpxType gpx = (GpxType) jaxbElement.getValue();
|
GpxType gpx = (GpxType) jaxbElement.getValue();
|
||||||
|
|
||||||
|
|
|
@ -19,500 +19,497 @@
|
||||||
<?import javafx.scene.layout.VBox?>
|
<?import javafx.scene.layout.VBox?>
|
||||||
<?import javafx.scene.text.Font?>
|
<?import javafx.scene.text.Font?>
|
||||||
|
|
||||||
<AnchorPane fx:id="root" xmlns="http://javafx.com/javafx/8.0.76-ea" xmlns:fx="http://javafx.com/fxml/1" fx:controller="es.kauron.estraba.controller.DashboardController">
|
<AnchorPane fx:id="root" xmlns="http://javafx.com/javafx/8.0.76-ea" xmlns:fx="http://javafx.com/fxml/1"
|
||||||
<children>
|
fx:controller="es.kauron.estraba.controller.DashboardController">
|
||||||
<JFXTabPane minHeight="-Infinity" minWidth="-Infinity" prefHeight="600.0" prefWidth="1000.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
<JFXTabPane minHeight="-Infinity" minWidth="-Infinity" prefHeight="600.0" prefWidth="1000.0"
|
||||||
<tabs>
|
AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0"
|
||||||
<Tab fx:id="tabDashboard" styleClass=".estraba.dashboard" text="%tab.dashboard">
|
AnchorPane.topAnchor="0.0">
|
||||||
<content>
|
<Tab fx:id="tabDashboard" styleClass=".estraba.dashboard" text="%tab.dashboard">
|
||||||
<VBox prefHeight="200.0" prefWidth="100.0">
|
<VBox prefHeight="200.0" prefWidth="100.0">
|
||||||
<children>
|
<padding>
|
||||||
<Label fx:id="labelMotivationUpper" alignment="CENTER" focusTraversable="false" maxWidth="1.7976931348623157E308" text="%label.motivation">
|
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0"/>
|
||||||
|
</padding>
|
||||||
|
<Label fx:id="labelMotivationUpper" alignment="CENTER" focusTraversable="false"
|
||||||
|
maxWidth="1.7976931348623157E308" text="%label.motivation">
|
||||||
|
<font>
|
||||||
|
<Font name="Roboto" size="56.0"/>
|
||||||
|
</font>
|
||||||
|
<VBox.margin>
|
||||||
|
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0"/>
|
||||||
|
</VBox.margin>
|
||||||
|
<styleClass>
|
||||||
|
<String fx:value=".estraba.dashboard.motivation"/>
|
||||||
|
<String fx:value=".estraba.dashboard.motivation.upper"/>
|
||||||
|
</styleClass>
|
||||||
|
</Label>
|
||||||
|
<HBox prefHeight="360.0" prefWidth="800.0" VBox.vgrow="ALWAYS">
|
||||||
|
<VBox.margin>
|
||||||
|
<Insets/>
|
||||||
|
</VBox.margin>
|
||||||
|
<VBox minHeight="360.0" minWidth="300.0" prefHeight="300.0">
|
||||||
|
<HBox.margin>
|
||||||
|
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0"/>
|
||||||
|
</HBox.margin>
|
||||||
|
<HBox alignment="CENTER" minHeight="-Infinity" minWidth="-Infinity"
|
||||||
|
prefHeight="90.0" prefWidth="200.0" VBox.vgrow="ALWAYS">
|
||||||
|
<ImageView fx:id="imgHR" fitHeight="100.0" fitWidth="100.0"
|
||||||
|
pickOnBounds="true" preserveRatio="true"
|
||||||
|
styleClass=".estraba.dashboard.icon">
|
||||||
|
<Image url="@../img/hr.png"/>
|
||||||
|
</ImageView>
|
||||||
|
<VBox alignment="CENTER" HBox.hgrow="ALWAYS">
|
||||||
|
<Label alignment="CENTER_RIGHT" maxWidth="1.7976931348623157E308"
|
||||||
|
text="%label.hr">
|
||||||
|
<padding>
|
||||||
|
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0"/>
|
||||||
|
</padding>
|
||||||
<font>
|
<font>
|
||||||
<Font name="Roboto" size="56.0" />
|
<Font name="Roboto" size="13.0"/>
|
||||||
</font>
|
</font>
|
||||||
<VBox.margin>
|
|
||||||
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0" />
|
|
||||||
</VBox.margin>
|
|
||||||
<styleClass>
|
<styleClass>
|
||||||
<String fx:value=".estraba.dashboard.motivation" />
|
<String fx:value=".estraba.dashboard.label"/>
|
||||||
<String fx:value=".estraba.dashboard.motivation.upper" />
|
<String fx:value=".estraba.dashboard.label.HR"/>
|
||||||
</styleClass>
|
</styleClass>
|
||||||
</Label>
|
</Label>
|
||||||
<HBox prefHeight="360.0" prefWidth="800.0" VBox.vgrow="ALWAYS">
|
<Label fx:id="valueHRAvg" alignment="CENTER"
|
||||||
<children>
|
maxWidth="1.7976931348623157E308" text="92 bpm"
|
||||||
<VBox minHeight="360.0" minWidth="300.0" prefHeight="300.0">
|
textAlignment="CENTER">
|
||||||
<children>
|
|
||||||
<HBox alignment="CENTER" minHeight="-Infinity" minWidth="-Infinity" prefHeight="90.0" prefWidth="200.0" VBox.vgrow="ALWAYS">
|
|
||||||
<children>
|
|
||||||
<ImageView fx:id="imgHR" fitHeight="100.0" fitWidth="100.0" pickOnBounds="true" preserveRatio="true" styleClass=".estraba.dashboard.icon">
|
|
||||||
<image>
|
|
||||||
<Image url="@../img/hr.png" />
|
|
||||||
</image>
|
|
||||||
</ImageView>
|
|
||||||
<VBox alignment="CENTER" HBox.hgrow="ALWAYS">
|
|
||||||
<children>
|
|
||||||
<Label alignment="CENTER_RIGHT" maxWidth="1.7976931348623157E308" text="%label.hr">
|
|
||||||
<padding>
|
|
||||||
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0" />
|
|
||||||
</padding>
|
|
||||||
<font>
|
|
||||||
<Font name="Roboto" size="13.0" />
|
|
||||||
</font>
|
|
||||||
<styleClass>
|
|
||||||
<String fx:value=".estraba.dashboard.label" />
|
|
||||||
<String fx:value=".estraba.dashboard.label.HR" />
|
|
||||||
</styleClass>
|
|
||||||
</Label>
|
|
||||||
<Label fx:id="valueHRAvg" alignment="CENTER" maxWidth="1.7976931348623157E308" text="92 bpm" textAlignment="CENTER">
|
|
||||||
<font>
|
|
||||||
<Font size="30.0" />
|
|
||||||
</font>
|
|
||||||
<styleClass>
|
|
||||||
<String fx:value=".estraba.dashboard.value" />
|
|
||||||
<String fx:value=".estraba.dashboard.value.main" />
|
|
||||||
<String fx:value=".estraba.dashboard.value.avghr" />
|
|
||||||
</styleClass>
|
|
||||||
</Label>
|
|
||||||
<HBox>
|
|
||||||
<children>
|
|
||||||
<Label fx:id="valueHRMin" alignment="CENTER_RIGHT" maxWidth="1.7976931348623157E308" text="60bpm" HBox.hgrow="ALWAYS">
|
|
||||||
<padding>
|
|
||||||
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0" />
|
|
||||||
</padding>
|
|
||||||
<font>
|
|
||||||
<Font name="Roboto" size="13.0" />
|
|
||||||
</font>
|
|
||||||
<styleClass>
|
|
||||||
<String fx:value=".estraba.dashboard.value" />
|
|
||||||
<String fx:value=".estraba.dashboard.value.sub" />
|
|
||||||
<String fx:value=".estraba.dashboard.value.minhr" />
|
|
||||||
</styleClass>
|
|
||||||
</Label>
|
|
||||||
<Label fx:id="valueHRMax" layoutX="10.0" layoutY="10.0" maxWidth="1.7976931348623157E308" text="100bpm" HBox.hgrow="ALWAYS">
|
|
||||||
<padding>
|
|
||||||
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0" />
|
|
||||||
</padding>
|
|
||||||
<font>
|
|
||||||
<Font name="Roboto" size="13.0" />
|
|
||||||
</font>
|
|
||||||
<styleClass>
|
|
||||||
<String fx:value=".estraba.dashboard.value" />
|
|
||||||
<String fx:value=".estraba.dashboard.value.sub" />
|
|
||||||
<String fx:value=".estraba.dashboard.value.maxhr" />
|
|
||||||
</styleClass>
|
|
||||||
</Label>
|
|
||||||
</children>
|
|
||||||
</HBox>
|
|
||||||
</children>
|
|
||||||
</VBox>
|
|
||||||
</children>
|
|
||||||
</HBox>
|
|
||||||
<HBox alignment="CENTER" minHeight="-Infinity" minWidth="-Infinity" prefHeight="90.0" prefWidth="200.0" VBox.vgrow="ALWAYS">
|
|
||||||
<children>
|
|
||||||
<ImageView fx:id="imgSpeed" fitHeight="100.0" fitWidth="100.0" pickOnBounds="true" preserveRatio="true" styleClass=".estraba.dashboard.icon">
|
|
||||||
<image>
|
|
||||||
<Image url="@../img/speed.png" />
|
|
||||||
</image>
|
|
||||||
</ImageView>
|
|
||||||
<VBox alignment="CENTER" HBox.hgrow="ALWAYS">
|
|
||||||
<children>
|
|
||||||
<Label alignment="CENTER_RIGHT" maxWidth="1.7976931348623157E308" text="%label.speed">
|
|
||||||
<padding>
|
|
||||||
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0" />
|
|
||||||
</padding>
|
|
||||||
<font>
|
|
||||||
<Font name="Roboto" size="13.0" />
|
|
||||||
</font>
|
|
||||||
<styleClass>
|
|
||||||
<String fx:value=".estraba.dashboard.label" />
|
|
||||||
<String fx:value=".estraba.dashboard.label.HR" />
|
|
||||||
</styleClass>
|
|
||||||
</Label>
|
|
||||||
<Label fx:id="valueSpeedAvg" alignment="CENTER" maxWidth="1.7976931348623157E308" text="35 Km/h" textAlignment="CENTER">
|
|
||||||
<font>
|
|
||||||
<Font size="30.0" />
|
|
||||||
</font>
|
|
||||||
<styleClass>
|
|
||||||
<String fx:value=".estraba.dashboard.value" />
|
|
||||||
<String fx:value=".estraba.dashboard.value.main" />
|
|
||||||
<String fx:value=".estraba.dashboard.value.avgspeed" />
|
|
||||||
</styleClass>
|
|
||||||
</Label>
|
|
||||||
<Label fx:id="valueSpeedMax" alignment="CENTER" maxWidth="1.7976931348623157E308" text="56 Km/h">
|
|
||||||
<padding>
|
|
||||||
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0" />
|
|
||||||
</padding>
|
|
||||||
<font>
|
|
||||||
<Font name="Roboto" size="13.0" />
|
|
||||||
</font>
|
|
||||||
<styleClass>
|
|
||||||
<String fx:value=".estraba.dashboard.value" />
|
|
||||||
<String fx:value=".estraba.dashboard.value.sub" />
|
|
||||||
<String fx:value=".estraba.dashboard.value.maxspeed" />
|
|
||||||
</styleClass>
|
|
||||||
</Label>
|
|
||||||
</children>
|
|
||||||
</VBox>
|
|
||||||
</children>
|
|
||||||
</HBox>
|
|
||||||
<HBox alignment="CENTER" minHeight="-Infinity" minWidth="-Infinity" prefHeight="90.0" prefWidth="200.0" VBox.vgrow="ALWAYS">
|
|
||||||
<children>
|
|
||||||
<ImageView fx:id="imgCadence" fitHeight="100.0" fitWidth="100.0" pickOnBounds="true" preserveRatio="true" styleClass=".estraba.dashboard.icon">
|
|
||||||
<image>
|
|
||||||
<Image url="@../img/cadence.png" />
|
|
||||||
</image>
|
|
||||||
</ImageView>
|
|
||||||
<VBox alignment="CENTER" HBox.hgrow="ALWAYS">
|
|
||||||
<children>
|
|
||||||
<Label alignment="CENTER_RIGHT" maxWidth="1.7976931348623157E308" text="%label.cadence">
|
|
||||||
<padding>
|
|
||||||
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0" />
|
|
||||||
</padding>
|
|
||||||
<font>
|
|
||||||
<Font name="Roboto" size="13.0" />
|
|
||||||
</font>
|
|
||||||
<styleClass>
|
|
||||||
<String fx:value=".estraba.dashboard.label" />
|
|
||||||
<String fx:value=".estraba.dashboard.label.HR" />
|
|
||||||
</styleClass>
|
|
||||||
</Label>
|
|
||||||
<Label fx:id="valueCadenceAvg" alignment="CENTER" maxWidth="1.7976931348623157E308" text="90 Hz" textAlignment="CENTER">
|
|
||||||
<font>
|
|
||||||
<Font size="30.0" />
|
|
||||||
</font>
|
|
||||||
<styleClass>
|
|
||||||
<String fx:value=".estraba.dashboard.value" />
|
|
||||||
<String fx:value=".estraba.dashboard.value.main" />
|
|
||||||
<String fx:value=".estraba.dashboard.value.avgcadence" />
|
|
||||||
</styleClass>
|
|
||||||
</Label>
|
|
||||||
<Label fx:id="valueCadenceMax" alignment="CENTER" maxWidth="1.7976931348623157E308" text="152 Hz">
|
|
||||||
<padding>
|
|
||||||
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0" />
|
|
||||||
</padding>
|
|
||||||
<font>
|
|
||||||
<Font name="Roboto" size="13.0" />
|
|
||||||
</font>
|
|
||||||
<styleClass>
|
|
||||||
<String fx:value=".estraba.dashboard.value" />
|
|
||||||
<String fx:value=".estraba.dashboard.value.sub" />
|
|
||||||
<String fx:value=".estraba.dashboard.value.maxcadence" />
|
|
||||||
</styleClass>
|
|
||||||
</Label>
|
|
||||||
</children>
|
|
||||||
</VBox>
|
|
||||||
</children>
|
|
||||||
</HBox>
|
|
||||||
</children>
|
|
||||||
<HBox.margin>
|
|
||||||
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0" />
|
|
||||||
</HBox.margin>
|
|
||||||
</VBox>
|
|
||||||
<PieChart fx:id="zoneChart" labelsVisible="false" legendVisible="false" minHeight="-Infinity" minWidth="-Infinity" prefHeight="300.0" prefWidth="360.0" HBox.hgrow="ALWAYS">
|
|
||||||
<HBox.margin>
|
|
||||||
<Insets />
|
|
||||||
</HBox.margin></PieChart>
|
|
||||||
<VBox layoutX="15.0" layoutY="15.0" minHeight="360.0" minWidth="300.0" prefHeight="300.0">
|
|
||||||
<children>
|
|
||||||
<HBox alignment="CENTER" layoutX="10.0" layoutY="10.0" minHeight="-Infinity" minWidth="-Infinity" prefHeight="90.0" prefWidth="200.0" HBox.hgrow="ALWAYS" VBox.vgrow="ALWAYS">
|
|
||||||
<children>
|
|
||||||
<VBox alignment="CENTER" HBox.hgrow="ALWAYS">
|
|
||||||
<children>
|
|
||||||
<Label fx:id="valueCadenceMax11" alignment="CENTER" layoutX="10.0" layoutY="97.0" maxWidth="1.7976931348623157E308" text="Wednesday, 18 May 2016">
|
|
||||||
<padding>
|
|
||||||
<Insets left="5.0" right="5.0" top="5.0" />
|
|
||||||
</padding>
|
|
||||||
<font>
|
|
||||||
<Font name="Roboto" size="13.0" />
|
|
||||||
</font>
|
|
||||||
<styleClass>
|
|
||||||
<String fx:value=".estraba.dashboard.value" />
|
|
||||||
<String fx:value=".estraba.dashboard.value.sub" />
|
|
||||||
</styleClass>
|
|
||||||
<VBox.margin>
|
|
||||||
<Insets />
|
|
||||||
</VBox.margin>
|
|
||||||
</Label>
|
|
||||||
<Label fx:id="valueCadenceMax111" alignment="CENTER" layoutX="10.0" layoutY="30.0" maxWidth="1.7976931348623157E308" text="17:00:14">
|
|
||||||
<padding>
|
|
||||||
<Insets bottom="5.0" left="5.0" right="5.0" />
|
|
||||||
</padding>
|
|
||||||
<font>
|
|
||||||
<Font name="Roboto" size="13.0" />
|
|
||||||
</font>
|
|
||||||
<styleClass>
|
|
||||||
<String fx:value=".estraba.dashboard.value" />
|
|
||||||
<String fx:value=".estraba.dashboard.value.sub" />
|
|
||||||
</styleClass>
|
|
||||||
</Label>
|
|
||||||
<Label fx:id="valueCadenceAvg1" alignment="CENTER" maxWidth="1.7976931348623157E308" text="4:37:42" textAlignment="CENTER">
|
|
||||||
<font>
|
|
||||||
<Font size="30.0" />
|
|
||||||
</font>
|
|
||||||
<styleClass>
|
|
||||||
<String fx:value=".estraba.dashboard.value" />
|
|
||||||
<String fx:value=".estraba.dashboard.value.main" />
|
|
||||||
<String fx:value=".estraba.dashboard.value.activetime" />
|
|
||||||
</styleClass>
|
|
||||||
</Label>
|
|
||||||
<Label fx:id="valueCadenceMax1" alignment="CENTER" maxWidth="1.7976931348623157E308" text="of 5:00:00">
|
|
||||||
<padding>
|
|
||||||
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0" />
|
|
||||||
</padding>
|
|
||||||
<font>
|
|
||||||
<Font name="Roboto" size="13.0" />
|
|
||||||
</font>
|
|
||||||
<styleClass>
|
|
||||||
<String fx:value=".estraba.dashboard.value" />
|
|
||||||
<String fx:value=".estraba.dashboard.value.sub" />
|
|
||||||
<String fx:value=".estraba.dashboard.value.totaltime" />
|
|
||||||
</styleClass>
|
|
||||||
</Label>
|
|
||||||
</children>
|
|
||||||
</VBox>
|
|
||||||
<ImageView fx:id="imgDistance1" fitHeight="100.0" fitWidth="100.0" pickOnBounds="true" preserveRatio="true" styleClass=".estraba.dashboard.icon">
|
|
||||||
<image>
|
|
||||||
<Image url="@../img/timespan.png" />
|
|
||||||
</image>
|
|
||||||
</ImageView>
|
|
||||||
</children>
|
|
||||||
</HBox>
|
|
||||||
<HBox alignment="CENTER" minHeight="-Infinity" minWidth="-Infinity" prefHeight="90.0" prefWidth="200.0" HBox.hgrow="ALWAYS" VBox.vgrow="ALWAYS">
|
|
||||||
<children>
|
|
||||||
<VBox alignment="CENTER" HBox.hgrow="ALWAYS">
|
|
||||||
<children>
|
|
||||||
<Label maxWidth="1.7976931348623157E308" text="%label.distance">
|
|
||||||
<padding>
|
|
||||||
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0" />
|
|
||||||
</padding>
|
|
||||||
<font>
|
|
||||||
<Font name="Roboto" size="13.0" />
|
|
||||||
</font>
|
|
||||||
<styleClass>
|
|
||||||
<String fx:value=".estraba.dashboard.label" />
|
|
||||||
<String fx:value=".estraba.dashboard.label.HR" />
|
|
||||||
</styleClass>
|
|
||||||
</Label>
|
|
||||||
<Label fx:id="valueCadenceAvg111" alignment="CENTER" maxWidth="1.7976931348623157E308" text="46714 m" textAlignment="CENTER">
|
|
||||||
<font>
|
|
||||||
<Font size="30.0" />
|
|
||||||
</font>
|
|
||||||
<styleClass>
|
|
||||||
<String fx:value=".estraba.dashboard.value" />
|
|
||||||
<String fx:value=".estraba.dashboard.value.main" />
|
|
||||||
<String fx:value=".estraba.dashboard.value.distance" />
|
|
||||||
</styleClass>
|
|
||||||
</Label>
|
|
||||||
</children>
|
|
||||||
</VBox>
|
|
||||||
<ImageView fx:id="imgDistance" fitHeight="100.0" fitWidth="100.0" pickOnBounds="true" preserveRatio="true" styleClass=".estraba.dashboard.icon">
|
|
||||||
<image>
|
|
||||||
<Image url="@../img/distance.png" />
|
|
||||||
</image>
|
|
||||||
</ImageView>
|
|
||||||
</children>
|
|
||||||
</HBox>
|
|
||||||
<HBox alignment="CENTER" minHeight="-Infinity" minWidth="-Infinity" prefHeight="90.0" prefWidth="200.0" HBox.hgrow="ALWAYS" VBox.vgrow="ALWAYS">
|
|
||||||
<children>
|
|
||||||
<VBox alignment="CENTER" HBox.hgrow="ALWAYS">
|
|
||||||
<children>
|
|
||||||
<Label maxWidth="1.7976931348623157E308" text="%label.elevation">
|
|
||||||
<padding>
|
|
||||||
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0" />
|
|
||||||
</padding>
|
|
||||||
<font>
|
|
||||||
<Font name="Roboto" size="13.0" />
|
|
||||||
</font>
|
|
||||||
<styleClass>
|
|
||||||
<String fx:value=".estraba.dashboard.label" />
|
|
||||||
<String fx:value=".estraba.dashboard.label.HR" />
|
|
||||||
</styleClass>
|
|
||||||
</Label>
|
|
||||||
<Label fx:id="valueCadenceAvg11" alignment="CENTER" maxWidth="1.7976931348623157E308" text="3166 m" textAlignment="CENTER">
|
|
||||||
<font>
|
|
||||||
<Font size="30.0" />
|
|
||||||
</font>
|
|
||||||
<styleClass>
|
|
||||||
<String fx:value=".estraba.dashboard.value" />
|
|
||||||
<String fx:value=".estraba.dashboard.value.main" />
|
|
||||||
<String fx:value=".estraba.dashboard.value.elevation" />
|
|
||||||
</styleClass>
|
|
||||||
</Label>
|
|
||||||
<HBox>
|
|
||||||
<children>
|
|
||||||
<Label fx:id="valueHRMin1" alignment="CENTER_RIGHT" maxWidth="1.7976931348623157E308" text="+ 2053m" HBox.hgrow="ALWAYS">
|
|
||||||
<padding>
|
|
||||||
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0" />
|
|
||||||
</padding>
|
|
||||||
<font>
|
|
||||||
<Font name="Roboto" size="13.0" />
|
|
||||||
</font>
|
|
||||||
<styleClass>
|
|
||||||
<String fx:value=".estraba.dashboard.value" />
|
|
||||||
<String fx:value=".estraba.dashboard.value.sub" />
|
|
||||||
<String fx:value=".estraba.dashboard.value.ascent" />
|
|
||||||
</styleClass>
|
|
||||||
</Label>
|
|
||||||
<Label fx:id="valueHRMax1" layoutX="10.0" layoutY="10.0" maxWidth="1.7976931348623157E308" text="- 1113 m" HBox.hgrow="ALWAYS">
|
|
||||||
<padding>
|
|
||||||
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0" />
|
|
||||||
</padding>
|
|
||||||
<font>
|
|
||||||
<Font name="Roboto" size="13.0" />
|
|
||||||
</font>
|
|
||||||
<styleClass>
|
|
||||||
<String fx:value=".estraba.dashboard.value" />
|
|
||||||
<String fx:value=".estraba.dashboard.value.sub" />
|
|
||||||
<String fx:value=".estraba.dashboard.value.descent" />
|
|
||||||
</styleClass>
|
|
||||||
</Label>
|
|
||||||
</children>
|
|
||||||
</HBox>
|
|
||||||
</children>
|
|
||||||
</VBox>
|
|
||||||
<ImageView fx:id="imgAscent" fitHeight="100.0" fitWidth="100.0" pickOnBounds="true" preserveRatio="true" styleClass=".estraba.dashboard.icon">
|
|
||||||
<image>
|
|
||||||
<Image url="@../img/climb.png" />
|
|
||||||
</image>
|
|
||||||
</ImageView>
|
|
||||||
</children>
|
|
||||||
</HBox>
|
|
||||||
</children>
|
|
||||||
</VBox>
|
|
||||||
</children>
|
|
||||||
<VBox.margin>
|
|
||||||
<Insets />
|
|
||||||
</VBox.margin>
|
|
||||||
</HBox>
|
|
||||||
<Label fx:id="motivationLabel" alignment="CENTER" focusTraversable="false" maxWidth="1.7976931348623157E308" text="%label.motivation">
|
|
||||||
<font>
|
<font>
|
||||||
<Font name="Roboto" size="56.0" />
|
<Font size="30.0"/>
|
||||||
</font>
|
</font>
|
||||||
<VBox.margin>
|
|
||||||
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
|
|
||||||
</VBox.margin>
|
|
||||||
<styleClass>
|
<styleClass>
|
||||||
<String fx:value=".estraba.dashboard.motivation" />
|
<String fx:value=".estraba.dashboard.value"/>
|
||||||
<String fx:value=".estraba.dashboard.motivation.lower" />
|
<String fx:value=".estraba.dashboard.value.main"/>
|
||||||
|
<String fx:value=".estraba.dashboard.value.avghr"/>
|
||||||
</styleClass>
|
</styleClass>
|
||||||
</Label>
|
</Label>
|
||||||
</children>
|
<HBox>
|
||||||
<padding>
|
<Label fx:id="valueHRMin" alignment="CENTER_RIGHT"
|
||||||
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0" />
|
maxWidth="1.7976931348623157E308" text="60bpm"
|
||||||
</padding>
|
HBox.hgrow="ALWAYS">
|
||||||
</VBox>
|
<padding>
|
||||||
</content>
|
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0"/>
|
||||||
</Tab>
|
</padding>
|
||||||
<Tab fx:id="tabMap" text="%tab.map">
|
<font>
|
||||||
<content>
|
<Font name="Roboto" size="13.0"/>
|
||||||
<VBox>
|
</font>
|
||||||
<children>
|
<styleClass>
|
||||||
<GoogleMapView fx:id="mapView" />
|
<String fx:value=".estraba.dashboard.value"/>
|
||||||
<HBox maxHeight="-Infinity" minHeight="-Infinity" prefHeight="128.0">
|
<String fx:value=".estraba.dashboard.value.sub"/>
|
||||||
<children>
|
<String fx:value=".estraba.dashboard.value.minhr"/>
|
||||||
<VBox>
|
</styleClass>
|
||||||
<children>
|
</Label>
|
||||||
<JFXButton fx:id="elevationButton" minHeight="-Infinity" minWidth="-Infinity" onAction="#onMapButton" prefHeight="32.0" prefWidth="32.0">
|
<Label fx:id="valueHRMax" layoutX="10.0" layoutY="10.0"
|
||||||
<graphic>
|
maxWidth="1.7976931348623157E308" text="100bpm"
|
||||||
<ImageView fitHeight="32.0" fitWidth="32.0" pickOnBounds="true" preserveRatio="true" />
|
HBox.hgrow="ALWAYS">
|
||||||
</graphic>
|
<padding>
|
||||||
<VBox.margin>
|
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0"/>
|
||||||
<Insets />
|
</padding>
|
||||||
</VBox.margin>
|
<font>
|
||||||
</JFXButton>
|
<Font name="Roboto" size="13.0"/>
|
||||||
<JFXButton fx:id="speedButton" layoutX="10.0" layoutY="10.0" minHeight="-Infinity" minWidth="-Infinity" onAction="#onMapButton" prefHeight="32.0" prefWidth="32.0">
|
</font>
|
||||||
<graphic>
|
<styleClass>
|
||||||
<ImageView fitHeight="32.0" fitWidth="32.0" pickOnBounds="true" preserveRatio="true" />
|
<String fx:value=".estraba.dashboard.value"/>
|
||||||
</graphic>
|
<String fx:value=".estraba.dashboard.value.sub"/>
|
||||||
<VBox.margin>
|
<String fx:value=".estraba.dashboard.value.maxhr"/>
|
||||||
<Insets />
|
</styleClass>
|
||||||
</VBox.margin>
|
</Label>
|
||||||
</JFXButton>
|
|
||||||
<JFXButton fx:id="hrButton" layoutX="10.0" layoutY="10.0" minHeight="-Infinity" minWidth="-Infinity" onAction="#onMapButton" prefHeight="32.0" prefWidth="32.0">
|
|
||||||
<graphic>
|
|
||||||
<ImageView fitHeight="32.0" fitWidth="32.0" pickOnBounds="true" preserveRatio="true" />
|
|
||||||
</graphic>
|
|
||||||
<VBox.margin>
|
|
||||||
<Insets />
|
|
||||||
</VBox.margin>
|
|
||||||
</JFXButton>
|
|
||||||
<JFXButton fx:id="cadenceButton" layoutX="10.0" layoutY="42.0" minHeight="-Infinity" minWidth="-Infinity" onAction="#onMapButton" prefHeight="32.0" prefWidth="32.0">
|
|
||||||
<graphic>
|
|
||||||
<ImageView fitHeight="32.0" fitWidth="32.0" pickOnBounds="true" preserveRatio="true" />
|
|
||||||
</graphic>
|
|
||||||
<VBox.margin>
|
|
||||||
<Insets />
|
|
||||||
</VBox.margin>
|
|
||||||
</JFXButton>
|
|
||||||
</children>
|
|
||||||
</VBox>
|
|
||||||
<LineChart HBox.hgrow="ALWAYS">
|
|
||||||
<xAxis>
|
|
||||||
<CategoryAxis side="BOTTOM" />
|
|
||||||
</xAxis>
|
|
||||||
<yAxis>
|
|
||||||
<NumberAxis side="LEFT" />
|
|
||||||
</yAxis>
|
|
||||||
</LineChart>
|
|
||||||
</children>
|
|
||||||
</HBox>
|
</HBox>
|
||||||
</children>
|
</VBox>
|
||||||
<padding>
|
</HBox>
|
||||||
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0" />
|
<HBox alignment="CENTER" minHeight="-Infinity" minWidth="-Infinity"
|
||||||
</padding>
|
prefHeight="90.0" prefWidth="200.0" VBox.vgrow="ALWAYS">
|
||||||
</VBox>
|
<ImageView fx:id="imgSpeed" fitHeight="100.0" fitWidth="100.0"
|
||||||
</content>
|
pickOnBounds="true" preserveRatio="true"
|
||||||
</Tab>
|
styleClass=".estraba.dashboard.icon">
|
||||||
<Tab fx:id="tabGraph" text="%tab.graph">
|
<Image url="@../img/speed.png"/>
|
||||||
<content>
|
</ImageView>
|
||||||
<VBox>
|
<VBox alignment="CENTER" HBox.hgrow="ALWAYS">
|
||||||
<children>
|
<Label alignment="CENTER_RIGHT" maxWidth="1.7976931348623157E308"
|
||||||
<AreaChart fx:id="elevationChart" minHeight="100.0">
|
text="%label.speed">
|
||||||
<xAxis>
|
<padding>
|
||||||
<CategoryAxis side="BOTTOM" />
|
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0"/>
|
||||||
</xAxis>
|
</padding>
|
||||||
<yAxis>
|
<font>
|
||||||
<NumberAxis side="LEFT" />
|
<Font name="Roboto" size="13.0"/>
|
||||||
</yAxis>
|
</font>
|
||||||
</AreaChart>
|
<styleClass>
|
||||||
<LineChart fx:id="speedChart" minHeight="100.0">
|
<String fx:value=".estraba.dashboard.label"/>
|
||||||
<xAxis>
|
<String fx:value=".estraba.dashboard.label.HR"/>
|
||||||
<CategoryAxis />
|
</styleClass>
|
||||||
</xAxis>
|
</Label>
|
||||||
<yAxis>
|
<Label fx:id="valueSpeedAvg" alignment="CENTER"
|
||||||
<NumberAxis side="LEFT" />
|
maxWidth="1.7976931348623157E308" text="35 Km/h"
|
||||||
</yAxis>
|
textAlignment="CENTER">
|
||||||
</LineChart>
|
<font>
|
||||||
<LineChart fx:id="hrChart" minHeight="100.0">
|
<Font size="30.0"/>
|
||||||
<xAxis>
|
</font>
|
||||||
<CategoryAxis side="BOTTOM" />
|
<styleClass>
|
||||||
</xAxis>
|
<String fx:value=".estraba.dashboard.value"/>
|
||||||
<yAxis>
|
<String fx:value=".estraba.dashboard.value.main"/>
|
||||||
<NumberAxis side="LEFT" />
|
<String fx:value=".estraba.dashboard.value.avgspeed"/>
|
||||||
</yAxis>
|
</styleClass>
|
||||||
</LineChart>
|
</Label>
|
||||||
<LineChart fx:id="cadenceChart" minHeight="100.0">
|
<Label fx:id="valueSpeedMax" alignment="CENTER"
|
||||||
<xAxis>
|
maxWidth="1.7976931348623157E308" text="56 Km/h">
|
||||||
<CategoryAxis side="BOTTOM" />
|
<padding>
|
||||||
</xAxis>
|
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0"/>
|
||||||
<yAxis>
|
</padding>
|
||||||
<NumberAxis side="LEFT" />
|
<font>
|
||||||
</yAxis>
|
<Font name="Roboto" size="13.0"/>
|
||||||
</LineChart>
|
</font>
|
||||||
</children>
|
<styleClass>
|
||||||
<padding>
|
<String fx:value=".estraba.dashboard.value"/>
|
||||||
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0" />
|
<String fx:value=".estraba.dashboard.value.sub"/>
|
||||||
</padding>
|
<String fx:value=".estraba.dashboard.value.maxspeed"/>
|
||||||
</VBox>
|
</styleClass>
|
||||||
</content>
|
</Label>
|
||||||
</Tab>
|
</VBox>
|
||||||
<Tab fx:id="tabSettings" text="%tab.settings">
|
</HBox>
|
||||||
<content>
|
<HBox alignment="CENTER" minHeight="-Infinity" minWidth="-Infinity"
|
||||||
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0" />
|
prefHeight="90.0" prefWidth="200.0" VBox.vgrow="ALWAYS">
|
||||||
</content>
|
<ImageView fx:id="imgCadence" fitHeight="100.0" fitWidth="100.0"
|
||||||
</Tab>
|
pickOnBounds="true" preserveRatio="true"
|
||||||
</tabs>
|
styleClass=".estraba.dashboard.icon">
|
||||||
</JFXTabPane>
|
<Image url="@../img/cadence.png"/>
|
||||||
</children>
|
</ImageView>
|
||||||
|
<VBox alignment="CENTER" HBox.hgrow="ALWAYS">
|
||||||
|
<Label alignment="CENTER_RIGHT" maxWidth="1.7976931348623157E308"
|
||||||
|
text="%label.cadence">
|
||||||
|
<padding>
|
||||||
|
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0"/>
|
||||||
|
</padding>
|
||||||
|
<font>
|
||||||
|
<Font name="Roboto" size="13.0"/>
|
||||||
|
</font>
|
||||||
|
<styleClass>
|
||||||
|
<String fx:value=".estraba.dashboard.label"/>
|
||||||
|
<String fx:value=".estraba.dashboard.label.HR"/>
|
||||||
|
</styleClass>
|
||||||
|
</Label>
|
||||||
|
<Label fx:id="valueCadenceAvg" alignment="CENTER"
|
||||||
|
maxWidth="1.7976931348623157E308" text="90 Hz"
|
||||||
|
textAlignment="CENTER">
|
||||||
|
<font>
|
||||||
|
<Font size="30.0"/>
|
||||||
|
</font>
|
||||||
|
<styleClass>
|
||||||
|
<String fx:value=".estraba.dashboard.value"/>
|
||||||
|
<String fx:value=".estraba.dashboard.value.main"/>
|
||||||
|
<String fx:value=".estraba.dashboard.value.avgcadence"/>
|
||||||
|
</styleClass>
|
||||||
|
</Label>
|
||||||
|
<Label fx:id="valueCadenceMax" alignment="CENTER"
|
||||||
|
maxWidth="1.7976931348623157E308" text="152 Hz">
|
||||||
|
<padding>
|
||||||
|
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0"/>
|
||||||
|
</padding>
|
||||||
|
<font>
|
||||||
|
<Font name="Roboto" size="13.0"/>
|
||||||
|
</font>
|
||||||
|
<styleClass>
|
||||||
|
<String fx:value=".estraba.dashboard.value"/>
|
||||||
|
<String fx:value=".estraba.dashboard.value.sub"/>
|
||||||
|
<String fx:value=".estraba.dashboard.value.maxcadence"/>
|
||||||
|
</styleClass>
|
||||||
|
</Label>
|
||||||
|
</VBox>
|
||||||
|
</HBox>
|
||||||
|
</VBox>
|
||||||
|
<PieChart fx:id="zoneChart" labelsVisible="false" legendVisible="false" minHeight="-Infinity"
|
||||||
|
minWidth="-Infinity" prefHeight="300.0" prefWidth="360.0" HBox.hgrow="ALWAYS">
|
||||||
|
<HBox.margin>
|
||||||
|
<Insets/>
|
||||||
|
</HBox.margin>
|
||||||
|
</PieChart>
|
||||||
|
<VBox layoutX="15.0" layoutY="15.0" minHeight="360.0" minWidth="300.0" prefHeight="300.0">
|
||||||
|
<HBox alignment="CENTER" layoutX="10.0" layoutY="10.0" minHeight="-Infinity"
|
||||||
|
minWidth="-Infinity" prefHeight="90.0" prefWidth="200.0" HBox.hgrow="ALWAYS"
|
||||||
|
VBox.vgrow="ALWAYS">
|
||||||
|
<VBox alignment="CENTER" HBox.hgrow="ALWAYS">
|
||||||
|
<Label fx:id="valueDate" alignment="CENTER" layoutX="10.0" layoutY="97.0"
|
||||||
|
maxWidth="1.7976931348623157E308" text="Wednesday, 18 May 2016">
|
||||||
|
<padding>
|
||||||
|
<Insets left="5.0" right="5.0" top="5.0"/>
|
||||||
|
</padding>
|
||||||
|
<font>
|
||||||
|
<Font name="Roboto" size="13.0"/>
|
||||||
|
</font>
|
||||||
|
<styleClass>
|
||||||
|
<String fx:value=".estraba.dashboard.value"/>
|
||||||
|
<String fx:value=".estraba.dashboard.value.sub"/>
|
||||||
|
</styleClass>
|
||||||
|
<VBox.margin>
|
||||||
|
<Insets/>
|
||||||
|
</VBox.margin>
|
||||||
|
</Label>
|
||||||
|
<Label fx:id="valueTime" alignment="CENTER" layoutX="10.0" layoutY="30.0"
|
||||||
|
maxWidth="1.7976931348623157E308" text="17:00:14">
|
||||||
|
<padding>
|
||||||
|
<Insets bottom="5.0" left="5.0" right="5.0"/>
|
||||||
|
</padding>
|
||||||
|
<font>
|
||||||
|
<Font name="Roboto" size="13.0"/>
|
||||||
|
</font>
|
||||||
|
<styleClass>
|
||||||
|
<String fx:value=".estraba.dashboard.value"/>
|
||||||
|
<String fx:value=".estraba.dashboard.value.sub"/>
|
||||||
|
</styleClass>
|
||||||
|
</Label>
|
||||||
|
<Label fx:id="valueActiveTime" alignment="CENTER"
|
||||||
|
maxWidth="1.7976931348623157E308" text="4:37:42"
|
||||||
|
textAlignment="CENTER">
|
||||||
|
<font>
|
||||||
|
<Font size="30.0"/>
|
||||||
|
</font>
|
||||||
|
<styleClass>
|
||||||
|
<String fx:value=".estraba.dashboard.value"/>
|
||||||
|
<String fx:value=".estraba.dashboard.value.main"/>
|
||||||
|
<String fx:value=".estraba.dashboard.value.activetime"/>
|
||||||
|
</styleClass>
|
||||||
|
</Label>
|
||||||
|
<Label fx:id="valueTotalTime" alignment="CENTER"
|
||||||
|
maxWidth="1.7976931348623157E308" text="of 5:00:00">
|
||||||
|
<padding>
|
||||||
|
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0"/>
|
||||||
|
</padding>
|
||||||
|
<font>
|
||||||
|
<Font name="Roboto" size="13.0"/>
|
||||||
|
</font>
|
||||||
|
<styleClass>
|
||||||
|
<String fx:value=".estraba.dashboard.value"/>
|
||||||
|
<String fx:value=".estraba.dashboard.value.sub"/>
|
||||||
|
<String fx:value=".estraba.dashboard.value.totaltime"/>
|
||||||
|
</styleClass>
|
||||||
|
</Label>
|
||||||
|
</VBox>
|
||||||
|
<ImageView fx:id="imgDate" fitHeight="100.0" fitWidth="100.0"
|
||||||
|
pickOnBounds="true" preserveRatio="true"
|
||||||
|
styleClass=".estraba.dashboard.icon">
|
||||||
|
<Image url="@../img/date.png"/>
|
||||||
|
</ImageView>
|
||||||
|
</HBox>
|
||||||
|
<HBox alignment="CENTER" minHeight="-Infinity" minWidth="-Infinity"
|
||||||
|
prefHeight="90.0" prefWidth="200.0" HBox.hgrow="ALWAYS" VBox.vgrow="ALWAYS">
|
||||||
|
<VBox alignment="CENTER" HBox.hgrow="ALWAYS">
|
||||||
|
<Label maxWidth="1.7976931348623157E308" text="%label.distance">
|
||||||
|
<padding>
|
||||||
|
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0"/>
|
||||||
|
</padding>
|
||||||
|
<font>
|
||||||
|
<Font name="Roboto" size="13.0"/>
|
||||||
|
</font>
|
||||||
|
<styleClass>
|
||||||
|
<String fx:value=".estraba.dashboard.label"/>
|
||||||
|
<String fx:value=".estraba.dashboard.label.HR"/>
|
||||||
|
</styleClass>
|
||||||
|
</Label>
|
||||||
|
<Label fx:id="valueDistance" alignment="CENTER"
|
||||||
|
maxWidth="1.7976931348623157E308" text="46714 m"
|
||||||
|
textAlignment="CENTER">
|
||||||
|
<font>
|
||||||
|
<Font size="30.0"/>
|
||||||
|
</font>
|
||||||
|
<styleClass>
|
||||||
|
<String fx:value=".estraba.dashboard.value"/>
|
||||||
|
<String fx:value=".estraba.dashboard.value.main"/>
|
||||||
|
<String fx:value=".estraba.dashboard.value.distance"/>
|
||||||
|
</styleClass>
|
||||||
|
</Label>
|
||||||
|
</VBox>
|
||||||
|
<ImageView fx:id="imgDistance" fitHeight="100.0" fitWidth="100.0"
|
||||||
|
pickOnBounds="true" preserveRatio="true"
|
||||||
|
styleClass=".estraba.dashboard.icon">
|
||||||
|
<Image url="@../img/distance.png"/>
|
||||||
|
</ImageView>
|
||||||
|
</HBox>
|
||||||
|
<HBox alignment="CENTER" minHeight="-Infinity" minWidth="-Infinity"
|
||||||
|
prefHeight="90.0" prefWidth="200.0" HBox.hgrow="ALWAYS" VBox.vgrow="ALWAYS">
|
||||||
|
<VBox alignment="CENTER" HBox.hgrow="ALWAYS">
|
||||||
|
<Label maxWidth="1.7976931348623157E308" text="%label.elevation">
|
||||||
|
<padding>
|
||||||
|
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0"/>
|
||||||
|
</padding>
|
||||||
|
<font>
|
||||||
|
<Font name="Roboto" size="13.0"/>
|
||||||
|
</font>
|
||||||
|
<styleClass>
|
||||||
|
<String fx:value=".estraba.dashboard.label"/>
|
||||||
|
<String fx:value=".estraba.dashboard.label.HR"/>
|
||||||
|
</styleClass>
|
||||||
|
</Label>
|
||||||
|
<Label fx:id="valueElevation" alignment="CENTER"
|
||||||
|
maxWidth="1.7976931348623157E308" text="3166 m"
|
||||||
|
textAlignment="CENTER">
|
||||||
|
<font>
|
||||||
|
<Font size="30.0"/>
|
||||||
|
</font>
|
||||||
|
<styleClass>
|
||||||
|
<String fx:value=".estraba.dashboard.value"/>
|
||||||
|
<String fx:value=".estraba.dashboard.value.main"/>
|
||||||
|
<String fx:value=".estraba.dashboard.value.elevation"/>
|
||||||
|
</styleClass>
|
||||||
|
</Label>
|
||||||
|
<HBox>
|
||||||
|
<Label fx:id="valueAscent" alignment="CENTER_RIGHT"
|
||||||
|
maxWidth="1.7976931348623157E308" text="+ 2053m"
|
||||||
|
HBox.hgrow="ALWAYS">
|
||||||
|
<padding>
|
||||||
|
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0"/>
|
||||||
|
</padding>
|
||||||
|
<font>
|
||||||
|
<Font name="Roboto" size="13.0"/>
|
||||||
|
</font>
|
||||||
|
<styleClass>
|
||||||
|
<String fx:value=".estraba.dashboard.value"/>
|
||||||
|
<String fx:value=".estraba.dashboard.value.sub"/>
|
||||||
|
<String fx:value=".estraba.dashboard.value.ascent"/>
|
||||||
|
</styleClass>
|
||||||
|
</Label>
|
||||||
|
<Label fx:id="valueDescent" layoutX="10.0" layoutY="10.0"
|
||||||
|
maxWidth="1.7976931348623157E308" text="- 1113 m"
|
||||||
|
HBox.hgrow="ALWAYS">
|
||||||
|
<padding>
|
||||||
|
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0"/>
|
||||||
|
</padding>
|
||||||
|
<font>
|
||||||
|
<Font name="Roboto" size="13.0"/>
|
||||||
|
</font>
|
||||||
|
<styleClass>
|
||||||
|
<String fx:value=".estraba.dashboard.value"/>
|
||||||
|
<String fx:value=".estraba.dashboard.value.sub"/>
|
||||||
|
<String fx:value=".estraba.dashboard.value.descent"/>
|
||||||
|
</styleClass>
|
||||||
|
</Label>
|
||||||
|
</HBox>
|
||||||
|
</VBox>
|
||||||
|
<ImageView fx:id="imgElevation" fitHeight="100.0" fitWidth="100.0"
|
||||||
|
pickOnBounds="true" preserveRatio="true"
|
||||||
|
styleClass=".estraba.dashboard.icon">
|
||||||
|
<Image url="@../img/climb.png"/>
|
||||||
|
</ImageView>
|
||||||
|
</HBox>
|
||||||
|
</VBox>
|
||||||
|
</HBox>
|
||||||
|
<Label fx:id="labelMotivationLower" alignment="CENTER" focusTraversable="false"
|
||||||
|
maxWidth="1.7976931348623157E308" text="%label.motivation">
|
||||||
|
<font>
|
||||||
|
<Font name="Roboto" size="56.0"/>
|
||||||
|
</font>
|
||||||
|
<VBox.margin>
|
||||||
|
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0"/>
|
||||||
|
</VBox.margin>
|
||||||
|
<styleClass>
|
||||||
|
<String fx:value=".estraba.dashboard.motivation"/>
|
||||||
|
<String fx:value=".estraba.dashboard.motivation.lower"/>
|
||||||
|
</styleClass>
|
||||||
|
</Label>
|
||||||
|
</VBox>
|
||||||
|
</Tab>
|
||||||
|
<Tab fx:id="tabMap" text="%tab.map">
|
||||||
|
<VBox>
|
||||||
|
<padding>
|
||||||
|
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0"/>
|
||||||
|
</padding>
|
||||||
|
<GoogleMapView fx:id="mapView"/>
|
||||||
|
<HBox maxHeight="-Infinity" minHeight="-Infinity" prefHeight="128.0">
|
||||||
|
<VBox>
|
||||||
|
<JFXButton fx:id="elevationButton" minHeight="-Infinity" minWidth="-Infinity"
|
||||||
|
onAction="#onMapButton" prefHeight="32.0" prefWidth="32.0">
|
||||||
|
<graphic>
|
||||||
|
<ImageView fitHeight="32.0" fitWidth="32.0" pickOnBounds="true"
|
||||||
|
preserveRatio="true"/>
|
||||||
|
</graphic>
|
||||||
|
<VBox.margin>
|
||||||
|
<Insets/>
|
||||||
|
</VBox.margin>
|
||||||
|
</JFXButton>
|
||||||
|
<JFXButton fx:id="speedButton" layoutX="10.0" layoutY="10.0" minHeight="-Infinity"
|
||||||
|
minWidth="-Infinity" onAction="#onMapButton" prefHeight="32.0"
|
||||||
|
prefWidth="32.0">
|
||||||
|
<graphic>
|
||||||
|
<ImageView fitHeight="32.0" fitWidth="32.0" pickOnBounds="true"
|
||||||
|
preserveRatio="true"/>
|
||||||
|
</graphic>
|
||||||
|
<VBox.margin>
|
||||||
|
<Insets/>
|
||||||
|
</VBox.margin>
|
||||||
|
</JFXButton>
|
||||||
|
<JFXButton fx:id="hrButton" layoutX="10.0" layoutY="10.0" minHeight="-Infinity"
|
||||||
|
minWidth="-Infinity" onAction="#onMapButton" prefHeight="32.0"
|
||||||
|
prefWidth="32.0">
|
||||||
|
<graphic>
|
||||||
|
<ImageView fitHeight="32.0" fitWidth="32.0" pickOnBounds="true"
|
||||||
|
preserveRatio="true"/>
|
||||||
|
</graphic>
|
||||||
|
<VBox.margin>
|
||||||
|
<Insets/>
|
||||||
|
</VBox.margin>
|
||||||
|
</JFXButton>
|
||||||
|
<JFXButton fx:id="cadenceButton" layoutX="10.0" layoutY="42.0" minHeight="-Infinity"
|
||||||
|
minWidth="-Infinity" onAction="#onMapButton" prefHeight="32.0"
|
||||||
|
prefWidth="32.0">
|
||||||
|
<graphic>
|
||||||
|
<ImageView fitHeight="32.0" fitWidth="32.0" pickOnBounds="true"
|
||||||
|
preserveRatio="true"/>
|
||||||
|
</graphic>
|
||||||
|
<VBox.margin>
|
||||||
|
<Insets/>
|
||||||
|
</VBox.margin>
|
||||||
|
</JFXButton>
|
||||||
|
</VBox>
|
||||||
|
<LineChart HBox.hgrow="ALWAYS">
|
||||||
|
<xAxis>
|
||||||
|
<CategoryAxis side="BOTTOM"/>
|
||||||
|
</xAxis>
|
||||||
|
<yAxis>
|
||||||
|
<NumberAxis side="LEFT"/>
|
||||||
|
</yAxis>
|
||||||
|
</LineChart>
|
||||||
|
</HBox>
|
||||||
|
</VBox>
|
||||||
|
</Tab>
|
||||||
|
<Tab fx:id="tabGraph" text="%tab.graph">
|
||||||
|
<VBox>
|
||||||
|
<padding>
|
||||||
|
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0"/>
|
||||||
|
</padding>
|
||||||
|
<AreaChart fx:id="elevationChart" minHeight="100.0">
|
||||||
|
<xAxis>
|
||||||
|
<CategoryAxis side="BOTTOM"/>
|
||||||
|
</xAxis>
|
||||||
|
<yAxis>
|
||||||
|
<NumberAxis side="LEFT"/>
|
||||||
|
</yAxis>
|
||||||
|
</AreaChart>
|
||||||
|
<LineChart fx:id="speedChart" minHeight="100.0">
|
||||||
|
<xAxis>
|
||||||
|
<CategoryAxis/>
|
||||||
|
</xAxis>
|
||||||
|
<yAxis>
|
||||||
|
<NumberAxis side="LEFT"/>
|
||||||
|
</yAxis>
|
||||||
|
</LineChart>
|
||||||
|
<LineChart fx:id="hrChart" minHeight="100.0">
|
||||||
|
<xAxis>
|
||||||
|
<CategoryAxis side="BOTTOM"/>
|
||||||
|
</xAxis>
|
||||||
|
<yAxis>
|
||||||
|
<NumberAxis side="LEFT"/>
|
||||||
|
</yAxis>
|
||||||
|
</LineChart>
|
||||||
|
<LineChart fx:id="cadenceChart" minHeight="100.0">
|
||||||
|
<xAxis>
|
||||||
|
<CategoryAxis side="BOTTOM"/>
|
||||||
|
</xAxis>
|
||||||
|
<yAxis>
|
||||||
|
<NumberAxis side="LEFT"/>
|
||||||
|
</yAxis>
|
||||||
|
</LineChart>
|
||||||
|
</VBox>
|
||||||
|
</Tab>
|
||||||
|
<Tab fx:id="tabSettings" text="%tab.settings">
|
||||||
|
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0"/>
|
||||||
|
</Tab>
|
||||||
|
</JFXTabPane>
|
||||||
</AnchorPane>
|
</AnchorPane>
|
||||||
|
|
Reference in a new issue