| SimpleClient | |
| ------------ | |
| Notes: | |
| ====== | |
| This should not be taken as a demo of how to use the Swing API, but | |
| rather a very simple graphical mail client. It shows how viewers can | |
| be used to display the content from mail messages. It also (like the | |
| other demos) shows how to retrieve Folders from a Store, Messages | |
| from a Folder, and content from Messages. | |
| To run the demo: | |
| ================ | |
| 1. If you're using JDK 1.1.x, download the latest version of the JFC | |
| (Swing) APIs from http://java.sun.com/products/jfc/download.html. | |
| The SimpleClient uses at least version 1.1 of Swing. | |
| If you're using JDK 1.2 (J2SE 1.2) or newer, Swing is included | |
| and no separate download is necessary. | |
| We *strongly* encourage you to use the latest version of J2SE, | |
| which you can download from http://java.sun.com/j2se/. | |
| 2. Set your CLASSPATH to include the "mail.jar", "activation.jar", | |
| and (if you're using JDK 1.1.x and downloaded Swing separately) | |
| "swingall.jar", and the current directory. For example: | |
| For JDK 1.1 on UNIX: | |
| export CLASSPATH=/u/me/download/mail.jar:/u/me/download/activation.jar:/u/me/download/swingall.jar:. | |
| For JDK 1.2 and newer on UNIX: | |
| export CLASSPATH=/u/me/download/mail.jar:/u/me/download/activation.jar:. | |
| 3. Go to the demo/client directory | |
| 4. Compile all the files using your Java compiler. For example: | |
| javac *.java | |
| 5. Run the demo. For example: | |
| java SimpleClient -L imap://username:password@hostname/ | |
| Note that SimpleClient expects to read the "simple.mailcap" | |
| file from the current directory. The simple.mailcap file | |
| contains configuration information about viewers needed by | |
| the SimpleClient demo program. | |
| Overview of the Classes | |
| ======================= | |
| Main Classes: | |
| SimpleClient = contains main(). | |
| Uses the parameters to the application to | |
| locate the correct Store. e.g. | |
| SimpleClient -L imap://cotton:secret@snow-goon/ | |
| It will create the main frame and | |
| creates a tree. The tree uses the | |
| StoreTreeNodes and FolderTreeNodes. | |
| StoreTreeNode = subclass of Swing's DefaultMutableTreeNode. | |
| This class shows how to get Folders from | |
| the Store. | |
| FolderTreeNode = subclass of Swing's DefaultMutableTreeNode. | |
| If the folder has messages, it will create | |
| a FolderViewer. Otherwise it will add the | |
| subfolders to the tree. | |
| SimpleAuthenticator = subclass of javax.mail.Authenticator. If | |
| the Store is missing the username or the | |
| password, this authenticator will be used. | |
| It displays a dialog requesting the | |
| information from the user. | |
| Viewing Folders: | |
| FolderViewer = Uses a Swing Table to display all of the | |
| Message in a Folder. The "model" of the | |
| data for this Table is a FolderModel which | |
| knows how to get displayable information | |
| from a Message. | |
| JAF Viewers: | |
| MessageViewer = Uses the content of the DataHandler. The | |
| content will be a javax.mail.Message | |
| object. Displays the headers and then | |
| uses the JAF to find another viewer for | |
| the content type of the Message. (either | |
| multipart/mixed, image/gif, or text/plain) | |
| MultipartViewer = Uses the content of the DataHandler. The | |
| content will be a javax.mail.Multipart | |
| object. Uses the JAF to find another | |
| viewer for the first BodyPart's content. | |
| Also puts Buttons (as "attachments") for | |
| the rest of the BodyParts. When the | |
| Button are pressed, it uses the JAF to | |
| find a viewer for the BodyPart's content, | |
| and displays it in a separate frame (using | |
| ComponentFrame). | |
| TextViewer = Uses the content of the DataHandler. The | |
| content will be either a java.lang.String | |
| object, or a java.io.InputStream object. | |
| Creates a TextArea and sets the text using | |
| the String or InputStream. | |
| Support Classes: | |
| ComponentFrame = support class which takes a java.awt.Component | |
| and displays it in a Frame. |