From bb0b5086d03ea5ab867fca54b1ca8211becdb0e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20V=C3=A9lez=20Palacios?= Date: Thu, 19 May 2016 14:06:45 +0200 Subject: [PATCH] dashboard redesign --- src/main/java/es/kauron/estraba/App.java | 7 ++- .../controller/DashboardController.java | 9 ++-- .../estraba/controller/SplashController.java | 47 ++++++++++++++++++ .../es/kauron/estraba/css/palette.css | 11 ++++ .../es/kauron/estraba/fxml/Splash.fxml | 27 ++++++++++ .../estraba/ttf/DAGGERSQUARE OBLIQUE.otf | Bin 0 -> 14120 bytes .../es/kauron/estraba/ttf/DAGGERSQUARE.otf | Bin 0 -> 14192 bytes src/main/resources/general.properties | 5 +- src/main/resources/general_ca.properties | 5 +- src/main/resources/general_es.properties | 3 +- 10 files changed, 103 insertions(+), 11 deletions(-) create mode 100644 src/main/java/es/kauron/estraba/controller/SplashController.java create mode 100644 src/main/resources/es/kauron/estraba/css/palette.css create mode 100644 src/main/resources/es/kauron/estraba/fxml/Splash.fxml create mode 100644 src/main/resources/es/kauron/estraba/ttf/DAGGERSQUARE OBLIQUE.otf create mode 100644 src/main/resources/es/kauron/estraba/ttf/DAGGERSQUARE.otf diff --git a/src/main/java/es/kauron/estraba/App.java b/src/main/java/es/kauron/estraba/App.java index d8d4243..9892d83 100644 --- a/src/main/java/es/kauron/estraba/App.java +++ b/src/main/java/es/kauron/estraba/App.java @@ -33,6 +33,7 @@ import javafx.scene.image.Image; import javafx.stage.Stage; import java.util.ResourceBundle; + import static java.util.ResourceBundle.getBundle; /** @@ -52,10 +53,12 @@ public class App extends Application { FXMLLoader loader = new FXMLLoader( App.class.getResource("fxml/Dashboard.fxml"), GENERAL_BUNDLE); Parent root = loader.load(); + stage.getIcons().add(new Image(App.class.getResource("img/icon.png").toString())); - stage.setTitle("ESTRABA"); + stage.setTitle(GENERAL_BUNDLE.getString("app.title")); + stage.setResizable(false); stage.setScene(new Scene(root)); - stage.setResizable(true); + stage.show(); loader.getController().postinit(); } diff --git a/src/main/java/es/kauron/estraba/controller/DashboardController.java b/src/main/java/es/kauron/estraba/controller/DashboardController.java index c2cfef2..be98703 100644 --- a/src/main/java/es/kauron/estraba/controller/DashboardController.java +++ b/src/main/java/es/kauron/estraba/controller/DashboardController.java @@ -178,6 +178,8 @@ public class DashboardController implements Initializable { 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"))); + + snackbar = new JFXSnackbar(); } @FXML @@ -199,7 +201,6 @@ public class DashboardController implements Initializable { } public void postinit() { - snackbar = new JFXSnackbar(); snackbar.registerSnackbarContainer(root); try {load();} catch (JAXBException e) {e.printStackTrace();} } @@ -225,10 +226,10 @@ public class DashboardController implements Initializable { 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))); + .format(DateTimeFormatter.ofPattern("HH:mm:ss"))); valueTotalTime.setText(App.GENERAL_BUNDLE.getString("time.of") + LocalTime.MIDNIGHT.plus(track.getTotalDuration()) - .format(DateTimeFormatter.ofLocalizedTime(FormatStyle.MEDIUM))); + .format(DateTimeFormatter.ofPattern("HH:mm:ss"))); if (track.getTotalDistance() > KILOMETER_CUTOFF) { valueDistance.setText(String.format("%.2f", track.getTotalDistance() / 1000) @@ -256,7 +257,7 @@ public class DashboardController implements Initializable { // traverse the chunks ObservableList chunks = track.getChunks(); double currentDistance = 0.0; - double currentHeight = 0.0; + double currentHeight = chunks.get(0).getFirstPoint().getElevation(); for (Chunk chunk : chunks) { currentDistance += chunk.getDistance(); if (chunk.getDistance() < DISTANCE_EPSILON) continue; diff --git a/src/main/java/es/kauron/estraba/controller/SplashController.java b/src/main/java/es/kauron/estraba/controller/SplashController.java new file mode 100644 index 0000000..8e875f4 --- /dev/null +++ b/src/main/java/es/kauron/estraba/controller/SplashController.java @@ -0,0 +1,47 @@ +package es.kauron.estraba.controller; + +import com.jfoenix.controls.JFXButton; +import com.jfoenix.controls.JFXSpinner; +import es.kauron.estraba.App; +import javafx.event.ActionEvent; +import javafx.fxml.FXML; +import javafx.fxml.Initializable; +import javafx.scene.control.Label; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; + +import java.net.URL; +import java.util.ResourceBundle; + +/** + * es.kauron.estraba.controller (estraba) + * Created by baudlord on 5/19/16. + */ + +public class SplashController implements Initializable{ + + @FXML + private ImageView imgLogo; + + @FXML + private JFXSpinner spinner; + + @FXML + private Label labelWelcome; + + @FXML + private JFXButton buttonLoad; + + @FXML + void loadGPXFile(ActionEvent event) { + buttonLoad.setVisible(false); + labelWelcome.setVisible(false); + spinner.setVisible(true); + } + + @Override + public void initialize(URL location, ResourceBundle resources) { + imgLogo.setImage(new Image(App.class.getResourceAsStream("img/splash.png"))); + } +} + diff --git a/src/main/resources/es/kauron/estraba/css/palette.css b/src/main/resources/es/kauron/estraba/css/palette.css new file mode 100644 index 0000000..0747de4 --- /dev/null +++ b/src/main/resources/es/kauron/estraba/css/palette.css @@ -0,0 +1,11 @@ +/* Palette generated by Material Palette - materialpalette.com/deep-orange/indigo */ + +.background { -fx-background-color: #FFFFFF; } +.dark-primary-color { -fx-background-color: #E64A19; } +.default-primary-color { -fx-background-color: #FF5722; } +.light-primary-color { -fx-background-color: #FFCCBC; } +.text-primary-color { -fx-text-fill: #FFFFFF; } +.accent-color { -fx-background-color: #536DFE; } +.primary-text-color { -fx-text-fill: #212121; } +.secondary-text-color { -fx-text-fill: #727272; } +.divider-color { -fx-background-color: #B6B6B6; } diff --git a/src/main/resources/es/kauron/estraba/fxml/Splash.fxml b/src/main/resources/es/kauron/estraba/fxml/Splash.fxml new file mode 100644 index 0000000..6d6cd6b --- /dev/null +++ b/src/main/resources/es/kauron/estraba/fxml/Splash.fxml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + diff --git a/src/main/resources/es/kauron/estraba/ttf/DAGGERSQUARE OBLIQUE.otf b/src/main/resources/es/kauron/estraba/ttf/DAGGERSQUARE OBLIQUE.otf new file mode 100644 index 0000000000000000000000000000000000000000..3242a67ee0c7cc9a56ee95368e2a767e7ac2b54d GIT binary patch literal 14120 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