📄 client.java
字号:
package za.co.halo.SecureCommunications.gui.client2;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import java.awt.event.WindowEvent;
import java.io.File;
import java.io.IOException;
import java.util.Timer;
import java.util.Vector;
import javax.swing.AbstractAction;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JComponent;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JSeparator;
import javax.swing.JSplitPane;
import javax.swing.JToolBar;
import javax.swing.JTree;
import javax.swing.WindowConstants;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import za.co.halo.SecureCommunications.AccountOfClient;
import za.co.halo.SecureCommunications.ClientAccountManager;
import za.co.halo.SecureCommunications.DownloadRuleManager;
import za.co.halo.SecureCommunications.Email;
import za.co.halo.SecureCommunications.InboxInfo;
import za.co.halo.SecureCommunications.Rule;
import za.co.halo.SecureCommunications.ServerAdmin;
import za.co.halo.SecureCommunications.FolderMailRules.FolderRuleManager;
import za.co.halo.SecureCommunications.FolderMailRules.ViewFolderRuleMainPanel;
import za.co.halo.SecureCommunications.JunkMail.JunckMailManager;
import za.co.halo.SecureCommunications.JunkMail.ViewJunkRules;
import za.co.halo.SecureCommunications.calendar.CalFrame;
import za.co.halo.SecureCommunications.client.EmailBox;
import za.co.halo.SecureCommunications.client.EmailBox.FolderNode;
import za.co.halo.SecureCommunications.client.contact.ContactPanel;
import za.co.halo.SecureCommunications.dailer.DailerMainGui;
import za.co.halo.SecureCommunications.dailer.DialerSettings;
import za.co.halo.SecureCommunications.gui.client2.EmailPanel;
import za.co.halo.SecureCommunications.gui.client2.Node;
import za.co.halo.SecureCommunications.languageFilter.FilterGui;
import za.co.halo.SecureCommunications.languageFilter.LanguageManagerFilter;
import za.co.halo.SecureCommunications.network.ClientEmailDownloadListener;
import za.co.halo.SecureCommunications.network.ClientIntelligentMailSendAndReceive;
import za.co.halo.SecureCommunications.network.rmi.RMIClient;
import za.co.halo.SecureCommunications.network.smtp.SMTPClient;
import za.co.halo.SecureCommunications.scheduling.Scheduler;
import za.co.halo.SecureCommunications.search.SearchListener;
import za.co.halo.SecureCommunications.search.SearchPanel2;
import za.co.halo.SecureCommunications.util.FileUtil;
public class Client extends javax.swing.JFrame implements ActionListener {
public class DialogListener extends ComponentAdapter// implements ComponentListener {
{
//
public void componentResized(ComponentEvent e)
{
}
}
private ClientIntelligentMailSendAndReceive receiver;
private JMenuBar mainMenu;
private ClientAccountManager accounts;
public static Email email;
public static Client client;
private AccountsPanel account;
private EmailBox box;
private ContactPanel contactPanel;
private DownloadRuleGui rulegui;
private LanguageManagerFilter languageFilter;
private EmailPanel panel;
public boolean emailselected = false;
private JMenuItem junkruleItem;
private JMenu toolsMenu;
private JMenuItem refreshMenuButton;
private JMenuItem accountsMenuButton;
private JMenu View;
private DailerMainGui dailer_;
private JMenuItem markallreadMenuButton;
private JMenuItem markasUnreadMenuButton;
private JMenuItem markAsReadMenuButton;
private JMenuItem deleteMenuButton;
public JButton replyButton;
private JTree tree;
private GeneralPanel generalPanel;
private ComposeMail composeMail;
private JSplitPane emailsplit;
private JSplitPane splitpane;
private JButton sendAndRecieveButton;
public JButton forwardButton;
private JButton newButton;
private JButton addressBook;
private JToolBar emailtoolbar;
private JPanel emailPanel;
private JMenuItem indexMenuButton;
private JMenuItem aboutMenuButton;
private JMenu helpMenu;
public JMenuItem replyMenuButton;
public JMenuItem forwardMenuButton;
private JMenuItem newMessageButton;
private JSeparator jSeparator5;
private JMenuItem trashFolderButton;
private JMenu actionMenu;
private JMenu optionsMenuButton;
private JMenuItem ruleItem;
private JMenuItem folderItem;
private JMenuItem languageItem;
private JMenuItem selectAllMenuButton;
private JSeparator jSeparator3;
private JMenu Edit;
private JMenuItem exitMenuButton, dailer;
private JMenuItem printMenuButton;
private JMenuItem exportMenuButton;
private JMenuItem importMenuButton;
private JSeparator jSeparator1;
private JMenu File;
private Vector<Rule> theRules;
private JunckMailManager junkMailManager;
public static Client clientTopass;
private DownloadRuleManager ruleManager;
private FolderRuleManager folderManager;
private ViewJunkRules junkmail;
private ViewFolderRuleMainPanel folderRuleMainPanel;
private SearchPanel2 searchPanel;
private Vector<Email> currentList;
private DialerSettings dialer;
private void load()
{
loadEmailBox();
accounts.load();
folderManager = new FolderRuleManager();
folderManager.load();
languageFilter = new LanguageManagerFilter();
languageFilter.load();
ruleManager = new DownloadRuleManager();
ruleManager.load();
junkMailManager = new JunckMailManager();
junkMailManager.load();
theRules = ruleManager.getRules();
dialer = new DialerSettings();
dialer.load();
}
/*
private Vector<AccountOfClient> getAccounts()
{
Vector<AccountOfClient> a =null;
File f = new File(ServerAdmin.CLIENT_ACCOUNTS_FILE);
if (f.exists())
try {
a = (Vector<AccountOfClient>)FileUtil.readFile(f);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
if (a == null)
a = new Vector<AccountOfClient>(10);
return a;
}
*/
private void loadEmailBox()
{
File f = new File(ServerAdmin.EMAIL_FILE);
if (f.exists())
try {
box = FileUtil.readFile(f);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
if (box == null)
box = new EmailBox();
}
/*
private Vector<Email> getTestEmails() {
Vector<String> receivers = new Vector<String>(3);
receivers.addElement("s23152835@tuks.co.za");
receivers.addElement("s21152835@tuks.co.za");
receivers.addElement("rusty@tuks.co.za");
Vector<String> message = new Vector<String>(1);
message .addElement("If you can read this , ICAT V0.03 is up and running."
+ "Thank You for your patience");
message.addElement("The next updated version of ICAT v0.03 will be released the 14Okt");
Vector<Email> e = new Vector<Email>(10);
e.addElement(new Email("Something Special", "Isabel Bostha", receivers,
receivers, receivers, "John McGee", message, "1:03",
"Anliend de Lange"));
e.addElement(new Email("Read it...", "Jeanri Pellissier", receivers,
receivers, receivers, "John McGee", message, "1:03",
"Anliend de Lange"));
e.addElement(new Email("How's the shot going ?", "Pieter Toute",
receivers, receivers, receivers, "John McGee", message,
"1:03", "Anliend de Lange"));
e.addElement(new Email("me - you", "Lizel van Rensburg", receivers,
receivers, receivers, "John McGee", message, "1:03",
"Anliend de Lange"));
e.addElement(new Email("This is the life", "Jaco Pieterse", receivers,
receivers, receivers, "John McGee", message, "1:03",
"Anliend de Lange"));
return e;
}*/
public static void main(String[] args) {
SplashScreen splash = new SplashScreen("splash.png");
splash.start();
Client inst = new Client();
clientTopass = inst;
inst.setVisible(true);
splash.stop();
}
public Client()
{
super();
currentList = new Vector<Email>();
client = this;
accounts = new ClientAccountManager();
load();
receiver = new ClientIntelligentMailSendAndReceive(client,accounts.getAccounts(),ruleManager,languageFilter,dialer);
initGUI();
}
private void setCurrentList(Vector<Email> list)
{
currentList = list;
setRightComponent(panel = new EmailPanel(list, this, accounts));
}
void initGUI() {
try {
{
clientTopass = this;
this.setTitle("ICAT - V1.00");
this.setIconImage(new ImageIcon("Banners/iconLogo.png").getImage());
mainMenu = new JMenuBar();
setJMenuBar(mainMenu);
mainMenu.setPreferredSize(new java.awt.Dimension(1028, 28));
{
File = new JMenu();
mainMenu.add(File);
File.setText("File");
{
jSeparator1 = new JSeparator();
File.add(jSeparator1);
}
{
importMenuButton = new JMenuItem();
File.add(importMenuButton);
importMenuButton.setText("Import...");
}
{
exportMenuButton = new JMenuItem();
File.add(exportMenuButton);
exportMenuButton.setText("Export...");
}
{
jSeparator1 = new JSeparator();
File.add(jSeparator1);
}
{
//printMenuButton = new JMenuItem();
//File.add(printMenuButton);
//printMenuButton.setText("Print...");
}
{
jSeparator1 = new JSeparator();
File.add(jSeparator1);
}
{
exitMenuButton = new JMenuItem();
File.add(exitMenuButton);
exitMenuButton.setText("Exit");
}
}
{
Edit = new JMenu();
mainMenu.add(Edit);
Edit.setText("Edit");
{
selectAllMenuButton = new JMenuItem();
Edit.add(selectAllMenuButton);
selectAllMenuButton.setText("Select All");
}
{
jSeparator3 = new JSeparator();
Edit.add(jSeparator3);
}
{
deleteMenuButton = new JMenuItem(new DeleteEmailAction());
Edit.add(deleteMenuButton);
deleteMenuButton.setText("Delete");
}
{
jSeparator3 = new JSeparator();
Edit.add(jSeparator3);
}
{
markAsReadMenuButton = new JMenuItem();
Edit.add(markAsReadMenuButton);
markAsReadMenuButton.setText("Mark as Read");
}
{
markasUnreadMenuButton = new JMenuItem();
Edit.add(markasUnreadMenuButton);
markasUnreadMenuButton.setText("Mark as Unread");
}
{
markallreadMenuButton = new JMenuItem();
Edit.add(markallreadMenuButton);
markallreadMenuButton.setText("Mark All as Read");
}
}
{
View = new JMenu();
mainMenu.add(View);
View.setText("View");
{
refreshMenuButton = new JMenuItem(new RefreshAction());
View.add(refreshMenuButton);
refreshMenuButton.setText("Refresh");
}
}
{
toolsMenu = new JMenu();
mainMenu.add(toolsMenu);
toolsMenu.setText("Tools");
{
accountsMenuButton = new JMenuItem(new AccountsAction());
toolsMenu.add(accountsMenuButton );
accountsMenuButton.setText("Accounts");
}
{
optionsMenuButton = new JMenu();
toolsMenu.add(optionsMenuButton);
optionsMenuButton.setText("Options...");
}
{
ruleItem = new JMenuItem(new DownloadRulesAction());
optionsMenuButton.add(ruleItem);
ruleItem.setText("Download Rules");
}
{
dailer = new JMenuItem(new DailerAction());
optionsMenuButton.add(dailer);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -