Example usage for javafx.scene.control ScrollPane setVbarPolicy

List of usage examples for javafx.scene.control ScrollPane setVbarPolicy

Introduction

In this page you can find the example usage for javafx.scene.control ScrollPane setVbarPolicy.

Prototype

public final void setVbarPolicy(ScrollBarPolicy value) 

Source Link

Usage

From source file:com.playonlinux.javafx.mainwindow.console.ConsoleTab.java

public ConsoleTab(CommandLineInterpreterFactory commandLineInterpreterFactory) {
    final VBox content = new VBox();

    commandInterpreter = commandLineInterpreterFactory.createInstance();

    this.setText(translate("Console"));
    this.setContent(content);

    final TextField command = new TextField();
    command.getStyleClass().add("consoleCommandType");
    final TextFlow console = new TextFlow();
    final ScrollPane consolePane = new ScrollPane(console);
    content.getStyleClass().add("rightPane");

    consolePane.getStyleClass().add("console");
    consolePane.setVbarPolicy(ScrollPane.ScrollBarPolicy.NEVER);
    content.getChildren().addAll(consolePane, command);

    command.requestFocus();//from   ww  w.j a  v a2s . c o m

    command.setOnKeyPressed(event -> {
        if (event.getCode() == KeyCode.ENTER) {
            final String commandToSend = command.getText();
            final int cursorPosition = command.getCaretPosition();
            command.setDisable(true);
            commandHistory.add(new CommandHistory.Item(commandToSend, cursorPosition));
            Text commandText = new Text(nextSymbol + commandToSend + "\n");
            commandText.getStyleClass().add("commandText");
            console.getChildren().add(commandText);
            command.setText("");

            if (commandInterpreter.sendLine(commandToSend, message -> {
                Platform.runLater(() -> {
                    if (!StringUtils.isBlank(message)) {
                        Text resultText = new Text(message);
                        resultText.getStyleClass().add("resultText");
                        console.getChildren().add(resultText);
                    }
                    command.setDisable(false);
                    command.requestFocus();
                    consolePane.setVvalue(consolePane.getVmax());
                });
            })) {
                nextSymbol = NOT_INSIDE_BLOCK;
            } else {
                nextSymbol = INSIDE_BLOCK;
            }
        }
    });

    command.setOnKeyReleased(event -> {
        if (event.getCode() == KeyCode.UP) {
            CommandHistory.Item historyItem = commandHistory.up();
            command.setText(historyItem.getCommand());
            command.positionCaret(historyItem.getCursorPosition());
        } else if (event.getCode() == KeyCode.DOWN) {
            CommandHistory.Item historyItem = commandHistory.down();
            command.setText(historyItem.getCommand());
            command.positionCaret(historyItem.getCursorPosition());
        }
    });

    this.setOnCloseRequest(event -> commandInterpreter.close());
}

From source file:de.ifsr.adam.ImageGenerator.java

/**
 * Main method for generating an Preview out of a report with it results.
 *
 * @param resultReport The report with it results
 * @return returns true if the generation and saving of the image was successful, false
 * otherwise/*  w  ww .j  ava 2 s.  com*/
 */
public Scene generatePreview(JSONArray resultReport) {
    log.info("Preview generation has started");
    VBox vbox = generateImageVBox(resultReport);

    ScrollPane scrollPane = new ScrollPane();
    scrollPane.setVbarPolicy(ScrollPane.ScrollBarPolicy.ALWAYS);
    scrollPane.setContent(vbox);

    //Gets the screen resulution for scaling.
    GraphicsDevice gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
    int width = gd.getDisplayMode().getWidth();
    int height = gd.getDisplayMode().getHeight();

    scrollPane.setVmax(100.0);
    scrollPane.setPrefSize(width * 0.65, height * 0.8); //TODO Can I do this better?

    ((Group) scene.getRoot()).getChildren().add(scrollPane);
    scene.getStylesheets().add(this.stylesheetURI.toString());

    //The Observer for resizing the scrollpane when the window changes.
    scene.widthProperty().addListener(new ChangeListener<Number>() {
        @Override
        public void changed(ObservableValue<? extends Number> observableValue, Number oldSceneWidth,
                Number newSceneWidth) {
            scrollPane.setPrefWidth(newSceneWidth.doubleValue());
        }
    });

    //The Observer for resizing the scrollpane when the window changes.
    scene.heightProperty().addListener(new ChangeListener<Number>() {
        @Override
        public void changed(ObservableValue<? extends Number> observableValue, Number oldSceneHeight,
                Number newSceneHeight) {
            scrollPane.setPrefHeight(newSceneHeight.doubleValue());
        }
    });

    log.info("End of Preview generation");
    return scene;
}

