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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 literal 0 HcmV?d00001 diff --git a/src/main/resources/es/kauron/estraba/ttf/DAGGERSQUARE.otf b/src/main/resources/es/kauron/estraba/ttf/DAGGERSQUARE.otf new file mode 100644 index 0000000000000000000000000000000000000000..a0326faec19f53e8d8747ff1388aee3cbbcfc5c6 GIT binary patch literal 14192 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