Skip to content

Commit 064e92d

Browse files
committed
添加目录右键菜单。
1 parent a0aeaa7 commit 064e92d

1 file changed

Lines changed: 63 additions & 15 deletions

File tree

src/main/java/com/xwintop/xJavaFxTool/controller/epmsTools/gatewayConfTool/GatewayConfToolController.java

Lines changed: 63 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,12 @@
22

33
import com.xwintop.xJavaFxTool.services.epmsTools.gatewayConfTool.GatewayConfToolService;
44
import com.xwintop.xJavaFxTool.view.epmsTools.gatewayConfTool.GatewayConfToolView;
5-
import javafx.application.Platform;
6-
import javafx.beans.value.ChangeListener;
7-
import javafx.beans.value.ObservableValue;
85
import javafx.event.ActionEvent;
96
import javafx.fxml.FXML;
107
import javafx.scene.control.ContextMenu;
118
import javafx.scene.control.MenuItem;
129
import javafx.scene.control.TreeItem;
10+
import javafx.scene.control.cell.TextFieldTreeCell;
1311
import javafx.scene.input.MouseButton;
1412
import lombok.Getter;
1513
import lombok.Setter;
@@ -33,24 +31,74 @@ public void initialize(URL location, ResourceBundle resources) {
3331

3432
private void initView() {
3533
TreeItem<String> treeItem = new TreeItem<String>("TaskConfig列表");
34+
treeItem.setExpanded(true);
3635
configurationTreeView.setRoot(treeItem);
3736
configurationPathTextField.setText("E:\\ideaWorkspaces\\gatewaySpring\\configuration");
3837
}
3938

4039
private void initEvent() {
41-
configurationTreeView.getSelectionModel().selectedItemProperty()
42-
.addListener(new ChangeListener<TreeItem<String>>() {
43-
@Override
44-
public void changed(ObservableValue<? extends TreeItem<String>> observable,
45-
TreeItem<String> oldValue, TreeItem<String> newValue) {
46-
Platform.runLater(()->{
47-
String name = newValue.getValue();
48-
if (newValue.getChildren().size() == 0) {
49-
gatewayConfToolService.addTaskConfigTabPane(newValue.getParent().getValue(), name);
50-
}
51-
});
52-
}
40+
configurationTreeView.setEditable(true);
41+
configurationTreeView.setCellFactory(TextFieldTreeCell.forTreeView());
42+
configurationTreeView.setOnMouseClicked(event -> {
43+
TreeItem<String> selectedItem = configurationTreeView.getSelectionModel().getSelectedItem();
44+
if (selectedItem == null) {
45+
return;
46+
}
47+
if (event.getButton() == MouseButton.PRIMARY) {
48+
if (!selectedItem.getValue().endsWith("service.yml") && !selectedItem.getValue().equals("TaskConfig列表")) {
49+
gatewayConfToolService.addTaskConfigTabPane(selectedItem.getParent().getValue(), selectedItem.getValue());
50+
}
51+
} else if (event.getButton() == MouseButton.SECONDARY) {
52+
MenuItem menu_UnfoldAll = new MenuItem("展开所有");
53+
menu_UnfoldAll.setOnAction(event1 -> {
54+
configurationTreeView.getRoot().setExpanded(true);
55+
configurationTreeView.getRoot().getChildren().forEach(stringTreeItem -> {
56+
stringTreeItem.setExpanded(true);
57+
});
58+
});
59+
MenuItem menu_FoldAll = new MenuItem("折叠所有");
60+
menu_FoldAll.setOnAction(event1 -> {
61+
configurationTreeView.getRoot().setExpanded(false);
62+
configurationTreeView.getRoot().getChildren().forEach(stringTreeItem -> {
63+
stringTreeItem.setExpanded(false);
64+
});
5365
});
66+
ContextMenu contextMenu = new ContextMenu(menu_UnfoldAll, menu_FoldAll);
67+
68+
if (selectedItem.getValue().endsWith("service.yml")) {
69+
MenuItem menu_AddTask = new MenuItem("添加任务");
70+
menu_AddTask.setOnAction(event1 -> {
71+
TreeItem<String> addItem = new TreeItem<>("newService");
72+
selectedItem.getChildren().add(addItem);
73+
});
74+
contextMenu.getItems().add(menu_AddTask);
75+
MenuItem menu_RemoveFile = new MenuItem("删除文件");
76+
menu_RemoveFile.setOnAction(event1 -> {
77+
selectedItem.getParent().getChildren().remove(selectedItem);
78+
});
79+
contextMenu.getItems().add(menu_RemoveFile);
80+
MenuItem menu_RemoveAll = new MenuItem("删除所有任务");
81+
menu_RemoveAll.setOnAction(event1 -> {
82+
selectedItem.getChildren().clear();
83+
});
84+
contextMenu.getItems().add(menu_RemoveAll);
85+
}
86+
if (!selectedItem.getValue().endsWith("service.yml") && !selectedItem.getValue().equals("TaskConfig列表")) {
87+
MenuItem menu_Copy = new MenuItem("复制选中行");
88+
menu_Copy.setOnAction(event1 -> {
89+
TreeItem<String> addItem = new TreeItem<>(selectedItem.getValue());
90+
selectedItem.getParent().getChildren().add(addItem);
91+
});
92+
contextMenu.getItems().add(menu_Copy);
93+
MenuItem menu_Remove = new MenuItem("删除选中任务");
94+
menu_Remove.setOnAction(event1 -> {
95+
selectedItem.getParent().getChildren().remove(selectedItem);
96+
});
97+
contextMenu.getItems().add(menu_Remove);
98+
}
99+
configurationTreeView.setContextMenu(contextMenu);
100+
}
101+
});
54102
taskConfigTabPane.setOnMouseClicked(event -> {
55103
if (event.getButton() == MouseButton.SECONDARY) {
56104
MenuItem menu_RemoveAll = new MenuItem("关闭所有");

0 commit comments

Comments
 (0)