+package fr.orsay.lri.varna.components;
+
+import java.awt.BorderLayout;
+import java.awt.Dimension;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.FocusEvent;
+import java.awt.event.FocusListener;
+import java.awt.event.KeyEvent;
+import java.awt.event.KeyListener;
+import java.io.IOException;
+
+import javax.swing.JButton;
+import javax.swing.JEditorPane;
+import javax.swing.JFrame;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTextArea;
+import javax.swing.JTextField;
+
+import fr.orsay.lri.varna.VARNAPanel;
+import fr.orsay.lri.varna.controlers.ControleurScriptParser;
+import fr.orsay.lri.varna.models.VARNAConfig;
+
+public class VARNAConsole extends JFrame implements ActionListener, FocusListener, KeyListener {
+
+ private VARNAPanel _vp;
+
+ private JButton _quitButton;
+ private JPanel _contentPanel;
+ private JPanel _quitPanel;
+ private JTextField _input;
+ private JEditorPane _output;
+ private JScrollPane _scrolls;
+
+ public VARNAConsole(VARNAPanel vp)
+ {
+ _vp = vp;
+ init();
+ }
+
+ private void init()
+ {
+ _quitButton = new JButton("Exit");
+ _quitPanel = new JPanel();
+ _contentPanel = new JPanel();
+ _input = new JTextField("Your command here...");
+ _output = new JEditorPane();
+ _scrolls = new JScrollPane(_output);
+
+ _input.addFocusListener(this);
+ _input.addKeyListener(this);
+
+ _output.setText(VARNAConfig.getFullName()+" console\n");
+ _output.setPreferredSize(new Dimension(500,300));
+ _output.setEditable(false);
+
+ _quitPanel.add(_quitButton);
+
+ _quitButton.addActionListener(this);
+
+ _contentPanel.setLayout(new BorderLayout());
+ _contentPanel.add(_scrolls,BorderLayout.CENTER);
+ _contentPanel.add(_input,BorderLayout.SOUTH);
+
+ getContentPane().setLayout(new BorderLayout());
+ getContentPane().add(_contentPanel,BorderLayout.CENTER);
+ getContentPane().add(_quitPanel,BorderLayout.SOUTH);
+
+ pack();
+ }
+
+public void actionPerformed(ActionEvent arg0) {
+ setVisible(false);
+}
+
+private boolean _firstFocus = true;
+
+public void focusGained(FocusEvent arg0) {
+ if (_firstFocus)
+ {
+ _input.setSelectionStart(0);
+ _input.setSelectionEnd(_input.getText().length());
+ _firstFocus = false;
+ }
+}
+
+public void focusLost(FocusEvent arg0) {
+ // TODO Auto-generated method stub
+
+}
+
+public void keyPressed(KeyEvent arg0) {
+ // TODO Auto-generated method stub
+
+}
+
+public void keyReleased(KeyEvent arg0) {
+ // TODO Auto-generated method stub
+
+}
+
+public void keyTyped(KeyEvent arg0) {
+ // TODO Auto-generated method stub
+ char c = arg0.getKeyChar();
+ if (c=='\n')
+ {
+ try {
+ ControleurScriptParser.executeScript(_vp,_input.getText());
+ } catch (Exception e) {
+ _output.setText(_output.getText()+e.getMessage()+'\n');
+ e.printStackTrace();
+ }
+ }
+}
+
+
+
+}