From source file:org.mskcc.shenkers.view.IntervalViewNGTest.java

@Test
public void testGenericStackedIntervalView() throws InterruptedException {
    List<Pair<Integer, Integer>> intervals = Arrays.asList(new Pair(0, 1), new Pair(1, 2), new Pair(2, 3),
            new Pair(3, 4), new Pair(4, 5), new Pair(5, 6));
    List<Pane> nodes = intervals.stream().map(i -> new RectangleIntervalNode()).collect(Collectors.toList());
    GenericStackedIntervalView p = new GenericStackedIntervalView(0, 6);
    p.setData(intervals, nodes);//from  w w  w. j a v  a  2 s  .  c o  m

    ScrollPane sp = new ScrollPane(p);
    ScrollBar sb = new ScrollBar();
    sb.maxProperty().bind(sp.vmaxProperty());
    sb.minProperty().bind(sp.vminProperty());
    sb.visibleAmountProperty().bind(sp.heightProperty().divide(p.prefHeightProperty()));
    sb.setOrientation(Orientation.VERTICAL);
    sp.vvalueProperty().bindBidirectional(sb.valueProperty());
    HiddenSidesPane hsp = new HiddenSidesPane();
    hsp.setContent(sp);
    hsp.setRight(sb);
    sp.setVbarPolicy(ScrollPane.ScrollBarPolicy.NEVER);
    sp.setHbarPolicy(ScrollPane.ScrollBarPolicy.NEVER);
    p.setOrientation(Orientation.VERTICAL);
    p.prefTileHeightProperty().bind(new SimpleDoubleProperty(40));
    //        p.minHeightProperty().bind(new SimpleDoubleProperty(20).multiply(Bindings.size(p.getChildren())));
    p.prefTileWidthProperty().bind(sp.widthProperty());
    p.prefHeightProperty()
            .bind(new SimpleDoubleProperty(50).multiply(Bindings.size(p.getChildren())).subtract(10));
    p.prefWidthProperty().bind(sp.widthProperty());
    sp.setPadding(Insets.EMPTY);
    p.setVgap(10);

    CountDownLatch l = new CountDownLatch(1);
    Platform.runLater(() -> {

        Stage stage = new Stage();
        stage.setOnHidden(e -> {
            l.countDown();
        });
        Scene scene = new Scene(hsp, 300, 300, Color.GRAY);
        stage.setTitle("GenericStackedPaneTest");
        stage.setScene(scene);
        stage.show();

    });
    l.await();
}

From source file:org.mskcc.shenkers.view.IntervalViewNGTest.java

