/*SystemOpenDialog
    ask for user to input a graph URL to open
    Used in GraphWindow.java
    Yufei Qian, 05/17/98
*/

package graphbrowser;

import java.awt.event.*;
import java.applet.*;
import java.awt.*;


public class SystemOpenDialog extends Dialog implements ActionListener {


  Label     label1;
  TextField text1;
  Button    okButton,cancelButton;
  String    strInput;

  public SystemOpenDialog(Frame parent,String title) {
      super(parent,title,true); // model dialog

      bCancelButtonPressed=false;
      strInput=null;
      label1=new Label("graph url to be open");

      String strTextFieldDefaultValue="http://chickadee-cs.cs.unc.edu:8888/0000000000000000";

      text1=new TextField(strTextFieldDefaultValue,60);

      okButton=new Button("OK");
      cancelButton=new Button("Cancel");

      setLayout(new BorderLayout() );

      Panel p1=new Panel();
      p1.setLayout(new GridLayout(3,2,0,5) );
      p1.add(label1);
      p1.add(text1);

      Panel p2=new Panel();
      p2.setLayout(new FlowLayout(FlowLayout.CENTER));
      p2.add(okButton);
      p2.add(cancelButton);

      // add event listeners
      okButton.addActionListener(this);
      cancelButton.addActionListener(this);

      this.setEnabled(true);
      text1.setEnabled(true);  // enable editing of text1

      this.add(p1,"North");
      this.add(p2,"South");
      this.pack();
      //this.show();
  }

  public void setUser(String value) {
    text1.setText(value);
  }

  public void actionPerformed(ActionEvent e) {

    //public boolean action(Event event, Object object) {
     Object esource=e.getSource();
    //Object esource=event.target;

    if (esource == okButton) {
        strInput=text1.getText();
        this.setVisible(false);
        return;// true;
    }  else if (esource == cancelButton) {
        strInput=null;
        bCancelButtonPressed=true;
        this.setVisible(false);
        return ;//true;
     }
   return;// false;

  }

  // callback for external data-fetching use

  public String getInputURLString() {
    if(bCancelButtonPressed){
        return null;
    }else{
        return strInput;
    }
  }

private boolean bCancelButtonPressed;

}