JAL-3026 srcjar files for VARNA and log4j
[jalview.git] / srcjar / fr / orsay / lri / varna / components / VARNAConsole.java
diff --git a/srcjar/fr/orsay/lri/varna/components/VARNAConsole.java b/srcjar/fr/orsay/lri/varna/components/VARNAConsole.java
new file mode 100644 (file)
index 0000000..2b8b8a9
--- /dev/null
@@ -0,0 +1,119 @@
+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();
+               }
+       }
+}
+  
+  
+  
+}