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

📄 client.java

📁 create the email in the server
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
						dailer.setText("Dailer settings");
					}
					{
						junkruleItem = new JMenuItem(new JunkMailRulesAction());
						optionsMenuButton.add(junkruleItem);
						junkruleItem.setText("JunkMail Rules");


					}
					{
						folderItem = new JMenuItem(new FolderRulesAction());
						optionsMenuButton.add(folderItem);
						folderItem.setText("Folder Mail Rules");


					}
					{

						languageItem = new JMenuItem(new LanguageFilterAction());
						optionsMenuButton.add(languageItem);
						languageItem.setText("Language Filter");
					}
				}
				{
					actionMenu = new JMenu();
					mainMenu.add(actionMenu);
					actionMenu.setText("Actions");
					{
						trashFolderButton = new JMenuItem();
						actionMenu.add(trashFolderButton);
						trashFolderButton.setText("Empty \"Trash\" Folder");
					}
					{
						jSeparator5 = new JSeparator();
						actionMenu.add(jSeparator5);
					}
					{
						newMessageButton = new JMenuItem(new NewEmailAction());
						newMessageButton.addActionListener(this);
						actionMenu.add(newMessageButton);
						newMessageButton.setText("New Message");
					}
					{
						forwardMenuButton = new JMenuItem(new ForwardAction());
						actionMenu.add(forwardMenuButton);

						if(this.emailselected)
						{

						forwardMenuButton.setEnabled(true);
						}else forwardMenuButton.setEnabled(false);
						forwardMenuButton.setText("Forward");
					}
					{
						replyMenuButton = new JMenuItem(new ReplyToOneAction());
						actionMenu.add(replyMenuButton);
						if(this.emailselected)
						{
							replyMenuButton.setEnabled(true);
						}else replyMenuButton.setEnabled(false);
						replyMenuButton.setText("Reply");
					}

				}
				{
					helpMenu = new JMenu();
					mainMenu.add(helpMenu);
					helpMenu.setText("Help");
					{
						indexMenuButton = new JMenuItem(new HelpAction());
						helpMenu.add(indexMenuButton);
						indexMenuButton.setText("Index");
					}
					{
						aboutMenuButton = new JMenuItem(new AboutScreenAction());
						helpMenu.add(aboutMenuButton);
						aboutMenuButton.setText("About...");
					}

				}
			}
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			{
				emailPanel = new JPanel();
				this.getContentPane().add(emailPanel, BorderLayout.CENTER);
				FlowLayout emailPanelLayout = new FlowLayout();
				emailPanel.setLayout(emailPanelLayout);
				{
					emailtoolbar = new JToolBar();
					emailPanel.add(emailtoolbar);
					emailtoolbar.setPreferredSize(new java.awt.Dimension(800,
							30));
					{
						newButton = new JButton(new NewEmailAction());


						emailtoolbar.add(newButton);
						newButton.setText("New");
						newButton.setBounds(91, 202, 60, 27);
					}
					{
						replyButton = new JButton(new ReplyToOneAction());
						emailtoolbar.add(replyButton);
						if(emailselected)
						{
							replyButton.setEnabled(true);
						}else replyButton.setEnabled(false);
						replyButton.setText("Reply");
						//replyButton.setPreferredSize(new java.awt.Dimension(40,40));
						replyButton.setBounds(132, 139, 100, 27);
					}

					{
						forwardButton = new JButton(new ForwardAction());
						if(this.emailselected)
						{
							forwardButton.setEnabled(true);
						}else forwardButton.setEnabled(false);
						emailtoolbar.add(forwardButton);
						forwardButton.setText("Forward");
					}
					{

						addressBook = new JButton(
								new OpenAddressBookAction());
						emailtoolbar.add(addressBook);
						addressBook.setText("Addressbook");
					}
					{

						sendAndRecieveButton = new JButton(
								new SendAndRecieveAction());
						emailtoolbar.add(sendAndRecieveButton);
						sendAndRecieveButton.setText("Send and Receive");
					}

					{
						searchPanel = new SearchPanel2(box);
						searchPanel.setSearchListener(new ClientSearchListener());
						emailtoolbar.add(searchPanel);
					}
				}
				{
					splitpane = new JSplitPane();
					emailPanel.add(splitpane);
					splitpane
							.setPreferredSize(new java.awt.Dimension(780, 500));
					{
						emailsplit = new JSplitPane();
						splitpane.add(emailsplit, JSplitPane.RIGHT);
						{
							tree = new JTree(new ClientTreeModel(box));
							tree.setTransferHandler(new TreeTransferHandler());
							tree.setRootVisible(false);
							tree.setDragEnabled(true);
							tree.addTreeSelectionListener(new TreeListener(this));
							tree.setCellRenderer(new NodeCellRenderer());
							tree.setBackground(new Color(15, 65, 108));
							tree.setMinimumSize(new Dimension(160,300));
							splitpane.add(tree, JSplitPane.LEFT);
						}
						{

							setCurrentList(new Vector<Email>());
							panel.setSize(200, 300);

						}
					}
				}
			}
			pack();
			setSize(800, 600);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	protected void processWindowEvent(WindowEvent e)
	{
		super.processWindowEvent(e);
		if (e.getID() == WindowEvent.WINDOW_CLOSED)
			exitAndSave();
	}

	private void exitAndSave()
	{
		System.out.println("Exit and Save");
		languageFilter.save();
		dialer.save();
		saveAccounts();
		saveEmails();
		saveDownloadRules();
		System.exit(0);
	}

	private void saveAccounts()
	{
		accounts.save();
	}

	private void saveDownloadRules()
	{
		ruleManager.save();
	}

	private void saveEmails()
	{
		try {
			FileUtil.write(new File(ServerAdmin.EMAIL_FILE),box);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	private void setRightComponent(JComponent component)
	{
		splitpane.setRightComponent(component);
	}

	//@SuppressWarnings("deprecation")
	public void actionPerformed(ActionEvent e) {
		//System.out.println("Creating Compose mail");
		JDialog dialog = new JDialog(this);
		composeMail = new ComposeMail(dialog);
		composeMail.setSendActionListener(new SendEmailExchange());
		dialog.setTitle("Compose mail");
		dialog.setLayout(new BorderLayout());
		dialog.add(composeMail,BorderLayout.CENTER);
		dialog.setSize(600,400);
		dialog.setVisible(true);
	}

	class NewEmailAction extends AbstractAction {
		/**
		 * method that calls the general panel which
		 * adds the Compose mail class.
		 * Opens a gui to create a new email
		 */
		private static final long serialVersionUID = 1L;

		NewEmailAction() {
			super("Create a new e-mail", new ImageIcon("Icons/newmail.png"));
		}

		public void actionPerformed(ActionEvent arg0) {
			JDialog dialog = new JDialog(client);
			generalPanel = new GeneralPanel(GeneralPanel.Images.NEW_EMAIL);
			composeMail = new ComposeMail(dialog, email,clientTopass,accounts);
			composeMail.setSendActionListener(new SendEmailExchange());
			generalPanel.add(composeMail, BorderLayout.CENTER);
			dialog.addComponentListener(new DialogListener());
			dialog.setLayout(new BorderLayout());
			dialog.add(generalPanel, BorderLayout.CENTER);
			dialog.setSize(600, 550);
			composeMail.resize(dialog.getSize().width,dialog.getSize().height);
			//dialog.setTitle("Compose new email ");
			dialog.setVisible(true);
			dialog.setTitle("ICAT New message ");
		}

	}

	public void setEmail(Email e)
	{
		email = e;

	}

	class SendAndRecieveAction extends AbstractAction {
		SendAndRecieveAction() {
			super("Send and recieve mail", new ImageIcon(
					"Icons/sendandrecieve.png"));
		}

		public void actionPerformed(ActionEvent arg0)
		{
			//ClientIntelligentMailSendAndReceive receiver = new ClientIntelligentMailSendAndReceive(client,accounts.getAccounts(),ruleManager,languageFilter,dialer);
			receiver.addDownloadListener(new EmailListener());
			receiver.download();
			if (box.getOutbox().size() > 0)
			{
				AccountOfClient a = accounts.getDefaultAccount();
				Vector<Email> emails = box.getOutbox();
				if (a.getType() == AccountOfClient.Types.POPSMTP)
				{
					SMTPClient smtp = new SMTPClient(a.getSmtpServer(), a.getPassword());
					smtp.connect();
					System.out.println("Sending "+emails.size()+" emails using SMTP on "+a.getEmailAddress());
					for (int i=0; i<emails.size(); i++)
                    {
					    Email em = emails.get(i);
                        smtp.sendEmail(em);
                    }
                    smtp.disconnect();
					box.getSentMail().addAll(emails);
					box.getOutbox().removeAllElements();

				}
				else if (a.getType() == AccountOfClient.Types.RMI)
				{
					RMIClient client = new RMIClient(a.getRmiServer(),a.getUsername(),a.getPassword());
					client.connect();
					System.out.println("Sending "+emails.size()+" emails using RMI on "+a.getEmailAddress());
					for (Email e:emails)
					{
						client.sendMail(e);
						box.getOutbox().remove(e);
						box.getSentMail().addElement(e);
					}
					client.disconnect();
				}
				setCurrentList(currentList);
			}
		}

	}

	class SearchAction extends AbstractAction {
		SearchAction() {
			super("search for something", new ImageIcon("Icons/search2.png"));
		}

		public void actionPerformed(ActionEvent arg0) {


		}

	}



	class ReplyToOneAction extends AbstractAction {
		ReplyToOneAction() {
			super("reply to one", new ImageIcon("Icons/replytoone.png"));
		}

		public void actionPerformed(ActionEvent arg0) {
			JDialog dialog = new JDialog(client);
			generalPanel = new GeneralPanel(GeneralPanel.Images.REPLY);
			composeMail = new ComposeMail(dialog, email,ComposeMail.Type.REPLY ,clientTopass);
			composeMail.setSendActionListener(new SendEmailExchange());
			generalPanel.add(composeMail, BorderLayout.CENTER);

			dialog.addComponentListener(new DialogListener());
			dialog.setLayout(new BorderLayout());
			dialog.add(generalPanel, BorderLayout.CENTER);
			dialog.setSize(600, 600);
			composeMail.resize(dialog.getSize().width,dialog.getSize().height);
			dialog.setVisible(true);
			dialog.setTitle("ICAT Reply to message ");
		}

	}

	class ForwardAction extends AbstractAction {
		ForwardAction() {
			super("forward message", new ImageIcon("Icons/forward.png"));
		}

		public void actionPerformed(ActionEvent arg0) {
			JDialog dialog = new JDialog(client);
			generalPanel = new GeneralPanel(GeneralPanel.Images.FORWARD);
			composeMail = new ComposeMail(dialog, email,ComposeMail.Type.FORWARD , clientTopass);
			composeMail.setSendActionListener(new SendEmailExchange());
			generalPanel.add(composeMail, BorderLayout.CENTER);
			dialog.addComponentListener(new DialogListener());
			dialog.setLayout(new BorderLayout());
			dialog.add(generalPanel, BorderLayout.CENTER);
			dialog.setSize(600, 600);
			composeMail.resize(dialog.getSize().width,dialog.getSize().height);
			dialog.setVisible(true);
			dialog.setTitle("ICAT Forward message");
		}

⌨️ 快捷键说明

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