public void testStackedIntervalView() throws InterruptedException {
    StackedIntervalView p = new StackedIntervalView(0, 6);
    p.setData(Arrays.asList(new Pair(0, 1), new Pair(1, 2), new Pair(2, 3), new Pair(3, 4), new Pair(4, 5),
            new Pair(5, 6)
    //, {8, 10}, {1, 2}, {3, 7},
    //            {9, 10}, {1, 2}, {3, 5}, {6, 7}, {8, 10}, {2, 5}, {8, 10}
    ));// ww w .j ava  2  s  . c o m

    ScrollPane sp = new ScrollPane(p);
    ScrollBar sb = new ScrollBar();
    sb.maxProperty().bind(sp.vmaxProperty());
    sb.minProperty().bind(sp.vminProperty());
    sb.visibleAmountProperty().bind(sp.heightProperty().divide(p.prefHeightProperty()));
    sb.setOrientation(Orientation.VERTICAL);
    sp.vvalueProperty().bindBidirectional(sb.valueProperty());
    HiddenSidesPane hsp = new HiddenSidesPane();
    hsp.setContent(sp);
    hsp.setRight(sb);
    sp.setVbarPolicy(ScrollPane.ScrollBarPolicy.NEVER);
    sp.setHbarPolicy(ScrollPane.ScrollBarPolicy.NEVER);
    p.setOrientation(Orientation.VERTICAL);
    p.prefTileHeightProperty().bind(new SimpleDoubleProperty(40));
    //        p.minHeightProperty().bind(new SimpleDoubleProperty(20).multiply(Bindings.size(p.getChildren())));
    p.prefTileWidthProperty().bind(sp.widthProperty());
    p.prefHeightProperty()
            .bind(new SimpleDoubleProperty(50).multiply(Bindings.size(p.getChildren())).subtract(10));
    p.prefWidthProperty().bind(sp.widthProperty());
    sp.setPadding(Insets.EMPTY);
    p.setVgap(10);

    CountDownLatch l = new CountDownLatch(1);
    Platform.runLater(() -> {

        Stage stage = new Stage();
        stage.setOnHidden(e -> {
            l.countDown();
        });
        Scene scene = new Scene(hsp, 300, 300, Color.GRAY);
        stage.setTitle("StackedPaneTest");
        stage.setScene(scene);
        stage.show();

    });
    l.await();
}

From source file:org.mskcc.shenkers.view.IntervalViewNGTest.java

public void testStackIntervalView() throws InterruptedException {
    System.out.println("testStackIntervalView");
    int[][] d = new int[][] { { 2, 6 }, { 7, 10 }, { 1, 3 }, { 4, 6 }, { 8, 10 }, { 1, 2 }, { 3, 7 }, { 9, 10 },
            { 1, 2 }, { 3, 5 }, { 6, 7 }, { 8, 10 }, { 2, 5 }, { 8, 10 } };
    List<int[]> asList = Arrays.asList(d);
    Collections.sort(asList, new Comparator<int[]>() {

        @Override/* www . j a  va2s . c om*/
        public int compare(int[] o1, int[] o2) {
            return o1[0] - o2[0];
        }
    });
    List<TreeRangeSet<Integer>> rows = new ArrayList<>();
    rows.add(TreeRangeSet.create());
    for (int[] r : d) {
        Range<Integer> R = Range.closed(r[0], r[1]);
        int i = 0;
        added: {
            while (i < rows.size()) {
                TreeRangeSet<Integer> set = rows.get(i);
                RangeSet<Integer> intersection = set.subRangeSet(Range.closed(r[0] - 1, r[1] + 1));
                if (intersection.isEmpty()) {
                    set.add(R);
                    break added;
                }
                i++;
            }
            //                Stri i = ;
            TreeRangeSet<Integer> row = TreeRangeSet.create();
            row.add(R);
            rows.add(row);
        }
    }
    TilePane p = new TilePane();
    p.setSnapToPixel(false);
    for (int i = 0; i < rows.size(); i++) {
        p.getChildren().add(get(rows.get(i), 0, 11));
        System.out.println(rows.get(i).toString());
        StringBuilder sb = new StringBuilder(11);
        sb.append(StringUtils.repeat(".", 11));
        for (int j = 0; j < 11; j++) {
            if (rows.get(i).contains(j)) {
                sb.setCharAt(j, 'X');
            }
        }
        System.out.println(sb.toString());
    }
    //        p.prefWidth(100);
    //        p.prefHeight(100);
    ScrollPane sp = new ScrollPane(p);
    ScrollBar sb = new ScrollBar();
    sb.maxProperty().bind(sp.vmaxProperty());
    sb.minProperty().bind(sp.vminProperty());
    sb.visibleAmountProperty().bind(sp.heightProperty().divide(p.prefHeightProperty()));
    sb.setOrientation(Orientation.VERTICAL);
    sp.vvalueProperty().bindBidirectional(sb.valueProperty());
    HiddenSidesPane hsp = new HiddenSidesPane();
    hsp.setContent(sp);
    hsp.setRight(sb);
    sp.setVbarPolicy(ScrollPane.ScrollBarPolicy.NEVER);
    sp.setHbarPolicy(ScrollPane.ScrollBarPolicy.NEVER);
    p.setOrientation(Orientation.VERTICAL);
    p.prefTileHeightProperty().bind(new SimpleDoubleProperty(40));
    //        p.minHeightProperty().bind(new SimpleDoubleProperty(20).multiply(Bindings.size(p.getChildren())));
    p.prefTileWidthProperty().bind(sp.widthProperty());
    p.prefHeightProperty()
            .bind(new SimpleDoubleProperty(50).multiply(Bindings.size(p.getChildren())).subtract(10));
    p.prefWidthProperty().bind(sp.widthProperty());
    sp.setPadding(Insets.EMPTY);
    p.setVgap(10);

    CountDownLatch l = new CountDownLatch(1);
    Platform.runLater(() -> {

        Stage stage = new Stage();
        stage.setOnHidden(e -> {
            l.countDown();
        });
        Scene scene = new Scene(hsp, 300, 300, Color.GRAY);
        stage.setTitle("JavaFX Scene Graph Demo");
        stage.setScene(scene);
        stage.show();

    });
    l.await();
}

