Package jcurses.util

Source Code of jcurses.util.Message

package jcurses.util;

import java.util.StringTokenizer;

import jcurses.event.ActionEvent;
import jcurses.event.ActionListener;
import jcurses.widgets.Button;
import jcurses.widgets.DefaultLayoutManager;
import jcurses.widgets.Dialog;
import jcurses.widgets.Label;
import jcurses.widgets.WidgetsConstants;

/**
*  This is a class to create and show user defined messages.
*  Such message is a dialog with an user defined title, containing
* an user defined text and a button to close the window with an user
* defined label.
*/

public class Message extends Dialog implements ActionListener  {
 
  String _title = null;
  String _text = null;
 
  Button _button = null;
  Label _label = null;
 
    /**
    *  The constructor
    *
    * @param title the message's title
    * @param text the message's text
    * @param buttonLabel the label on the message's button
    *
    */
  public Message(String title, String text, String buttonLabel) {
    super(getWidth(text, title)+4, getHeight(text)+7,true,title);
   
    DefaultLayoutManager manager = (DefaultLayoutManager)getRootPanel().getLayoutManager();
   
    _label = new Label(text);
    _button = new Button(buttonLabel);
    _title = title;
   
    _button.addListener(this);
   
    manager.addWidget(_label,0,0,getWidth(text, _title)+2, getHeight(text)+2, WidgetsConstants.ALIGNMENT_CENTER,
              WidgetsConstants.ALIGNMENT_CENTER);
   
    manager.addWidget(_button,0,getHeight(text)+2,getWidth(text, _title)+2, 5, WidgetsConstants.ALIGNMENT_CENTER,
              WidgetsConstants.ALIGNMENT_CENTER);
             
   
   
  }
 
  private static int getWidth(String label, String title) {
   
    StringTokenizer tokenizer = new StringTokenizer(label,"\n");
    int result = 0;
    while (tokenizer.hasMoreElements()) {
      String token = tokenizer.nextToken();
      if (result < token.length()) {
        result = token.length();
      }
    }
    if (title.length() > result) {
      result = title.length();
    }
    //message nust fit on the schreen
   
    if (result>jcurses.system.Toolkit.getScreenWidth()-3) {
      result=jcurses.system.Toolkit.getScreenWidth()-3;
    }
    
    return result;
  }
 
 
  private static int getHeight(String label) {
   
    StringTokenizer tokenizer = new StringTokenizer(label,"\n");
    int result = 0;
    while (tokenizer.hasMoreElements()) {
      tokenizer.nextElement();
      result++;
    }
    return result;
  }
 
  /**
  *  Required for implementing <code>jcurses.event.ActionListener</code>
  */
  public void actionPerformed(ActionEvent event) {
    close();
  }

}
TOP

Related Classes of jcurses.util.Message

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.