1
2
3
4
5
6
7
8
9
10
11 package com.jsql.view.swing.manager;
12
13 import com.jsql.model.accessible.CallableFile;
14 import com.jsql.util.LogLevelUtil;
15 import com.jsql.view.swing.list.ItemList;
16 import com.jsql.view.swing.manager.util.StateButton;
17 import com.jsql.view.swing.util.I18nViewUtil;
18 import com.jsql.view.swing.util.MediatorHelper;
19 import org.apache.logging.log4j.LogManager;
20 import org.apache.logging.log4j.Logger;
21
22 import javax.swing.*;
23 import java.awt.*;
24 import java.awt.event.ActionEvent;
25 import java.awt.event.ActionListener;
26 import java.util.Arrays;
27 import java.util.List;
28
29
30
31
32 public class ManagerFile extends AbstractManagerList {
33
34 private static final Logger LOGGER = LogManager.getRootLogger();
35
36
37
38
39 public ManagerFile() {
40 super("swing/list/file.txt");
41 this.buildRunButton("FILE_RUN_BUTTON_LABEL", "FILE_RUN_BUTTON_TOOLTIP");
42 this.run.setEnabled(false);
43 this.run.addActionListener(new ActionFile());
44 this.buildPrivilege();
45 this.add(this.lastLine, BorderLayout.SOUTH);
46 }
47
48 private class ActionFile implements ActionListener {
49 @Override
50 public void actionPerformed(ActionEvent e) {
51 if (ManagerFile.this.listPaths.getSelectedValuesList().isEmpty()) {
52 LOGGER.log(LogLevelUtil.CONSOLE_ERROR, "Select in the list at least one file to read");
53 return;
54 }
55 if (!Arrays.asList(
56 MediatorHelper.model().getMediatorEngine().getSqlite(),
57 MediatorHelper.model().getMediatorEngine().getDerby(),
58 MediatorHelper.model().getMediatorEngine().getH2(),
59 MediatorHelper.model().getMediatorEngine().getHsqldb(),
60 MediatorHelper.model().getMediatorEngine().getMysql(),
61 MediatorHelper.model().getMediatorEngine().getPostgres(),
62 MediatorHelper.model().getMediatorEngine().getSqlserver()
63 ).contains(MediatorHelper.model().getMediatorEngine().getEngine())) {
64 LOGGER.log(
65 LogLevelUtil.CONSOLE_ERROR,
66 CallableFile.READ_FILE_NOT_IMPLEMENTED,
67 MediatorHelper.model().getMediatorEngine().getEngine()
68 );
69 return;
70 }
71 new SwingWorker<>() {
72 @Override
73 protected Object doInBackground() {
74 Thread.currentThread().setName("SwingWorkerManagerFile");
75 if (ManagerFile.this.run.getState() == StateButton.STARTABLE) {
76 ManagerFile.this.run.setText(I18nViewUtil.valueByKey("FILE_RUN_BUTTON_STOP"));
77 ManagerFile.this.run.setState(StateButton.STOPPABLE);
78 ManagerFile.this.horizontalGlue.setVisible(false);
79 ManagerFile.this.progressBar.setVisible(true);
80 try {
81 List<String> filePaths = ManagerFile.this.listPaths.getSelectedValuesList().stream().map(ItemList::toString).toList();
82 MediatorHelper.model().getResourceAccess().readFile(filePaths);
83 } catch (InterruptedException e) {
84 LOGGER.log(LogLevelUtil.IGNORE, e, e);
85 Thread.currentThread().interrupt();
86 } catch (Exception e) {
87 LOGGER.log(LogLevelUtil.CONSOLE_ERROR, e, e);
88 }
89 ManagerFile.this.endProcess();
90 } else {
91 MediatorHelper.model().getResourceAccess().stopSearchFile();
92 ManagerFile.this.run.setEnabled(false);
93 ManagerFile.this.run.setState(StateButton.STOPPING);
94 }
95 return null;
96 }
97 }.execute();
98 }
99 }
100 }