/*
 * Aleph Toolkit
 *
 * Copyright 1997, Brown University, Providence, RI.
 * 
 *                         All Rights Reserved
 * 
 * Permission to use, copy, modify, and distribute this software and its
 * documentation for any purpose other than its incorporation into a
 * commercial product is hereby granted without fee, provided that the
 * above copyright notice appear in all copies and that both that
 * copyright notice and this permission notice appear in supporting
 * documentation, and that the name of Brown University not be used in
 * advertising or publicity pertaining to distribution of the software
 * without specific, written prior permission.
 * 
 * BROWN UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ANY
 * PARTICULAR PURPOSE.  IN NO EVENT SHALL BROWN UNIVERSITY BE LIABLE FOR
 * ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 */

package aleph.gui;

import aleph.Host;
import java.awt.Button;
import java.awt.Dialog;
import java.awt.Frame;
import java.awt.Label;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.UnknownHostException;

public class HostDialog extends Dialog {
  Label label;
  TextField field;
  Button okButton;
  Button cancelButton;
  Host host;
  Frame frame;

  class Listener implements ActionListener { 
    public void actionPerformed(ActionEvent e) {
      try {
        host = new Host(field.getText());
      } catch (UnknownHostException x) {
	new ErrorDialog(frame, "Cannot find host " + field.getText());
        return;
      }
      HostDialog.this.setVisible(false);
      HostDialog.this.dispose();
    }
  }

  public HostDialog(Frame frame) {
    super(frame, "Add Host", true);
    this.frame = frame;

    Listener listener = new Listener();

    Panel panel = new Panel();
    label = new Label("Host name:");
    panel.add(label);

    field = new TextField(64);
    field.addActionListener(listener);
    panel.add(field);

    okButton = new Button("OK");
    okButton.addActionListener(listener);
    panel.add(okButton);

    cancelButton = new Button("Cancel");
    cancelButton.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent e) {setVisible(false); dispose();}
    });
    panel.add(cancelButton);
    add(panel);
  }

  public Host getHost() {
    return host;
  }


}
