1
2
3
4
5
6
7
8
9
10
11 package com.jsql.view.swing.manager;
12
13 import com.jsql.util.I18nUtil;
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.commons.lang3.StringUtils;
20 import org.apache.logging.log4j.LogManager;
21 import org.apache.logging.log4j.Logger;
22
23 import java.awt.*;
24 import java.util.stream.Collectors;
25
26
27
28
29 public class ManagerAdminPage extends AbstractManagerList {
30
31 private static final Logger LOGGER = LogManager.getRootLogger();
32
33
34
35
36 public ManagerAdminPage() {
37 super("swing/list/admin-page.txt");
38
39 this.buildRunButton("ADMIN_PAGE_RUN_BUTTON_LABEL", "ADMIN_PAGE_RUN_BUTTON_TOOLTIP");
40 this.run.setName("runManagerAdminPage");
41 this.run.addActionListener(actionEvent -> this.runSearch());
42 this.listPaths.setName("listManagerAdminPage");
43
44 this.lastLine.add(this.horizontalGlue);
45 this.lastLine.add(this.progressBar);
46 this.lastLine.add(this.run);
47 this.add(this.lastLine, BorderLayout.SOUTH);
48 }
49
50 private void runSearch() {
51 if (this.listPaths.getSelectedValuesList().isEmpty()) {
52 LOGGER.log(LogLevelUtil.CONSOLE_ERROR, "Select at least one admin page in the list");
53 return;
54 }
55
56 String urlAddressBar = MediatorHelper.panelAddressBar().getTextFieldAddress().getText();
57 if (!urlAddressBar.isEmpty() && !urlAddressBar.matches("(?i)^https?://.*")) {
58 if (!urlAddressBar.matches("(?i)^\\w+://.*")) {
59 LOGGER.log(LogLevelUtil.CONSOLE_INFORM, () -> I18nUtil.valueByKey("LOG_ADMIN_NO_PROTOCOL"));
60 urlAddressBar = "http://"+ urlAddressBar;
61 } else {
62 LOGGER.log(LogLevelUtil.CONSOLE_INFORM, () -> I18nUtil.valueByKey("LOG_ADMIN_UNKNOWN_PROTOCOL"));
63 return;
64 }
65 }
66
67 String urlFinal = urlAddressBar;
68 new Thread(() -> this.searchAdminPages(urlFinal), "ThreadAdminPage").start();
69 }
70
71 private void searchAdminPages(String urlAddressBar) {
72 if (this.run.getState() == StateButton.STARTABLE) {
73 if (StringUtils.isEmpty(urlAddressBar)) {
74 LOGGER.log(LogLevelUtil.CONSOLE_ERROR, "Missing URL in address bar");
75 } else {
76 LOGGER.log(LogLevelUtil.CONSOLE_DEFAULT, "{} admin pages...", () -> I18nUtil.valueByKey("LOG_CHECKING"));
77 this.run.setText(I18nViewUtil.valueByKey("ADMIN_PAGE_RUN_BUTTON_STOP"));
78 this.run.setState(StateButton.STOPPABLE);
79 this.progressBar.setVisible(true);
80 this.horizontalGlue.setVisible(false);
81 MediatorHelper.model().getResourceAccess().createAdminPages(
82 urlAddressBar,
83 this.listPaths.getSelectedValuesList().stream().map(ItemList::toString).collect(Collectors.toList())
84 );
85 this.endProcess();
86 }
87 } else if (this.run.getState() == StateButton.STOPPABLE) {
88 MediatorHelper.model().getResourceAccess().stopSearchAdmin();
89 this.run.setEnabled(false);
90 this.run.setState(StateButton.STOPPING);
91 }
92 }
93 }