001         package com.croftsoft.apps.agoracast.c2p;
002    
003         import java.awt.*;
004         import java.awt.event.*;
005         import javax.swing.*;
006         import javax.swing.border.*;
007    
008         import com.croftsoft.core.gui.ButtonPanel2;
009         import com.croftsoft.core.lang.NullArgumentException;
010         import com.croftsoft.core.net.news.UsenetMessage;
011    
012         /*********************************************************************
013         * @version
014         *   2001-08-13
015         * @since
016         *   2001-07-29
017         * @author
018         *   <a href="https://www.croftsoft.com/">David Wallace Croft</a>
019         *********************************************************************/
020    
021         public final class  AgoracastConfirmPanel
022           extends JPanel
023           implements ActionListener
024         //////////////////////////////////////////////////////////////////////
025         //////////////////////////////////////////////////////////////////////
026         {
027    
028         private final AgoracastPostPanel  agoracastPostPanel;
029    
030         private final JTextArea  jTextArea;
031    
032         private final JButton    postButton;
033    
034         private final JButton    cancelButton;
035    
036         //////////////////////////////////////////////////////////////////////
037         //////////////////////////////////////////////////////////////////////
038    
039         /*********************************************************************
040         * Main constructor.
041         *
042         * @param  panelBackgroundColor
043         *
044         *    May be null.
045         *********************************************************************/
046         public  AgoracastConfirmPanel (
047           AgoracastMediator   agoracastMediator,
048           AgoracastPostPanel  agoracastPostPanel )
049         //////////////////////////////////////////////////////////////////////
050         {
051           super ( new BorderLayout ( ), true ); // isDoubleBuffered
052    
053           NullArgumentException.check ( agoracastMediator );
054    
055           NullArgumentException.check (
056             this.agoracastPostPanel = agoracastPostPanel );
057    
058           AgoracastLib.setColor ( this, agoracastMediator );
059    
060           jTextArea = new JTextArea ( );
061    
062           jTextArea.setEditable ( false );
063    
064    // How do we know what font size is appropriate?
065    
066           jTextArea.setFont ( AgoracastConstants.LOG_FONT );
067    
068    // How can I set the border to 2 characters wide?
069    
070           jTextArea.setBorder ( new EmptyBorder ( 4, 4, 4, 4 ) );
071    
072           add ( new JScrollPane ( jTextArea ), BorderLayout.CENTER );
073    
074           postButton   = new JButton ( "Confirm" );
075    
076           postButton.addActionListener ( this );
077    
078           cancelButton = new JButton ( "Cancel" );
079    
080           cancelButton.addActionListener ( this );
081    
082           add (
083             new ButtonPanel2 (
084               new JButton [ ] { cancelButton, postButton },
085               agoracastMediator.getPanelBackgroundColor ( ) ),
086             BorderLayout.SOUTH );
087         }
088    
089         //////////////////////////////////////////////////////////////////////
090         //////////////////////////////////////////////////////////////////////
091    
092         public void  setText ( String  text )
093         //////////////////////////////////////////////////////////////////////
094         {
095           jTextArea.setText ( text );
096         }
097    
098         public void  actionPerformed ( ActionEvent  actionEvent )
099         //////////////////////////////////////////////////////////////////////
100         {
101           Object  source = actionEvent.getSource ( );
102    
103           if ( source == postButton )
104           {
105             agoracastPostPanel.post ( );
106           }
107           else if ( source == cancelButton )
108           {
109             agoracastPostPanel.cancel ( );
110           }
111         }
112    
113         //////////////////////////////////////////////////////////////////////
114         //////////////////////////////////////////////////////////////////////
115         }