1
2
3
4
5
6
7
8
9
10
11 package com.jsql.view.swing.manager;
12
13 import com.jsql.util.LogLevelUtil;
14 import com.jsql.view.swing.list.ItemList;
15 import com.jsql.view.swing.manager.util.StateButton;
16 import com.jsql.view.swing.util.I18nViewUtil;
17 import com.jsql.view.swing.util.MediatorHelper;
18 import org.apache.logging.log4j.LogManager;
19 import org.apache.logging.log4j.Logger;
20
21 import javax.swing.*;
22 import java.awt.*;
23 import java.awt.event.ActionEvent;
24 import java.awt.event.ActionListener;
25 import java.util.Arrays;
26 import java.util.List;
27 import java.util.stream.Collectors;
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().getMediatorVendor().getSqlite(),
57 MediatorHelper.model().getMediatorVendor().getDerby(),
58 MediatorHelper.model().getMediatorVendor().getH2(),
59 MediatorHelper.model().getMediatorVendor().getHsqldb(),
60 MediatorHelper.model().getMediatorVendor().getMysql(),
61 MediatorHelper.model().getMediatorVendor().getPostgres()
62 ).contains(MediatorHelper.model().getMediatorVendor().getVendor())) {
63 LOGGER.log(
64 LogLevelUtil.CONSOLE_ERROR,
65 "Read file for [{}] not implemented, share a working example to GitHub to speed up release",
66 MediatorHelper.model().getMediatorVendor().getVendor()
67 );
68 return;
69 }
70 new SwingWorker<>() {
71 @Override
72 protected Object doInBackground() {
73 Thread.currentThread().setName("SwingWorkerManagerFile");
74 if (ManagerFile.this.run.getState() == StateButton.STARTABLE) {
75 ManagerFile.this.run.setText(I18nViewUtil.valueByKey("FILE_RUN_BUTTON_STOP"));
76 ManagerFile.this.run.setState(StateButton.STOPPABLE);
77 ManagerFile.this.horizontalGlue.setVisible(false);
78 ManagerFile.this.progressBar.setVisible(true);
79 try {
80 List<String> filePaths = ManagerFile.this.listPaths.getSelectedValuesList().stream().map(ItemList::toString).collect(Collectors.toList());
81 MediatorHelper.model().getResourceAccess().readFile(filePaths);
82 } catch (InterruptedException e) {
83 LOGGER.log(LogLevelUtil.IGNORE, e, e);
84 Thread.currentThread().interrupt();
85 } catch (Exception e) {
86 LOGGER.log(LogLevelUtil.CONSOLE_ERROR, e, e);
87 }
88 ManagerFile.this.endProcess();
89 } else {
90 MediatorHelper.model().getResourceAccess().stopSearchFile();
91 ManagerFile.this.run.setEnabled(false);
92 ManagerFile.this.run.setState(StateButton.STOPPING);
93 }
94 return null;
95 }
96 }.execute();
97 }
98 }
99 }