Search in sources :

Example 11 with TreeView

use of javafx.scene.control.TreeView in project uPMT by coco35700.

the class MainViewController method initialize.

@Override
public void initialize(URL arg0, ResourceBundle arg1) {
    Image image = ResourceLoader.loadImage("momentIcon.png");
    this.ajoutMomentButton.setImage(image);
    if (!main.getCurrentProject().getInterviews().isEmpty()) {
        main.setCurrentDescription(main.getCurrentProject().getInterviews().getFirst());
    }
    treeViewSchema.setEditable(true);
    treeViewInterview.setEditable(true);
    treeViewSchema.setCellFactory((TreeView<TypeController> t) -> new TypeTreeView(main));
    treeViewInterview.setCellFactory((TreeView<DescriptionInterview> t) -> new InterviewTreeView(main));
    TreeItem<TypeController> Schemaroot;
    TreeItem<DescriptionInterview> Interviewroot;
    Schemaroot = new TreeItem<TypeController>();
    Interviewroot = new TreeItem<DescriptionInterview>();
    Schemaroot.getChildren().add(SchemaTransformations.SchemaToTreeView(main.getCurrentProject().getSchema()));
    Interviewroot.getChildren().add(SchemaTransformations.EntretienToTreeView(main.getCurrentProject().getInterviews()));
    treeViewSchema.setRoot(Schemaroot);
    treeViewSchema.setShowRoot(false);
    treeViewInterview.setRoot(Interviewroot);
    treeViewInterview.setShowRoot(false);
    main.setTreeViewSchema(treeViewSchema);
    main.setTreeViewInterview(treeViewInterview);
    if (main.getCurrentDescription() != null) {
        // Give time to end initializing the scheme on the left
        Platform.runLater(new Runnable() {

            @Override
            public void run() {
                for (DescriptionInterview d : main.getCurrentProject().getInterviews()) {
                    GridPane gp = new GridPane();
                    gp.setMinHeight(200);
                    gp.setPadding(new Insets(100, 0, 0, 0));
                    addLinesToGrid(gp);
                    main.setGrid(gp);
                    MainViewTransformations.loadGridData(gp, main, d);
                    interviewsPane.put(d, gp);
                }
                updateGrid();
            }
        });
    }
    ajoutMomentButton.setOnDragDetected(new EventHandler<MouseEvent>() {

        @Override
        public void handle(MouseEvent event) {
            // TODO Auto-generated method stub
            if (main.getCurrentDescription() != null) {
                Dragboard db = ajoutMomentButton.startDragAndDrop(TransferMode.ANY);
                ClipboardContent content = new ClipboardContent();
                content.putString("ajoutMoment");
                content.putRtf("Moment Vide");
                db.setContent(content);
            }
        }
    });
    if (main.getCurrentDescription() != null)
        setDroppableText(main.getCurrentDescription().getDescripteme().getTexte().trim());
    paneDragText = new Pane();
    paneDragText.setStyle("-fx-background-color:#f4f4f4;");
    paneDragText.setCursor(Cursor.MOVE);
    paneDragText.setOpacity(0.2);
    // Quand on selectionne du texte, on met un panel devant le text pour pouvoir le dragger
    droppableText.addEventFilter(MouseEvent.MOUSE_RELEASED, new EventHandler<MouseEvent>() {

        @Override
        public void handle(MouseEvent mouseEvent) {
            if (!droppableText.getSelectedText().equals("") && !droppableText.getSelectedText().equals(" ") && !droppableText.getSelectedText().equals("\n"))
                stackForDragDrop.getChildren().add(paneDragText);
        }
    });
    // Quand on clique sur la panel qui s'est mit par dessus le texte, on l'enleve pour � nouveau rendre le texte selectionnable
    paneDragText.setOnMouseClicked(new EventHandler<MouseEvent>() {

        @Override
        public void handle(MouseEvent arg0) {
            droppableText.deselect();
            stackForDragDrop.getChildren().clear();
            stackForDragDrop.getChildren().add(droppableText);
        }
    });
    // Quand on drag le panel qui s'est mit par dessus le text
    paneDragText.setOnDragDetected(new EventHandler<MouseEvent>() {

        @Override
        public void handle(MouseEvent event) {
            // TODO Auto-generated method stub
            if (main.getCurrentDescription() != null) {
                Dragboard db = ajoutMomentButton.startDragAndDrop(TransferMode.ANY);
                ClipboardContent content = new ClipboardContent();
                content.putString("ajoutMoment");
                content.put(DataFormat.HTML, droppableText.getSelectedText());
                db.setContent(content);
            }
        }
    });
    buttonTextInterview.setOnMouseClicked(new EventHandler<MouseEvent>() {

        @Override
        public void handle(MouseEvent arg0) {
            if (droppableText.isDisabled()) {
                buttonTextInterview.setImage(ResourceLoader.loadImage("closeMenuBlack.png"));
                droppableText.setDisable(false);
                mainSplitPane.setDividerPosition(1, splitPos);
                stackForDragDrop.getChildren().add(droppableText);
                topBarContainerTextInterview.setCenter(textInterviewTitle);
                paneOfTextArea.setMaxWidth(paneOfTextArea.USE_COMPUTED_SIZE);
            } else {
                buttonTextInterview.setImage(ResourceLoader.loadImage("openMenuBlack.png"));
                droppableText.deselect();
                droppableText.setDisable(true);
                splitPos = mainSplitPane.getDividers().get(1).getPosition();
                mainSplitPane.setDividerPosition(1, 1);
                stackForDragDrop.getChildren().clear();
                topBarContainerTextInterview.setCenter(null);
                paneOfTextArea.setMaxWidth(buttonTextInterview.getFitWidth());
            }
        }
    });
}
Also used : MomentAddTypeController(controller.controller.MomentAddTypeController) TypeController(controller.controller.TypeController) MomentRemoveTypeController(controller.controller.MomentRemoveTypeController) TypeTreeView(controller.typeTreeView.TypeTreeView) GridPane(javafx.scene.layout.GridPane) Insets(javafx.geometry.Insets) MouseEvent(javafx.scene.input.MouseEvent) ClipboardContent(javafx.scene.input.ClipboardContent) DescriptionInterview(model.DescriptionInterview) Image(javafx.scene.image.Image) StackPane(javafx.scene.layout.StackPane) ScrollPane(javafx.scene.control.ScrollPane) Pane(javafx.scene.layout.Pane) SplitPane(javafx.scene.control.SplitPane) FlowPane(javafx.scene.layout.FlowPane) BorderPane(javafx.scene.layout.BorderPane) GridPane(javafx.scene.layout.GridPane) InterviewTreeView(controller.interviewTreeView.InterviewTreeView) InterviewTreeView(controller.interviewTreeView.InterviewTreeView) TreeView(javafx.scene.control.TreeView) TypeTreeView(controller.typeTreeView.TypeTreeView) Dragboard(javafx.scene.input.Dragboard)

