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 }