22
33import com .xwintop .xJavaFxTool .services .epmsTools .gatewayConfTool .GatewayConfToolService ;
44import com .xwintop .xJavaFxTool .view .epmsTools .gatewayConfTool .GatewayConfToolView ;
5- import javafx .application .Platform ;
6- import javafx .beans .value .ChangeListener ;
7- import javafx .beans .value .ObservableValue ;
85import javafx .event .ActionEvent ;
96import javafx .fxml .FXML ;
107import javafx .scene .control .ContextMenu ;
118import javafx .scene .control .MenuItem ;
129import javafx .scene .control .TreeItem ;
10+ import javafx .scene .control .cell .TextFieldTreeCell ;
1311import javafx .scene .input .MouseButton ;
1412import lombok .Getter ;
1513import 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