Horus Doc || Java GUI Reference || Doxygen's quick Index  

HistoryShell Class Reference

Inheritance diagram for HistoryShell::

IDLScriptShell List of all members.

Public Methods

 HistoryShell ()
InputStream getInputStream ()
OutputStream getOutputStream ()
void actionPerformed (ActionEvent e)
void componentHidden (ComponentEvent e)
void componentMoved (ComponentEvent e)
void componentShown (ComponentEvent e)
void componentResized (ComponentEvent e)
void keyPressed (KeyEvent e)
void keyReleased (KeyEvent e)
void keyTyped (KeyEvent e)

Static Public Methods

void main (String[] args)

Constructor & Destructor Documentation

HistoryShell::HistoryShell   [inline]
 

00024 {
00025     createContents();
00026 
00027     _textField.addActionListener(this);
00028     _textField.addKeyListener(this);
00029     _textField.setVisible(false);
00030     _textField.setCursor(Cursor.getPredefinedCursor(Cursor.TEXT_CURSOR));
00031 
00032     _attr = new SimpleAttributeSet();
00033     StyleConstants.setFontSize(_attr, _textField.getFont().getSize());
00034     StyleConstants.setFontFamily(_attr, _textField.getFont().getFamily());
00035 
00036     _textPane.addComponentListener(this);
00037     _textPane.setEditable(false);
00038 
00039     _history = new HistoryList();
00040 
00041     _input = new HistoryShellInputStream();
00042     _output = new HistoryShellOutputStream();
00043 }


Member Function Documentation

InputStream HistoryShell::getInputStream   [inline]
 

00047 {
00048     return _input;
00049 }

OutputStream HistoryShell::getOutputStream   [inline]
 

00053 {
00054     return _output;
00055 }

void HistoryShell::main String    args[] [inline, static]
 

00059 {
00060     JFrame f = new JFrame("Test");
00061 
00062     HistoryShell sh = new HistoryShell();
00063 
00064     f.getContentPane().add(sh);
00065     f.setDefaultCloseOperation(3);
00066     f.setSize(400,300);
00067     f.show();
00068 
00069     InputStream is = sh.getInputStream();
00070     PrintStream os = new PrintStream(sh.getOutputStream(), true);
00071     byte[] b = new byte[1024];
00072     try {
00073         while(true) {
00074             os.print(">>> ");
00075             int n = is.read(b);
00076             os.println(new String(b, 0, n));
00077         }
00078     }catch(IOException e) {}
00079 
00080 }

void HistoryShell::actionPerformed ActionEvent    e [inline]
 

00083 {
00084     synchronized(_textField)
00085     {
00086         String text = _textField.getText();
00087         _buff = (text+"\n").getBytes();
00088         _buffPos = 0;
00089         _output.write(text+"\n");
00090 
00091         _textField.setText("");
00092         _textField.setVisible(false);
00093         _textField.notifyAll();
00094 
00095         _history.add(text);
00096     }
00097 }

void HistoryShell::componentHidden ComponentEvent    e [inline]
 

00099 {}

void HistoryShell::componentMoved ComponentEvent    e [inline]
 

00100 {}

void HistoryShell::componentShown ComponentEvent    e [inline]
 

00101 {}

void HistoryShell::componentResized ComponentEvent    e [inline]
 

00104 {
00105     placeInputAtEnd();
00106 }

void HistoryShell::keyPressed KeyEvent    e [inline]
 

00110 {
00111     if(e.getKeyCode() == e.VK_UP) {
00112         String text = _history.getPrevious();
00113         if(text != null) _textField.setText(text);
00114         e.consume();
00115     }
00116     else if(e.getKeyCode() == e.VK_DOWN) {
00117         String text = _history.getNext();
00118         if(text != null) _textField.setText(text);
00119         e.consume();
00120     }
00121 
00122     //The call to consume() is to avoid the scroll when UP
00123     //or DOWN are pressed.
00124 }

void HistoryShell::keyReleased KeyEvent    e [inline]
 

00126 {}

void HistoryShell::keyTyped KeyEvent    e [inline]
 

00127 {}


The documentation for this class was generated from the following file:
Generated on Mon Jan 27 15:11:19 2003 for JavaReference by doxygen1.2.12 written by Dimitri van Heesch, © 1997-2001