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

📄 samplenewwizard.java

📁 这是用SWT写的一个自定义编辑器的一个小离子
💻 JAVA
字号:
package edit4.wizards;import org.eclipse.jface.viewers.IStructuredSelection;import org.eclipse.jface.wizard.Wizard;import org.eclipse.ui.INewWizard;import org.eclipse.ui.IWorkbench;import org.eclipse.core.runtime.*;import org.eclipse.jface.operation.*;import java.lang.reflect.InvocationTargetException;import org.eclipse.jface.dialogs.MessageDialog;import org.eclipse.jface.viewers.ISelection;import org.eclipse.core.resources.*;import org.eclipse.core.runtime.CoreException;import java.io.*;import org.eclipse.ui.*;import org.eclipse.ui.ide.IDE;/** * This is a sample new wizard. Its role is to create a new file  * resource in the provided container. If the container resource * (a folder or a project) is selected in the workspace  * when the wizard is opened, it will accept it as the target * container. The wizard creates one file with the extension * "abc". If a sample multi-page editor (also available * as a template) is registered for the same extension, it will * be able to open it. */public class SampleNewWizard extends Wizard implements INewWizard {	private SampleNewWizardPage page;	private ISelection selection;	/**	 * Constructor for SampleNewWizard.	 */	public SampleNewWizard() {		super();		setNeedsProgressMonitor(true);	}		/**	 * Adding the page to the wizard.	 */	public void addPages() {		page = new SampleNewWizardPage(selection);		addPage(page);	}	/**	 * This method is called when 'Finish' button is pressed in	 * the wizard. We will create an operation and run it	 * using wizard as execution context.	 */	public boolean performFinish() {		final String containerName = page.getContainerName();		final String fileName = page.getFileName();		IRunnableWithProgress op = new IRunnableWithProgress() {			public void run(IProgressMonitor monitor) throws InvocationTargetException {				try {					doFinish(containerName, fileName, monitor);				} catch (CoreException e) {					throw new InvocationTargetException(e);				} finally {					monitor.done();				}			}		};		try {			getContainer().run(true, false, op);		} catch (InterruptedException e) {			return false;		} catch (InvocationTargetException e) {			Throwable realException = e.getTargetException();			MessageDialog.openError(getShell(), "Error", realException.getMessage());			return false;		}		return true;	}		/**	 * The worker method. It will find the container, create the	 * file if missing or just replace its contents, and open	 * the editor on the newly created file.	 */	private void doFinish(		String containerName,		String fileName,		IProgressMonitor monitor)		throws CoreException {		// create a sample file		monitor.beginTask("Creating " + fileName, 2);		IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();		IResource resource = root.findMember(new Path(containerName));		if (!resource.exists() || !(resource instanceof IContainer)) {			throwCoreException("Container \"" + containerName + "\" does not exist.");		}		IContainer container = (IContainer) resource;		final IFile file = container.getFile(new Path(fileName));		try {			InputStream stream = openContentStream();			if (file.exists()) {				file.setContents(stream, true, true, monitor);			} else {				file.create(stream, true, monitor);			}			stream.close();		} catch (IOException e) {		}		monitor.worked(1);		monitor.setTaskName("Opening file for editing...");		getShell().getDisplay().asyncExec(new Runnable() {			public void run() {				IWorkbenchPage page =					PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();				try {					IDE.openEditor(page, file, true);				} catch (PartInitException e) {				}			}		});		monitor.worked(1);	}		/**	 * We will initialize file contents with a sample text.	 */	private InputStream openContentStream() {		String contents =			"This is the initial file contents for *.abc file that should be word-sorted in the Preview page of the multi-page editor";		return new ByteArrayInputStream(contents.getBytes());	}	private void throwCoreException(String message) throws CoreException {		IStatus status =			new Status(IStatus.ERROR, "Edit4", IStatus.OK, message, null);		throw new CoreException(status);	}	/**	 * We will accept the selection in the workbench to see if	 * we can initialize from it.	 * @see IWorkbenchWizard#init(IWorkbench, IStructuredSelection)	 */	public void init(IWorkbench workbench, IStructuredSelection selection) {		this.selection = selection;	}}

⌨️ 快捷键说明

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