]> code.citadel.org Git - citadel.git/blob - shaggy/roomFrame.java
Fixed a broken tag in siteconfig.c
[citadel.git] / shaggy / roomFrame.java
1 import javax.swing.*;
2 import java.awt.*;
3 import java.awt.event.*;
4
5 public class roomFrame extends JFrame {
6     CardLayout          cdLayout;
7     Container           c;
8
9     roomInfo            ri;
10
11     messagePanel        mp;
12     enterPanel          ep;
13
14     public roomFrame() {
15         ri = null;
16         setTitle( "Title of this window" );
17
18         c = getContentPane();
19
20         c.setLayout( cdLayout = new CardLayout() );
21         c.add( "Messages", mp = new messagePanel(this) );
22         c.add( "Compose", ep = new enterPanel(this) );
23
24         addWindowListener( new WindowAdapter() {
25             public void windowClosing( WindowEvent e ) {
26                 citadel.me.rf = null;
27                 dispose();
28             }
29         } );
30
31         JMenuBar        mbar = new JMenuBar();
32         JMenu           m = new JMenu( "Rooms" );
33         mbar.add( m );
34         JMenuItem       mi = new JMenuItem( "Next Room" );
35         m.add( mi );
36         mi.addActionListener( new ActionListener() {
37           public void actionPerformed( ActionEvent e ) {
38             citadel.me.enterRoom( citadel.me.rooms.nextNewRoom() );
39           } } );
40
41         m.add( mi = new JMenuItem( "Goto Room" ) );
42         mi.addActionListener( new ActionListener() {
43           public void actionPerformed( ActionEvent e ) {
44             citadel.me.enterRoom();
45           } } );
46
47         m.add( mi = new JMenuItem( "Zap Room" ) );
48         mi.addActionListener( new ActionListener() {
49           public void actionPerformed( ActionEvent e ) {
50             if( JOptionPane.showConfirmDialog( null, "Zap " + mp.ri.name + "?" ) == 0 )
51               citadel.me.zapRoom( mp.ri );
52           } } );
53
54         m.add( new JSeparator() );
55
56         m.add( mi = new JMenuItem( "Room Info" ) );
57         mi.addActionListener( new ActionListener() {
58           public void actionPerformed( ActionEvent e ) {
59             new roomInfoWindow( mp.ri );
60           } } );
61
62         mbar.add( m = new JMenu( "Messages" ) );
63         m.add( mi = new JMenuItem( "Next Message" ) );
64         mi.addActionListener( new ActionListener() {
65           public void actionPerformed( ActionEvent e ) {
66             mp.nextMessage();
67           } } );
68
69         m.add( mi = new JMenuItem( "Previous Message" ) );
70         mi.addActionListener( new ActionListener() {
71           public void actionPerformed( ActionEvent e ) {
72             mp.prevMessage();
73           } } );
74
75         m.add( mi = new JMenuItem( "Enter Message" ) );
76         mi.addActionListener( new ActionListener() {
77           public void actionPerformed( ActionEvent e ) {
78             enterMessage();
79           } } );
80
81         setJMenuBar( mbar );
82         pack();
83         show();
84     }
85
86     public void setRoom( roomInfo ri ) {
87         this.ri = ri;
88
89         String  title = ri.name;
90         if( citadel.me.floors() ) {
91             title = title + " (" + citadel.me.rooms.getFloor( ri.rm ).name + ")";
92         }
93
94         setTitle( title );
95         cdLayout.show( c, "Messages" );
96         mp.refresh( ri );
97         if( ri.info != 0)
98             new roomInfoWindow( ri );
99     }
100
101     public void showRoom() {
102         cdLayout.show( c, "Messages" );
103     }
104
105     public void enterMessage() {
106         cdLayout.show( c, "Compose" );
107         ep.refresh( ri );
108     }
109 }