package pckInterface;

import java.awt.*;

// importa a classe de Layout personalizado
// import InterfaceLayout;

// Classe: CanvasBotaoArquivoEncomenda
// Autor: Fábio Dalla Vecchia - RA:981091
// Canvas que controla o Botao de abertura de arquivos de encomenda
class CanvasBotaoArquivoEncomenda extends Canvas {
    private int largura;
    private int altura;
    private Image img[] = new Image[2];
    private int Estado = 0;
    private FileDialog CaixaDialogoEncomenda;
    
    // acessíveis ao Applet
    protected boolean BotaoPressionado = false;
    protected String msg = "Abrir arquivo de Encomendas (Arquivo atual: Nenhum)"; 
    protected String ArquivoEncomenda;
    protected boolean msgStatus=false;

    // Construtor
    public CanvasBotaoArquivoEncomenda( int larg,int alt, Image imagem[]) {
        largura = larg;
        altura = alt;
        img[0] = imagem[0];
        img[1] = imagem[1];

        reshape( 0,0,larg,alt );
        }

    // Mouse foi pressionado
    public boolean mouseDown( Event evt,int x,int y ) {
        BotaoPressionado = true;
        repaint();

        // Abrir Novo arquivo de Encomendas
        CaixaDialogoEncomenda = new FileDialog(new Frame(), "Escolha o novo arquivo de Encomendas", FileDialog.LOAD);
        CaixaDialogoEncomenda.setDirectory("."); // seta diretorio corrente
        CaixaDialogoEncomenda.show();

        if (CaixaDialogoEncomenda.getFile() != null) {
          ArquivoEncomenda = CaixaDialogoEncomenda.getFile(); 
          msg = "Abrir arquivo de Encomendas (Arquivo atual: "+ArquivoEncomenda+") " ;
          System.out.println( msg );
        }
         
        repaint();
        return( true );
        }

    // Botão do mouse foi solto
    public boolean mouseUp( Event evt,int x,int y ) {
        BotaoPressionado = false; // by fdv
        repaint();
        return( true );
        }
                         
    // Quando mouse passa sobre controle, exibimos uma mensagem
    // na linha de estado inferior da tela
    public boolean mouseEnter( Event evt,int x,int y ) {
        //showStatus( "Abrir arquivo de Encomendas" );
        msgStatus=true;
        repaint();
        return( true );
        }

    // Limpa linha de status quando mouse sai do controle
    public boolean mouseExit( Event evt,int x,int y ) {
        BotaoPressionado = false; // by FDV
        //showStatus( "" );
        msgStatus=false;
        repaint();
        return( true );
        }

    public void update( Graphics g ) {
        // Muda estado do controle (pressionado ou não)
        if( !BotaoPressionado )
            Estado = 0;
        else 
            Estado = 1;
        paint( g );
        }

    public void paint( Graphics g ) {
        g.drawImage( img[Estado],0,0,this );
        }
    }     
