CCL Home Page
Up Directory CCL StatusPanel.java
/**
 * StatusPanel.java
 * This class acts as TextArea dialog so that the status of any thing can be
 * updated to the user in real time.
 * Created: Tue May 18 11:36:44 1999
 *
 * @author Nathan Stevens
 * @version 0.2
 */
import java.awt.*;
import java.awt.event.*;
import com.sun.java.swing.*;
import com.sun.java.swing.text.*;
import com.sun.java.swing.border.*;
//import javax.swing.*;
//import javax.swing.text.*;
//import javax.swing.border.*;

public class StatusPanel extends JPanel implements ActionListener
{
  private ChemToolFrame frame;
  private static int N_ROWS = 10;        // Default number of rows
  private static int N_COLS = 45;         // Default number of cols  
  private JTextArea textArea;
  private static String title = "Status";

  // Constructors
  public StatusPanel()
    {
      this(title, N_ROWS, N_COLS);
    }
      
  public StatusPanel(String t)
    {
      this(t, N_ROWS, N_COLS);
    }
  public StatusPanel(int rows, int cols)
    {
      this(title, rows, cols);
    }
  public StatusPanel(String t, int rows, int cols)
    {
      setLayout(new BorderLayout());
      
      // Add the TextArea
      textArea = new JTextArea(rows, cols);
      textArea.setLineWrap(true);
      textArea.setWrapStyleWord(true);
      textArea.setEditable(false);

      // add the textarea to scroll pane
      JScrollPane areaScrollPane = new JScrollPane(textArea);

      // add border to scroll pane
      Border border;
      border = new BevelBorder(BevelBorder.LOWERED);
      areaScrollPane.setBorder(border);
 
      // add the scroll pane to panel then add panel to frame
      add(areaScrollPane, "Center");

      // add a button to panel at south position
      JPanel bp = new JPanel();
      bp.setLayout(new FlowLayout(FlowLayout.RIGHT, 5, 5));
     
      JButton button = new JButton("Dismiss");
      button.addActionListener(this);
      button.setActionCommand("dismiss");
      bp.add(button);
      
      add(bp, "South");
     
      // contruct the frame and set it visisble
      frame = new ChemToolFrame(t, this);
    }
  
  // Methods to print string to TextArea
  public void print(String s)
    {
      textArea.append(s);
    }
 
  public void println(String s)
    {
      textArea.append(s + "\n");
    }
  
  public void println(String[] s)
    {
      for(int i = 0; i < s.length; i++)
	{
          textArea.append(s[i] + "\n");
	}
    }
  
  // Method to clear the TextArea
  public void Clear()
    {
      textArea.setText("");
    }

  // Method to handel events
  public void actionPerformed(ActionEvent e)
    {
      String cmd = e.getActionCommand();
      
      if(cmd.equals("dismiss"))
	{
          frame.Close();
	}
    }
}
Modified: Mon May 24 17:39:20 1999 GMT
Page accessed 3709 times since Sun Jun 6 15:41:40 1999 GMT