Example 12 with TreeView

use of javafx.scene.control.TreeView in project blue by kunstmusik.

the class BlueJFXControlsApplication method setTreeViewTest.

private void setTreeViewTest(TabPane root) {
    TreeView<String> tv = new TreeView<>();
    tv.setRoot(new TreeItem<>("TEST"));
    root.getTabs().add(new Tab("TreeView", tv));
}
Also used : Tab(javafx.scene.control.Tab) TreeView(javafx.scene.control.TreeView)

Example 13 with TreeView

use of javafx.scene.control.TreeView in project Challenger4SysAdmins by fvarrui.

the class TreeEditorController method initialize.

@Override
public void initialize(URL location, ResourceBundle resources) {
    treeView.setCellFactory(new Callback<TreeView<Object>, TreeCell<Object>>() {

        public TreeCell<Object> call(TreeView<Object> param) {
            return new CustomTreeCell();
        }
    });
    challenge.addListener((o, ov, nv) -> {
        if (nv != null)
            treeView.setRoot(new ChallengeTreeItem(nv));
        else
            treeView.setRoot(null);
    });
    selectedItem.addListener((o, ov, nv) -> {
        if (nv != null) {
            seleccionado.set(nv.getValue());
        } else {
            seleccionado.set(null);
        }
    });
    selectedItem.bind(treeView.getSelectionModel().selectedItemProperty());
    addButton.disableProperty().bind(seleccionado.isNull());
    deleteButton.disableProperty().bind(seleccionado.isNull());
}
Also used : CustomTreeCell(fvarrui.sysadmin.editor.components.tree.CustomTreeCell) TreeCell(javafx.scene.control.TreeCell) CustomTreeCell(fvarrui.sysadmin.editor.components.tree.CustomTreeCell) TreeView(javafx.scene.control.TreeView) ChallengeTreeItem(fvarrui.sysadmin.editor.components.tree.ChallengeTreeItem)

Example 14 with TreeView

use of javafx.scene.control.TreeView in project MiscellaneousStudy by mikoto2000.

the class TreeViewSample method start.

