2b8b8a9f923f9388e3e889de590f27c811906b8f
[jalview.git] / src2 / fr / orsay / lri / varna / components / VARNAConsole.java
1 package fr.orsay.lri.varna.components;
2
3 import java.awt.BorderLayout;
4 import java.awt.Dimension;
5 import java.awt.event.ActionEvent;
6 import java.awt.event.ActionListener;
7 import java.awt.event.FocusEvent;
8 import java.awt.event.FocusListener;
9 import java.awt.event.KeyEvent;
10 import java.awt.event.KeyListener;
11 import java.io.IOException;
12
13 import javax.swing.JButton;
14 import javax.swing.JEditorPane;
15 import javax.swing.JFrame;
16 import javax.swing.JPanel;
17 import javax.swing.JScrollPane;
18 import javax.swing.JTextArea;
19 import javax.swing.JTextField;
20
21 import fr.orsay.lri.varna.VARNAPanel;
22 import fr.orsay.lri.varna.controlers.ControleurScriptParser;
23 import fr.orsay.lri.varna.models.VARNAConfig;
24
25 public class VARNAConsole extends JFrame implements ActionListener, FocusListener, KeyListener {
26
27   private VARNAPanel _vp;
28         
29   private JButton _quitButton; 
30   private JPanel _contentPanel; 
31   private JPanel _quitPanel; 
32   private JTextField _input; 
33   private JEditorPane _output; 
34   private JScrollPane _scrolls; 
35         
36   public VARNAConsole(VARNAPanel vp)
37   {
38           _vp = vp;
39           init();
40   }
41   
42   private void init()
43   {
44           _quitButton = new JButton("Exit");
45           _quitPanel = new JPanel();
46           _contentPanel = new JPanel();
47           _input = new JTextField("Your command here...");
48           _output = new JEditorPane();
49           _scrolls = new JScrollPane(_output);
50
51           _input.addFocusListener(this);
52           _input.addKeyListener(this);
53           
54           _output.setText(VARNAConfig.getFullName()+" console\n");
55           _output.setPreferredSize(new Dimension(500,300));
56           _output.setEditable(false);
57           
58           _quitPanel.add(_quitButton);
59           
60           _quitButton.addActionListener(this);
61           
62           _contentPanel.setLayout(new BorderLayout());
63           _contentPanel.add(_scrolls,BorderLayout.CENTER);
64           _contentPanel.add(_input,BorderLayout.SOUTH);
65
66           getContentPane().setLayout(new BorderLayout());
67           getContentPane().add(_contentPanel,BorderLayout.CENTER);
68           getContentPane().add(_quitPanel,BorderLayout.SOUTH);
69           
70           pack();
71   }
72
73 public void actionPerformed(ActionEvent arg0) {
74         setVisible(false);
75 }
76
77 private boolean _firstFocus = true;
78
79 public void focusGained(FocusEvent arg0) {
80         if (_firstFocus)
81         {
82                 _input.setSelectionStart(0);
83                 _input.setSelectionEnd(_input.getText().length());
84                 _firstFocus = false;
85         }
86 }
87
88 public void focusLost(FocusEvent arg0) {
89         // TODO Auto-generated method stub
90         
91 }
92
93 public void keyPressed(KeyEvent arg0) {
94         // TODO Auto-generated method stub
95         
96 }
97
98 public void keyReleased(KeyEvent arg0) {
99         // TODO Auto-generated method stub
100         
101 }
102
103 public void keyTyped(KeyEvent arg0) {
104         // TODO Auto-generated method stub
105         char c = arg0.getKeyChar();
106         if (c=='\n')
107         {
108                 try {
109                         ControleurScriptParser.executeScript(_vp,_input.getText());
110                 } catch (Exception e) {
111                         _output.setText(_output.getText()+e.getMessage()+'\n');
112                         e.printStackTrace();
113                 }
114         }
115 }
116   
117   
118   
119 }