⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 .#server.java.1.22

📁 create the email in the server
💻 22
📖 第 1 页 / 共 2 页
字号:
package za.co.halo.SecureCommunications.gui.server;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowEvent;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.Vector;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSplitPane;
import javax.swing.JTabbedPane;
import javax.swing.WindowConstants;
import javax.swing.border.Border;
import javax.swing.border.TitledBorder;
import org.netbeans.lib.awtextra.AbsoluteConstraints;
import org.netbeans.lib.awtextra.AbsoluteLayout;
import za.co.halo.SecureCommunications.DownloadRuleManager;
import za.co.halo.SecureCommunications.Email;
import za.co.halo.SecureCommunications.POP3Server;
import za.co.halo.SecureCommunications.Rule;
import za.co.halo.SecureCommunications.SMTPServer;
import za.co.halo.SecureCommunications.ServerAcknowledge;
import za.co.halo.SecureCommunications.ServerAdmin;
import za.co.halo.SecureCommunications.ServerGroupManager;
import za.co.halo.SecureCommunications.ServerManager;
import za.co.halo.SecureCommunications.WebServer;
import za.co.halo.SecureCommunications.cluster.ClusterClient;
import za.co.halo.SecureCommunications.cluster.ClusterServer;
import za.co.halo.SecureCommunications.gui.client2.DownloadRuleGui;
import za.co.halo.SecureCommunications.gui.client2.ServerGeneralPanel;
import za.co.halo.SecureCommunications.languageFilter.FilterGui;
import za.co.halo.SecureCommunications.network.ServerSettings;
import za.co.halo.SecureCommunications.network.rmi.RMIServer;
import za.co.halo.SecureCommunications.scheduling.ServerSchedule;

/**
* This code was generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* *************************************
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED
* for this machine, so Jigloo or this code cannot be used legally
* for any corporate or commercial purpose.
* *************************************
*/
/**
 * @author
 * Server Class
 * This class presents the GUI for iCat's server
 * It acts as a container that incorporates other classes with GUI components
 * This class also contains the code to start the servers: POP3, SMTP, Web Server, RMI Server
 */

public class Server extends JFrame implements ActionListener, MouseListener 
{	
	private static final long serialVersionUID = 1L;

	/*public class DialogListener extends ComponentAdapter// implements ComponentListener {
	{
//		

		public void componentResized(ComponentEvent e) 
		{
			
			
		}
	}*/
	
	
	private JPanel welcomePanel;
	private JPanel leftPanel;
	private JPanel rightPanel;
	private JPanel infoPanel;
	private JPanel serversTabPanel;
	private JPanel accountTabPanel;
	private JPanel groupsTabPanel;
	private JPanel logTabPanel;
	private JPanel domainTabPanel;
	private JPanel downloadTabPanel;
	private JPanel languageFilterTabPanel;
	private JSplitPane splitPane;
	private JButton accountButton;
	private JButton groupButton;
	private JButton downloadButton;
	private JButton optionsButton;
	private JButton  languageFilterButton,logButton;
	private JButton closeButton;
	private JButton domainButton;
	private JLabel infoLabel;
	private JLabel imageLabel;
	private JTabbedPane tabbedPane;
	private ServerGeneralPanel generalPanel, downloadgeneralPanel;
	
    private LogFilePanel logFilePanel;
    private ServerAccountsPanel serverAccountsPanel;
    private GroupsPanel groupsPanel;
    private DomainPanel domainPanel;
    private ServerPanel2 serverPanel;
    private Border whiteLine = BorderFactory.createLineBorder(Color.white,1);
    private Font customFont = new Font("Helvetica", Font.PLAIN, 14);
    private Font customFont2 = new Font("Helvetica", Font.PLAIN, 12);
    private ImageIcon iCatImage;
    private ServerStartStatus sss = new ServerStartStatus();
    private Vector<Boolean> status;
    
