List of usage examples for javafx.scene.text TextAlignment CENTER
TextAlignment CENTER
To view the source code for javafx.scene.text TextAlignment CENTER.
Click Source Link
From source file:Main.java
@Override public void start(Stage stage) { Scene scene = new Scene(new Group()); stage.setWidth(300);/*from w w w. j a v a 2s. com*/ stage.setHeight(150); Button button = new Button("Hover Over Me"); Tooltip toolTip = new Tooltip("Tooltip for Button"); toolTip.setTextAlignment(TextAlignment.CENTER); button.setTooltip(toolTip); ((Group) scene.getRoot()).getChildren().add(button); stage.setScene(scene); stage.show(); }
From source file:com.playonlinux.ui.impl.javafx.mainwindow.center.ViewApps.java
private void initFailure() { failurePanel = new VBox(); failurePanel.getStyleClass().add("rightPane"); failurePanel.setSpacing(10);// w w w. j a va 2 s . c om failurePanel.setAlignment(Pos.CENTER); Label failureNotificationLbl = new Label(); failureNotificationLbl.setText(translate( "Connecting to ${application.name} failed.\n" + "Please check your connection and try again.")); failureNotificationLbl.setTextAlignment(TextAlignment.CENTER); ImageView retryImage = new ImageView(new Image(getClass().getResourceAsStream("refresh.png"))); retryImage.setFitWidth(16); retryImage.setFitHeight(16); retryButton = new Button(translate("Retry"), retryImage); failurePanel.getChildren().addAll(failureNotificationLbl, retryButton); }
From source file:deincraftlauncher.InstallController.java
@Override public void initialize(URL url, ResourceBundle rb) { instance = this; System.out.println("Starting Installer UI..."); int saveX = 393; int cancelY = 165; int saveY = 200; int sizeX = 481; Rectangle separator = new Rectangle(); separator.setWidth(sizeX);//from w w w.j av a 2 s . c o m separator.setHeight(separatorSizeY); separator.setLayoutY(separatorY); separator.setFill(blueColor); mainPanel.getChildren().add(separator); mainPanel.setBackground(Background.EMPTY); TextButton cancel = new TextButton(saveX, cancelY, "cancel", Color.RED, mainPanel); cancel.setOnClick((TextButton tile) -> { cancel(); }); save = new TextButton(saveX, saveY, "Weiter", Color.GRAY, mainPanel); save.setFocusable(false); save.setOnClick((TextButton tile) -> { Continue(); }); login = new TextButton(14, 151, "Login", Color.BLUE, mainPanel); login.setOnClick((TextButton tile) -> { doLogin(null); }); Label Title = new Label(); Title.setText("Installer"); Title.setPrefSize(sizeX, separatorY); Title.setTextFill(Color.WHITESMOKE); Title.setTextAlignment(TextAlignment.CENTER); Title.setFont(DesignHelpers.getFocusFont(42)); Title.setAlignment(Pos.CENTER); mainPanel.getChildren().add(Title); pathLabel.setBackground(new Background(new BackgroundFill(Color.rgb(170, 170, 170), radii, insets))); //ContinueButton.setBackground(new Background(new BackgroundFill(Color.rgb(100, 190, 100), radii, insets))); //Green Version setDefaultPath(); System.out.println("starting done"); }
From source file:de.pixida.logtest.designer.testrun.TestRunEditor.java
public TitledPane createPanelForLaunchingTests() { final Button startBtn = new Button("Run Test"); startBtn.disableProperty().bind(this.testRunService.runningProperty()); final double startButtonPadding = 8d; startBtn.setPadding(new Insets(startButtonPadding)); startBtn.setGraphic(Icons.getIconGraphics("control_play_blue")); HBox.setHgrow(startBtn, Priority.ALWAYS); startBtn.setMaxWidth(Double.MAX_VALUE); startBtn.setOnAction(event -> {/*ww w .ja va2 s .c o m*/ final Job job = this.createJobFromConfig(); this.testRunService.setJob(job); this.testRunService.start(); }); final HBox startLine = new HBox(); startLine.getChildren().add(startBtn); final VBox runLines = new VBox(); final double linesSpacing = 10d; runLines.setSpacing(linesSpacing); final TextFlow resultBar = new TextFlow(); resultBar.backgroundProperty().bind(this.resultBarBackgroundProperty); this.resultBarBackgroundProperty.set(RESULT_BAR_BACKGROUND_IDLE); resultBar.setStyle("-fx-border-color: black; -fx-border-width:1"); final Text resultBarText = new Text(); resultBarText.textProperty().bind(this.resultBarTextProperty); this.resultBarTextProperty.set("Idle"); resultBar.getChildren().add(resultBarText); resultBar.setTextAlignment(TextAlignment.CENTER); final double resultBarPadding = 2d; resultBar.setPadding(new Insets(resultBarPadding)); final int logOutputLinesSize = 25; this.resultLogOutputText.setPrefRowCount(logOutputLinesSize); this.resultLogOutputText.setEditable(false); this.resultLogOutputText.setStyle("-fx-font-family: monospace"); HBox.setHgrow(this.resultLogOutputText, Priority.ALWAYS); runLines.getChildren().addAll(startLine, new Text("Recent results:"), resultBar, this.resultLogOutputText); final TitledPane runPane = new TitledPane("Run", runLines); runPane.setGraphic(Icons.getIconGraphics("lightning_go")); runPane.setCollapsible(false); return runPane; }
From source file:nars.rl.util.ThreeDView.java
public void addPoint(Object o, double radius, double x, double y, double z) { Term t = (Term) o;/*from w w w. j a v a 2 s . c o m*/ final PhongMaterial mat = new PhongMaterial(); Color c = Color.hsb(255.0 * Video.hashFloat(o.toString().hashCode()), 0.75f, 0.85f); mat.setDiffuseColor(c); System.out.println(o.getClass()); Sphere point = new Sphere(radius / t.complexity()); point.setOpacity(0.85); point.setTranslateX(x); point.setTranslateY(y); point.setTranslateZ(z); point.setMaterial(mat); space.getChildren().add(point); Text text = new Text(o.toString()); text.setFill(c); text.setFontSmoothingType(FontSmoothingType.LCD); text.setSmooth(true); text.setTextAlignment(TextAlignment.CENTER); text.setFont(font); /* text.setScaleX(0.05); text.setScaleY(0.05); text.setScaleZ(0.05); */ text.setTranslateX(x); text.setTranslateY(y); text.setTranslateZ(z); space.getChildren().add(text); }
From source file:editeurpanovisu.EquiCubeDialogController.java
/** * * @param strTypeTransf/*from w w w. j a va 2 s . c o m*/ * @throws Exception Exceptions */ public void afficheFenetre(String strTypeTransf) throws Exception { lvListeFichier.getItems().clear(); stTransformations = new Stage(StageStyle.UTILITY); apTransformations = new AnchorPane(); stTransformations.initModality(Modality.APPLICATION_MODAL); stTransformations.setResizable(true); apTransformations.setStyle("-fx-background-color : #ff0000;"); VBox vbFenetre = new VBox(); HBox hbChoix = new HBox(); Pane paneChoixFichier = new Pane(); btnAjouteFichiers = new Button("Ajouter des Fichiers"); paneChoixTypeFichier = new Pane(); Label lblType = new Label("Type des Fichiers de sortie"); rbJpeg = new RadioButton("JPEG (.jpg)"); rbBmp = new RadioButton("BMP (.bmp)"); rbTiff = new RadioButton("TIFF (.tif)"); cbSharpen = new CheckBox("Masque de nettet"); cbSharpen.setSelected(EditeurPanovisu.isbNetteteTransf()); slSharpen = new Slider(0, 2, EditeurPanovisu.getNiveauNetteteTransf()); lblSharpen = new Label(); double lbl = (Math.round(EditeurPanovisu.getNiveauNetteteTransf() * 20.d) / 20.d); lblSharpen.setText(lbl + ""); slSharpen.setDisable(!EditeurPanovisu.isbNetteteTransf()); lblSharpen.setDisable(!EditeurPanovisu.isbNetteteTransf()); Pane paneboutons = new Pane(); btnAnnuler = new Button("Fermer la fentre"); btnValider = new Button("Lancer le traitement"); strTypeTransformation = strTypeTransf; Image imgTransf; if (strTypeTransf.equals(EquiCubeDialogController.EQUI2CUBE)) { stTransformations.setTitle("Transformation d'quirectangulaire en faces de cube"); imgTransf = new Image( "file:" + EditeurPanovisu.getStrRepertAppli() + File.separator + "images/equi2cube.png"); } else { stTransformations.setTitle("Transformation de faces de cube en quirectangulaire"); imgTransf = new Image( "file:" + EditeurPanovisu.getStrRepertAppli() + File.separator + "images/cube2equi.png"); } ImageView ivTypeTransfert = new ImageView(imgTransf); ivTypeTransfert.setLayoutX(35); ivTypeTransfert.setLayoutY(280); paneChoixTypeFichier.getChildren().add(ivTypeTransfert); apTransformations.setPrefHeight(EditeurPanovisu.getHauteurE2C()); apTransformations.setPrefWidth(EditeurPanovisu.getLargeurE2C()); paneChoixFichier.setPrefHeight(350); paneChoixFichier.setPrefWidth(410); paneChoixFichier.setStyle("-fx-background-color: #d0d0d0; -fx-border-color: #bbb;"); paneChoixTypeFichier.setPrefHeight(350); paneChoixTypeFichier.setPrefWidth(180); paneChoixTypeFichier.setStyle("-fx-background-color: #d0d0d0; -fx-border-color: #bbb;"); hbChoix.getChildren().addAll(paneChoixFichier, paneChoixTypeFichier); vbFenetre.setPrefHeight(400); vbFenetre.setPrefWidth(600); apTransformations.getChildren().add(vbFenetre); hbChoix.setPrefHeight(350); hbChoix.setPrefWidth(600); hbChoix.setStyle("-fx-background-color: #d0d0d0;"); paneboutons.setPrefHeight(50); paneboutons.setPrefWidth(600); paneboutons.setStyle("-fx-background-color: #d0d0d0;"); vbFenetre.setStyle("-fx-background-color: #d0d0d0;"); btnAnnuler.setLayoutX(296); btnAnnuler.setLayoutY(10); btnValider.setLayoutX(433); btnValider.setLayoutY(10); lvListeFichier.setPrefHeight(290); lvListeFichier.setPrefWidth(380); lvListeFichier.setEditable(true); lvListeFichier.setLayoutX(14); lvListeFichier.setLayoutY(14); btnAjouteFichiers.setLayoutX(259); btnAjouteFichiers.setLayoutY(319); paneChoixFichier.getChildren().addAll(lvListeFichier, btnAjouteFichiers); if (strTypeTransf.equals(EquiCubeDialogController.EQUI2CUBE)) { lblDragDropE2C = new Label(rbLocalisation.getString("transformation.dragDropE2C")); } else { lblDragDropE2C = new Label(rbLocalisation.getString("transformation.dragDropC2E")); } lblDragDropE2C.setMinHeight(lvListeFichier.getPrefHeight()); lblDragDropE2C.setMaxHeight(lvListeFichier.getPrefHeight()); lblDragDropE2C.setMinWidth(lvListeFichier.getPrefWidth()); lblDragDropE2C.setMaxWidth(lvListeFichier.getPrefWidth()); lblDragDropE2C.setLayoutX(14); lblDragDropE2C.setLayoutY(14); lblDragDropE2C.setAlignment(Pos.CENTER); lblDragDropE2C.setTextFill(Color.web("#c9c7c7")); lblDragDropE2C.setTextAlignment(TextAlignment.CENTER); lblDragDropE2C.setWrapText(true); lblDragDropE2C.setStyle("-fx-font-size : 24px"); lblDragDropE2C.setStyle("-fx-background-color : rgba(128,128,128,0.1)"); paneChoixFichier.getChildren().add(lblDragDropE2C); lblType.setLayoutX(14); lblType.setLayoutY(14); rbBmp.setLayoutX(43); rbBmp.setLayoutY(43); rbBmp.setUserData("bmp"); if (EditeurPanovisu.getStrTypeFichierTransf().equals("bmp")) { rbBmp.setSelected(true); } rbBmp.setToggleGroup(tgTypeFichier); rbJpeg.setLayoutX(43); rbJpeg.setLayoutY(71); rbJpeg.setUserData("jpg"); if (EditeurPanovisu.getStrTypeFichierTransf().equals("jpg")) { rbJpeg.setSelected(true); } rbJpeg.setToggleGroup(tgTypeFichier); if (EditeurPanovisu.getStrTypeFichierTransf().equals("tif")) { rbTiff.setSelected(true); } rbTiff.setLayoutX(43); rbTiff.setLayoutY(99); rbTiff.setToggleGroup(tgTypeFichier); rbTiff.setUserData("tif"); tgTypeFichier.selectedToggleProperty().addListener((ov, old_toggle, new_toggle) -> { EditeurPanovisu.setStrTypeFichierTransf(tgTypeFichier.getSelectedToggle().getUserData().toString()); }); cbSharpen.setLayoutX(43); cbSharpen.setLayoutY(127); cbSharpen.selectedProperty().addListener((ov, old_val, new_val) -> { slSharpen.setDisable(!new_val); lblSharpen.setDisable(!new_val); EditeurPanovisu.setbNetteteTransf(new_val); }); slSharpen.setShowTickMarks(true); slSharpen.setShowTickLabels(true); slSharpen.setMajorTickUnit(0.5f); slSharpen.setMinorTickCount(4); slSharpen.setBlockIncrement(0.05f); slSharpen.setSnapToTicks(true); slSharpen.setLayoutX(23); slSharpen.setLayoutY(157); slSharpen.setTooltip(new Tooltip("Choisissez le niveau d'accentuation de l'image")); slSharpen.valueProperty().addListener((observableValue, oldValue, newValue) -> { if (newValue == null) { lblSharpen.setText(""); return; } DecimalFormat dfArrondi = new DecimalFormat(); dfArrondi.setMaximumFractionDigits(2); //arrondi 2 chiffres apres la virgules dfArrondi.setMinimumFractionDigits(2); dfArrondi.setDecimalSeparatorAlwaysShown(true); lblSharpen.setText(dfArrondi.format(Math.round(newValue.floatValue() * 20.f) / 20.f) + ""); EditeurPanovisu.setNiveauNetteteTransf(newValue.doubleValue()); }); slSharpen.setPrefWidth(120); lblSharpen.setLayoutX(150); lblSharpen.setLayoutY(150); lblSharpen.setMinWidth(30); lblSharpen.setMaxWidth(30); lblSharpen.setTextAlignment(TextAlignment.RIGHT); paneChoixTypeFichier.getChildren().addAll(lblType, rbBmp, rbJpeg, rbTiff, cbSharpen, slSharpen, lblSharpen); pbBarreImage.setLayoutX(40); pbBarreImage.setLayoutY(190); pbBarreImage.setStyle("-fx-accent : #0000bb"); pbBarreImage.setVisible(false); paneChoixTypeFichier.getChildren().add(pbBarreImage); pbBarreAvancement = new ProgressBar(); pbBarreAvancement.setLayoutX(40); pbBarreAvancement.setLayoutY(220); pbBarreImage.setStyle("-fx-accent : #00bb00"); paneChoixTypeFichier.getChildren().add(pbBarreAvancement); pbBarreAvancement.setVisible(false); paneboutons.getChildren().addAll(btnAnnuler, btnValider); vbFenetre.getChildren().addAll(hbChoix, paneboutons); Scene scnTransformations = new Scene(apTransformations); stTransformations.setScene(scnTransformations); stTransformations.show(); btnAnnuler.setOnAction((e) -> { annulerE2C(); }); btnValider.setOnAction((e) -> { if (!bTraitementEffectue) { validerE2C(); } }); btnAjouteFichiers.setOnAction((e) -> { lblTermine.setText(""); fileLstFichier = choixFichiers(); if (fileLstFichier != null) { if (bTraitementEffectue) { lvListeFichier.getItems().clear(); bTraitementEffectue = false; } for (File fileLstFichier1 : fileLstFichier) { String strNomFich = fileLstFichier1.getAbsolutePath(); lvListeFichier.getItems().add(strNomFich); } } }); lvListeFichier.setCellFactory(new Callback<ListView<String>, ListCell<String>>() { @Override public ListCell<String> call(ListView<String> list) { return new ListeTransformationCouleur(); } }); apTransformations.setOnDragOver((event) -> { Dragboard dbFichiersTransformation = event.getDragboard(); if (dbFichiersTransformation.hasFiles()) { event.acceptTransferModes(TransferMode.ANY); } else { event.consume(); } }); stTransformations.widthProperty().addListener((arg0, arg1, arg2) -> { EditeurPanovisu.setLargeurE2C(stTransformations.getWidth()); apTransformations.setPrefWidth(stTransformations.getWidth()); vbFenetre.setPrefWidth(stTransformations.getWidth()); btnAnnuler.setLayoutX(stTransformations.getWidth() - 314); btnValider.setLayoutX(stTransformations.getWidth() - 157); paneChoixFichier.setPrefWidth(stTransformations.getWidth() - 200); lvListeFichier.setPrefWidth(stTransformations.getWidth() - 240); lblDragDropE2C.setMinWidth(lvListeFichier.getPrefWidth()); lblDragDropE2C.setMaxWidth(lvListeFichier.getPrefWidth()); btnAjouteFichiers.setLayoutX(stTransformations.getWidth() - 341); }); stTransformations.heightProperty().addListener((arg0, arg1, arg2) -> { EditeurPanovisu.setHauteurE2C(stTransformations.getHeight()); apTransformations.setPrefHeight(stTransformations.getHeight()); vbFenetre.setPrefHeight(stTransformations.getHeight()); paneChoixFichier.setPrefHeight(stTransformations.getHeight() - 80); hbChoix.setPrefHeight(stTransformations.getHeight() - 80); lvListeFichier.setPrefHeight(stTransformations.getHeight() - 140); lblDragDropE2C.setMinHeight(lvListeFichier.getPrefHeight()); lblDragDropE2C.setMaxHeight(lvListeFichier.getPrefHeight()); btnAjouteFichiers.setLayoutY(stTransformations.getHeight() - 121); }); stTransformations.setWidth(EditeurPanovisu.getLargeurE2C()); stTransformations.setHeight(EditeurPanovisu.getHauteurE2C()); apTransformations.setOnDragDropped((event) -> { Dragboard dbFichiersTransformation = event.getDragboard(); boolean bSucces = false; File[] fileLstFich; fileLstFich = null; if (dbFichiersTransformation.hasFiles()) { lblTermine.setText(""); bSucces = true; String[] stringFichiersPath = new String[200]; int i = 0; for (File file1 : dbFichiersTransformation.getFiles()) { stringFichiersPath[i] = file1.getAbsolutePath(); i++; } int iNb = i; i = 0; boolean bAttention = false; File[] fileLstFich1 = new File[stringFichiersPath.length]; for (int j = 0; j < iNb; j++) { String strNomfich = stringFichiersPath[j]; File fileTransf = new File(strNomfich); String strExtension = strNomfich.substring(strNomfich.lastIndexOf(".") + 1, strNomfich.length()) .toLowerCase(); if (strExtension.equals("bmp") || strExtension.equals("jpg") || strExtension.equals("tif")) { if (i == 0) { strRepertFichier = fileTransf.getParent(); } Image img = null; if (strExtension != "tif") { img = new Image("file:" + fileTransf.getAbsolutePath()); } else { try { img = ReadWriteImage.readTiff(strNomfich); } catch (ImageReadException ex) { Logger.getLogger(EquiCubeDialogController.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(EquiCubeDialogController.class.getName()).log(Level.SEVERE, null, ex); } } if (strTypeTransformation.equals(EquiCubeDialogController.EQUI2CUBE)) { if (img.getWidth() == 2 * img.getHeight()) { fileLstFich1[i] = fileTransf; i++; } else { bAttention = true; } } else { if (img.getWidth() == img.getHeight()) { String strNom = fileTransf.getAbsolutePath().substring(0, fileTransf.getAbsolutePath().length() - 6); boolean bTrouve = false; for (int ik = 0; ik < i; ik++) { String strNom1 = fileLstFich1[ik].getAbsolutePath().substring(0, fileTransf.getAbsolutePath().length() - 6); if (strNom.equals(strNom1)) { bTrouve = true; } } if (!bTrouve) { fileLstFich1[i] = fileTransf; i++; } } else { bAttention = true; } } } } if (bAttention) { Alert alert = new Alert(AlertType.ERROR); alert.setTitle(rbLocalisation.getString("transformation.traiteImages")); alert.setHeaderText(null); alert.setContentText(rbLocalisation.getString("transformation.traiteImagesType")); alert.showAndWait(); } fileLstFichier = new File[i]; System.arraycopy(fileLstFich1, 0, fileLstFichier, 0, i); } if (fileLstFichier != null) { if (bTraitementEffectue) { lvListeFichier.getItems().clear(); bTraitementEffectue = false; } for (File lstFichier1 : fileLstFichier) { String nomFich = lstFichier1.getAbsolutePath(); lvListeFichier.getItems().add(nomFich); } } lblDragDropE2C.setVisible(false); event.setDropCompleted(bSucces); event.consume(); }); }
From source file:editeurpanovisu.EditeurPanovisu.java
/** * * @param primaryStage//from www.j a v a 2s . c o m * @param width * @param height * @throws Exception */ private void creeEnvironnement(Stage primaryStage, int width, int height) throws Exception { popUp = new PopUpDialogController(); primaryStage.setMaximized(true); double largeurOutils = 380; hauteurInterface = height; largeurInterface = width; /** * Cration des lments constitutifs de l'cran */ VBox root = new VBox(); creeMenu(root, width); tabPaneEnvironnement = new TabPane(); // tabPaneEnvironnement.setTranslateZ(5); tabPaneEnvironnement.setMinHeight(height - 60); tabPaneEnvironnement.setMaxHeight(height - 60); Pane barreStatus = new Pane(); barreStatus.setPrefSize(width + 20, 30); barreStatus.setTranslateY(25); barreStatus.setStyle("-fx-background-color:#c00;-fx-border-color:#aaa"); tabVisite = new Tab(); Pane visualiseur; Pane panneauPlan; tabInterface = new Tab(); tabPlan = new Tab(); gestionnaireInterface.creeInterface(width, height - 60); visualiseur = gestionnaireInterface.tabInterface; gestionnairePlan.creeInterface(width, height - 60); panneauPlan = gestionnairePlan.tabInterface; tabInterface.setContent(visualiseur); tabPlan.setContent(panneauPlan); HBox hbEnvironnement = new HBox(); TextArea txtTitrePano; TextArea tfTitreVisite; RadioButton radSphere; RadioButton radCube; CheckBox chkAfficheTitre; CheckBox chkAfficheInfo; tabPaneEnvironnement.getTabs().addAll(tabVisite, tabInterface, tabPlan); //tabPaneEnvironnement.setTranslateY(80); tabPaneEnvironnement.setSide(Side.TOP); tabPaneEnvironnement.getSelectionModel().selectedItemProperty() .addListener((ObservableValue<? extends Tab> ov, Tab t, Tab t1) -> { gestionnaireInterface.rafraichit(); }); tabVisite.setText(rb.getString("main.creationVisite")); tabVisite.setClosable(false); tabInterface.setText(rb.getString("main.creationInterface")); tabInterface.setClosable(false); tabPlan.setText(rb.getString("main.tabPlan")); tabPlan.setClosable(false); tabPlan.setDisable(true); tabVisite.setContent(hbEnvironnement); double largeur; String labelStyle = "-fx-color : white;-fx-background-color : #fff;-fx-padding : 5px; -fx-border : 1px solid #777;-fx-width : 100px;-fx-margin : 5px; "; scene = new Scene(root, width, height, Color.rgb(221, 221, 221)); // if (systemeExploitation.indexOf("inux") != -1) { // root.setStyle("-fx-font-size : 7pt;-fx-font-family: sans-serif;"); // } else { root.setStyle("-fx-font-size : 9pt;-fx-font-family: Arial;"); // } panneauOutils = new ScrollPane(); panneauOutils.setId("panOutils"); // panneauOutils.setStyle("-fx-background-color : #ccc;"); outils = new VBox(); paneChoixPanoramique = new VBox(); paneChoixPanoramique.setTranslateX(10); paneChoixPanoramique.setId("choixPanoramique"); Label lblTitreVisite = new Label(rb.getString("main.titreVisite")); lblTitreVisite.setStyle("-fx-font-size : 10pt;-fx-font-weight : bold;"); lblTitreVisite.setPadding(new Insets(15, 5, 5, 0)); lblTitreVisite.setMinWidth(largeurOutils - 20); lblTitreVisite.setAlignment(Pos.CENTER); tfTitreVisite = new TextArea(); tfTitreVisite.setId("titreVisite"); tfTitreVisite.setPrefSize(200, 25); tfTitreVisite.setMaxSize(340, 25); Separator sepTitre = new Separator(Orientation.HORIZONTAL); sepTitre.setMinHeight(10); Label lblChoixPanoramiqueEntree = new Label(rb.getString("main.panoEntree")); lblChoixPanoramiqueEntree.setStyle("-fx-font-size : 10pt;-fx-font-weight : bold;"); lblChoixPanoramiqueEntree.setPadding(new Insets(15, 5, 5, 0)); lblChoixPanoramiqueEntree.setMinWidth(largeurOutils - 20); lblChoixPanoramiqueEntree.setAlignment(Pos.CENTER); lblChoixPanoramique = new Label(rb.getString("main.panoAffiche")); lblChoixPanoramique.setStyle("-fx-font-size : 10pt;-fx-font-weight : bold;"); lblChoixPanoramique.setPadding(new Insets(10, 5, 5, 0)); lblChoixPanoramique.setMinWidth(largeurOutils - 20); lblChoixPanoramique.setAlignment(Pos.CENTER); Separator sepPano = new Separator(Orientation.HORIZONTAL); sepPano.setMinHeight(10); listeChoixPanoramique.setVisibleRowCount(10); listeChoixPanoramique.setTranslateX(60); Pane fond = new Pane(); fond.setCursor(Cursor.HAND); ImageView ivSupprPanoramique = new ImageView( new Image("file:" + repertAppli + File.separator + "images/suppr.png", 30, 30, true, true)); fond.setTranslateX(260); fond.setTranslateY(-40); Tooltip t = new Tooltip(rb.getString("main.supprimePano")); t.setStyle(tooltipStyle); Tooltip.install(fond, t); fond.getChildren().add(ivSupprPanoramique); fond.setOnMouseClicked((MouseEvent me) -> { retirePanoCourant(); }); listeChoixPanoramiqueEntree.setTranslateX(60); Separator sepInfo = new Separator(Orientation.HORIZONTAL); Label lblTitrePano = new Label(rb.getString("main.titrePano")); lblTitrePano.setStyle("-fx-font-size : 10pt;-fx-font-weight : bold;"); lblTitrePano.setPadding(new Insets(5, 5, 5, 0)); lblTitrePano.setMinWidth(largeurOutils - 20); lblTitrePano.setAlignment(Pos.CENTER); txtTitrePano = new TextArea(); txtTitrePano.setId("txttitrepano"); txtTitrePano.setPrefSize(200, 25); txtTitrePano.setMaxSize(340, 25); txtTitrePano.textProperty().addListener((final ObservableValue<? extends String> observable, final String oldValue, final String newValue) -> { clickBtnValidePano(); }); paneChoixPanoramique.getChildren().addAll(lblTitreVisite, tfTitreVisite, lblChoixPanoramiqueEntree, listeChoixPanoramiqueEntree, sepPano, lblChoixPanoramique, listeChoixPanoramique, fond, lblTitrePano, txtTitrePano, sepInfo); paneChoixPanoramique.setSpacing(10); /* modifier pour afficher le panneau des derniers fichiers; */ //outils.getChildren().addAll(lastFiles, paneChoixPanoramique); outils.getChildren().addAll(paneChoixPanoramique); paneChoixPanoramique.setVisible(false); /* Cration du panneau d'info du panoramique */ vuePanoramique = new ScrollPane(); coordonnees = new HBox(); pano = new Pane(); panneau2 = new AnchorPane(); lblLong = new Label(""); lblLat = new Label(""); imagePanoramique = new ImageView(); primaryStage.setScene(scene); //scene.getStylesheets().add("file:css/test.css"); /** * */ vuePanoramique.setPrefSize(width - largeurOutils - 20, height - 130); vuePanoramique.setMaxSize(width - largeurOutils - 20, height - 130); vuePanoramique.setVbarPolicy(ScrollPane.ScrollBarPolicy.NEVER); vuePanoramique.setHbarPolicy(ScrollPane.ScrollBarPolicy.NEVER); vuePanoramique.setTranslateY(5); //vuePanoramique.setStyle("-fx-background-color : #c00;"); /** * */ panneauOutils.setContent(outils); panneauOutils.setVbarPolicy(ScrollPane.ScrollBarPolicy.AS_NEEDED); panneauOutils.setHbarPolicy(ScrollPane.ScrollBarPolicy.NEVER); panneauOutils.setPrefSize(largeurOutils, height - 240); panneauOutils.setMaxWidth(largeurOutils); panneauOutils.setMaxHeight(height - 240); panneauOutils.setTranslateY(15); panneauOutils.setTranslateX(20); // panneauOutils.setStyle("-fx-background-color : #ccc;"); /** * */ pano.setCursor(Cursor.CROSSHAIR); outils.setPrefWidth(largeurOutils - 20); // outils.setStyle("-fx-background-color : #ccc;"); outils.minHeight(height - 130); outils.setLayoutX(10); // lblLong.setStyle(labelStyle); // lblLat.setStyle(labelStyle); lblLong.setPrefSize(100, 15); lblLat.setPrefSize(100, 15); lblLat.setTranslateX(50); // panneau2.setStyle("-fx-background-color : #ddd;"); panneau2.setPrefSize(width - largeurOutils - 20, height - 140); imagePanoramique.setCache(true); largeur = largeurMax - 60; imagePanoramique.setFitWidth(largeur); imagePanoramique.setFitHeight(largeur / 2.0d); imagePanoramique.setLayoutX((largeurMax - largeur) / 2.d); pano.getChildren().add(imagePanoramique); pano.setPrefSize(imagePanoramique.getFitWidth(), imagePanoramique.getFitHeight()); pano.setMaxSize(imagePanoramique.getFitWidth(), imagePanoramique.getFitHeight()); pano.setLayoutY(20); lblLong.setTranslateX(50); lblLat.setTranslateX(80); coordonnees.getChildren().setAll(lblLong, lblLat); vuePanoramique.setContent(panneau2); hbEnvironnement.getChildren().setAll(vuePanoramique, panneauOutils); AnchorPane paneEnv = new AnchorPane(); paneAttends = new AnchorPane(); paneAttends.setPrefHeight(250); paneAttends.setPrefWidth(400); paneAttends.setStyle("-fx-background-color : #ccc;" + "-fx-border-color: #666;" + "-fx-border-radius: 5px;" + "-fx-border-width: 1px;"); paneAttends.setLayoutX((width - 400) / 2.d); paneAttends.setLayoutY((height - 250) / 2.d - 55); ProgressIndicator p1 = new ProgressIndicator(); p1.setPrefSize(100, 100); p1.setLayoutX(150); p1.setLayoutY(50); Label lblAttends = new Label(rb.getString("main.attendsChargement")); lblAttends.setMinWidth(400); lblAttends.setAlignment(Pos.CENTER); lblAttends.setLayoutY(20); lblCharge = new Label(); lblCharge.setMinWidth(400); lblCharge.setLayoutY(200); paneAttends.getChildren().addAll(lblAttends, p1, lblCharge); paneAttends.setVisible(false); paneEnv.getChildren().addAll(tabPaneEnvironnement, paneAttends); // paneEnv.getChildren().addAll(tabPaneEnvironnement); root.getChildren().addAll(paneEnv); panneau2.getChildren().setAll(coordonnees, pano); primaryStage.show(); popUp.affichePopup(); lblDragDrop = new Label(rb.getString("main.dragDrop")); lblDragDrop.setMinHeight(vuePanoramique.getPrefHeight()); lblDragDrop.setMaxHeight(vuePanoramique.getPrefHeight()); lblDragDrop.setMinWidth(vuePanoramique.getPrefWidth()); lblDragDrop.setMaxWidth(vuePanoramique.getPrefWidth()); lblDragDrop.setAlignment(Pos.CENTER); lblDragDrop.setTextFill(Color.web("#c9c7c7")); lblDragDrop.setTextAlignment(TextAlignment.CENTER); lblDragDrop.setWrapText(true); lblDragDrop.setStyle("-fx-font-size:72px"); lblDragDrop.setTranslateY(-100); panneau2.getChildren().addAll(lblDragDrop, afficheLegende()); }
From source file:editeurpanovisu.EditeurPanovisu.java
/** * * @param stPrimaryStage//from w w w . ja v a 2 s . c o m * @param iLargeur * @param iHauteur * @throws Exception Exceptions */ private static void creeEnvironnement(Stage stPrimaryStage, int iLargeur, int iHauteur) throws Exception { popUp = new PopUpDialogController(); stPrimaryStage.setMaximized(true); stPrimaryStage.setMinWidth(1280); stPrimaryStage.setMinHeight(720); iHauteurInterface = iHauteur; iLargeurInterface = iLargeur; /** * Cration des lments constitutifs de l'cran */ vbRacine = new VBox(); AnchorPane panePrincipale = new AnchorPane(vbRacine); setScnPrincipale(new Scene(panePrincipale, iLargeur, iHauteur, Color.rgb(221, 221, 221))); if (!fileRepertConfig.exists()) { fileRepertConfig.mkdirs(); setLocale(new Locale("fr", "FR")); File f = new File("css/clair.css"); getScnPrincipale().getStylesheets().add("file:///" + f.getAbsolutePath().replace("\\", "/")); setStrRepertoireProjet(getStrRepertAppli()); } else { lisFichierConfig(); } creeMenu(vbRacine); tpEnvironnement = new TabPane(); tpEnvironnement.setMinHeight(iHauteur - 60); tpEnvironnement.setMaxHeight(iHauteur - 60); tpEnvironnement.setMinWidth(iLargeur); tpEnvironnement.setMaxWidth(iLargeur); Pane paneBarreStatus = new Pane(); paneBarreStatus.setPrefSize(iLargeur + 20, 30); paneBarreStatus.setTranslateY(25); paneBarreStatus.setStyle("-fx-background-color:#c00;-fx-border-color:#aaa"); tabVisite = new Tab(); Pane paneVisualiseur; Pane panePlan; setTabInterface(new Tab()); setTabPlan(new Tab()); getGestionnaireInterface().creeInterface(iLargeur, iHauteur - 78); paneVisualiseur = getGestionnaireInterface().paneTabInterface; getGestionnairePlan().creeInterface(iLargeur, iHauteur - 78); panePlan = getGestionnairePlan().getPaneInterface(); getTabInterface().setContent(paneVisualiseur); getTabPlan().setContent(panePlan); HBox hbEnvironnement = new HBox(); TextField tfTitrePano; TextField tfTitreVisite; tpEnvironnement.getTabs().addAll(tabVisite, getTabInterface(), getTabPlan()); tpEnvironnement.setSide(Side.TOP); tpEnvironnement.getSelectionModel().selectedItemProperty() .addListener((ObservableValue<? extends Tab> ov, Tab t, Tab t1) -> { if (getGestionnaireInterface().navigateurCarteOL == null && isbInternet()) { getGestionnaireInterface().navigateurCarteOL = new NavigateurOpenLayersSeul(); getGestionnaireInterface().apNavigateurCarte = getGestionnaireInterface().navigateurCarteOL .afficheNavigateurOpenLayer(); } getGestionnaireInterface().rafraichit(); }); tabInterface.disableProperty().addListener((ov, av, nv) -> { if (!nv && getGestionnaireInterface().navigateurCarteOL == null && isbInternet()) { getGestionnaireInterface().navigateurCarteOL = new NavigateurOpenLayersSeul(); getGestionnaireInterface().navigateurCarteOL.setBingApiKey(getStrBingAPIKey()); getGestionnaireInterface().apNavigateurCarte = getGestionnaireInterface().navigateurCarteOL .afficheNavigateurOpenLayer(); } }); tabVisite.setText(rbLocalisation.getString("main.creationVisite")); tabVisite.setClosable(false); getTabInterface().setText(rbLocalisation.getString("main.creationInterface")); getTabInterface().setClosable(false); getTabPlan().setText(rbLocalisation.getString("main.tabPlan")); getTabPlan().setClosable(false); getTabPlan().setDisable(true); if (isbInternet()) { getTabInterface().setDisable(true); } tabVisite.setContent(hbEnvironnement); double largeur; String strLabelStyle = "-fx-color : white;-fx-background-color : #fff;-fx-padding : 5px; -fx-border : 1px solid #777;-fx-width : 100px;-fx-margin : 5px; "; vbRacine.setStyle("-fx-font-size : 9pt;-fx-font-family: Arial;"); vbRacine.setTranslateY(15); spPanneauOutils = new ScrollPane(); spPanneauOutils.setId("panOutils"); vbOutils = new VBox(-5); vbOutils.setPrefWidth(largeurOutils - 20); setVbChoixPanoramique(new VBox()); getVbChoixPanoramique().setId("choixPanoramique"); double largeurOutil = vbOutils.getPrefWidth(); apPanovisu = new AnchorPane(); apPanovisu.setPrefHeight(50); apPanovisu.setMinHeight(50); apPanovisu.setMaxHeight(50); apPanovisu.setMaxWidth(380); apPanovisu.setPrefWidth(380); apPanovisu.setMinWidth(380); apPanovisu.setLayoutX(iLargeur - 380); if (isMac()) { apPanovisu.setLayoutY(0); } else { apPanovisu.setLayoutY(45); } apPanovisu.setStyle("-fx-background-color : derive(-fx-base,20%);"); ImageView ivPanoVisu = new ImageView(new Image( "file:" + getStrRepertAppli() + File.separator + "images/panovisu.png", 48, 48, true, true)); ivPanoVisu.setLayoutX(40); ivPanoVisu.setLayoutY(1); Label lblPanoVisu = new Label("panoVisu Vers. : " + strNumVersion); lblPanoVisu.setStyle( "-fx-font-weight : bold;-fx-font-family : Verdana,Arial,sans-serif;-fx-font-size : 1.2em;"); lblPanoVisu.setLayoutX(108); lblPanoVisu.setLayoutY(5); Label lblPanoVisu2 = new Label("Laurent LANG (2014-2015)"); lblPanoVisu2.setLayoutX(108); lblPanoVisu2.setLayoutY(35); lblPanoVisu2.setStyle("-fx-font-family : Verdana,Arial,sans-serif;-fx-font-size : 0.8em;"); apPanovisu.getChildren().addAll(ivPanoVisu, lblPanoVisu, lblPanoVisu2); panePrincipale.getChildren().add(apPanovisu); panePrincipale.getChildren().add(apWebview); apWebview.setVisible(false); apWebview.setStyle("-fx-background-color : #333;"); apWebview.setPrefSize(iLargeur - 75, iHauteur - 80); apWebview.setMinSize(iLargeur - 75, iHauteur - 80); apWebview.setMaxSize(iLargeur - 75, iHauteur - 80); apWebview.setTranslateX(25); apWebview.setTranslateY(5); /* Paramtres de la visite */ apParametresVisite = new AnchorPane(); apParametresVisite.setLayoutY(40); Label lblTitreVisite = new Label(rbLocalisation.getString("main.titreVisite")); lblTitreVisite.setStyle("-fx-font-size : 10pt;-fx-font-weight : bold;"); lblTitreVisite.setLayoutX(10); lblTitreVisite.setLayoutY(5); tfTitreVisite = new TextField(); tfTitreVisite.setId("titreVisite"); tfTitreVisite.setPrefSize(200, 25); tfTitreVisite.setMaxSize(250, 25); tfTitreVisite.setLayoutX(60); tfTitreVisite.setLayoutY(25); cbIntroPetitePlanete = new CheckBox(rbLocalisation.getString("main.introPetitePlanete")); cbIntroPetitePlanete.setSelected(false); cbIntroPetitePlanete.setLayoutX(10); cbIntroPetitePlanete.setLayoutY(60); Label lblChoixPanoramiqueEntree = new Label(rbLocalisation.getString("main.panoEntree")); lblChoixPanoramiqueEntree.setStyle("-fx-font-size : 1em;"); lblChoixPanoramiqueEntree.setLayoutX(10); lblChoixPanoramiqueEntree.setLayoutY(90); lblChoixPanoramiqueEntree.setMaxWidth(largeurOutils - 40); lblChoixPanoramiqueEntree.setPrefHeight(35); lblChoixPanoramiqueEntree.setWrapText(true); apParametresVisite.setPrefHeight(120); apParametresVisite.getChildren().addAll(lblTitreVisite, tfTitreVisite, cbIntroPetitePlanete, lblChoixPanoramiqueEntree); PaneOutil poParametresVisite = new PaneOutil(rbLocalisation.getString("main.parametresVisite"), apParametresVisite, largeurOutil); setApPVIS(new AnchorPane(poParametresVisite.getApPaneOutil())); poParametresVisite.setbValide(isbIntroPetitePlanete()); AnchorPane apAutoRotation = new AnchorPane(); apAutoRotation.setPrefHeight(270); apAutoRotation.setLayoutY(40); PaneOutil poAutoRotation = new PaneOutil(rbLocalisation.getString("main.autoTourRotation"), apAutoRotation, largeurOutil); setApAR(new AnchorPane(poAutoRotation.getApPaneOutil())); poAutoRotation.setbValide(isbAutoRotationDemarre() || isbAutoTourDemarre()); cbAutoRotationDemarrage = new CheckBox(rbLocalisation.getString("main.autoRotationDemarrage")); cbAutoRotationDemarrage.setSelected(false); cbAutoRotationDemarrage.setLayoutX(10); cbAutoRotationDemarrage.setLayoutY(10); Label lblVitesse = new Label(rbLocalisation.getString("main.autoRotationVitesse")); lblVitesse.setLayoutX(10); lblVitesse.setLayoutY(40); cbAutoRotationVitesse = new ComboBox(); cbAutoRotationVitesse.getItems().add(0, "10 " + rbLocalisation.getString("main.parTour")); cbAutoRotationVitesse.getItems().add(1, "20 " + rbLocalisation.getString("main.parTour")); cbAutoRotationVitesse.getItems().add(2, "30 " + rbLocalisation.getString("main.parTour")); cbAutoRotationVitesse.getItems().add(3, "Autre n " + rbLocalisation.getString("main.parTour")); cbAutoRotationVitesse.getSelectionModel().select(2); cbAutoRotationVitesse.setLayoutX(30); cbAutoRotationVitesse.setLayoutY(70); cbAutoRotationVitesse.setMaxWidth(170); bdfAutoRotationVitesse = new BigDecimalField(new BigDecimal(40)); bdfAutoRotationVitesse.setDisable(true); bdfAutoRotationVitesse.setLayoutX(210); bdfAutoRotationVitesse.setLayoutY(70); bdfAutoRotationVitesse.setMaxWidth(70); lblVitesse.disableProperty().bind(cbAutoRotationDemarrage.selectedProperty().not()); cbAutoRotationVitesse.disableProperty().bind(cbAutoRotationDemarrage.selectedProperty().not()); Label lblUnites = new Label(rbLocalisation.getString("main.parTour")); lblUnites.setLayoutX(290); lblUnites.setLayoutY(75); Separator spAutotour = new Separator(Orientation.HORIZONTAL); spAutotour.setLayoutX(0); spAutotour.setLayoutY(100); spAutotour.setMinWidth(380); cbAutoTourDemarrage = new CheckBox(rbLocalisation.getString("main.autoTour")); cbAutoTourDemarrage.setSelected(false); cbAutoTourDemarrage.setLayoutX(10); cbAutoTourDemarrage.setLayoutY(120); Label lblDemarrageAutoTour = new Label(rbLocalisation.getString("main.autoTourDemarrage")); lblDemarrageAutoTour.setLayoutX(10); lblDemarrageAutoTour.setLayoutY(150); bdfAutoTourDemarrage = new BigDecimalField(new BigDecimal(1)); bdfAutoTourDemarrage.setLayoutX(240); bdfAutoTourDemarrage.setLayoutY(180); bdfAutoTourDemarrage.setMaxWidth(70); Label lblVitesseAutoTour = new Label(rbLocalisation.getString("main.autoTourChange")); lblVitesseAutoTour.setLayoutX(10); lblVitesseAutoTour.setLayoutY(210); cbAutoTourType = new ComboBox(); cbAutoTourType.getItems().add(rbLocalisation.getString("main.nTours")); cbAutoTourType.getItems().add(rbLocalisation.getString("main.nSecondes")); cbAutoTourType.getSelectionModel().select(1); cbAutoTourType.setLayoutX(30); cbAutoTourType.setLayoutY(240); cbAutoTourType.setMaxWidth(140); bdfAutoTourLimite = new BigDecimalField(new BigDecimal(1)); bdfAutoTourLimite.setLayoutX(240); bdfAutoTourLimite.setLayoutY(240); bdfAutoTourLimite.setMaxWidth(70); Label lblN = new Label("n="); lblN.setLayoutX(210); lblN.setLayoutY(245); cbAutoTourType.disableProperty().bind(cbAutoTourDemarrage.selectedProperty().not()); bdfAutoTourLimite.disableProperty().bind(cbAutoTourDemarrage.selectedProperty().not()); cbAutoRotationVitesse.getSelectionModel().selectedIndexProperty().addListener((ov, av, nv) -> { if (cbAutoRotationVitesse.getSelectionModel().getSelectedIndex() == 3) { bdfAutoRotationVitesse.setDisable(false); setiAutoRotationVitesse(bdfAutoRotationVitesse.getNumber().toBigInteger().intValue()); } else { bdfAutoRotationVitesse.setDisable(true); setiAutoRotationVitesse(10 * (cbAutoRotationVitesse.getSelectionModel().getSelectedIndex() + 1)); } }); cbIntroPetitePlanete.selectedProperty().addListener((ov, av, nv) -> { setbIntroPetitePlanete(nv); poParametresVisite.setbValide(isbIntroPetitePlanete()); }); cbAutoRotationDemarrage.selectedProperty().addListener((ov, av, nv) -> { setbAutoRotationDemarre(nv); poAutoRotation.setbValide(isbAutoRotationDemarre() || isbAutoTourDemarre()); }); bdfAutoRotationVitesse.numberProperty().addListener((ov, av, nv) -> { setiAutoRotationVitesse(nv.toBigInteger().intValue()); }); cbAutoTourType.getSelectionModel().selectedIndexProperty().addListener((ov, av, nv) -> { if (cbAutoTourType.getSelectionModel().getSelectedIndex() == 0) { setStrAutoTourType("tours"); } else { setStrAutoTourType("secondes"); } }); cbAutoTourDemarrage.selectedProperty().addListener((ov, av, nv) -> { setbAutoTourDemarre(nv); poAutoRotation.setbValide(isbAutoRotationDemarre() || isbAutoTourDemarre()); getGestionnaireInterface().getApBtnVA().setDisable(!nv); }); bdfAutoTourLimite.numberProperty().addListener((ov, av, nv) -> { setiAutoTourLimite(nv.toBigInteger().intValue()); }); bdfAutoTourDemarrage.numberProperty().addListener((ov, av, nv) -> { setiAutoTourDemarrage(nv.toBigInteger().intValue()); }); apAutoRotation.getChildren().addAll(cbAutoRotationDemarrage, lblVitesse, cbAutoRotationVitesse, bdfAutoRotationVitesse, lblUnites, spAutotour, cbAutoTourDemarrage, lblDemarrageAutoTour, bdfAutoTourDemarrage, lblVitesseAutoTour, cbAutoTourType, lblN, bdfAutoTourLimite); AnchorPane apParametresPano = new AnchorPane(); apParametresPano.setPrefHeight(340); apParametresPano.setLayoutY(40); ImageView ivSupprPanoramique = new ImageView( new Image("file:" + getStrRepertAppli() + File.separator + "images/suppr.png", 48, 48, true, true)); ImageView ivModifPanoramique = new ImageView(new Image( "file:" + getStrRepertAppli() + File.separator + "images/modifie.png", 48, 48, true, true)); Button btnSupprimePano = new Button(rbLocalisation.getString("main.supprimePanoCourant"), ivSupprPanoramique); btnSupprimePano.setLayoutX(190); btnSupprimePano.setLayoutY(70); btnSupprimePano.setPrefSize(160, 60); btnSupprimePano.setMinSize(160, 60); btnSupprimePano.setMaxSize(160, 60); btnSupprimePano.setWrapText(true); btnSupprimePano.setOnAction((e) -> { retirePanoCourant(); }); Button btnModifiePano = new Button(rbLocalisation.getString("main.modifiePanoCourant"), ivModifPanoramique); btnModifiePano.setLayoutX(20); btnModifiePano.setLayoutY(70); btnModifiePano.setPrefSize(160, 60); btnModifiePano.setMinSize(160, 60); btnModifiePano.setMaxSize(160, 60); btnModifiePano.setWrapText(true); btnModifiePano.setOnAction((e) -> { String strRepertPano = getPanoramiquesProjet()[getiPanoActuel()].getStrNomFichier().substring(0, getPanoramiquesProjet()[getiPanoActuel()].getStrNomFichier().lastIndexOf(File.separator)); FileChooser fileChooser = new FileChooser(); FileChooser.ExtensionFilter extFilterImage = new FileChooser.ExtensionFilter( "Fichiers Image (JPG,BMP,TIFF)", "*.jpg", "*.bmp", "*.tif"); FileChooser.ExtensionFilter extFilterJpeg = new FileChooser.ExtensionFilter("Fichiers JPEG (*.jpg)", "*.jpg"); FileChooser.ExtensionFilter extFilterBmp = new FileChooser.ExtensionFilter("Fichiers BMP (*.bmp)", "*.bmp"); FileChooser.ExtensionFilter extFilterTiff = new FileChooser.ExtensionFilter("Fichiers TIFF (*.tif)", "*.tif"); File fileRepert = new File(strRepertPano + File.separator); fileChooser.setInitialDirectory(fileRepert); fileChooser.getExtensionFilters().addAll(extFilterJpeg, extFilterTiff, extFilterBmp, extFilterImage); File filePano = fileChooser.showOpenDialog(null); if (filePano != null) { setbDejaSauve(false); getStPrincipal().setTitle(getStPrincipal().getTitle().replace(" *", "") + " *"); String strFilePano = filePano.getAbsolutePath(); String strExtension = strFilePano.substring(strFilePano.length() - 3, strFilePano.length()); Image imgPano = null; if ("tif".equals(strExtension)) { try { imgPano = ReadWriteImage.readTiff(strFilePano); } catch (IOException | ImageReadException ex) { Logger.getLogger(EditeurPanovisu.class.getName()).log(Level.SEVERE, null, ex); } } else { imgPano = new Image("file:" + strFilePano); } if (imgPano != null) { if (imgPano.getWidth() == imgPano.getHeight()) { try { rechargePanoramiqueProjet(strFilePano, Panoramique.CUBE); } catch (InterruptedException ex) { Logger.getLogger(EditeurPanovisu.class.getName()).log(Level.SEVERE, null, ex); } } else { try { rechargePanoramiqueProjet(strFilePano, Panoramique.SPHERE); } catch (InterruptedException ex) { Logger.getLogger(EditeurPanovisu.class.getName()).log(Level.SEVERE, null, ex); } } affichePanoChoisit(getiPanoActuel()); if (apListePanoTriable != null) { apParametresVisite.getChildren().remove(apListePanoTriable); } ordPano.rafraichitListe(); ordPano.ajouteNouveauxPanos(); apListePanoTriable = ordPano.getApListePanoramiques(); apListePanoTriable.setMaxHeight(apListePanoTriable.getPrefHeight()); apListePanoTriable.setMinHeight(apListePanoTriable.getPrefHeight()); apListePanoTriable.setVisible(true); apParametresVisite.getChildren().remove(apListePanoTriable); apParametresVisite.getChildren().add(apListePanoTriable); apListePanoTriable.setLayoutX(40); apListePanoTriable.setLayoutY(130); apParametresVisite.setPrefHeight(120 + apListePanoTriable.getPrefHeight() + 20); if (apParametresVisite.isVisible()) { apParametresVisite.setMinHeight(120 + apListePanoTriable.getPrefHeight() + 20); apParametresVisite.setMaxHeight(120 + apListePanoTriable.getPrefHeight() + 20); } rafraichitListePano(); } } }); Label lblTitrePano = new Label(rbLocalisation.getString("main.titrePano")); lblTitrePano.setStyle("-fx-font-size : 1em;"); lblTitrePano.setPadding(new Insets(5, 5, 5, 0)); lblTitrePano.setLayoutX(10); lblTitrePano.setLayoutY(10); tfTitrePano = new TextField(); tfTitrePano.setId("txttitrepano"); tfTitrePano.setPrefSize(220, 25); tfTitrePano.setMaxSize(250, 25); tfTitrePano.setLayoutX(60); tfTitrePano.setLayoutY(40); tfTitrePano.textProperty().addListener((final ObservableValue<? extends String> observable, final String oldValue, final String newValue) -> { clickBtnValidePano(); }); slMinLat = new Slider(-90, -45, -90); slMinLat.setDisable(true); slMaxLat = new Slider(45, 90, 90); slMaxLat.setDisable(true); cbMinLat = new CheckBox(rbLocalisation.getString("main.blocageNadir")); cbMaxLat = new CheckBox(rbLocalisation.getString("main.blocageZenith")); slMinFov = new Slider(5, 70, 12); slMaxFov = new Slider(5, 70, 70); Label lblMinFov = new Label("min. hFOV : 12"); Label lblMaxFov = new Label("max. hFOV : 70"); slMinLat.disableProperty().bind(cbMinLat.selectedProperty().not()); slMaxLat.disableProperty().bind(cbMaxLat.selectedProperty().not()); slMinLat.setLayoutX(10); slMinLat.setLayoutY(160); cbMinLat.setLayoutX(190); cbMinLat.setLayoutY(160); slMaxLat.setLayoutX(10); slMaxLat.setLayoutY(190); cbMaxLat.setLayoutX(190); cbMaxLat.setLayoutY(190); slMinFov.setLayoutX(10); slMinFov.setLayoutY(220); lblMinFov.setLayoutX(190); lblMinFov.setLayoutY(220); slMaxFov.setLayoutX(10); slMaxFov.setLayoutY(250); lblMaxFov.setLayoutX(190); lblMaxFov.setLayoutY(250); Button btnBlocage = new Button(rbLocalisation.getString("main.blocage")); btnBlocage.setLayoutX(190); btnBlocage.setLayoutY(300); ligNadir = new Line(); ligNadir.setVisible(false); ligNadir.setStroke(Color.YELLOW); ligNadir.setStrokeWidth(2); ligZenith = new Line(); ligZenith.setVisible(false); ligZenith.setStroke(Color.YELLOW); ligZenith.setStrokeWidth(2); ligNadir.visibleProperty().bind(cbMinLat.selectedProperty()); ligZenith.visibleProperty().bind(cbMaxLat.selectedProperty()); slMinFov.valueProperty().addListener((observableValue, oldValue, newValue) -> { setbDejaSauve(false); getStPrincipal().setTitle(getStPrincipal().getTitle().replace(" *", "") + " *"); getPanoramiquesProjet()[iPanoActuel].setFovMin((double) newValue); double val1 = Math.round((double) newValue * 10) / 10; lblMinFov.setText("min. FOV : " + val1 + ""); slMaxFov.setMin(val1); navigateurPanoramique.setMinFov(val1); if (navigateurPanoramique.getFov() < val1) { navigateurPanoramique.setFov(val1); } if (navigateurPanoramique.getChoixFov() < val1) { navigateurPanoramique.setChoixFov(val1); } }); slMaxFov.valueProperty().addListener((observableValue, oldValue, newValue) -> { setbDejaSauve(false); getStPrincipal().setTitle(getStPrincipal().getTitle().replace(" *", "") + " *"); getPanoramiquesProjet()[iPanoActuel].setFovMax((double) newValue); double val1 = Math.round((double) newValue * 10) / 10; lblMaxFov.setText("max. FOV : " + val1 + ""); slMinFov.setMax(val1); navigateurPanoramique.setMaxFov(val1); if (navigateurPanoramique.getFov() > val1) { navigateurPanoramique.setFov(val1); } if (navigateurPanoramique.getChoixFov() > val1) { navigateurPanoramique.setChoixFov(val1); } }); slMinLat.valueProperty().addListener((observableValue, oldValue, newValue) -> { setbDejaSauve(false); getStPrincipal().setTitle(getStPrincipal().getTitle().replace(" *", "") + " *"); double largeurImage1 = panePanoramique.getPrefWidth(); double X11 = ivImagePanoramique.getLayoutX(); double Y1 = (90.0d - (double) newValue) * largeurImage1 / 360.0d; ligNadir.setStartX(X11); ligNadir.setStartY(Y1); ligNadir.setEndX(X11 + largeurImage1); ligNadir.setEndY(Y1); getPanoramiquesProjet()[iPanoActuel].setMinLat((double) newValue); }); slMaxLat.valueProperty().addListener((observableValue, oldValue, newValue) -> { setbDejaSauve(false); getStPrincipal().setTitle(getStPrincipal().getTitle().replace(" *", "") + " *"); double largeurImage1 = panePanoramique.getPrefWidth(); double X11 = ivImagePanoramique.getLayoutX(); double Y1 = (90.0d - (double) newValue) * largeurImage1 / 360.0d; ligZenith.setStartX(X11); ligZenith.setStartY(Y1); ligZenith.setEndX(X11 + largeurImage1); ligZenith.setEndY(Y1); getPanoramiquesProjet()[iPanoActuel].setMaxLat((double) newValue); }); cbMinLat.selectedProperty().addListener((ov, av, nv) -> { setbDejaSauve(false); getStPrincipal().setTitle(getStPrincipal().getTitle().replace(" *", "") + " *"); double largeurImage1 = panePanoramique.getPrefWidth(); double X11 = ivImagePanoramique.getLayoutX(); double Y1 = (90.0d - (double) slMinLat.getValue()) * largeurImage1 / 360.0d; ligNadir.setStartX(X11); ligNadir.setStartY(Y1); ligNadir.setEndX(X11 + largeurImage1); ligNadir.setEndY(Y1); getPanoramiquesProjet()[iPanoActuel].setbMinLat(nv); }); cbMaxLat.selectedProperty().addListener((ov, av, nv) -> { setbDejaSauve(false); getStPrincipal().setTitle(getStPrincipal().getTitle().replace(" *", "") + " *"); double largeurImage1 = panePanoramique.getPrefWidth(); double X11 = ivImagePanoramique.getLayoutX(); double Y1 = (90.0d - (double) (double) slMaxLat.getValue()) * largeurImage1 / 360.0d; ligZenith.setStartX(X11); ligZenith.setStartY(Y1); ligZenith.setEndX(X11 + largeurImage1); ligZenith.setEndY(Y1); getPanoramiquesProjet()[iPanoActuel].setbMaxLat(nv); }); btnBlocage.setOnAction((e) -> { setbDejaSauve(false); getStPrincipal().setTitle(getStPrincipal().getTitle().replace(" *", "") + " *"); for (int i = 0; i < iNombrePanoramiques; i++) { getPanoramiquesProjet()[i].setbMaxLat(getPanoramiquesProjet()[iPanoActuel].isbMaxLat()); getPanoramiquesProjet()[i].setbMinLat(getPanoramiquesProjet()[iPanoActuel].isbMinLat()); getPanoramiquesProjet()[i].setMaxLat(getPanoramiquesProjet()[iPanoActuel].getMaxLat()); getPanoramiquesProjet()[i].setMinLat(getPanoramiquesProjet()[iPanoActuel].getMinLat()); getPanoramiquesProjet()[i].setFovMax(getPanoramiquesProjet()[iPanoActuel].getFovMax()); getPanoramiquesProjet()[i].setFovMin(getPanoramiquesProjet()[iPanoActuel].getFovMin()); } }); apParametresPano.getChildren().addAll(btnModifiePano, btnSupprimePano, lblTitrePano, tfTitrePano, slMaxLat, cbMaxLat, slMinLat, cbMinLat, slMinFov, lblMinFov, slMaxFov, lblMaxFov, btnBlocage); setApPPAN(new AnchorPane( new PaneOutil(true, rbLocalisation.getString("main.parametresPano"), apParametresPano, largeurOutil) .getApPaneOutil())); setApGEO(new AnchorPane()); apOpenLayers = new AnchorPane(); apOpenLayers.setVisible(false); if (isbInternet()) { navigateurOpenLayers = new NavigateurOpenLayers(); navigateurOpenLayers.setBingApiKey(getStrBingAPIKey()); tfLongitude = new TextField(); tfLatitude = new TextField(); apOpenLayers = navigateurOpenLayers.afficheNavigateurOpenLayer(tfLongitude, tfLatitude, true); apOpenLayers.setPrefSize(800, 600); Button btnGeolocalise = new Button(rbLocalisation.getString("main.geolocalisation")); btnGeolocalise.setLayoutX(10); btnGeolocalise.setLayoutY(25); btnGeolocalise.setPrefWidth(120); btnGeolocalise.setOnAction((e) -> { navigateurOpenLayers.retireMarqueur(0); if (navigateurOpenLayers.getBingApiKey().equals("")) { navigateurOpenLayers.afficheCartesOpenlayer(); } else { navigateurOpenLayers.valideBingApiKey(navigateurOpenLayers.getBingApiKey()); } if (panoramiquesProjet[getiPanoActuel()].getMarqueurGeolocatisation() != null) { navigateurOpenLayers.allerCoordonnees( panoramiquesProjet[getiPanoActuel()].getMarqueurGeolocatisation(), 17); navigateurOpenLayers .setMarqueur(panoramiquesProjet[getiPanoActuel()].getMarqueurGeolocatisation()); String strFichierPano = getPanoramiquesProjet()[getiPanoActuel()].getStrNomFichier() .substring( getPanoramiquesProjet()[getiPanoActuel()].getStrNomFichier() .lastIndexOf(File.separator) + 1, getPanoramiquesProjet()[getiPanoActuel()].getStrNomFichier().length()) .split("\\.")[0]; String strHTML = "<span style='font-family : Verdana,Arial,sans-serif;font-weight:bold;font-size : 12px;'>" + getPanoramiquesProjet()[getiPanoActuel()].getStrTitrePanoramique() + "</span><br/>" + "<span style='font-family : Verdana,Arial,sans-serif;bold;font-size : 10px;'>" + strFichierPano + "</span>"; strHTML = strHTML.replace("\\", "/"); navigateurOpenLayers.ajouteMarqueur(0, panoramiquesProjet[getiPanoActuel()].getMarqueurGeolocatisation(), strHTML); } apOpenLayers.setVisible(true); }); tfLatitude.setLayoutX(140); tfLatitude.setLayoutY(10); tfLongitude.setLayoutX(140); tfLongitude.setLayoutY(40); apOpenLayers.setLayoutX(200); apOpenLayers.setLayoutY(150); apOpenLayers.setVisible(false); AnchorPane apGeolocalise = new AnchorPane(); apGeolocalise.setPrefHeight(75); apGeolocalise.getChildren().addAll(btnGeolocalise, tfLatitude, tfLongitude); apGeolocalise.setLayoutX(10); apGeolocalise.setLayoutY(40); setPoGeolocalisation( new PaneOutil(rbLocalisation.getString("main.geolocalisation"), apGeolocalise, largeurOutil)); setApGEO(new AnchorPane(getPoGeolocalisation().getApPaneOutil())); apOpenLayers.setLayoutX((iLargeur - apOpenLayers.getPrefWidth()) / 2); apOpenLayers.setLayoutY((iHauteur - apOpenLayers.getPrefHeight()) / 2); apOpenLayers.visibleProperty().addListener((ov, av, nv) -> { mbarPrincipal.setDisable(nv); hbBarreBouton.setDisable(nv); tpEnvironnement.setDisable(nv); }); } apVisuPanoramique.setLayoutY(40); apVisuPanoramique.setPrefWidth(340); apVisuPanoramique.setPrefHeight(295); setApVISU(new AnchorPane( new PaneOutil(true, rbLocalisation.getString("main.visualisation"), apVisuPanoramique, largeurOutil) .getApPaneOutil())); vbVisuHotspots = new VBox(); apVisuHS = new AnchorPane(vbVisuHotspots); apVisuHS.setLayoutY(40); apHS1 = new PaneOutil(true, "Hotspots", apVisuHS, largeurOutil); setApHS(new AnchorPane(apHS1.getApPaneOutil())); getVbChoixPanoramique().getChildren().addAll(getApPVIS(), getApAR(), getApPPAN(), getApGEO(), getApVISU(), getApHS()); getVbChoixPanoramique().setSpacing(-5); vbOutils.getChildren().addAll(getVbChoixPanoramique()); getVbChoixPanoramique().setVisible(false); /* Cration du panneau d'info du panoramique */ spVuePanoramique = new ScrollPane(); hbCoordonnees = new HBox(); panePanoramique = new Pane(); apPanneauPrincipal = new AnchorPane(); lblLong = new Label(""); lblLat = new Label(""); ivImagePanoramique = new ImageView(); stPrimaryStage.setScene(getScnPrincipale()); /** * */ spVuePanoramique.setPrefSize(iLargeur - largeurOutils - 20, iHauteur - 110); spVuePanoramique.setMaxSize(iLargeur - largeurOutils - 20, iHauteur - 110); spVuePanoramique.setVbarPolicy(ScrollPane.ScrollBarPolicy.NEVER); spVuePanoramique.setHbarPolicy(ScrollPane.ScrollBarPolicy.NEVER); spVuePanoramique.setTranslateY(5); /** * */ AnchorPane apPanneauOutils = new AnchorPane(); apPanneauOutils.getChildren().addAll(spPanneauOutils); apPanneauOutils.setTranslateY(3); apPanneauOutils.setTranslateX(20); spPanneauOutils.setContent(vbOutils); spPanneauOutils.setVbarPolicy(ScrollPane.ScrollBarPolicy.AS_NEEDED); spPanneauOutils.setHbarPolicy(ScrollPane.ScrollBarPolicy.NEVER); spPanneauOutils.setPrefSize(largeurOutils, iHauteur - 112); spPanneauOutils.setMaxWidth(largeurOutils); spPanneauOutils.setMaxHeight(iHauteur - 112); spPanneauOutils.setLayoutY(0); spPanneauOutils.setLayoutX(0); /** * */ panePanoramique.setCursor(Cursor.CROSSHAIR); vbOutils.setPrefWidth(largeurOutils - 20); vbOutils.minHeight(iHauteur - 110); vbOutils.setLayoutX(3); lblLong.setPrefSize(100, 15); lblLat.setPrefSize(100, 15); lblLat.setTranslateX(50); apPanneauPrincipal.setPrefSize(iLargeur - largeurOutils - 20, iHauteur - 110); apListeImagesPanoramiques = new AnchorPane(); apListeImagesPanoramiques.setPrefWidth(iLargeurVignettes + 40); apListeImagesPanoramiques.setMinWidth(iLargeurVignettes + 40); apListeImagesPanoramiques.setMaxWidth(iLargeurVignettes + 40); apListeImagesPanoramiques.setPrefHeight(iHauteur - 140); apListeImagesPanoramiques.setLayoutX(-iLargeurVignettes - 30); apListeImagesPanoramiques.setLayoutY(0); apListeImagesPanoramiques.setStyle("-fx-background-color :rgba(0,0,0,0);"); apListeImagesPanoramiques.setOnMouseEntered((e) -> { apListeImagesPanoramiques.setLayoutX(0); }); apListeImagesPanoramiques.setOnMouseExited((e) -> { apListeImagesPanoramiques.setLayoutX(-iLargeurVignettes - 30); }); Label lblVignettes = new Label(rbLocalisation.getString("main.vignettes")); lblVignettes.setPrefSize(70, 20); lblVignettes.setTextAlignment(TextAlignment.CENTER); lblVignettes.setStyle("-fx-background-color:-fx-base;" + "-fx-border-color: derive(-fx-base,10%);" + "-fx-border-width: 1px;"); lblVignettes.setTranslateX(-lblVignettes.getPrefWidth() / 2 + lblVignettes.getPrefHeight() / 2); lblVignettes.setTranslateY(lblVignettes.getPrefWidth() / 2 - lblVignettes.getPrefHeight() / 2); lblVignettes.setRotate(270); lblVignettes.setLayoutX(iLargeurVignettes + 30); apVignettesPano = new AnchorPane(); apVignettesPano.setPrefWidth(iLargeurVignettes + 10); apVignettesPano.setMinHeight(iHauteur - 140); apVignettesPano.setStyle("-fx-background-color:-fx-base;"); rectVignettePano = new Rectangle(0, 0, iLargeurVignettes, iLargeurVignettes / 2.d); rectVignettePano.setLayoutX(5); rectVignettePano.setLayoutY(10); rectVignettePano.setFill(Color.web("#fff", 0.5)); rectVignettePano.setStroke(Color.WHITE); rectVignettePano.setStrokeWidth(2.0); rectVignettePano.setVisible(false); apVignettesPano.getChildren().add(rectVignettePano); ScrollPane spListeImagesPanoramiques = new ScrollPane(apVignettesPano); spListeImagesPanoramiques.setPrefWidth(iLargeurVignettes + 30); spListeImagesPanoramiques.setPrefHeight(iHauteur - 130); spListeImagesPanoramiques.setVbarPolicy(ScrollPane.ScrollBarPolicy.AS_NEEDED); spListeImagesPanoramiques .setStyle("-fx-background-color:-fx-base;" + "-fx-border-color: derive(-fx-base,10%);" + "-fx-effect: dropshadow( three-pass-box , rgba(0,0,0,0.2) , 8, 0.0 , 0 , 8 );" + "-fx-border-width: 1px;"); apListeImagesPanoramiques.getChildren().addAll(spListeImagesPanoramiques, lblVignettes); ivImagePanoramique.setCache(true); largeur = largeurMax - 60; ivImagePanoramique.setFitWidth(largeur); ivImagePanoramique.setFitHeight(largeur / 2.0d); ivImagePanoramique.setLayoutX((largeurMax - largeur) / 2.d); panePanoramique.getChildren().add(ivImagePanoramique); panePanoramique.setPrefSize(ivImagePanoramique.getFitWidth(), ivImagePanoramique.getFitHeight()); panePanoramique.setMaxSize(ivImagePanoramique.getFitWidth(), ivImagePanoramique.getFitHeight()); panePanoramique.setLayoutY(20); lblLong.setTranslateX(50); lblLat.setTranslateX(80); hbCoordonnees.getChildren().setAll(lblLong, lblLat); spVuePanoramique.setContent(apPanneauPrincipal); hbEnvironnement.getChildren().setAll(spVuePanoramique, apPanneauOutils); apEnvironnement = new AnchorPane(); setApAttends(new AnchorPane()); getApAttends().setPrefHeight(250); getApAttends().setPrefWidth(600); getApAttends().setMaxWidth(600); getApAttends().setStyle("-fx-background-color : -fx-base;" + "-fx-border-color: derive(-fx-base,10%);" + "-fx-effect: dropshadow( three-pass-box , rgba(0,0,0,0.5) , 8, 0.0 , 0 , 8 );" + "-fx-border-width: 1px;"); getApAttends().setLayoutX((iLargeur - getApAttends().getPrefWidth()) / 2.d); getApAttends().setLayoutY((iHauteur - getApAttends().getPrefHeight()) / 2.d - 55); pbarAvanceChargement = new ProgressBar(); pbarAvanceChargement.setPrefSize(400, 30); pbarAvanceChargement.setLayoutX((getApAttends().getPrefWidth() - pbarAvanceChargement.getPrefWidth()) / 2); pbarAvanceChargement.setLayoutY(70); Label lblAttends = new Label(rbLocalisation.getString("main.attendsChargement")); lblAttends.setMinWidth(600); lblAttends.setAlignment(Pos.CENTER); lblAttends.setStyle("-fx-background-color : #777;"); lblAttends.setTextFill(Color.WHITE); lblAttends.setLayoutY(5); lblAttends.setFont(Font.font(14)); lblCharge = new Label(); lblCharge.setMinWidth(600); lblCharge.setLayoutY(150); lblCharge.setAlignment(Pos.CENTER); lblNiveaux = new Label(); lblNiveaux.setMinWidth(600); lblNiveaux.setLayoutY(180); lblNiveaux.setAlignment(Pos.CENTER); getApAttends().getChildren().addAll(lblAttends, pbarAvanceChargement, lblCharge, lblNiveaux); getApAttends().setVisible(false); apEnvironnement.getChildren().addAll(tpEnvironnement, getApAttends()); if (isMac()) { apEnvironnement.setTranslateY(-30); } vbRacine.getChildren().addAll(apEnvironnement); apPanneauPrincipal.getChildren().setAll(hbCoordonnees, panePanoramique); stPrimaryStage.show(); popUp.affichePopup(); lblDragDrop = new Label(rbLocalisation.getString("main.dragDrop")); lblDragDrop.setMinHeight(spVuePanoramique.getPrefHeight()); lblDragDrop.setMaxHeight(spVuePanoramique.getPrefHeight()); lblDragDrop.setMinWidth(spVuePanoramique.getPrefWidth()); lblDragDrop.setMaxWidth(spVuePanoramique.getPrefWidth()); lblDragDrop.setAlignment(Pos.CENTER); lblDragDrop.setTextFill(Color.web("#c9c7c7")); lblDragDrop.setTextAlignment(TextAlignment.CENTER); lblDragDrop.setWrapText(true); lblDragDrop.setStyle("-fx-font-size:72px"); lblDragDrop.setTranslateY(-100); apLoupe.setLayoutX(35); apLoupe.setLayoutY(35); apLoupe.setVisible(false); apPanneauPrincipal.getChildren().addAll(lblDragDrop, spAfficheLegende(), apLoupe, apListeImagesPanoramiques); apCreationBarre = new AnchorPane(); apCreationBarre.setVisible(false); apCreationDiaporama = new AnchorPane(); apCreationDiaporama.setVisible(false); apEnvironnement.getChildren().addAll(apCreationBarre, apCreationDiaporama, apOpenLayers); }
From source file:nl.rivm.cib.episim.model.disease.infection.MSEIRSPlot.java
@Override public void start(final Stage stage) { final SIRConfig conf = ConfigFactory.create(SIRConfig.class); final double[] t = conf.t(); final long[] pop = conf.population(); final double n0 = Arrays.stream(pop).sum(); final String[] colors = conf.colors(), colors2 = conf.colors2(); final Pane plot = new Pane(); plot.setPrefSize(400, 300);//from w w w. j av a 2 s . c o m plot.setMinSize(50, 50); final NumberAxis xAxis = new NumberAxis(t[0], t[1], (t[1] - t[0]) / 10); final NumberAxis yAxis = new NumberAxis(0, n0, n0 / 10); final Pane axes = new Pane(); axes.prefHeightProperty().bind(plot.heightProperty()); axes.prefWidthProperty().bind(plot.widthProperty()); xAxis.setSide(Side.BOTTOM); xAxis.setMinorTickVisible(false); xAxis.setPrefWidth(axes.getPrefWidth()); xAxis.prefWidthProperty().bind(axes.widthProperty()); xAxis.layoutYProperty().bind(axes.heightProperty()); yAxis.setSide(Side.LEFT); yAxis.setMinorTickVisible(false); yAxis.setPrefHeight(axes.getPrefHeight()); yAxis.prefHeightProperty().bind(axes.heightProperty()); yAxis.layoutXProperty().bind(Bindings.subtract(1, yAxis.widthProperty())); axes.getChildren().setAll(xAxis, yAxis); final Label lbl = new Label(String.format("R0=%.1f, recovery=%.1ft\nSIR(0)=%s", conf.reproduction(), conf.recovery(), Arrays.toString(pop))); lbl.setTextAlignment(TextAlignment.CENTER); lbl.setTextFill(Color.WHITE); final Path[] deterministic = { new Path(), new Path(), new Path() }; IntStream.range(0, pop.length).forEach(i -> { final Color color = Color.valueOf(colors[i]); final Path path = deterministic[i]; path.setStroke(color.deriveColor(0, 1, 1, 0.6)); path.setStrokeWidth(2); path.setClip(new Rectangle(0, 0, plot.getPrefWidth(), plot.getPrefHeight())); }); plot.getChildren().setAll(axes); // fill paths with integration estimates final double xl = xAxis.getLowerBound(), sx = plot.getPrefWidth() / (xAxis.getUpperBound() - xl), yh = plot.getPrefHeight(), sy = yh / (yAxis.getUpperBound() - yAxis.getLowerBound()); final TreeMap<Double, Integer> iDeterministic = new TreeMap<>(); MSEIRSTest.deterministic(conf, () -> new DormandPrince853Integrator(1.0E-8, 10, 1.0E-20, 1.0E-20)) .subscribe(yt -> { iDeterministic.put(yt.getKey(), deterministic[0].getElements().size()); final double[] y = yt.getValue(); final double x = (yt.getKey() - xl) * sx; for (int i = 0; i < y.length; i++) { final double yi = yh - y[i] * sy; final PathElement di = deterministic[i].getElements().isEmpty() ? new MoveTo(x, yi) : new LineTo(x, yi); deterministic[i].getElements().add(di); } }, e -> LOG.error("Problem", e), () -> plot.getChildren().addAll(deterministic)); final Path[] stochasticTau = { new Path(), new Path(), new Path() }; IntStream.range(0, pop.length).forEach(i -> { final Color color = Color.valueOf(colors[i]); final Path path = stochasticTau[i]; path.setStroke(color); path.setStrokeWidth(1); path.setClip(new Rectangle(0, 0, plot.getPrefWidth(), plot.getPrefHeight())); }); final TreeMap<Double, Integer> iStochasticTau = new TreeMap<>(); MSEIRSTest.stochasticGillespie(conf).subscribe(yt -> { final double x = (yt.getKey() - xl) * sx; iStochasticTau.put(yt.getKey(), stochasticTau[0].getElements().size()); final long[] y = yt.getValue(); for (int i = 0; i < y.length; i++) { final double yi = yh - y[i] * sy; final ObservableList<PathElement> path = stochasticTau[i].getElements(); if (path.isEmpty()) { path.add(new MoveTo(x, yi)); // first } else { final PathElement last = path.get(path.size() - 1); final double y_prev = last instanceof MoveTo ? ((MoveTo) last).getY() : ((LineTo) last).getY(); path.add(new LineTo(x, y_prev)); path.add(new LineTo(x, yi)); } } }, e -> LOG.error("Problem", e), () -> plot.getChildren().addAll(stochasticTau)); final Path[] stochasticRes = { new Path(), new Path(), new Path() }; IntStream.range(0, pop.length).forEach(i -> { final Color color = Color.valueOf(colors2[i]); final Path path = stochasticRes[i]; path.setStroke(color); path.setStrokeWidth(1); path.setClip(new Rectangle(0, 0, plot.getPrefWidth(), plot.getPrefHeight())); }); final TreeMap<Double, Integer> iStochasticRes = new TreeMap<>(); MSEIRSTest.stochasticSellke(conf).subscribe(yt -> { final double x = (yt.getKey() - xl) * sx; iStochasticRes.put(yt.getKey(), stochasticRes[0].getElements().size()); final long[] y = yt.getValue(); for (int i = 0; i < y.length; i++) { final double yi = yh - y[i] * sy; final ObservableList<PathElement> path = stochasticRes[i].getElements(); if (path.isEmpty()) { path.add(new MoveTo(x, yi)); // first } else { final PathElement last = path.get(path.size() - 1); final double y_prev = last instanceof MoveTo ? ((MoveTo) last).getY() : ((LineTo) last).getY(); path.add(new LineTo(x, y_prev)); path.add(new LineTo(x, yi)); } } }, e -> LOG.error("Problem", e), () -> plot.getChildren().addAll(stochasticRes)); // auto-scale on stage/plot resize // FIXME scaling around wrong origin, use ScatterChart? // xAxis.widthProperty() // .addListener( (ChangeListener<Number>) ( observable, // oldValue, newValue ) -> // { // final double scale = ((Double) newValue) // / plot.getPrefWidth(); // plot.getChildren().filtered( n -> n instanceof Path ) // .forEach( n -> // { // final Path path = (Path) n; // path.setScaleX( scale ); // path.setTranslateX( (path // .getBoundsInParent().getWidth() // - path.getLayoutBounds().getWidth()) // / 2 ); // } ); // } ); // plot.heightProperty() // .addListener( (ChangeListener<Number>) ( observable, // oldValue, newValue ) -> // { // final double scale = ((Double) newValue) // / plot.getPrefHeight(); // plot.getChildren().filtered( n -> n instanceof Path ) // .forEach( n -> // { // final Path path = (Path) n; // path.setScaleY( scale ); // path.setTranslateY( // (path.getBoundsInParent() // .getHeight() * (scale - 1)) // / 2 ); // } ); // } ); final StackPane layout = new StackPane(lbl, plot); layout.setAlignment(Pos.TOP_CENTER); layout.setPadding(new Insets(50)); layout.setStyle("-fx-background-color: rgb(35, 39, 50);"); final Line vertiCross = new Line(); vertiCross.setStroke(Color.SILVER); vertiCross.setStrokeWidth(1); vertiCross.setVisible(false); axes.getChildren().add(vertiCross); final Tooltip tip = new Tooltip(""); tip.setAutoHide(false); tip.hide(); axes.setOnMouseExited(ev -> tip.hide()); axes.setOnMouseMoved(ev -> { final Double x = (Double) xAxis.getValueForDisplay(ev.getX()); if (x > xAxis.getUpperBound() || x < xAxis.getLowerBound()) { tip.hide(); vertiCross.setVisible(false); return; } final Double y = (Double) yAxis.getValueForDisplay(ev.getY()); if (y > yAxis.getUpperBound() || y < yAxis.getLowerBound()) { tip.hide(); vertiCross.setVisible(false); return; } final double xs = xAxis.getDisplayPosition(x); vertiCross.setStartX(xs); vertiCross.setStartY(yAxis.getDisplayPosition(0)); vertiCross.setEndX(xs); vertiCross.setEndY(yAxis.getDisplayPosition(yAxis.getUpperBound())); vertiCross.setVisible(true); final int i = (iDeterministic.firstKey() > x ? iDeterministic.firstEntry() : iDeterministic.floorEntry(x)).getValue(); final Object[] yi = Arrays.stream(deterministic).mapToDouble(p -> getY(p, i)) .mapToObj(yAxis::getValueForDisplay).map(n -> DecimalUtil.toScale(n, 1)).toArray(); final int j = (iStochasticTau.firstKey() > x ? iStochasticTau.firstEntry() : iStochasticTau.floorEntry(x)).getValue(); final Object[] yj = Arrays.stream(stochasticTau).mapToDouble(p -> getY(p, j)) .mapToObj(yAxis::getValueForDisplay).map(n -> DecimalUtil.toScale(n, 0)).toArray(); final int k = (iStochasticRes.firstKey() > x ? iStochasticRes.firstEntry() : iStochasticRes.floorEntry(x)).getValue(); final Object[] yk = Arrays.stream(stochasticRes).mapToDouble(p -> getY(p, k)) .mapToObj(yAxis::getValueForDisplay).map(n -> DecimalUtil.toScale(n, 0)).toArray(); final String txt = String.format("SIR(t=%.1f)\n" + "~det%s\n" + "~tau%s\n" + "~res%s", x, Arrays.toString(yi), Arrays.toString(yj), Arrays.toString(yk)); tip.setText(txt); tip.show(axes, ev.getScreenX() - ev.getSceneX() + xs, ev.getScreenY() + 15); }); try { stage.getIcons().add(new Image(FileUtil.toInputStream("icon.jpg"))); } catch (final IOException e) { LOG.error("Problem", e); } stage.setTitle("Deterministic vs. Stochastic"); stage.setScene(new Scene(layout, Color.rgb(35, 39, 50))); // stage.setOnHidden( ev -> tip.hide() ); stage.show(); }
From source file:org.pdfsam.ui.selection.LoadingStatusIndicator.java
public LoadingStatusIndicator(PdfDocumentDescriptorProvider descriptorProvider, String ownerModule) { requireNotNull(descriptorProvider,/*from ww w .j av a2 s . co m*/ "Cannot create LoadingStatusIndicator with a null PdfDocumentDescriptorProvider"); this.ownerModule = defaultString(ownerModule); this.popup = new PasswordFieldPopup(getOwnerModule()); this.descriptorProvider = descriptorProvider; this.addEventFilter(MouseEvent.MOUSE_CLICKED, (e) -> { if (loadingStatus.get() == ENCRYPTED) { showPasswordRequest(); } else if (loadingStatus.get() == WITH_ERRORS) { eventStudio().broadcast(new ShowStageRequest(), "LogStage"); } }); loadingStatus.addListener((o, oldVal, newVal) -> updateIndicator(newVal)); this.getStyleClass().addAll("encryption-status"); this.icon.setText(""); icon.setTextAlignment(TextAlignment.CENTER); icon.setAlignment(Pos.CENTER); this.setGraphic(icon); rotate.setByAngle(360); rotate.setCycleCount(Animation.INDEFINITE); rotate.setInterpolator(Interpolator.LINEAR); }