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

📄 quitaction.java

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

import java.util.HashMap;
import java.util.Map;

import net.sf.component.config.ConfigHelper;
import net.sf.pim.mail.reader.FolderViewer;
import net.sf.util.StringUtil;

import org.eclipse.jface.action.IAction;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.ui.IMemento;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.IWorkbenchWindowActionDelegate;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.XMLMemento;
import org.eclipse.ui.internal.IWorkbenchConstants;
import org.eclipse.ui.internal.PartSite;
import org.eclipse.ui.internal.ViewSashContainer;
import org.eclipse.ui.internal.ViewStack;

public class QuitAction implements IWorkbenchWindowActionDelegate {

	public void dispose() {
	}

	public void init(IWorkbenchWindow window) {

	}

	public void run(IAction action) {
		//保存位置信息
		IWorkbenchPage activePage = MailPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow(). getActivePage();
		FolderViewer fv=(FolderViewer) activePage.findView(FolderViewer.ID);
		TableColumn[] tc = fv.getViewer().getTable().getColumns();
		Map map=new HashMap(tc.length);
		for (int k = 0; k < tc.length; k++) {
			map.put(tc[k].getText(), tc[k].getWidth());
		}
		ConfigHelper.getPropList().setProperty(FolderViewer.class.getSimpleName().toLowerCase() + ".headersize", StringUtil.fromMap(map, ";"));
		
		PartSite part = (PartSite) activePage.getActivePart().getSite();
		if(part.getPluginId().equals(MailPlugin.PLUGIN_ID)){
			ViewStack stack = (ViewStack) part.getPane().getContainer();
			ViewSashContainer container = (ViewSashContainer) stack.getContainer();
			XMLMemento memento = XMLMemento.createWriteRoot("DummyStatus");
			container.saveState(memento);
			IMemento[] children = memento.getChildren(IWorkbenchConstants.TAG_INFO);
			//只取一个属性
			float ratio=children[children.length -2].getFloat(IWorkbenchConstants.TAG_RATIO);
			ConfigHelper.getPropList().setProperty("mail.viewratio",String.valueOf(ratio));
		}
		ConfigHelper.store();
		//退出
        PlatformUI.getWorkbench().close();
	}

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

}

⌨️ 快捷键说明

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