/*
 * @(#)StandardDialogAtencao.java    1.00 01/06/98
 *
 * Copyright (c) 1997-1999 Departamento de Informática - UFPE
 */

// pacotes da AWT utilizados
import java.awt.*;
import java.awt.event.*;
// alguns pacotes do JBuilder para as interfaces
import borland.jbcl.layout.*;
import borland.jbcl.control.*;

public class StandardDialogAtencao extends Dialog {
// objetos
        Panel panel_principal = new Panel();
        BevelPanel bevelPanel_superior = new BevelPanel();
        Button button_OK = new Button();
        Button button_Cancel = new Button();
        Label label_message = new Label();
        BorderLayout borderLayout1 = new BorderLayout();
        BevelPanel bevelPanel_inferior = new BevelPanel();
        GridLayout gridLayout1 = new GridLayout();
        XYLayout xYLayout1 = new XYLayout();

// atributo que guarda a mensagem do dialog.
private String message;
public  String getMessage()             { return message;                }
public  void   setMessage( String str ) { message = str;
                                          label_message.setText( str );  }

// atributo que guarda o estado
private boolean status;
public boolean getStatus()             { return status;   }
public void setStatus( boolean state ) { status = state ; }

// construtores
public StandardDialogAtencao( Frame frame ) {
       this(frame, "", false);
       }
public StandardDialogAtencao( Frame frame,String title ) {
       this(frame, title, false);
       }
public StandardDialogAtencao( Frame frame,String title,boolean modal ) {
        super(frame, title, modal);
        try {
              jbInit();
            }
        catch (Exception e)
            {
              e.printStackTrace();
            }
        add(panel_principal);
        pack();
        }

// metodo que inicializa as propriedades dos componenentes.
// IMPORTANTE: procure não alterar esta parte do codigo "manualmente".
private void jbInit() throws Exception {
        bevelPanel_superior.setLayout(borderLayout1);
        panel_principal.setSize(new Dimension(332, 53));
        button_OK.setLabel("OK");
        button_OK.addKeyListener(new StandardDialogAtencao_button_OK_keyAdapter(this));
        button_OK.addActionListener(new StandardDialogAtencao_button_OK_actionAdapter(this));
        button_Cancel.setLabel("Cancel");
        button_Cancel.addKeyListener(new StandardDialogAtencao_button_Cancel_keyAdapter(this));
        label_message.setAlignment(1);
        label_message.setText("Sua mensagem aparecerá aqui.");
        bevelPanel_inferior.setBevelOuter(BevelPanel.RAISED);
        bevelPanel_inferior.setBevelInner(BevelPanel.LOWERED);
        gridLayout1.setHgap(5);
        gridLayout1.setColumns(2);
        bevelPanel_inferior.setLayout(gridLayout1);
        button_Cancel.addActionListener(new StandardDialogAtencao_button_Cancel_actionAdapter(this));
        this.addWindowListener(new StandardDialogAtencao_this_windowAdapter(this));
        panel_principal.setLayout(xYLayout1);
        panel_principal.add(bevelPanel_superior, new XYConstraints(0, 0, 332, 26));
        bevelPanel_superior.add(label_message, BorderLayout.NORTH);
        panel_principal.add(bevelPanel_inferior, new XYConstraints(0, 26, 332, -1));
        bevelPanel_inferior.add(button_OK, null);
        bevelPanel_inferior.add(button_Cancel, null);
        }

// metodos associados as acoes dos componentes na interface
// botao OK pressionado
void button_OK_actionPerformed(ActionEvent e) {
        OK();
        }

// tecla Enter pressionada "sobre" o botão OK
void button_OK_keyPressed(KeyEvent e) {
        if( e.getKeyCode() == KeyEvent.VK_ENTER)
            OK();
        }

// botao Cancel pressionado
void button_Cancel_actionPerformed(ActionEvent e) {
        Cancelar();
        }

// tecla Enter pressionada "sobre" o botão Cancel
void button_Cancel_keyPressed(KeyEvent e) {
        if( e.getKeyCode() == KeyEvent.VK_ENTER )
            Cancelar();
        }

// fecha a janela do dialog
void this_windowClosing(WindowEvent e) {
        Cancelar();
        }

// metodos de ajuste do valor do status
private void OK() {
        status = true;
        dispose();
        }

private void Cancelar() {
        status = false;
        dispose();
        }

// metodo que garante que o dialog sera arpesentado na regiao
// central do frame ao qual pertence.
public synchronized void show() {
        Rectangle bounds = getParent().bounds();
    	  Rectangle abounds = bounds();
        move(bounds.x + (bounds.width - abounds.width)/ 2,
             bounds.y + (bounds.height - abounds.height)/2);
        super.show();
        }
}

// conjunto de listeners utilizados no monitoramento do componentes
class StandardDialogAtencao_button_OK_actionAdapter implements ActionListener{
  StandardDialogAtencao adaptee;

  StandardDialogAtencao_button_OK_actionAdapter(StandardDialogAtencao adaptee) {
    this.adaptee = adaptee;
  }

  public void actionPerformed(ActionEvent e) {
    adaptee.button_OK_actionPerformed(e);
  }
}

class StandardDialogAtencao_button_Cancel_actionAdapter implements ActionListener{
  StandardDialogAtencao adaptee;

  StandardDialogAtencao_button_Cancel_actionAdapter(StandardDialogAtencao adaptee) {
    this.adaptee = adaptee;
  }

  public void actionPerformed(ActionEvent e) {
    adaptee.button_Cancel_actionPerformed(e);
  }
}

class StandardDialogAtencao_this_windowAdapter extends WindowAdapter {
  StandardDialogAtencao adaptee;

  StandardDialogAtencao_this_windowAdapter(StandardDialogAtencao adaptee) {
    this.adaptee = adaptee;
  }

  public void windowClosing(WindowEvent e) {
    adaptee.this_windowClosing(e);
  }
}

class StandardDialogAtencao_button_OK_keyAdapter extends java.awt.event.KeyAdapter {
  StandardDialogAtencao adaptee;

  StandardDialogAtencao_button_OK_keyAdapter(StandardDialogAtencao adaptee) {
    this.adaptee = adaptee;
  }

  public void keyPressed(KeyEvent e) {
    adaptee.button_OK_keyPressed(e);
  }
}

class StandardDialogAtencao_button_Cancel_keyAdapter extends java.awt.event.KeyAdapter {
  StandardDialogAtencao adaptee;

  StandardDialogAtencao_button_Cancel_keyAdapter(StandardDialogAtencao adaptee) {
    this.adaptee = adaptee;
  }

  public void keyPressed(KeyEvent e) {
    adaptee.button_Cancel_keyPressed(e);
  }
}
