View Javadoc
1   package com.jsql.view.swing.panel.preferences;
2   
3   import com.jsql.util.StringUtil;
4   import com.jsql.view.swing.panel.PanelPreferences;
5   import com.jsql.view.swing.text.JPopupTextArea;
6   import com.jsql.view.swing.text.JTextAreaPlaceholder;
7   import com.jsql.view.swing.text.listener.DocumentListenerEditing;
8   import com.jsql.view.swing.util.MediatorHelper;
9   
10  import javax.swing.*;
11  import java.awt.*;
12  
13  public class PanelUserAgent extends JPanel {
14      
15      private final JCheckBox checkboxIsCustomUserAgent = new JCheckBox("Randomize agent with the following list:", MediatorHelper.model().getMediatorUtils().getPreferencesUtil().isUserAgentRandom());
16  
17      public PanelUserAgent(PanelPreferences panelPreferences) {
18          var userAgents = StringUtil.getFile("swing/list/user-agent.txt");
19          MediatorHelper.model().getMediatorUtils().getUserAgentUtil().setCustomUserAgent(userAgents);
20  
21          this.checkboxIsCustomUserAgent.addActionListener(panelPreferences.getActionListenerSave());
22  
23          JTextArea textfieldCustomUserAgent = new JPopupTextArea(new JTextAreaPlaceholder("User agent list")).getProxy();
24          textfieldCustomUserAgent.setMinimumSize(new Dimension(40000, 100));
25          textfieldCustomUserAgent.getCaret().setBlinkRate(500);
26          textfieldCustomUserAgent.setText(userAgents);
27          MediatorHelper.model().getMediatorUtils().getUserAgentUtil().setCustomUserAgent(userAgents);
28          textfieldCustomUserAgent.getDocument().addDocumentListener(new DocumentListenerEditing() {
29              @Override
30              public void process() {
31                  MediatorHelper.model().getMediatorUtils().getUserAgentUtil().setCustomUserAgent(
32                      textfieldCustomUserAgent.getText()
33                  );
34              }
35          });
36          textfieldCustomUserAgent.setCaretPosition(0);
37          var scrollPane = new JScrollPane(textfieldCustomUserAgent);
38  
39          var labelOrigin = new JLabel("<html><b>Connection user agent</b></html>");
40          labelOrigin.setBorder(PanelGeneral.MARGIN);
41  
42          var groupLayout = new GroupLayout(this);
43          this.setLayout(groupLayout);
44  
45          groupLayout.setHorizontalGroup(
46              groupLayout
47              .createSequentialGroup()
48              .addGroup(
49                  groupLayout
50                  .createParallelGroup(GroupLayout.Alignment.LEADING)
51                  .addComponent(labelOrigin)
52                  .addComponent(this.checkboxIsCustomUserAgent)
53                  .addComponent(scrollPane)
54              )
55          );
56  
57          groupLayout.setVerticalGroup(
58              groupLayout
59              .createSequentialGroup()
60              .addGroup(
61                  groupLayout
62                  .createParallelGroup(GroupLayout.Alignment.BASELINE)
63                  .addComponent(labelOrigin)
64              )
65              .addGroup(
66                  groupLayout
67                  .createParallelGroup(GroupLayout.Alignment.BASELINE)
68                  .addComponent(this.checkboxIsCustomUserAgent)
69              )
70              .addGroup(
71                  groupLayout
72                  .createParallelGroup(GroupLayout.Alignment.BASELINE)
73                  .addComponent(scrollPane)
74              )
75          );
76      }
77  
78      public JCheckBox getCheckboxIsCustomUserAgent() {
79          return this.checkboxIsCustomUserAgent;
80      }
81  }