📄 enumgeneratornewwizard.java
字号:
package com.cownew.enumgenerator.wizards;import java.lang.reflect.InvocationTargetException;import java.util.Set;import org.eclipse.core.resources.IFile;import org.eclipse.core.runtime.CoreException;import org.eclipse.core.runtime.IProgressMonitor;import org.eclipse.jdt.core.ICompilationUnit;import org.eclipse.jdt.core.IPackageFragment;import org.eclipse.jdt.core.IPackageFragmentRoot;import org.eclipse.jdt.core.JavaModelException;import org.eclipse.jdt.ui.JavaUI;import org.eclipse.jface.dialogs.MessageDialog;import org.eclipse.jface.operation.IRunnableWithProgress;import org.eclipse.jface.viewers.ISelection;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.ui.IWorkbenchPage;import org.eclipse.ui.PartInitException;import org.eclipse.ui.PlatformUI;import org.eclipse.ui.ide.IDE;import com.cownew.enumgenerator.Activator;public class EnumGeneratorNewWizard extends Wizard implements INewWizard{ private EnumGeneratoreNewWizardPage genPage; private EnumGenItemDefWizardPage itemDefPage; private ISelection selection; public EnumGeneratorNewWizard() { super(); setNeedsProgressMonitor(true); } public void addPages() { genPage = new EnumGeneratoreNewWizardPage(selection); addPage(genPage); itemDefPage = new EnumGenItemDefWizardPage(); addPage(itemDefPage); } public boolean performFinish() { final String packageName = genPage.getPackageName(); final String fileName = genPage.getFileName(); final Set<String> itemDefSet = itemDefPage.getEnumItems(); final IPackageFragmentRoot srcFolderPck = genPage .getPackageFragmentRoot(); final IPackageFragment pckFragment = srcFolderPck .getPackageFragment(packageName); IRunnableWithProgress op = new IRunnableWithProgress() { public void run(IProgressMonitor monitor) throws InvocationTargetException { try { doFinish(pckFragment, packageName,fileName, monitor, itemDefSet); } 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; } private void doFinish(IPackageFragment pckFragment, String packageName,String fileName, IProgressMonitor monitor, Set<String> itemDefSet) throws CoreException { monitor.beginTask("Creating " + fileName, 2); final ICompilationUnit cu = pckFragment.createCompilationUnit(fileName, EnumCodeGenUtils.getEnumSourceCode(packageName,fileName,itemDefSet), true, monitor); monitor.worked(1); monitor.setTaskName("Opening file for editing..."); getShell().getDisplay().asyncExec(new Runnable() { public void run() { try { JavaUI.openInEditor(cu); } catch (PartInitException e) { Activator.logException(e); } catch (JavaModelException e) { Activator.logException(e); } } }); monitor.worked(1); } public void init(IWorkbench workbench, IStructuredSelection selection) { this.selection = selection; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -