1 package com.jsql.view.swing.panel.address;
2
3 import com.jsql.util.I18nUtil;
4 import com.jsql.util.LogLevelUtil;
5 import com.jsql.view.swing.manager.util.StateButton;
6 import com.jsql.view.swing.panel.PanelAddressBar;
7 import com.jsql.view.swing.util.MediatorHelper;
8 import org.apache.logging.log4j.LogManager;
9 import org.apache.logging.log4j.Logger;
10
11 import javax.swing.*;
12 import java.awt.event.ActionEvent;
13 import java.awt.event.ActionListener;
14
15 public class ActionStart implements ActionListener {
16
17 private static final Logger LOGGER = LogManager.getRootLogger();
18
19 protected final PanelAddressBar panelAddressBar;
20
21 public ActionStart(PanelAddressBar panelAddressBar) {
22 this.panelAddressBar = panelAddressBar;
23 }
24
25 @Override
26 public void actionPerformed(ActionEvent e) {
27
28 if (this.panelAddressBar.getPanelTrailingAddress().getButtonStart().getState() == StateButton.STARTABLE) {
29 this.startInjection();
30 } else if (this.panelAddressBar.getPanelTrailingAddress().getButtonStart().getState() == StateButton.STOPPABLE) {
31 this.stopInjection();
32 }
33 }
34
35 protected void startInjection() {
36 int option = JOptionPane.OK_OPTION;
37 if (MediatorHelper.model().shouldErasePreviousInjection()) {
38
39
40
41 try {
42 option = JOptionPane.showConfirmDialog(
43 MediatorHelper.frame(),
44 I18nUtil.valueByKey("DIALOG_NEW_INJECTION_TEXT"),
45 I18nUtil.valueByKey("DIALOG_NEW_INJECTION_TITLE"),
46 JOptionPane.OK_CANCEL_OPTION
47 );
48 } catch (IllegalArgumentException | ClassCastException e) {
49 LOGGER.log(LogLevelUtil.CONSOLE_JAVA, e, e);
50 }
51 }
52
53 if (option == JOptionPane.OK_OPTION) {
54 this.panelAddressBar.getPanelTrailingAddress().getButtonStart().setToolTipText(I18nUtil.valueByKey("BUTTON_STOP_TOOLTIP"));
55 this.panelAddressBar.getPanelTrailingAddress().getButtonStart().setInjectionRunning();
56 this.panelAddressBar.getPanelTrailingAddress().getLoader().setVisible(true);
57
58 MediatorHelper.frame().resetInterface();
59
60 MediatorHelper.model().getMediatorUtils().getParameterUtil().controlInput(
61 this.panelAddressBar.getTextFieldAddress().getText().trim(),
62 this.panelAddressBar.getTextFieldRequest().getText().trim(),
63 this.panelAddressBar.getTextFieldHeader().getText().trim(),
64 this.panelAddressBar.getMethodInjection(),
65 this.panelAddressBar.getTypeRequest(),
66 false
67 );
68 }
69 }
70
71 private void stopInjection() {
72 this.panelAddressBar.getPanelTrailingAddress().getLoader().setVisible(false);
73 this.panelAddressBar.getPanelTrailingAddress().getButtonStart().setInjectionStopping();
74 MediatorHelper.model().setIsStoppedByUser(true);
75 }
76 }