diff --git a/src/main/java/fr/inra/po2vocabmanager/MainApp.java b/src/main/java/fr/inra/po2vocabmanager/MainApp.java index e1f6136df0252654d87b042280b68455efcb7d78..accce8e392423c01be4fdff7bbebe825a98b3aa5 100644 --- a/src/main/java/fr/inra/po2vocabmanager/MainApp.java +++ b/src/main/java/fr/inra/po2vocabmanager/MainApp.java @@ -778,11 +778,8 @@ public class MainApp extends Application implements Launcher { } public void initStatusBox() { - dataControler.setStatusBox(new StatusBox(this)); ontologyControler.setStatusBox(new StatusBox(this)); - - } diff --git a/src/main/java/fr/inra/po2vocabmanager/utils/StatusBox.java b/src/main/java/fr/inra/po2vocabmanager/utils/StatusBox.java index 327466899dfbd43ee1cc0fde3af00c32ed2a9dd2..508c003c06aa5091b412bcb562371df038151e23 100644 --- a/src/main/java/fr/inra/po2vocabmanager/utils/StatusBox.java +++ b/src/main/java/fr/inra/po2vocabmanager/utils/StatusBox.java @@ -21,12 +21,11 @@ package fr.inra.po2vocabmanager.utils; import fr.inra.po2vocabmanager.MainApp; import fr.inrae.po2engine.externalTools.CloudConnector; import javafx.beans.binding.Bindings; -import javafx.beans.property.SimpleStringProperty; -import javafx.beans.property.StringProperty; import javafx.geometry.Pos; import javafx.scene.Group; import javafx.scene.Node; import javafx.scene.control.Label; +import javafx.scene.control.ToggleButton; import javafx.scene.effect.ColorAdjust; import javafx.scene.image.Image; import javafx.scene.image.ImageView; @@ -39,14 +38,12 @@ public class StatusBox { private Integer spacing = 5; private Integer height = 70; - private StringProperty styleSelected = new SimpleStringProperty("-fx-border-style: solid inside;-fx-border-color: black;-fx-background-color: DarkGray;"); - private StringProperty styleNotSelected = new SimpleStringProperty("-fx-border-style: solid inside;-fx-border-color: black;"); - public StatusBox(MainApp mainApp) { ColorAdjust grayScale = new ColorAdjust(); grayScale.setSaturation(-1); ColorAdjust normalScale = new ColorAdjust(); + ////////// connexion part VBox boxConnect = new VBox(); boxConnect.setPrefWidth(100); boxConnect.setAlignment(Pos.TOP_CENTER); @@ -61,22 +58,8 @@ public class StatusBox { listNodes.add(boxConnect); -// VBox boxWrite = new VBox(); -// boxWrite.setPrefWidth(100); -// boxWrite.setAlignment(Pos.TOP_CENTER); -// boxWrite.setSpacing(10); -// Label labelWrite = new Label(); -// labelWrite.setStyle("-fx-font-weight: bold"); -// ImageView writeImage = new ImageView(UITools.getImage("resources/images/write.png")); -// writeImage.setPreserveRatio(true); -// writeImage.setFitHeight(70); -// -// writeImage.effectProperty().bind(Bindings.when(mainApp.getEditProperty()).then(normalScale).otherwise(grayScale)); -// labelWrite.textProperty().bind(Bindings.when(mainApp.getEditProperty()).then("Read/Write").otherwise("Read only")); -// boxWrite.getChildren().addAll(labelWrite, writeImage); - - // listNodes.add(boxWrite); + // onto part Image readMode = UITools.getImage("resources/images/read-overlay.png", height,height, true, true); Image writeMode = UITools.getImage("resources/images/write-overlay.png", height,height, true, true); @@ -99,47 +82,64 @@ public class StatusBox { syncData.imageProperty().bind(Bindings.when(mainApp.getDataControler().getSyncCloudProperty()).then(syncOK).otherwise(syncKO)); - VBox boxOnto = new VBox(); - boxOnto.setOnMouseClicked(e->mainApp.showOntologyMod()); - boxOnto.setPrefWidth(100); - boxOnto.setAlignment(Pos.TOP_CENTER); - boxOnto.setSpacing(10); Label labelOnto = new Label(); labelOnto.setStyle("-fx-font-weight: bold"); labelOnto.setWrapText(true); + labelOnto.textProperty().bind(Bindings.when(mainApp.getOntologyControler().getFileName().isEmpty()).then("No ontology").otherwise(mainApp.getOntologyControler().getFileName())); + + Group overlayOnto = new Group(); ImageView ontoImage = new ImageView(UITools.getImage("resources/images/ontology.png", height,height,true, true)); ontoImage.setPreserveRatio(true); overlayOnto.effectProperty().bind(Bindings.when(mainApp.getOntologyControler().getFileName().isEmpty()).then(grayScale).otherwise(normalScale)); - labelOnto.textProperty().bind(Bindings.when(mainApp.getOntologyControler().getFileName().isEmpty()).then("No ontology").otherwise(mainApp.getOntologyControler().getFileName())); - overlayOnto.getChildren().addAll(ontoImage, readWriteModeOnto, syncOnto); - boxOnto.getChildren().addAll(labelOnto, overlayOnto); - boxOnto.styleProperty().bind(Bindings.when(mainApp.onOntologyViewProperty()).then(styleSelected).otherwise(styleNotSelected)); + ToggleButton buttonOnto = new ToggleButton(); + buttonOnto.setGraphic(overlayOnto); + + buttonOnto.setOnMouseClicked(e->mainApp.showOntologyMod()); + buttonOnto.setPrefWidth(80); + buttonOnto.setAlignment(Pos.TOP_CENTER); + buttonOnto.selectedProperty().bindBidirectional(mainApp.onOntologyViewProperty()); + + VBox boxOnto = new VBox(); + boxOnto.setPrefWidth(80); + boxOnto.setAlignment(Pos.TOP_CENTER); + boxOnto.setSpacing(5); + boxOnto.getChildren().addAll(labelOnto, buttonOnto); listNodes.add(boxOnto); - VBox boxData = new VBox(); - boxData.setOnMouseClicked(e->mainApp.showDataMod()); - boxData.setPrefWidth(100); - boxData.setAlignment(Pos.TOP_CENTER); - boxData.setSpacing(10); + // data part + Label labelData = new Label(); labelData.setStyle("-fx-font-weight: bold"); labelData.setWrapText(true); + labelData.textProperty().bind(Bindings.when(mainApp.getDataControler().getFileName().isEmpty()).then("No data").otherwise(mainApp.getDataControler().getFileName())); + + Group overlayData = new Group(); ImageView dataImage = new ImageView(UITools.getImage("resources/images/data-folders.png", height,height,true, true)); dataImage.setPreserveRatio(true); overlayData.effectProperty().bind(Bindings.when(mainApp.getDataControler().getFileName().isEmpty()).then(grayScale).otherwise(normalScale)); - labelData.textProperty().bind(Bindings.when(mainApp.getDataControler().getFileName().isEmpty()).then("No data").otherwise(mainApp.getDataControler().getFileName())); overlayData.getChildren().addAll(dataImage, readWriteModeData, syncData); - boxData.getChildren().addAll(labelData, overlayData); - boxData.styleProperty().bind(Bindings.when(mainApp.onDataViewProperty()).then(styleSelected).otherwise(styleNotSelected)); + ToggleButton buttonData = new ToggleButton(); + buttonData.setGraphic(overlayData); + + buttonData.setOnMouseClicked(e->mainApp.showDataMod()); + buttonData.setPrefWidth(80); + buttonData.setAlignment(Pos.TOP_CENTER); + buttonData.selectedProperty().bindBidirectional(mainApp.onDataViewProperty()); + + VBox boxData = new VBox(); + boxData.setPrefWidth(80); + boxData.setAlignment(Pos.TOP_CENTER); + boxData.setSpacing(5); + boxData.getChildren().addAll(labelData, buttonData); - listNodes.add(boxData); + listNodes.add(boxData); } public ArrayList<Node> getListNodes() {