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

📄 folderselectaction.java

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

import javax.mail.Folder;
import javax.mail.MessagingException;

import net.sf.pim.mail.MailPlugin;

import org.eclipse.jface.action.IAction;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.IWorkbenchWindowActionDelegate;
import org.eclipse.ui.IWorkbenchWindowPulldownDelegate;

public class FolderSelectAction implements IWorkbenchWindowActionDelegate, IWorkbenchWindowPulldownDelegate {
	private Menu toolbarMenu;

	public void dispose() {
		if (toolbarMenu != null) {
			toolbarMenu.dispose();
			toolbarMenu = null;
		}
	}

	public void init(IWorkbenchWindow window) {
	}

	public void run(IAction action) {
	}

	public Menu getMenu(Control parent) {
		if (toolbarMenu != null) {
			toolbarMenu.dispose();
		}
		toolbarMenu = new Menu(parent);
		fillMenu(toolbarMenu);
		return toolbarMenu;
	}
	
	private void fillMenu(Menu menu) {
		String[] folders=new String[]{MailPlugin.INBOX_NAME,MailPlugin.OUTBOX_NAME,MailPlugin.TRASHBOX_NAME,MailPlugin.ARCHIEBOX_NAME};
		for(String s:folders ){
			MenuItem choice = new MenuItem(menu, SWT.PUSH|SWT.RADIO);
			choice.setText(s);
			choice.addSelectionListener(new SelectionAdapter(){
				@Override
				public void widgetSelected(SelectionEvent se) {
					IWorkbenchPage activePage = MailPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow(). getActivePage();
					FolderViewer fv=(FolderViewer) activePage.findView(FolderViewer.ID);
					try {
						fv.showFolder(getFolder(((MenuItem)(se.getSource())).getText()));
					} catch (MessagingException e) {
						e.printStackTrace();
					}
				}});
		}
	}

	private Folder getFolder(String folderName) throws MessagingException{
		return MailPlugin.getDefault().getStore().getFolder(MailPlugin.convertFolderName(folderName));
	}

	public void selectionChanged(IAction action, ISelection selection) {
	}
}

⌨️ 快捷键说明

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