@Override
public void start(Stage stage) {
    // ルート要素である TreeItem を作成
    TreeItem<String> root = new TreeItem<String>("Root Node");
    // ルートの子要素を作成
    TreeItem<String> item1 = new TreeItem<String>("Item 1");
    TreeItem<String> item2 = new TreeItem<String>("Item 2");
    TreeItem<String> item3 = new TreeItem<String>("Item 3");
    TreeItem<String> item4 = new TreeItem<String>("Item 4");
    // item4 の子要素
    TreeItem<String> item41 = new TreeItem<String>("Item 4-1");
    TreeItem<String> item42 = new TreeItem<String>("Item 4-2");
    TreeItem<String> item43 = new TreeItem<String>("Item 4-3");
    // item4 に子要素を追加する
    ObservableList<TreeItem<String>> image4tChildren = item4.getChildren();
    image4tChildren.add(item41);
    image4tChildren.add(item42);
    image4tChildren.add(item43);
    // ルート要素に子要素を追加する
    ObservableList<TreeItem<String>> rootChildren = root.getChildren();
    rootChildren.add(item1);
    rootChildren.add(item2);
    rootChildren.add(item3);
    rootChildren.add(item4);
    // 子を持つノードを開く
    root.setExpanded(true);
    item4.setExpanded(true);
    // TreeView にルート要素を指定しながらインスタンス化
    TreeView<String> treeView = new TreeView<String>(root);
    // シーン作成
    Scene scene = new Scene(treeView);
    stage.setScene(scene);
    stage.setTitle("Tree View Sample");
    stage.show();
}
Also used : TreeItem(javafx.scene.control.TreeItem) TreeView(javafx.scene.control.TreeView) Scene(javafx.scene.Scene)

Example 15 with TreeView

use of javafx.scene.control.TreeView in project PathWeaver by wpilibsuite.

the class MainController method setupTreeView.

private void setupTreeView(TreeView<String> treeView, TreeItem<String> treeRoot, MenuItem newItem) {
    treeView.setRoot(treeRoot);
    treeView.setContextMenu(new ContextMenu());
    treeView.getContextMenu().getItems().addAll(newItem, FxUtils.menuItem("Delete", event -> delete()));
    treeRoot.setExpanded(true);
    // Don't show the roots "Paths" and "Autons" - cleaner appearance
    treeView.setShowRoot(false);
}
Also used : Button(javafx.scene.control.Button) Scene(javafx.scene.Scene) Path(edu.wpi.first.pathweaver.path.Path) TreeItem(javafx.scene.control.TreeItem) WpilibPath(edu.wpi.first.pathweaver.path.wpilib.WpilibPath) ArrayList(java.util.ArrayList) Level(java.util.logging.Level) ContextMenu(javafx.scene.control.ContextMenu) FXMLLoader(javafx.fxml.FXMLLoader) GridPane(javafx.scene.layout.GridPane) Pane(javafx.scene.layout.Pane) Alert(javafx.scene.control.Alert) KeyCode(javafx.scene.input.KeyCode) MenuItem(javafx.scene.control.MenuItem) Files(java.nio.file.Files) CurrentSelections(edu.wpi.first.pathweaver.global.CurrentSelections) IOException(java.io.IOException) KeyEvent(javafx.scene.input.KeyEvent) Logger(java.util.logging.Logger) TreeView(javafx.scene.control.TreeView) FXML(javafx.fxml.FXML) List(java.util.List) Stage(javafx.stage.Stage) ObservableValue(javafx.beans.value.ObservableValue) ChangeListener(javafx.beans.value.ChangeListener) ContextMenu(javafx.scene.control.ContextMenu)

Aggregations

TreeView (javafx.scene.control.TreeView)23 TreeItem (javafx.scene.control.TreeItem)14 VBox (javafx.scene.layout.VBox)9 TreeCell (javafx.scene.control.TreeCell)8 ArrayList (java.util.ArrayList)7 Scene (javafx.scene.Scene)7 Button (javafx.scene.control.Button)7 File (java.io.File)6 IOException (java.io.IOException)6 FXML (javafx.fxml.FXML)5 Label (javafx.scene.control.Label)5 TextField (javafx.scene.control.TextField)5 KeyCode (javafx.scene.input.KeyCode)5 List (java.util.List)4 Optional (java.util.Optional)4 Level (java.util.logging.Level)4 Logger (java.util.logging.Logger)4 FXMLLoader (javafx.fxml.FXMLLoader)4 Insets (javafx.geometry.Insets)4 StackPane (javafx.scene.layout.StackPane)4