package org.phylowidget.ui;
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Dialog;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Label;
import java.awt.Panel;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import org.phylowidget.PWPlatform;
import org.phylowidget.tree.TreeIO;
public class InputDialog extends Dialog implements WindowListener, KeyListener
{
TextArea text;
Button ok;
Button cancel;
public String str = null;
public InputDialog(Frame owner, String title)
{
super(owner, title, false);
// setModal(false);
addKeyListener(this);
setLayout(new BorderLayout());
text = new TextArea("", 5, 40, TextArea.SCROLLBARS_BOTH);
String s = TreeIO.createNHXString(
PWPlatform.getInstance().getThisAppContext().trees().getTree());
text.setText(s);
add(
text, BorderLayout.CENTER);
text.addKeyListener(this);
Panel p = new Panel(new FlowLayout(FlowLayout.RIGHT));
Dimension buttonSize = new Dimension(50, 30);
ok = new Button("Ok");
ok.setPreferredSize(buttonSize);
ok.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
str = text.getText();
dispose();
}
});
cancel = new Button("Cancel");
cancel.setPreferredSize(buttonSize);
cancel.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
text.setText("");
str = "";
dispose();
}
});
p.add(new Label("Esc to cancel, Ctrl-Enter to commit. "));
p.add(ok);
p.add(cancel);
add(
p, BorderLayout.SOUTH);
setSize(
500, 200);
validate();
addWindowListener(this);
}
public void windowActivated(WindowEvent e)
{
}
public void windowClosed(WindowEvent e)
{
}
public void windowClosing(WindowEvent e)
{
dispose();
}
public void windowDeactivated(WindowEvent e)
{
}
public void windowDeiconified(WindowEvent e)
{
}
public void windowIconified(WindowEvent e)
{
}
public void windowOpened(WindowEvent e)
{
}
public void keyPressed(KeyEvent e)
{
// System.out.println(e);
int code = e.getKeyChar();
if (code == KeyEvent.VK_ENTER)
{
if (e.isControlDown())
dispose();
} else if (code == KeyEvent.VK_ESCAPE)
{
text.setText("");
dispose();
}
}
public void keyReleased(KeyEvent e)
{
}
public void keyTyped(KeyEvent e)
{
}
}