2018-01-30 19:35:42 +01:00
|
|
|
package net.knarcraft.serverlauncher.userinterface;
|
|
|
|
|
2018-01-31 21:24:54 +01:00
|
|
|
import net.knarcraft.serverlauncher.profile.Profile;
|
|
|
|
|
2018-01-30 19:35:42 +01:00
|
|
|
import javax.swing.*;
|
2018-01-31 21:24:54 +01:00
|
|
|
import javax.swing.text.DefaultCaret;
|
2018-01-30 19:35:42 +01:00
|
|
|
import java.awt.*;
|
2018-01-31 21:24:54 +01:00
|
|
|
import java.awt.event.ActionEvent;
|
|
|
|
import java.awt.event.ActionListener;
|
|
|
|
|
|
|
|
import static javax.swing.text.DefaultCaret.ALWAYS_UPDATE;
|
2018-01-30 19:35:42 +01:00
|
|
|
|
2018-01-30 19:46:14 +01:00
|
|
|
/**
|
|
|
|
* Acts as a single writable/readable tab
|
|
|
|
* Has a box for user input, and a textArea for server output.
|
|
|
|
*
|
|
|
|
* @author Kristian Knarvik <kristian.knarvik@knett.no>
|
|
|
|
* @version 0.0.0.1
|
|
|
|
* @since 0.0.0.1
|
|
|
|
*/
|
2018-01-31 21:24:54 +01:00
|
|
|
public class Console implements ActionListener {
|
2018-01-30 23:38:22 +01:00
|
|
|
private final JTextField textInput;
|
|
|
|
private final JTextArea textOutput;
|
2018-01-31 21:24:54 +01:00
|
|
|
private final String name;
|
2018-02-02 20:09:54 +01:00
|
|
|
private final JPanel panel;
|
2018-01-30 19:35:42 +01:00
|
|
|
|
2018-01-31 21:24:54 +01:00
|
|
|
Console(JTabbedPane tab, String name) {
|
|
|
|
this.name = name;
|
2018-02-02 20:09:54 +01:00
|
|
|
panel = new JPanel();
|
2018-01-30 19:35:42 +01:00
|
|
|
tab.addTab(name, null, panel, null);
|
|
|
|
panel.setLayout(new BorderLayout(0, 0));
|
|
|
|
|
|
|
|
textInput = new JTextField();
|
|
|
|
panel.add(textInput, BorderLayout.SOUTH);
|
|
|
|
textInput.setColumns(10);
|
2018-01-31 21:24:54 +01:00
|
|
|
textInput.addActionListener(this);
|
2018-01-30 19:35:42 +01:00
|
|
|
|
|
|
|
textOutput = new JTextArea();
|
|
|
|
JScrollPane scroll = new JScrollPane(textOutput);
|
|
|
|
panel.add(scroll, BorderLayout.CENTER);
|
|
|
|
textOutput.setEditable(false);
|
2018-01-31 21:24:54 +01:00
|
|
|
DefaultCaret caret = (DefaultCaret) textOutput.getCaret();
|
|
|
|
caret.setUpdatePolicy(ALWAYS_UPDATE);
|
|
|
|
textOutput.setLineWrap(true);
|
|
|
|
}
|
|
|
|
|
|
|
|
public void output(String text) {
|
|
|
|
this.textOutput.setText(this.textOutput.getText() + "\n" + text);
|
|
|
|
}
|
|
|
|
|
2018-02-02 20:09:54 +01:00
|
|
|
public JPanel getPanel() {
|
|
|
|
return this.panel;
|
|
|
|
}
|
|
|
|
|
2018-01-31 21:24:54 +01:00
|
|
|
@Override
|
|
|
|
public void actionPerformed(ActionEvent e) {
|
|
|
|
if (e.getSource() == textInput) {
|
|
|
|
String text = textInput.getText();
|
|
|
|
Profile profile = GUI.getGUI().currentProfile();
|
|
|
|
profile.sendCommand(this.name, text);
|
|
|
|
textInput.setText("");
|
|
|
|
}
|
2018-01-30 19:35:42 +01:00
|
|
|
}
|
|
|
|
}
|