FileDocCategorySizeDatePackage
PromotionDialog.javaAPI DocExample3054Sat Sep 12 03:01:00 BST 1998borland.samples.apps.chess.client.board

PromotionDialog.java

/*
 * Copyright (c) 1997-1998 Borland International, Inc. All Rights Reserved.
 * 
 * This SOURCE CODE FILE, which has been provided by Borland as part
 * of a Borland product for use ONLY by licensed users of the product,
 * includes CONFIDENTIAL and PROPRIETARY information of Borland.  
 *
 * USE OF THIS SOFTWARE IS GOVERNED BY THE TERMS AND CONDITIONS 
 * OF THE LICENSE STATEMENT AND LIMITED WARRANTY FURNISHED WITH
 * THE PRODUCT.
 *
 * IN PARTICULAR, YOU WILL INDEMNIFY AND HOLD BORLAND, ITS RELATED
 * COMPANIES AND ITS SUPPLIERS, HARMLESS FROM AND AGAINST ANY CLAIMS
 * OR LIABILITIES ARISING OUT OF THE USE, REPRODUCTION, OR DISTRIBUTION
 * OF YOUR PROGRAMS, INCLUDING ANY CLAIMS OR LIABILITIES ARISING OUT OF
 * OR RESULTING FROM THE USE, MODIFICATION, OR DISTRIBUTION OF PROGRAMS
 * OR FILES CREATED FROM, BASED ON, AND/OR DERIVED FROM THIS SOURCE
 * CODE FILE.
 */
package borland.samples.apps.chess.client.board;

import java.awt.*;
import java.awt.event.*;
import java.util.*;

public class PromotionDialog extends Dialog implements MouseListener{
  PromotionCanvas pieceCanvas = new PromotionCanvas();
  ResourceBundle res = ResourceBundle.getBundle("borland.samples.apps.chess.client.board.Res");
  Chessboard dlgParent;
  Image pieceImage;

  public PromotionDialog(Frame parent,Image pieceimage,Chessboard theParent) {
    super(parent,"",false);
    setTitle(res.getString("Promote_your_pawn"));
    System.out.println("promotionDialog xtor");
    dlgParent = theParent;
    this.pieceImage = pieceimage;
    jbInit();
    setLayout(new FlowLayout());
  }

  public Dimension getPreferredSize()   {
    Dimension d = super.getPreferredSize();
    if (d.width < 180)
      return new Dimension(180,d.height);
    else
      return d;

  }

  public void jbInit() {
    pieceCanvas.setImage(pieceImage);
    pieceCanvas.addMouseListener(this);
    add(pieceCanvas);
  }

  public void mouseClicked(MouseEvent parm1) {
    //  java.awt.event.MouseListener method;
  }

  public void mousePressed(MouseEvent parm1) {
    // java.awt.event.MouseListener method;
    int  piecesub =  parm1.getX() * 4 / pieceCanvas.pieces.getWidth(this);
    if (piecesub > 3)
      piecesub = 3;
    dlgParent.promote(piecesub);
    dispose();
  }

  public void mouseReleased(MouseEvent parm1) {
    //  java.awt.event.MouseListener method;
  }

  public void mouseEntered(MouseEvent parm1) {
    //  java.awt.event.MouseListener method;
  }

  public void mouseExited(MouseEvent parm1) {
    //  java.awt.event.MouseListener method;
  }
}

class PromotionCanvas extends Canvas
{
  Image pieces;
  
  public PromotionCanvas(Image img) {
    pieces = img;
  }

  public PromotionCanvas() {
  }

  public void setImage(Image img) {
    pieces = img;
  }

  public Dimension getPreferredSize()   {
    return new Dimension(pieces.getWidth(this) , pieces.getHeight(this));
  }

  public void paint(Graphics g)  {
    g.drawImage(pieces,0,0,this);
  }
}