From fc6b8be0be578fa776369e58bc71a5210ff185de Mon Sep 17 00:00:00 2001 From: Andreas Billmann Date: Thu, 26 Mar 2015 17:39:47 +0100 Subject: [PATCH] add log handling --- .../ui/details/DetailsController.java | 70 +++++++++++- .../de/geofroggerfx/ui/details/details.fxml | 101 +++++++----------- 2 files changed, 104 insertions(+), 67 deletions(-) diff --git a/src/main/java/de/geofroggerfx/ui/details/DetailsController.java b/src/main/java/de/geofroggerfx/ui/details/DetailsController.java index 1c242f3..8720fb7 100644 --- a/src/main/java/de/geofroggerfx/ui/details/DetailsController.java +++ b/src/main/java/de/geofroggerfx/ui/details/DetailsController.java @@ -32,13 +32,22 @@ import de.geofroggerfx.application.SessionContext; import de.geofroggerfx.application.SessionContextListener; import de.geofroggerfx.model.Attribute; import de.geofroggerfx.model.Cache; +import de.geofroggerfx.model.Log; import de.geofroggerfx.ui.FXMLController; import de.geofroggerfx.ui.GeocachingIcons; import de.geofroggerfx.ui.glyphs.GeofroggerGlyphsDude; +import de.jensd.fx.glyphs.fontawesome.FontAwesomeIcon; +import de.jensd.fx.glyphs.fontawesome.FontAwesomeIcons; +import javafx.event.ActionEvent; +import javafx.event.EventHandler; import javafx.fxml.FXML; -import javafx.scene.control.Label; -import javafx.scene.control.TitledPane; +import javafx.geometry.HPos; +import javafx.geometry.Pos; +import javafx.geometry.VPos; +import javafx.scene.control.*; import javafx.scene.layout.FlowPane; +import javafx.scene.layout.GridPane; +import javafx.scene.layout.Region; import javafx.scene.layout.VBox; import javafx.scene.text.Text; import javafx.scene.web.WebEngine; @@ -85,6 +94,12 @@ public class DetailsController extends FXMLController { @FXML private FlowPane attributeList; + @FXML + private GridPane logList; + + @FXML + private FlowPane logButtonPane; + private GoogleMap map; private Marker marker; @@ -97,13 +112,21 @@ public class DetailsController extends FXMLController { @Override public void initialize(URL location, ResourceBundle resources) { + setCacheListener(); + initializeMap(); + setLogLinkButton(); + } + + private void setCacheListener() { sessionContext.addListener(CURRENT_CACHE, new SessionContextListener() { @Override public void sessionContextChanged() { fillContent(); } }); + } + private void initializeMap() { mapView.addMapInializedListener(new MapComponentInitializedListener() { @Override public void mapInitialized() { @@ -131,6 +154,26 @@ public class DetailsController extends FXMLController { }); } + private void setLogLinkButton() { + Button logLink = GeofroggerGlyphsDude.createIconButton(FontAwesomeIcons.EXTERNAL_LINK); + logLink.setStyle("-fx-background-color: transparent;"); + logButtonPane.getChildren().add(logLink); + logLink.setOnAction(event -> { + Cache cache = (Cache) sessionContext.getData(CURRENT_CACHE); + if (cache != null) { + StringBuilder sb = new StringBuilder(); + for (Log log: cache.getLogs()) { + sb.append(log.getText()); + sb.append("\n--------------------------------------\n"); + } + + Alert logWindow = new Alert(Alert.AlertType.INFORMATION); + logWindow.setContentText(sb.toString()); + logWindow.showAndWait(); + } + }); + } + private void fillContent() { Cache cache = (Cache) sessionContext.getData(CURRENT_CACHE); cacheName.setText(cache.getName()); @@ -156,6 +199,13 @@ public class DetailsController extends FXMLController { attributeList.getChildren().add(createIcon(getIcon(attribute), "1.6em")); } + logList.getChildren().clear(); + int maxRow = Math.min(4, cache.getLogs().size()); + for (int row=0; row - - + + + + - - + - - - - + @@ -30,111 +25,87 @@ - - - + - + - + - - + + - - - - - - - - + + + + - + - + - + - - - - + + + + - - - + + + -
- + - + - +
- + - + - +