Возможность работы в консольном режиме
This commit is contained in:
parent
e8b0acfcde
commit
fad24bf8bd
@ -11,17 +11,51 @@ import javax.swing.*;
|
|||||||
* @author aNNiMON
|
* @author aNNiMON
|
||||||
*/
|
*/
|
||||||
public final class ControlFrame extends JFrame {
|
public final class ControlFrame extends JFrame {
|
||||||
|
|
||||||
private static final String TITLE = "Лена-бот";
|
private static final String TITLE = "Лена-бот";
|
||||||
|
|
||||||
public static void main(String[] args) throws Exception {
|
public static void main(String[] args) throws Exception {
|
||||||
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
|
boolean noGUI = false;
|
||||||
EventQueue.invokeLater(() -> new ControlFrame().setVisible(true));
|
for (int i = 0; i < args.length; i++) {
|
||||||
|
switch (args[i]) {
|
||||||
|
case "-nogui":
|
||||||
|
case "-cli":
|
||||||
|
noGUI = true;
|
||||||
|
break;
|
||||||
|
case "-prefix":
|
||||||
|
if (i + 1 >= args.length) break;
|
||||||
|
i++;
|
||||||
|
Config.ANSWER_PREFIX = args[i];
|
||||||
|
break;
|
||||||
|
case "-name":
|
||||||
|
case "-names":
|
||||||
|
if (i + 1 >= args.length) break;
|
||||||
|
i++;
|
||||||
|
Config.BOT_NAMES = args[i];
|
||||||
|
break;
|
||||||
|
case "-token":
|
||||||
|
if (i + 1 >= args.length) break;
|
||||||
|
i++;
|
||||||
|
Config.access_token = args[i];
|
||||||
|
break;
|
||||||
|
case "-gettoken":
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (noGUI) {
|
||||||
|
StatisticsProcessor.init();
|
||||||
|
new Thread(new MainThread(true)).start();
|
||||||
|
} else {
|
||||||
|
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
|
||||||
|
EventQueue.invokeLater(() -> new ControlFrame().setVisible(true));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public ControlFrame() {
|
public ControlFrame() {
|
||||||
super(TITLE);
|
super(TITLE);
|
||||||
|
|
||||||
final JMenuBar menu = new JMenuBar();
|
final JMenuBar menu = new JMenuBar();
|
||||||
final JMenu botMenu = new JMenu("Бот");
|
final JMenu botMenu = new JMenu("Бот");
|
||||||
final JMenuItem launchMenuItem = new JMenuItem("Запустить");
|
final JMenuItem launchMenuItem = new JMenuItem("Запустить");
|
||||||
@ -34,17 +68,17 @@ public final class ControlFrame extends JFrame {
|
|||||||
helpMenu.add(commandsMenuItem);
|
helpMenu.add(commandsMenuItem);
|
||||||
menu.add(helpMenu);
|
menu.add(helpMenu);
|
||||||
setJMenuBar(menu);
|
setJMenuBar(menu);
|
||||||
|
|
||||||
setLocationByPlatform(true);
|
setLocationByPlatform(true);
|
||||||
setDefaultCloseOperation(EXIT_ON_CLOSE);
|
setDefaultCloseOperation(EXIT_ON_CLOSE);
|
||||||
setPreferredSize(new Dimension(450, 320));
|
setPreferredSize(new Dimension(450, 320));
|
||||||
|
|
||||||
final JTabbedPane tabbedPane = new JTabbedPane();
|
final JTabbedPane tabbedPane = new JTabbedPane();
|
||||||
final JPanel settingsPanel = new JPanel();
|
final JPanel settingsPanel = new JPanel();
|
||||||
settingsPanel.setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4));
|
settingsPanel.setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4));
|
||||||
settingsPanel.setLayout(new BoxLayout(settingsPanel, BoxLayout.PAGE_AXIS));
|
settingsPanel.setLayout(new BoxLayout(settingsPanel, BoxLayout.PAGE_AXIS));
|
||||||
final JTextField accessTokenField = createTextFieldLine(settingsPanel,
|
final JTextField accessTokenField = createTextFieldLine(settingsPanel,
|
||||||
"Access token:", String.valueOf(Config.access_token));
|
"Access token:", Config.access_token);
|
||||||
final JTextField botNamesTokenField = createTextFieldLine(settingsPanel,
|
final JTextField botNamesTokenField = createTextFieldLine(settingsPanel,
|
||||||
"Обращение:", String.valueOf(Config.BOT_NAMES));
|
"Обращение:", String.valueOf(Config.BOT_NAMES));
|
||||||
final JTextField answerPrefixField = createTextFieldLine(settingsPanel,
|
final JTextField answerPrefixField = createTextFieldLine(settingsPanel,
|
||||||
@ -71,16 +105,16 @@ public final class ControlFrame extends JFrame {
|
|||||||
final JTextPane queryLog = new JTextPane();
|
final JTextPane queryLog = new JTextPane();
|
||||||
queryLog.setFont(chatLog.getFont());
|
queryLog.setFont(chatLog.getFont());
|
||||||
tabbedPane.addTab("Лог запросов", new JScrollPane(queryLog));
|
tabbedPane.addTab("Лог запросов", new JScrollPane(queryLog));
|
||||||
|
|
||||||
final JTextPane errorsLog = new JTextPane();
|
final JTextPane errorsLog = new JTextPane();
|
||||||
errorsLog.setFont(new Font("Monospaced", Font.PLAIN, 10));
|
errorsLog.setFont(new Font("Monospaced", Font.PLAIN, 10));
|
||||||
tabbedPane.addTab("Лог ошибок", new JScrollPane(errorsLog));
|
tabbedPane.addTab("Лог ошибок", new JScrollPane(errorsLog));
|
||||||
|
|
||||||
add(tabbedPane);
|
add(tabbedPane);
|
||||||
pack();
|
pack();
|
||||||
|
|
||||||
Log.init(chatLog, queryLog, errorsLog);
|
Log.init(chatLog, queryLog, errorsLog);
|
||||||
|
|
||||||
// Actions
|
// Actions
|
||||||
launchMenuItem.addActionListener((e) -> {
|
launchMenuItem.addActionListener((e) -> {
|
||||||
if (!MainThread.run) {
|
if (!MainThread.run) {
|
||||||
@ -104,7 +138,7 @@ public final class ControlFrame extends JFrame {
|
|||||||
Log.error(ex);
|
Log.error(ex);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
savePreferencesButton.addActionListener((e) -> {
|
savePreferencesButton.addActionListener((e) -> {
|
||||||
Config.access_token = accessTokenField.getText();
|
Config.access_token = accessTokenField.getText();
|
||||||
Config.BOT_NAMES = botNamesTokenField.getText();
|
Config.BOT_NAMES = botNamesTokenField.getText();
|
||||||
@ -119,7 +153,7 @@ public final class ControlFrame extends JFrame {
|
|||||||
}).start();
|
}).start();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private static JTextField createTextFieldLine(JPanel panel, String label, String initialText) {
|
private static JTextField createTextFieldLine(JPanel panel, String label, String initialText) {
|
||||||
panel.add(new JLabel(label));
|
panel.add(new JLabel(label));
|
||||||
final JTextField textField = new JTextField(initialText);
|
final JTextField textField = new JTextField(initialText);
|
||||||
@ -127,5 +161,5 @@ public final class ControlFrame extends JFrame {
|
|||||||
panel.add(textField);
|
panel.add(textField);
|
||||||
return textField;
|
return textField;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -77,6 +77,7 @@ public final class Log {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void insertTo(StyledDocument doc, String text, String style) {
|
public static void insertTo(StyledDocument doc, String text, String style) {
|
||||||
|
if (doc == null) return;
|
||||||
try {
|
try {
|
||||||
doc.insertString(doc.getLength(), text, doc.getStyle(style));
|
doc.insertString(doc.getLength(), text, doc.getStyle(style));
|
||||||
} catch (BadLocationException ex) { }
|
} catch (BadLocationException ex) { }
|
||||||
|
Loading…
Reference in New Issue
Block a user