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