Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: jcurses/util/Message.java


1   package jcurses.util;
2   
3   import jcurses.event.ActionEvent;
4   import jcurses.event.ActionListener;
5   import jcurses.widgets.Button;
6   import jcurses.widgets.Label;
7   import jcurses.widgets.DefaultLayoutManager;
8   import jcurses.widgets.Dialog;
9   import jcurses.widgets.WidgetsConstants;
10  import jcurses.widgets.Window;
11  
12  import java.util.StringTokenizer;
13  
14  /**
15  *  This is a class to create and show user defined messages.
16  *  Such message is a dialog with an user defined title, containing
17  * an user defined text and a button to close the window with an user 
18  * defined label.
19  */
20  
21  public class Message  extends Dialog implements ActionListener  {
22    
23    String _title = null;
24    String _text = null;
25    
26    Button _button = null;
27    Label _label = null;
28    
29      /**
30      *  The constructor
31      * 
32      * @param title the message's title
33      * @param text the message's text
34      * @param buttonLabel the label on the message's button
35      * 
36      */
37    public Message(String title, String text, String buttonLabel) {
38      super(getWidth(text, title)+4, getHeight(text)+7,true,title);
39      
40      DefaultLayoutManager manager = (DefaultLayoutManager)getRootPanel().getLayoutManager();
41      
42      _label = new Label(text);
43      _button = new Button(buttonLabel);
44      _title = title;
45      
46      _button.addListener(this);
47      
48      manager.addWidget(_label,0,0,getWidth(text, _title)+2, getHeight(text)+2, WidgetsConstants.ALIGNMENT_CENTER, 
49                WidgetsConstants.ALIGNMENT_CENTER);
50      
51      manager.addWidget(_button,0,getHeight(text)+2,getWidth(text, _title)+2, 5, WidgetsConstants.ALIGNMENT_CENTER, 
52                WidgetsConstants.ALIGNMENT_CENTER);
53                
54      
55      
56    }
57    
58    private static int getWidth(String label, String title) {
59      
60      StringTokenizer tokenizer = new StringTokenizer(label,"\n");
61      int result = 0;
62      while (tokenizer.hasMoreElements()) {
63        String token = tokenizer.nextToken();
64        if (result < token.length()) {
65          result = token.length();
66        }
67      }
68      if (title.length() > result) {
69        result = title.length();
70      }
71      //message nust fit on the schreen
72      
73      if (result>jcurses.system.Toolkit.getScreenWidth()-3) {
74        result=jcurses.system.Toolkit.getScreenWidth()-3;
75      }
76       
77      return result;
78    }
79    
80    
81    private static int getHeight(String label) {
82      
83      StringTokenizer tokenizer = new StringTokenizer(label,"\n");
84      int result = 0;
85      while (tokenizer.hasMoreElements()) {
86        tokenizer.nextElement();
87        result++;
88      }
89      return result;
90    }
91    
92    /**
93    *  Required for implementing <code>jcurses.event.ActionListener</code>
94    */
95    public void actionPerformed(ActionEvent event) {
96      close();
97    }
98  
99  }