1 package io.github.magwas.inez.ui;
2
3 import java.io.IOException;
4 import javafx.scene.control.TreeCell;
5 import javafx.scene.control.TreeView;
6 import javafx.util.Callback;
7
8 import org.springframework.beans.factory.annotation.Autowired;
9 import org.springframework.stereotype.Service;
10
11 import io.github.magwas.inez.Inez;
12 import io.github.magwas.inez.element.BridiElement;
13
14 @Service
15 public class CreateTreeViewService {
16
17 @Autowired
18 Inez inez;
19
20 TreeView<BridiElement> apply() throws IOException {
21
22 BridiElement rootElement = inez.root();
23
24 BridiElementTreeItem rootItem = new BridiElementTreeItem(rootElement);
25 TreeView<BridiElement> treeView = new TreeView<>(rootItem);
26
27 treeView.setEditable(true);
28 Callback<TreeView<BridiElement>, TreeCell<BridiElement>> callback = new BridiCellFactory();
29 treeView.setCellFactory(callback);
30
31 treeView.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> {
32 if (newValue != null) {
33 System.out.println("Selected: " + newValue.getValue());
34 }
35 });
36 return treeView;
37 }
38 }