home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1995 November / PCWK1195.iso / inne / win95 / sieciowe / hotja32.lzh / hotjava / classsrc / awt / messagedialog.java < prev    next >
Text File  |  1995-08-11  |  5KB  |  149 lines

  1. /*
  2.  * @(#)MessageDialog.java    1.8 95/01/31 Sami Shaio
  3.  *
  4.  * Copyright (c) 1995 Sun Microsystems, Inc. All Rights Reserved.
  5.  *
  6.  * Permission to use, copy, modify, and distribute this software
  7.  * and its documentation for NON-COMMERCIAL purposes and without
  8.  * fee is hereby granted provided that this copyright notice
  9.  * appears in all copies. Please refer to the file "copyright.html"
  10.  * for further important copyright and licensing information.
  11.  *
  12.  * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF
  13.  * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
  14.  * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
  15.  * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR
  16.  * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
  17.  * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
  18.  */
  19. package awt;
  20.  
  21. import java.lang.*;
  22.  
  23.  
  24. /**
  25.  * MessageDialog is a class that allows a modal or non-modal dialog to
  26.  * be presented to the user with a message. The dialog contains a
  27.  * picture, a message, and three buttons: ok, cancel, and help. The
  28.  * number of buttons as well as the labels they display can be
  29.  * controlled by the api.
  30.  *
  31.  * @see DialogHandler
  32.  * @version 1.8 31 Jan 1995
  33.  * @author Sami Shaio
  34.  */
  35. public class MessageDialog implements Dialog, DialogHandler {
  36.     private int            pData;
  37.  
  38.     public static final int INFO_TYPE = 0;
  39.     public static final int ERROR_TYPE = 1;
  40.     public static final int QUESTION_TYPE = 2;
  41.  
  42.     /** The frame to which this dialog is attached to. */
  43.     public Frame parent;
  44.  
  45.     /** The handler object that gets invoked to handle actions. */
  46.     DialogHandler    handler;
  47.  
  48.     /**
  49.      * Constructs a new MessageDialog.
  50.      * @param f is the frame that is to be the parent of this MessageDialog.
  51.      * @param title is the title of the dialog. It can be null.
  52.      * @param message is the message to display in the dialog. It can
  53.      * be changed later with setMessage.
  54.      * @param dialogType is one of INFO_TYPE (for information
  55.      * dialogs), ERROR_TYPE (for an error dialog), or QUESTION_TYPE (for
  56.      * a question dialog).
  57.      * @param nButtons is the number of buttons to use. It is a number
  58.      * from 1 to 3. The number corresponds to whether the buttons should
  59.      * be ok (1), ok and cancel (2), or ok, cancel, and help (3).
  60.      * @param isModal determines whether the dialog will block all
  61.      * user input until the dialog is disposed of by clicking one of
  62.      * the ok or cancel buttons.
  63.      * @param okLabel is the label to use for the Ok button. If null,
  64.      * then a default string will be chosen.
  65.      * @param cancelLabel is the label to use for the Cancel button. If null,
  66.      * then a default string will be chosen.
  67.      * @param helpLabel is the label to use for the Help button. If null,
  68.      * then a default string will be chosen.
  69.      * @param handler is the object that will handle the callbacks for
  70.      * the buttons listed in the dialog. It may be null in which case
  71.      * a default action is taken for all the buttons.
  72.      */
  73.     public MessageDialog(Frame f,
  74.              String title,
  75.                  String message,
  76.              int dialogType,
  77.              int nButtons,
  78.              boolean isModal,
  79.              String okLabel,
  80.              String cancelLabel,
  81.              String helpLabel,
  82.              DialogHandler handler)    {
  83.     parent = f;
  84.     this.handler = handler;
  85.     parent.wServer.messageDialogCreate(this,
  86.                        f,
  87.                        title,
  88.                        message,
  89.                        dialogType,
  90.                        nButtons,
  91.                        isModal,
  92.                        okLabel,
  93.                        cancelLabel,
  94.                        helpLabel);
  95.     }
  96.  
  97.     /** Change the message associated with this dialog. */
  98.     public void setMessage(String message) {
  99.     parent.wServer.messageDialogSetMessage(this, message);
  100.     }
  101.  
  102.     /** Show this dialog.
  103.      * @returns the number of the button that was pressed if this
  104.      * dialog is modal. Otherwise -1 is returned.
  105.      */
  106.     public int show() {
  107.     return parent.wServer.mesageDialogShow(this);
  108.     }
  109.  
  110.     /** Hide this dialog */
  111.     public void hide() {
  112.     parent.wServer.mesageDialogHide(this);
  113.     }
  114.  
  115.     /** Dispose of this dialog. */
  116.     public void dispose() {
  117.     parent.wServer.messageDialogDispose(this);
  118.     }
  119.  
  120.     /* DialogHandler methods */
  121.  
  122.     /** Invoked when the user presses the "Ok" button. */
  123.     public void okCallback(Dialog m) {
  124.     if (handler == null) {
  125.         m.hide();
  126.     } else {
  127.         handler.okCallback(m);
  128.     }
  129.     }
  130.  
  131.     /** Invoked when the user presses the "Cancel" button. */
  132.     public void cancelCallback(Dialog m) {
  133.     if (handler == null) {
  134.         m.hide();
  135.     } else {
  136.         handler.cancelCallback(m);
  137.     }
  138.     }
  139.  
  140.     /** Invoked when the user presses the "Help" button. */
  141.     public void helpCallback(Dialog m) {
  142.     if (handler == null) {
  143.         System.out.println("No help available.");
  144.     } else {
  145.         handler.helpCallback(m);
  146.     }
  147.     }
  148. }
  149.