/* This page is part of the Game of Life source code */

package org.bitstorm.util;


import java.awt.AWTEvent;
import java.awt.Button;
import java.awt.Color;
import java.awt.Dialog;
import java.awt.Event;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Panel;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;


/**
 * Shows a text file in a dialog box.
 * It has a vertical scrollbar and a close button.
 *
 @author Edwin Martin
 */
public class TextFileDialog extends Dialog {
  /**
   * Constructs a TextFileDialog.
   @param parent parent frame
   @param title window title
   @param filename filename to show (from jar-file)
   */
  public TextFileDialogFrame parent, String title, String filename, int posX, int posY ) {
    superparent, title );
    String manualText;
    Button okButton = new Button(" Close ");
    okButton.addActionListener(
      new ActionListener() {
        public void actionPerformed(ActionEvent e) {
          close();
        }
      }
    );

    EasyFile file = new EasyFilethis.getClass().getResourceAsStreamfilename ) );
    try {
      manualText = file.readText();
    catch (IOException e) {
      manualText = "";
    }
    
    TextArea manualTextArea = new TextAreamanualText, 2050, TextArea.SCROLLBARS_VERTICAL_ONLY );
    manualTextArea.setBackgroundColor.white );  // improve readability
    manualTextArea.setForegroundColor.black );  // we don't want white text on a white background
    manualTextArea.setEditable(false);

    Panel buttonPanel = new Panel();
    buttonPanel.setLayoutnew FlowLayoutFlowLayout.CENTER ) );
    buttonPanel.addokButton );
    
    this.add"Center", manualTextArea );
    this.add"South", buttonPanel );
    this.pack();
    this.enableEvents(Event.WINDOW_DESTROY);
    this.setLocationposX, posY );
    this.show();
  }

  /**
   * Close dialog box.
   */
  private void close() {
    this.hide();
    this.dispose();
  }

  /**
   * Handle close window button.
   @see java.awt.Component#processEvent(java.awt.AWTEvent)
   */
  public void processEventAWTEvent e ) {
    if e.getID() == Event.WINDOW_DESTROY )
      close();
  }
}
Java2html