package gui; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JPanel; import javax.swing.JScrollBar; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.JTextField; import javax.swing.border.EmptyBorder; import api.ApiClient; @SuppressWarnings("serial") public class ConsolePanel extends JPanel { private ApiClient client; private JTextArea areaConsole; private JTextField txtCommand; public ConsolePanel() { this.setLayout(new GridBagLayout()); //CREATE SERVICE this.client = new ApiClient();//new RpcClient(new RpcServiceImpl()); //PADDING this.setBorder(new EmptyBorder(10, 10, 10, 10)); //TEXTAREA GBC GridBagConstraints areaGBC = new GridBagConstraints(); areaGBC.insets = new Insets(5,5,5,5); areaGBC.fill = GridBagConstraints.BOTH; areaGBC.anchor = GridBagConstraints.NORTHWEST; areaGBC.weighty = 1; areaGBC.weightx = 1; areaGBC.gridx = 0; areaGBC.gridy = 0; //TEXTBOX GBC GridBagConstraints txtGBC = new GridBagConstraints(); txtGBC.insets = new Insets(5,5,5,5); txtGBC.fill = GridBagConstraints.HORIZONTAL; txtGBC.anchor = GridBagConstraints.NORTHWEST; txtGBC.weightx = 1; txtGBC.gridx = 0; txtGBC.gridy = 1; //TEXTAREA this.areaConsole = new JTextArea(); this.areaConsole.setLineWrap(true); this.areaConsole.setEditable(false); JScrollPane scrollPane = new JScrollPane(this.areaConsole); JScrollBar vertical = scrollPane.getVerticalScrollBar(); vertical.setValue(vertical.getMaximum()); this.add(scrollPane, areaGBC); //TEXTFIELD this.txtCommand = new JTextField(); this.txtCommand.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { //GET COMMAND String command = txtCommand.getText(); areaConsole.append("[COMMAND] " + command + "\n"); //EMPTY COMMAND FIELD txtCommand.setText(""); //GET RESULT String result = client.executeCommand(command); //APPEND RESULT areaConsole.append("[RESULT] " + result + "\n"); } }); this.add(this.txtCommand, txtGBC); } }