From source file:qupath.lib.gui.tma.TMASummaryViewer.java

private Pane createSidePane() {
    BorderPane pane = new BorderPane();

    TabPane tabPane = new TabPane();

    kmDisplay = new KaplanMeierDisplay(null, null, null, null);
    BorderPane paneKaplanMeier = new BorderPane();
    paneKaplanMeier.setCenter(kmDisplay.getView());
    paneKaplanMeier.setPadding(new Insets(10, 10, 10, 10));
    //      comboMainMeasurement.prefWidthProperty().bind(paneKaplanMeier.widthProperty());
    comboMainMeasurement.setMaxWidth(Double.MAX_VALUE);
    comboMainMeasurement.setTooltip(new Tooltip("Measurement thresholded to create survival curves etc."));

    GridPane kmTop = new GridPane();
    kmTop.add(new Label("Score"), 0, 0);
    kmTop.add(comboMainMeasurement, 1, 0);
    kmTop.add(new Label("Survival type"), 0, 1);
    kmTop.add(comboSurvival, 1, 1);/*from w ww  .  j a v  a 2s  .  c  om*/
    comboSurvival.setTooltip(new Tooltip("Specify overall or recurrence-free survival (if applicable)"));
    comboSurvival.setMaxWidth(Double.MAX_VALUE);
    GridPane.setHgrow(comboMainMeasurement, Priority.ALWAYS);
    GridPane.setHgrow(comboSurvival, Priority.ALWAYS);
    kmTop.setHgap(5);
    paneKaplanMeier.setTop(kmTop);
    //      kmDisplay.setOrientation(Orientation.VERTICAL);

    histogramDisplay = new HistogramDisplay(model, false);

    comboMainMeasurement.getSelectionModel().selectedItemProperty().addListener((v, o, n) -> {
        histogramDisplay.refreshCombo();
        histogramDisplay.showHistogram(n);
        updateSurvivalCurves();
    });
    comboMeasurementMethod.getSelectionModel().selectedItemProperty().addListener((v, o, n) -> {
        histogramDisplay.refreshHistogram();
        scatterPane.updateChart();
        updateSurvivalCurves();
    });
    comboSurvival.getSelectionModel().selectedItemProperty().addListener((v, o, n) -> {
        updateSurvivalCurves();
    });

    // Create a Tab for showing images
    BorderPane paneImages = new BorderPane();
    CheckBox cbShowOverlay = new CheckBox("Show overlay");
    imageAvailability.addListener((c, v, n) -> {
        if (n == ImageAvailability.OVERLAY_ONLY)
            cbShowOverlay.setSelected(true);
        else if (n == ImageAvailability.IMAGE_ONLY)
            cbShowOverlay.setSelected(false);
        cbShowOverlay.setDisable(n != ImageAvailability.BOTH);
    });
    ListView<TMAEntry> listImages = new ListView<>();
    listImages.setCellFactory(v -> new ImageListCell(cbShowOverlay.selectedProperty(), imageCache));
    listImages.widthProperty().addListener((v, o, n) -> listImages.refresh());
    listImages.setStyle("-fx-control-inner-background-alt: -fx-control-inner-background ;");
    table.getSelectionModel().getSelectedItems().addListener((Change<? extends TreeItem<TMAEntry>> e) -> {
        List<TMAEntry> entries = new ArrayList<>();
        for (TreeItem<TMAEntry> item : e.getList()) {
            if (item.getChildren().isEmpty()) {
                if (item.getValue().hasImage() || item.getValue().hasOverlay())
                    entries.add(item.getValue());
            } else {
                for (TreeItem<TMAEntry> item2 : item.getChildren()) {
                    if (item2.getValue().hasImage() || item2.getValue().hasOverlay())
                        entries.add(item2.getValue());
                }
            }
            listImages.getItems().setAll(entries);
        }
    });
    cbShowOverlay.setAlignment(Pos.CENTER);
    cbShowOverlay.setMaxWidth(Double.MAX_VALUE);
    cbShowOverlay.setPadding(new Insets(5, 5, 5, 5));
    cbShowOverlay.selectedProperty().addListener((v, o, n) -> listImages.refresh());
    paneImages.setCenter(listImages);
    paneImages.setTop(cbShowOverlay);

    // Determine visibility based upon whether there are any images to show
    //      Tab tabImages = new Tab("Images", paneImages);

    ScrollPane scrollPane = new ScrollPane(paneKaplanMeier);
    scrollPane.setFitToWidth(true);
    scrollPane.setFitToHeight(true);
    scrollPane.setVbarPolicy(ScrollBarPolicy.AS_NEEDED);
    scrollPane.setHbarPolicy(ScrollBarPolicy.AS_NEEDED);
    Tab tabSurvival = new Tab("Survival", scrollPane);
    tabPane.getTabs().addAll(new Tab("Table", getCustomizeTablePane()),
            //            tabImages,
            new Tab("Histogram", histogramDisplay.getPane()), new Tab("Scatterplot", scatterPane.getPane()),
            tabSurvival);
    tabPane.setTabClosingPolicy(TabClosingPolicy.UNAVAILABLE);

    //      if (imageAvailability.get() != ImageAvailability.NONE)
    //         tabPane.getTabs().add(1, tabImages);
    //      
    //      imageAvailability.addListener((c, v, n) -> {
    //         if (n == ImageAvailability.NONE)
    //            tabPane.getTabs().remove(tabImages);
    //         else if (!tabPane.getTabs().contains(tabImages))
    //            tabPane.getTabs().add(1, tabImages);
    //      });

    //      tabSurvival.visibleProperty().bind(
    //            Bindings.createBooleanBinding(() -> !survivalColumns.isEmpty(), survivalColumns)
    //            );

    pane.setCenter(tabPane);

    pane.setMinWidth(350);

    return pane;
}

