X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=srcjar%2Ffr%2Forsay%2Flri%2Fvarna%2Fcomponents%2FVARNAConsole.java;fp=srcjar%2Ffr%2Forsay%2Flri%2Fvarna%2Fcomponents%2FVARNAConsole.java;h=2b8b8a9f923f9388e3e889de590f27c811906b8f;hb=65740880573a48adc758bec3939ece9d9ae104dd;hp=0000000000000000000000000000000000000000;hpb=71aa78b8a7d54e5aeb6b278310dfd735efb77477;p=jalview.git diff --git a/srcjar/fr/orsay/lri/varna/components/VARNAConsole.java b/srcjar/fr/orsay/lri/varna/components/VARNAConsole.java new file mode 100644 index 0000000..2b8b8a9 --- /dev/null +++ b/srcjar/fr/orsay/lri/varna/components/VARNAConsole.java @@ -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(); + } + } +} + + + +}