    private ServerManager accounts;
    private ServerGroupManager groups;
    private ServerSchedule scheduler;
	private WebServer webserver;
	private ClusterServer clusterServer;
	private ServerSettings serverSettings;
	private FilterGui languageFiltergui;
	private DownloadRuleGui rulegui;
	private Vector<Rule> theRules;
	private DownloadRuleManager ruleManager;
    
	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;
	}

	/**
	* main method 
	* Use to:
	* display the JFrame.
    */
	public static void main(String[] args) 
	{
		javax.swing.SwingUtilities.invokeLater(new Runnable()
		{
			public void run()
		    {
				Server serverGUI = new Server();
				serverGUI.pack();
				serverGUI.setVisible(true);
		    }
		});
	}
	
   /**
	* Server constructor 
	* Use to:
	* initialize member variables
	* initialize the build of graphical components
	* call the function startServers to start the appropriate servers
	* @param void
	* @return void 
	*/
	public Server()
	{
		ruleManager = new DownloadRuleManager();
		ruleManager.load();
		serverSettings = getServerSettings();
		accounts = new ServerManager();
		accounts.load();
		groups = new ServerGroupManager();
		groups.load();
		theRules = ruleManager.getRules();
		//clusterServer = new ClusterServer(accounts,groups);
		initGUI();
		status = new Vector<Boolean>();
		startServers();
		
	}
	
   private ServerSettings getServerSettings() {
	   try {
		ObjectInputStream in = new ObjectInputStream(new FileInputStream(new File(ServerAdmin.SERVER_SETTINGS_SAVE_FILE)));
		ServerSettings s = (ServerSettings)in.readObject();
		in.close();
		return s;
	} catch (Exception e) {
		e.printStackTrace();
		return new ServerSettings();
	}
   }

   private void saveServerSettings() {
	   try {
		ObjectOutputStream in = new ObjectOutputStream(new FileOutputStream(new File(ServerAdmin.SERVER_SETTINGS_SAVE_FILE)));
		in.writeObject(serverSettings);
		in.close();
	} catch (Exception e) {
		e.printStackTrace();
	}
   }