From source file:editeurpanovisu.EditeurPanovisu.java

private ScrollPane afficheLegende() {
    double positionX = 0;
    double positionY = 0;
    AnchorPane apLegende = new AnchorPane();
    ScrollPane spLegende = new ScrollPane(apLegende);
    spLegende.getStyleClass().add("legendePane");

    apLegende.setMinWidth(1000);//from   ww w.j av  a 2s .  co  m
    apLegende.setMinHeight(150);
    apLegende.setPrefWidth(1000);
    apLegende.setPrefHeight(150);
    apLegende.setMaxWidth(1000);
    apLegende.setMaxHeight(150);
    positionY = (pano.getLayoutY() + pano.getPrefHeight() + 10);

    Circle point = new Circle(30, 20, 5);
    point.setFill(Color.YELLOW);
    point.setStroke(Color.RED);
    point.setCursor(Cursor.DEFAULT);
    Circle point2 = new Circle(30, 60, 5);
    point2.setFill(Color.BLUE);
    point2.setStroke(Color.YELLOW);
    point2.setCursor(Cursor.DEFAULT);
    Circle point3 = new Circle(30, 100, 5);
    point3.setFill(Color.GREEN);
    point3.setStroke(Color.YELLOW);
    point3.setCursor(Cursor.DEFAULT);
    Polygon polygon = new Polygon();
    polygon.getPoints().addAll(new Double[] { 15.0, 2.0, 2.0, 2.0, 2.0, 15.0, -2.0, 15.0, -2.0, 2.0, -15.0, 2.0,
            -15.0, -2.0, -2.0, -2.0, -2.0, -15.0, 2.0, -15.0, 2.0, -2.0, 15.0, -2.0 });
    polygon.setStrokeLineJoin(StrokeLineJoin.MITER);
    polygon.setFill(Color.BLUEVIOLET);
    polygon.setStroke(Color.YELLOW);
    polygon.setId("PoV");
    polygon.setLayoutX(500);
    polygon.setLayoutY(20);
    Label lblHS = new Label(rb.getString("main.legendeHS"));
    Label lblHSImage = new Label(rb.getString("main.legendeHSImage"));
    //Label lblHSHTML = new Label(rb.getString("main.legendeHSHTML"));
    Label lblPoV = new Label(rb.getString("main.legendePoV"));
    Label lblNord = new Label(rb.getString("main.legendeNord"));
    Line ligneNord = new Line(500, 45, 500, 65);
    ligneNord.setStroke(Color.RED);
    ligneNord.setStrokeWidth(3);
    lblHS.setLayoutX(50);
    lblHS.setLayoutY(10);
    lblHSImage.setLayoutX(50);
    lblHSImage.setLayoutY(50);
    //lblHSHTML.setLayoutX(50);
    //lblHSHTML.setLayoutY(90);
    lblPoV.setLayoutX(520);
    lblPoV.setLayoutY(10);
    lblNord.setLayoutX(520);
    lblNord.setLayoutY(50);
    //        apLegende.getChildren().addAll(lblHS, point, lblHSImage, point2, lblHSHTML, point3, lblPoV, polygon, lblNord, ligneNord);
    apLegende.getChildren().addAll(lblHS, point, lblHSImage, point2, lblPoV, polygon, lblNord, ligneNord);
    apLegende.setId("legende");
    apLegende.setVisible(true);
    if (largeurMax - 50 < 1004) {
        spLegende.setPrefWidth(largeurMax - 50);
        spLegende.setMaxWidth(largeurMax - 50);
        positionX = 25;
    } else {
        spLegende.setPrefWidth(1004);
        spLegende.setMaxWidth(1004);
        positionX = (largeurMax - 1004) / 2.d;
    }
    spLegende.setLayoutX(positionX);
    spLegende.setLayoutY(positionY);
    spLegende.setVbarPolicy(ScrollPane.ScrollBarPolicy.NEVER);
    spLegende.setHbarPolicy(ScrollPane.ScrollBarPolicy.AS_NEEDED);

    return spLegende;
}

