1+ package com .xwintop .xJavaFxTool .controller .littleTools ;
2+
3+ import com .xwintop .xJavaFxTool .services .littleTools .FileMergeToolService ;
4+ import com .xwintop .xJavaFxTool .view .littleTools .FileMergeToolView ;
5+ import com .xwintop .xcore .util .javafx .FileChooserUtil ;
6+ import com .xwintop .xcore .util .javafx .TooltipUtil ;
7+ import javafx .application .Platform ;
8+ import javafx .event .ActionEvent ;
9+ import javafx .fxml .FXML ;
10+ import javafx .stage .FileChooser ;
11+ import lombok .Getter ;
12+ import lombok .Setter ;
13+ import lombok .extern .slf4j .Slf4j ;
14+
15+ import javax .swing .filechooser .FileSystemView ;
16+ import java .io .File ;
17+ import java .net .URL ;
18+ import java .util .ArrayList ;
19+ import java .util .List ;
20+ import java .util .ResourceBundle ;
21+
22+ /**
23+ * @ClassName: FileMergeToolController
24+ * @Description: 文件合并工具
25+ * @author: xufeng
26+ * @date: 2019/6/11 17:16
27+ */
28+
29+ @ Getter
30+ @ Setter
31+ @ Slf4j
32+ public class FileMergeToolController extends FileMergeToolView {
33+ private FileMergeToolService fileMergeToolService = new FileMergeToolService (this );
34+ private String [] fileTypeChoiceBoxStrings = new String []{"Excel" , "CSV" , "文件" };
35+
36+ @ Override
37+ public void initialize (URL location , ResourceBundle resources ) {
38+ initView ();
39+ initEvent ();
40+ initService ();
41+ }
42+
43+ private void initView () {
44+ fileTypeChoiceBox .getItems ().addAll (fileTypeChoiceBoxStrings );
45+ fileTypeChoiceBox .getSelectionModel ().select (0 );
46+ }
47+
48+ private void initEvent () {
49+ FileChooserUtil .setOnDrag (selectFileTextField , FileChooserUtil .FileType .FOLDER );
50+ FileChooserUtil .setOnDrag (saveFilePathTextField , FileChooserUtil .FileType .FOLDER );
51+ }
52+
53+ private void initService () {
54+ }
55+
56+ @ FXML
57+ private void selectFileAction (ActionEvent event ) {
58+ List <File > files = null ;
59+ try {
60+ FileChooser fileChooser = new FileChooser ();
61+ fileChooser .setTitle ("请选择文件" );
62+ fileChooser .setInitialDirectory (FileSystemView .getFileSystemView ().getHomeDirectory ());
63+ files = fileChooser .showOpenMultipleDialog (null );
64+ } catch (NullPointerException e ) {
65+ log .error ("选择文件错误" , e );
66+ }
67+ if (files != null ) {
68+ List <String > strings = new ArrayList <>();
69+ for (File file : files ) {
70+ strings .add (file .getPath ());
71+ }
72+ selectFileTextField .setText (String .join ("|" , strings ));
73+ }
74+ }
75+
76+ @ FXML
77+ private void saveFilePathAction (ActionEvent event ) {
78+ File file = FileChooserUtil .chooseDirectory ();
79+ if (file != null ) {
80+ saveFilePathTextField .setText (file .getPath ());
81+ }
82+ }
83+
84+ @ FXML
85+ private void mergeAction (ActionEvent event ) {
86+ TooltipUtil .showToast ("正在解析请稍后..." );
87+ new Thread (() -> {
88+ try {
89+ fileMergeToolService .mergeAction ();
90+ log .info ("解析完成。" );
91+ Platform .runLater (() -> {
92+ TooltipUtil .showToast ("解析完成。" );
93+ });
94+ } catch (Exception e ) {
95+ log .error ("解析失败:" , e );
96+ }
97+ }).start ();
98+ }
99+ }
0 commit comments