3 import java.awt.event.*;
6 public class messagePanel extends JPanel {
16 JButton next_msg, prev_msg;
17 boolean ignore_box = false;
19 public messagePanel( final roomFrame parent ) {
22 setLayout( new BorderLayout() );
24 JPanel p = new JPanel();
25 p.setLayout( new BorderLayout() );
26 /* p.setBorder( BorderFactory.createTitledBorder(
27 BorderFactory.createEtchedBorder(), "Cmds" ) ); */
29 VertPanel vp = new VertPanel();
30 p.add( "Center", vp );
33 vp.add( b = new JButton( "Next Room" ) );
34 b.addActionListener( new ActionListener() {
35 public void actionPerformed( ActionEvent e ) {
36 citadel.me.enterRoom( citadel.me.rooms.nextNewRoom() );
39 vp.add( b = new JButton( "Enter Message" ) );
40 b.addActionListener( new ActionListener() {
41 public void actionPerformed( ActionEvent e ) {
42 parent.enterMessage();
45 vp.add( b = new JButton( "Read Info" ) );
46 b.addActionListener( new ActionListener() {
47 public void actionPerformed( ActionEvent e ) {
48 new roomInfoWindow( ri );
51 vp.add( b = new JButton( "Zap Room" ) );
52 b.addActionListener( new ActionListener() {
53 public void actionPerformed( ActionEvent e ) {
54 if( JOptionPane.showConfirmDialog( null, "Zap " + ri.name + "?" ) == 0 )
55 citadel.me.zapRoom( ri );
59 jcb = new JComboBox();
60 jcb.addItem( "Read New" );
61 jcb.addItem( "Read All" );
62 jcb.addItem( "Last 5" );
63 jcb.addActionListener( new ActionListener() {
64 public void actionPerformed( ActionEvent e ) {
76 p.add( prev_msg = new JButton( "Prev Message" ) );
77 prev_msg.addActionListener( new ActionListener() {
78 public void actionPerformed( ActionEvent e ) {
82 p.add( next_msg = new JButton( "Next Message" ) );
83 next_msg.addActionListener( new ActionListener() {
84 public void actionPerformed( ActionEvent e ) {
93 p.setLayout( new BorderLayout() );
95 p.add( "North", blurb = new JTextField() );
96 blurb.setEditable( false );
98 new JScrollPane( message = new JTextArea(),
99 JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
100 JScrollPane.HORIZONTAL_SCROLLBAR_NEVER ) );
101 message.setEditable( false );
102 message.setLineWrap( true );
103 message.setWrapStyleWord( true );
107 public void nextMessage() {
112 public void prevMessage() {
117 public void refresh() {
121 public void refresh( roomInfo ri ) {
127 /* add new, all, last, etc. */
130 switch( jcb.getSelectedIndex() ) {
141 next_msg.setEnabled( false );
142 prev_msg.setEnabled( false );
144 citadel.me.networkEvent( "MSGS " + cmd, new CallBack() {
145 public void run( citReply r ) {
151 public void displayMessage() {
152 if( (msgs == null) || (msgs.size() == 0) ) {
154 message.setText( "<no messages>" );
160 prev_msg.setEnabled( false );
162 prev_msg.setEnabled( true );
164 if( cur_pos >= msgs.size()-1 ) {
165 cur_pos = msgs.size()-1;
166 next_msg.setEnabled( false );
168 next_msg.setEnabled( true );
170 final String num = (String)msgs.elementAt( cur_pos );
172 citadel.me.networkEvent( "MSG0 " + num + "|0", new CallBack() {
173 public void run( citReply r ) {
175 blurb.setText( "<error>" );
176 message.setText( r.getArg(0) );
178 message msg = new message( ri, msgs.size(), cur_pos, r );
179 blurb.setText( msg.getBlurb() );
180 message.setText( msg.getText() );
181 int n = citadel.atoi( num );
182 if( n > ri.highest_read ) {
183 citadel.me.networkEvent( "SLRP " + num );