From source file:editeurpanovisu.EditeurPanovisu.java

/**
 *
 * @param stPrimaryStage//from  w  w  w  . j  ava 2s . co 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:editeurpanovisu.EditeurPanovisu.java

/**
 *
 * @return//w ww . j  ava 2  s.co  m
 */
private static ScrollPane spAfficheLegende() {
    double positionX;
    double positionY;
    AnchorPane apLegende = new AnchorPane();
    ScrollPane spLegende = new ScrollPane(apLegende);
    spLegende.getStyleClass().add("legendePane");

    apLegende.setMinWidth(1000);
    apLegende.setMinHeight(150);
    apLegende.setPrefWidth(1000);
    apLegende.setPrefHeight(150);
    apLegende.setMaxWidth(1000);
    apLegende.setMaxHeight(150);
    positionY = (spVuePanoramique.getPrefHeight() - apLegende.getPrefHeight() - 15);

    Circle circPoint = new Circle(30, 20, 5);
    circPoint.setFill(Color.YELLOW);
    circPoint.setStroke(Color.RED);
    circPoint.setCursor(Cursor.DEFAULT);
    Circle circPoint2 = new Circle(30, 40, 5);
    circPoint2.setFill(Color.BLUE);
    circPoint2.setStroke(Color.YELLOW);
    circPoint2.setCursor(Cursor.DEFAULT);
    Circle circPoint3 = new Circle(30, 60, 5);
    circPoint3.setFill(Color.GREEN);
    circPoint3.setStroke(Color.YELLOW);
    circPoint3.setCursor(Cursor.DEFAULT);
    Polygon polygonCroix = new Polygon();
    polygonCroix.getPoints().addAll(new Double[] { 15.0, 2.0, 2.0, 2.0, 2.0, 15.0, -2.0, 15.0, -2.0, 2.0, -15.0,
            2.0, -15.0, -2.0, -2.0, -2.0, -2.0, -15.0, 2.0, -15.0, 2.0, -2.0, 15.0, -2.0 });
    polygonCroix.setStrokeLineJoin(StrokeLineJoin.MITER);
    polygonCroix.setFill(Color.BLUEVIOLET);
    polygonCroix.setStroke(Color.YELLOW);
    polygonCroix.setId("PoV");
    polygonCroix.setLayoutX(500);
    polygonCroix.setLayoutY(20);
    Label lblHS = new Label(rbLocalisation.getString("main.legendeHS"));
    Label lblHSImage = new Label(rbLocalisation.getString("main.legendeHSImage"));
    Label lblHSHTML = new Label(rbLocalisation.getString("main.legendeHSHTML"));
    Label lblPoV = new Label(rbLocalisation.getString("main.legendePoV"));
    Label lblNord = new Label(rbLocalisation.getString("main.legendeNord"));
    Line lineNord = new Line(500, 45, 500, 65);
    lineNord.setStroke(Color.RED);
    lineNord.setStrokeWidth(3);
    lblHS.setLayoutX(50);
    lblHS.setLayoutY(15);
    lblHSImage.setLayoutX(50);
    lblHSImage.setLayoutY(35);
    lblHSHTML.setLayoutX(50);
    lblHSHTML.setLayoutY(55);
    lblPoV.setLayoutX(520);
    lblPoV.setLayoutY(15);
    lblNord.setLayoutX(520);
    lblNord.setLayoutY(55);
    apLegende.getChildren().addAll(lblHS, circPoint, lblHSImage, circPoint2, lblHSHTML, circPoint3, lblPoV,
            polygonCroix, lblNord, lineNord);
    apLegende.setId("legende");
    apLegende.setVisible(true);
    if (largeurMax - 50 < 1004) {
        spLegende.setPrefWidth(largeurMax - 50);
        spLegende.setMaxWidth(largeurMax - 50);
        positionX = 25;
    } else {
        spLegende.setPrefWidth(1004);
        spLegende.setMaxWidth(1004);
        positionX = (largeurMax - 1004) / 2.d;
    }
    spLegende.setLayoutX(positionX);
    spLegende.setLayoutY(positionY);
    spLegende.setVbarPolicy(ScrollPane.ScrollBarPolicy.NEVER);
    spLegende.setHbarPolicy(ScrollPane.ScrollBarPolicy.AS_NEEDED);

    return spLegende;
}