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

📄 multifolder.java

📁 mywork是rcp开发的很好的例子
💻 JAVA
字号:
package net.sf.pim.mail;

import java.util.List;

import javax.mail.Flags;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.MethodNotSupportedException;
import javax.mail.Store;
import javax.mail.event.MessageCountListener;

public class MultiFolder extends Folder {

	private String name;
	private List<Folder> folders;
	private boolean opend;
	
	protected MultiFolder(Store store, String name, List<Folder> list) {
		super(store);
		this.name=name;
		this.folders=list;
	}

	@Override
	public void open(int mode) throws MessagingException {
		for(Folder folder:folders)
			folder.open(mode);
		opend=true;
	}
	
	@Override
	public void close(boolean expunge) throws MessagingException {
		for(Folder folder:folders)
			folder.close(expunge);
	}
	@Override
	public boolean exists() throws MessagingException {
		return true;
	}

	@Override
	public String getFullName() {
		return MailPlugin.convertFolderName(name);
	}
	
	@Override
	public String getName() {
		return name;
	}
	
	@Override
	public Message getMessage(int msgnum) throws MessagingException {
		return null;
	}

	@Override
	public int getMessageCount() throws MessagingException {
		int count=0;
		for(Folder folder:folders)
			count += folder.getMessageCount();
		return count;
	}

	@Override
	public synchronized Message[] getMessages() throws MessagingException {
		Message[] messages=new Message[getMessageCount()];
		int count=0;
		for(Folder f:folders){
			Message[] ms=f.getMessages();
			System.arraycopy(ms, 0, messages, count, ms.length);
			count += ms.length;
		}
		return messages;
	}	
	@Override
	public void appendMessages(Message[] msgs) throws MessagingException {
		throw new MethodNotSupportedException();
	}

	@Override
	public boolean create(int type) throws MessagingException {
		throw new MethodNotSupportedException();
	}

	@Override
	public boolean delete(boolean recurse) throws MessagingException {
		throw new MethodNotSupportedException();
	}


	@Override
	public Message[] expunge() throws MessagingException {
		throw new MethodNotSupportedException();
	}

	@Override
	public Folder getFolder(String name) throws MessagingException {
		throw new MethodNotSupportedException();
	}

	@Override
	public Folder getParent() throws MessagingException {
		return null;
	}

	@Override
	public Flags getPermanentFlags() {
		return null;
	}

	@Override
	public char getSeparator() throws MessagingException {
		return '/';
	}

	@Override
	public int getType() throws MessagingException {
		return Folder.HOLDS_MESSAGES;
	}

	@Override
	public boolean hasNewMessages() throws MessagingException {
		return false;
	}

	@Override
	public boolean isOpen() {
		return opend;
	}

	@Override
	public Folder[] list(String pattern) throws MessagingException {
		return null;
	}


	@Override
	public boolean renameTo(Folder f) throws MessagingException {
		return false;
	}

	@Override
	public synchronized void addMessageCountListener(MessageCountListener l) {
		for(Folder f:folders)
			f.addMessageCountListener(l);
	}

	@Override
	public synchronized void removeMessageCountListener(MessageCountListener l) {
		for(Folder f:folders)
			f.removeMessageCountListener(l);
	}

}

⌨️ 快捷键说明

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