001 package com.croftsoft.apps.agoracast.c2p;
002
003 import java.awt.*;
004 import java.awt.event.*;
005 import java.io.*;
006 import javax.swing.*;
007
008 import com.croftsoft.core.lang.NullArgumentException;
009 import com.croftsoft.core.util.pubsub.Subscriber;
010
011 /*********************************************************************
012 *
013 * <p />
014 *
015 * @version
016 * 2002-01-29
017 * @since
018 * 2001-07-31
019 * @author
020 * <a href="https://www.croftsoft.com/">David Wallace Croft</a>
021 *********************************************************************/
022
023 public final class AgoracastBrowsePanel
024 extends JPanel
025 implements Subscriber
026 //////////////////////////////////////////////////////////////////////
027 //////////////////////////////////////////////////////////////////////
028 {
029
030 private final AgoracastMediator agoracastMediator;
031
032 private final CardLayout cardLayout;
033
034 private final AgoracastTablePanel agoracastTablePanel;
035
036 private final AgoracastDownloadPanel agoracastDownloadPanel;
037
038 private final AgoracastFieldsPanel agoracastFieldsPanel;
039
040 private final AgoracastSourcePanel agoracastSourcePanel;
041
042 //////////////////////////////////////////////////////////////////////
043 //////////////////////////////////////////////////////////////////////
044
045 public AgoracastBrowsePanel ( AgoracastMediator agoracastMediator )
046 //////////////////////////////////////////////////////////////////////
047 {
048 super ( true ); // isDoubleBuffered
049
050 NullArgumentException.check (
051 this.agoracastMediator = agoracastMediator );
052
053 setLayout ( cardLayout = new CardLayout ( ) );
054
055 AgoracastLib.setColor ( this, agoracastMediator );
056
057 agoracastTablePanel
058 = new AgoracastTablePanel ( agoracastMediator, this );
059
060 add ( agoracastTablePanel, "0" );
061
062 agoracastDownloadPanel
063 = new AgoracastDownloadPanel ( agoracastMediator, this );
064
065 add ( agoracastDownloadPanel, "1" );
066
067 agoracastFieldsPanel
068 = new AgoracastFieldsPanel ( agoracastMediator, this );
069
070 add ( agoracastFieldsPanel, "2" );
071
072 agoracastSourcePanel
073 = new AgoracastSourcePanel ( agoracastMediator, this );
074
075 add ( agoracastSourcePanel, "3" );
076 }
077
078 //////////////////////////////////////////////////////////////////////
079 //////////////////////////////////////////////////////////////////////
080
081 public synchronized void download ( )
082 //////////////////////////////////////////////////////////////////////
083 {
084 cardLayout.show ( this, "1" );
085
086 agoracastDownloadPanel.download ( );
087 }
088
089 public synchronized void showFieldsPanel ( String [ ] columnNames )
090 //////////////////////////////////////////////////////////////////////
091 {
092 cardLayout.show ( this, "2" );
093
094 agoracastFieldsPanel.setSelectedFieldNames ( columnNames );
095 }
096
097 public synchronized void showTable ( )
098 //////////////////////////////////////////////////////////////////////
099 {
100 cardLayout.show ( this, "0" );
101
102 String [ ] columnNames
103 = agoracastFieldsPanel.getSelectedFieldNames ( );
104
105 agoracastTablePanel.updateTable ( columnNames );
106 }
107
108 public synchronized void viewSource ( AgoracastData agoracastData )
109 //////////////////////////////////////////////////////////////////////
110 {
111 cardLayout.show ( this, "3" );
112
113 agoracastSourcePanel.viewSource ( agoracastData );
114 }
115
116 //////////////////////////////////////////////////////////////////////
117 //////////////////////////////////////////////////////////////////////
118
119 public synchronized void receive ( Object message )
120 //////////////////////////////////////////////////////////////////////
121 {
122 if ( message == AgoracastFieldsPanel.DONE_BUTTON_EVENT )
123 {
124 showTable ( );
125 }
126 }
127
128 //////////////////////////////////////////////////////////////////////
129 //////////////////////////////////////////////////////////////////////
130 }