/*
Eteria IRC Client, an RFC 1459 compliant client program written in Java.
Copyright (C) 2000 Javier Kohen <jkohen at tough.com>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
import java.awt.*;
import java.awt.event.*;
import ar.com.jkohen.awt.ImageButton;
import ar.com.jkohen.util.Resources;
public class Box extends NewDialog implements ActionListener, KeyListener, WindowListener
{
private Resources res;
private TextField input;
private int click = 0;
public Box(EIRC eirc, String title, String label1, String label2)
{
this(eirc, title, label1, null, null, false);
}
public Box(EIRC eirc, String title, String label1, String label2, String field, boolean pw_field)
{
super(eirc, true);
setTitle(title);
setFont(eirc.getFont());
addWindowListener(this);
GridBagLayout gb = new GridBagLayout();
GridBagConstraints gbc = new GridBagConstraints();
setLayout(gb);
gbc.insets = new Insets(2, 2, 2, 2);
ImageButton b;
Label l;
l = new Label(label1);
if (label2 != null)
gbc.gridwidth = 2;
gbc.gridy = 0;
gb.setConstraints(l, gbc);
add(l);
l = new Label(label2 + " :");
gbc.gridy++;
gbc.gridwidth = 1;
gbc.anchor = GridBagConstraints.EAST;
gb.setConstraints(l, gbc);
if (label2 != null)
add(l);
input = new TextField();
if (pw_field)
input.setEchoChar('*');
if (label2 != null)
input.setText(field);
input.addActionListener(this);
gbc.fill = GridBagConstraints.HORIZONTAL;
gb.setConstraints(input, gbc);
if (label2 != null)
add(input);
Panel p = new Panel();
gbc.gridy++;
if (label2 != null)
gbc.gridwidth = 2;
gb.setConstraints(p, gbc);
add(p);
p.setLayout(gb);
b = new ImageButton(res.getString("ok"));
b.setActionCommand("ok");
b.addActionListener(this);
gbc.gridy = 0;
if (label2 != null)
gbc.gridwidth = 1;
else
gbc.gridwidth = 2;
gbc.anchor = GridBagConstraints.CENTER;
gbc.fill = GridBagConstraints.NONE;
gb.setConstraints(b, gbc);
p.add(b);
b = new ImageButton(res.getString("cancel"));
b.setActionCommand("cancel");
b.addActionListener(this);
gbc.gridwidth = 1;
gb.setConstraints(b, gbc);
if (label2 != null)
p.add(b);
pack();
setResizable(false);
setVisible(true);
addKeyListener(this);
}
public void actionPerformed(ActionEvent ev)
{
String action = ev.getActionCommand();
if (action.equals("ok") || ev.getSource() == input)
{
click = 1;
dispose();
}
else if (action.equals("cancel"))
{
click = 2;
dispose();
}
}
public void keyTyped(KeyEvent ke)
{
}
public void keyReleased(KeyEvent ke)
{
}
public void keyPressed(KeyEvent ke)
{
if (ke.getKeyCode() == KeyEvent.VK_SPACE || ke.getKeyCode() == KeyEvent.VK_ENTER)
{
click = 1;
dispose();
}
if (ke.getKeyCode() == KeyEvent.VK_ESCAPE)
{
click = 2;
dispose();
}
}
public int getResult()
{
return(click);
}
public String getString()
{
return(input.getText());
}
public void setTextBackground(Color c)
{
input.setBackground(c);
}
public void setTextForeground(Color c)
{
input.setForeground(c);
}
public void windowOpened(WindowEvent e)
{
}
public void windowClosing(WindowEvent e)
{
this.dispose();
}
public void windowClosed(WindowEvent e)
{
}
public void windowIconified(WindowEvent e)
{
}
public void windowDeiconified(WindowEvent e)
{
}
public void windowActivated(WindowEvent e)
{
}
public void windowDeactivated(WindowEvent e)
{
}
}