abstractparteditor.java

来自「基于eclipse的工具开发代码」· Java 代码 · 共 84 行

JAVA
84
字号
package com.cownew.studio.modelDev.editors;

import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.text.IDocument;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorSite;
import org.eclipse.ui.IWorkbenchPartConstants;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.part.EditorPart;
import org.eclipse.ui.texteditor.IDocumentProvider;

import com.cownew.studio.modelDev.common.CommonUtils;

public abstract class AbstractPartEditor extends EditorPart
{
	private boolean isDirty = false;

	public void doSave(IProgressMonitor monitor)
	{
		IEditorInput edtinput = getEditorInput();
		IDocumentProvider provider = EditorUtils
				.getDocumentProvider(edtinput);
		if (provider == null)
			return;

		try
		{
			provider.aboutToChange(edtinput);
			IDocument doc = provider.getDocument(edtinput);
			provider.saveDocument(monitor, edtinput, doc, true);
			setClean();

		} catch (CoreException e)
		{
			CommonUtils.handleExceptionAndAbort(e);
		} finally
		{
			provider.changed(edtinput);
		}

	}

	public void doSaveAs()
	{

	}

	public void init(IEditorSite site, IEditorInput input)
			throws PartInitException
	{
		setSite(site);
		setInput(input);
	}

	public boolean isDirty()
	{
		return isDirty;
	}

	public boolean isSaveAsAllowed()
	{
		return false;
	}

	public void setFocus()
	{

	}

	protected void setDirty()
	{
		isDirty = true;
		firePropertyChange(IWorkbenchPartConstants.PROP_DIRTY);
	}

	protected void setClean()
	{
		isDirty = false;
		firePropertyChange(IWorkbenchPartConstants.PROP_DIRTY);
	}

}

⌨️ 快捷键说明

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