]> code.citadel.org Git - citadel.git/blob - shaggy/pageWindow.java
Initial revision
[citadel.git] / shaggy / pageWindow.java
1 /* pageWindow.java
2  */
3
4 import java.awt.*;
5
6 public class pageWindow extends Frame {
7   String        user;
8   Choice        who;
9   TextField     msg;
10   Button        send, cancel;
11
12   public pageWindow( String user ) {
13     this.user = user;
14
15     setTitle( "Page a user" );
16     setLayout( new BorderLayout() );
17
18     PairPanel   pp = new PairPanel();
19     pp.addLeft( new Label( "Send message to:" ) );
20     pp.addRight( who = new Choice() );
21
22     add( "North", pp );
23
24     NamedPanel  np = new NamedPanel( "Message" );
25     np.setLayout( new BorderLayout() );
26     np.add( "Center", msg = new TextField() );
27
28     add( "Center", np );
29
30     Panel p = new Panel();
31     p.add( send = new Button( "Send" ) );
32     p.add( cancel = new Button( "Cancel" ) );
33     add( "South", p );
34
35     citReply    r = citadel.me.getReply( "RWHO" );
36     int i=0, which=0;
37     String      s;
38     while( (s=r.getLine( i++ )) != null ) {
39       String u = getUser(s);
40       if( u.equalsIgnoreCase( user ) ) which = i-1;
41       who.addItem( u );
42     }
43
44     who.select( which );
45
46     resize( 300, 150 );
47     show();
48   }
49
50   public String getUser( String s ) {
51     int i = s.indexOf( '|' )+1;
52     int j = s.indexOf( '|', i );
53     return s.substring( i, j );
54   }
55
56   public boolean handleEvent( Event e ) {
57     if( e.id == Event.WINDOW_DESTROY )
58       dispose();
59     return super.handleEvent( e );
60   }
61
62   public boolean action( Event e, Object o ) {
63     if( (e.target == msg) || (e.target == send) ) {
64       String user = who.getSelectedItem();
65       String m = msg.getText();
66       if( m.length() > 0 )
67          citadel.me.getReply( "SEXP " + user + "|" + m );
68       dispose();
69     } else if( e.target == cancel )
70       dispose();
71     return super.action( e, o );
72   }
73 }