11package com .xwintop .xJavaFxTool .controller .epmsTools .gatewayConfTool ;
22
33import com .easipass .gateway .entity .TaskConfig ;
4+ import com .jcraft .jsch .ChannelSftp ;
45import com .xwintop .xJavaFxTool .services .epmsTools .gatewayConfTool .GatewayConfToolService ;
56import com .xwintop .xJavaFxTool .view .epmsTools .gatewayConfTool .GatewayConfToolView ;
7+ import javafx .application .Platform ;
68import javafx .event .ActionEvent ;
79import javafx .fxml .FXML ;
810import javafx .scene .control .ContextMenu ;
1315import lombok .Getter ;
1416import lombok .Setter ;
1517import lombok .extern .slf4j .Slf4j ;
18+ import org .apache .commons .beanutils .BeanUtils ;
19+ import org .apache .commons .lang3 .StringUtils ;
1620import org .apache .commons .lang3 .time .DateFormatUtils ;
21+ import org .yaml .snakeyaml .Yaml ;
1722
23+ import java .io .ByteArrayInputStream ;
24+ import java .io .File ;
25+ import java .io .FileWriter ;
26+ import java .io .Writer ;
1827import java .net .URL ;
1928import java .util .Date ;
2029import java .util .Map ;
@@ -38,7 +47,9 @@ private void initView() {
3847 TreeItem <String > treeItem = new TreeItem <String >("TaskConfig列表" );
3948 treeItem .setExpanded (true );
4049 configurationTreeView .setRoot (treeItem );
50+ hostTextField .setText ("127.0.0.1" );
4151 configurationPathTextField .setText ("E:\\ ideaWorkspaces\\ gatewaySpring\\ configuration" );
52+ // configurationPathTextField.setText("/opt/TestXf/configuration");
4253 }
4354
4455 private void initEvent () {
@@ -93,8 +104,21 @@ private void initEvent() {
93104 contextMenu .getItems ().add (menu_AddTask );
94105 MenuItem menu_RemoveFile = new MenuItem ("删除文件" );
95106 menu_RemoveFile .setOnAction (event1 -> {
96- selectedItem .getParent ().getChildren ().remove (selectedItem );
97107 gatewayConfToolService .getTaskConfigFileMap ().remove (selectedItem .getValue ());
108+ if ("127.0.0.1" .equals (hostTextField .getText ())) {
109+ new File (configurationPathTextField .getText (), selectedItem .getValue ()).delete ();
110+ } else {
111+ try {
112+ ChannelSftp channel = gatewayConfToolService .getSftpChannel ();
113+ String remotePath = configurationPathTextField .getText ();
114+ remotePath = StringUtils .appendIfMissing (remotePath , "/" , "/" , "\\ " );
115+ channel .rm (remotePath + selectedItem .getValue ());
116+ gatewayConfToolService .closeSftpSession (channel );
117+ } catch (Exception e ) {
118+ log .error ("删除文件失败:" , e );
119+ }
120+ }
121+ selectedItem .getParent ().getChildren ().remove (selectedItem );
98122 });
99123 contextMenu .getItems ().add (menu_RemoveFile );
100124 MenuItem menu_RemoveAll = new MenuItem ("删除所有任务" );
@@ -105,30 +129,83 @@ private void initEvent() {
105129 contextMenu .getItems ().add (menu_RemoveAll );
106130 MenuItem menu_SaveFile = new MenuItem ("保存文件" );
107131 menu_SaveFile .setOnAction (event1 -> {
132+ try {
133+ if ("127.0.0.1" .equals (hostTextField .getText ())) {
134+ File file = new File (configurationPathTextField .getText (), selectedItem .getValue ());
135+ Yaml yaml = new Yaml ();
136+ Writer writer = new FileWriter (file );
137+ yaml .dump (gatewayConfToolService .getTaskConfigFileMap ().get (selectedItem .getValue ()).values ().toArray (), writer );
138+ writer .close ();
139+ } else {
140+ Yaml yaml = new Yaml ();
141+ byte [] configBytes = yaml .dump (gatewayConfToolService .getTaskConfigFileMap ().get (selectedItem .getValue ()).values ().toArray ()).getBytes ();
142+ ChannelSftp channel = gatewayConfToolService .getSftpChannel ();
143+ String remotePath = configurationPathTextField .getText ();
144+ remotePath = StringUtils .appendIfMissing (remotePath , "/" , "/" , "\\ " );
145+ channel .put (new ByteArrayInputStream (configBytes ), remotePath + selectedItem .getValue ());
146+ gatewayConfToolService .closeSftpSession (channel );
147+ }
148+ } catch (Exception e ) {
149+ e .printStackTrace ();
150+ }
108151 });
109152 contextMenu .getItems ().add (menu_SaveFile );
110153 }
111154 if (!selectedItem .getValue ().endsWith ("service.yml" ) && !selectedItem .getValue ().equals ("TaskConfig列表" )) {
112155 MenuItem menu_Copy = new MenuItem ("复制选中行" );
113156 menu_Copy .setOnAction (event1 -> {
114- TreeItem <String > addItem = new TreeItem <>(selectedItem .getValue ());
115- selectedItem .getParent ().getChildren ().add (addItem );
157+ try {
158+ String configName = selectedItem .getValue () + "_copy" ;
159+ TreeItem <String > addItem = new TreeItem <>(configName );
160+ selectedItem .getParent ().getChildren ().add (addItem );
161+ TaskConfig taskConfig = gatewayConfToolService .getTaskConfigFileMap ().get (selectedItem .getParent ().getValue ()).get (selectedItem .getValue ());
162+ TaskConfig newTaskConfig = (TaskConfig ) BeanUtils .cloneBean (taskConfig );
163+ newTaskConfig .setName (configName );
164+ gatewayConfToolService .getTaskConfigFileMap ().get (selectedItem .getParent ().getValue ()).put (configName , newTaskConfig );
165+ } catch (Exception e ) {
166+ e .printStackTrace ();
167+ }
116168 });
117169 contextMenu .getItems ().add (menu_Copy );
118170 MenuItem menu_Remove = new MenuItem ("删除选中任务" );
119171 menu_Remove .setOnAction (event1 -> {
172+ gatewayConfToolService .getTaskConfigFileMap ().get (selectedItem .getParent ().getValue ()).remove (selectedItem .getValue ());
120173 selectedItem .getParent ().getChildren ().remove (selectedItem );
121174 });
122175 contextMenu .getItems ().add (menu_Remove );
123176 }
124177 configurationTreeView .setContextMenu (contextMenu );
125178 }
126179 });
180+ configurationTreeView .setOnEditCommit (event -> {
181+ if (event .getNewValue ().equals (event .getOldValue ())) {
182+ return ;
183+ }
184+ if (event .getOldValue ().endsWith ("TaskConfig列表" )) {
185+ Platform .runLater (() -> {
186+ event .getTreeItem ().setValue (event .getOldValue ());
187+ });
188+ } else if (event .getOldValue ().endsWith ("service.yml" )) {
189+ if (!event .getNewValue ().endsWith ("service.yml" )) {
190+ Platform .runLater (() -> {
191+ event .getTreeItem ().setValue (event .getOldValue ());
192+ });
193+ return ;
194+ }
195+ gatewayConfToolService .getTaskConfigFileMap ().put (event .getNewValue (), gatewayConfToolService .getTaskConfigFileMap ().get (event .getOldValue ()));
196+ gatewayConfToolService .getTaskConfigFileMap ().remove (event .getOldValue ());
197+ } else {
198+ Map <String , TaskConfig > taskConfigMap = gatewayConfToolService .getTaskConfigFileMap ().get (event .getTreeItem ().getParent ().getValue ());
199+ taskConfigMap .get (event .getOldValue ()).setName (event .getNewValue ());
200+ taskConfigMap .put (event .getNewValue (), taskConfigMap .get (event .getOldValue ()));
201+ taskConfigMap .remove (event .getOldValue ());
202+ }
203+ });
127204 taskConfigTabPane .setOnMouseClicked (event -> {
128205 if (event .getButton () == MouseButton .SECONDARY ) {
129206 MenuItem menu_RemoveAll = new MenuItem ("关闭所有" );
130207 menu_RemoveAll .setOnAction (event1 -> {
131- taskConfigTabPane .getTabs ().removeAll ( taskConfigTabPane . getTabs () );
208+ taskConfigTabPane .getTabs ().clear ( );
132209 gatewayConfToolService .getTaskConfigTabMap ().clear ();
133210 });
134211 taskConfigTabPane .setContextMenu (new ContextMenu (menu_RemoveAll ));
@@ -141,12 +218,17 @@ private void initService() {
141218
142219 @ FXML
143220 private void treeRefurbishAction (ActionEvent event ) {
144- gatewayConfToolService .reloadTaskConfigFile ();
145- taskConfigTabPane .getTabs ().removeAll (taskConfigTabPane .getTabs ());
146- gatewayConfToolService .getTaskConfigTabMap ().clear ();
221+ try {
222+ gatewayConfToolService .reloadTaskConfigFile ();
223+ taskConfigTabPane .getTabs ().removeAll (taskConfigTabPane .getTabs ());
224+ gatewayConfToolService .getTaskConfigTabMap ().clear ();
225+ } catch (Exception e ) {
226+ log .error ("加载配置失败:" , e );
227+ }
147228 }
148229
149230 @ FXML
150231 private void connectAction (ActionEvent event ) {
232+ this .treeRefurbishAction (null );
151233 }
152234}
0 commit comments