/**
	* startServer method
	* Use to:
	* Start the POP3, SMTP, Web Server and RMI servers
	* @param void
	* @return void 
	*/
    private void startServers()
    {
    	
    	System.out.println("Starting servers");
		
		//Server Acknowledge
		ServerAcknowledge ack = new ServerAcknowledge();
		ack.start();

		//Start cluster server
		try {
		clusterServer = new ClusterServer(accounts,groups);
		clusterServer.start();
		}
		catch (Exception e)
		{
			ServerAdmin.error.warning("Clusterserver could not start");
			e.printStackTrace();
		}
		
		//Start scheduler
		scheduler = new ServerSchedule();
		
		//Start Cluster client
		scheduler.schedule(new ClusterClient(accounts),60,120);
		
		//Start webmail
		try {
		Thread webserverThread = new Thread() {
			public void run()
			{
				webserver = new WebServer(accounts);
				webserver.setupAddressBooks();
				webserver.setServerName("ICAT Webserver");
				webserver.setDomainName("halo.co.za");
				webserver.setSMTPserver("student.up.ac.za");
				webserver.start();
			}
		};
		webserverThread.start();
		sss.setwebServerStartStatus(true);
		System.out.println("***---web server started---***");
		System.out.println("web server start status:" + sss.getWebserverStartStatus());
		}
		catch (Exception e)
		{
			sss.setwebServerStartStatus(false);
			System.out.println("***---web server failed---***");
			System.out.println("web server start status:" + sss.getWebserverStartStatus());
			ServerAdmin.error.warning("Webserver could not start");
			e.printStackTrace();
		}
		
    	// Start pop3 server
		try {
    	Thread pop3 = new Thread() {
    		public void run()
    		{
		    	POP3Server pop = new POP3Server(accounts);
		    	pop.setServerName("ICAT server");
		    	pop.start();
    		}
    	};
    	pop3.start();
    	sss.setPOP3StartStatus(true);
    	System.out.println("***---pop3 server started---***");
		System.out.println("pop3 start status:" + sss.getWebserverStartStatus());
		}
		catch (Exception e)
		{
			sss.setPOP3StartStatus(false);
			System.out.println("***---pop3 server failed---***");
			System.out.println("pop3 start status:" + sss.getWebserverStartStatus());
			ServerAdmin.error.warning("POPServer could not start");
			e.printStackTrace();
		}
    	
    	// Start smtp server
		try{
    	Thread s = new Thread() {
    		public void run()
    		{
    			SMTPServer smtp = new SMTPServer(accounts);
    			smtp.setServerName("ICAT server");
    			smtp.start();
    		}
    	};
    	s.start();
    	sss.setSMTPStartStatus(true);
    	System.out.println("***---smtp server started---***");
		System.out.println("smtp start status:" + sss.getWebserverStartStatus());
		}
		catch (Exception e)
		{
			sss.setSMTPStartStatus(false);
			System.out.println("***---smtp server started---***");
			System.out.println("smtp server start status:" + sss.getWebserverStartStatus());
			ServerAdmin.error.warning("SMTP could not start");
			e.printStackTrace();
		}

		// Start rmi server
    	/*new Thread() {
    		public void run()
    		{
    			new RMIServer(accounts);
    		}
    	};*/
		try {
		new RMIServer(accounts);
		sss.setRMIStartStatus(true);
		System.out.println("***---rmi server started---***");
		System.out.println("rmi start status:" + sss.getWebserverStartStatus());
		}
		catch (Exception e)
		{
			sss.setRMIStartStatus(false);
			System.out.println("***---rmi server started---***");
			System.out.println("rmi start status:" + sss.getWebserverStartStatus());
			ServerAdmin.error.warning("RMIServer could not start");
			e.printStackTrace();
		}
    	System.out.println("Started servers");
    	status.addElement(sss.getPOP3StartStatus());
    	status.addElement(sss.getSMTPStartStatus());
    	status.addElement(sss.getRMIStartStatus());
    	status.addElement(sss.getWebserverStartStatus());
    	System.out.println("---"+status);
    }
	
   /**
	* initGUI method
	* USe to:
	* initialize graphics
	* @param void
	* @return void 
	*/
	private void initGUI() {
		try {
			{
				setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
				this.setPreferredSize(new Dimension(930,700));
				this.setLocation(50,5);
				this.setTitle("iCat Server");
				this.setIconImage(new ImageIcon("Banners/iconLogo.png").getImage());
				
				welcomePanel = new JPanel();
				welcomePanel.setSize(new Dimension(800,100));
				welcomePanel.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createTitledBorder(whiteLine,"Welcome: iCat Administrator",TitledBorder.TOP,TitledBorder.LEADING,customFont,Color.white),BorderFactory.createEmptyBorder(0,0,0,0)));
				welcomePanel.setBackground(new Color(21,118,146));
				this.add(welcomePanel,BorderLayout.NORTH);
				
				leftPanel = new JPanel();
				leftPanel.setMinimumSize(new Dimension(250,600));
				leftPanel.setLayout(null);
		        leftPanel.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createTitledBorder(whiteLine,"Options",TitledBorder.LEADING,TitledBorder.TOP,customFont2,Color.white),BorderFactory.createEmptyBorder(5,5,5,5)));
		        leftPanel.setBackground(new Color(15,65,108));
		        
		        rightPanel = new JPanel();
		        rightPanel.setMinimumSize(new Dimension(700,800));
		        rightPanel.setLayout(null);
		        rightPanel.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createTitledBorder(whiteLine,"Information",TitledBorder.LEADING,TitledBorder.TOP,customFont2,Color.white),BorderFactory.createEmptyBorder(5,5,5,5)));
		        rightPanel.setBackground(new Color(15,65,108));
		        
		        splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, leftPanel, rightPanel);
		        splitPane.setOneTouchExpandable(true);
		        splitPane.setDividerLocation(251);
		        this.add(splitPane,"Center");
		        
		        accountButton = new JButton("Manage Accounts");

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -