| author | Robert von Massow | 2011-03-02 10:23:49 (EST) |
|---|---|---|
| committer | sefftinge | 2011-03-02 11:46:54 (EST) |
| commit | 196316eb5ebf0ac838cbefa5264675ded6a20d58 (patch) (side-by-side diff) | |
| tree | eb937b9b7b048c40818c963753c66cb31bccbc2a | |
| parent | 00982ebebb17adfbe7ef4e728a227a3d949e3a1b (diff) | |
| download | org.eclipse.xtext-196316eb5ebf0ac838cbefa5264675ded6a20d58.zip org.eclipse.xtext-196316eb5ebf0ac838cbefa5264675ded6a20d58.tar.gz org.eclipse.xtext-196316eb5ebf0ac838cbefa5264675ded6a20d58.tar.bz2 | |
New class wizard
Signed-off-by: Sven Efftinge <sven.efftinge@itemis.de>
| -rw-r--r-- | plugins/org.eclipse.xtext.xtend2.ui/src/org/eclipse/xtext/xtend2/ui/wizards/NewXtend2ClassWizard.java | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/plugins/org.eclipse.xtext.xtend2.ui/src/org/eclipse/xtext/xtend2/ui/wizards/NewXtend2ClassWizard.java b/plugins/org.eclipse.xtext.xtend2.ui/src/org/eclipse/xtext/xtend2/ui/wizards/NewXtend2ClassWizard.java new file mode 100644 index 0000000..abc518c --- a/dev/null +++ b/plugins/org.eclipse.xtext.xtend2.ui/src/org/eclipse/xtext/xtend2/ui/wizards/NewXtend2ClassWizard.java @@ -0,0 +1,83 @@ +package org.eclipse.xtext.xtend2.ui.wizards; + +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IResource; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.jdt.core.IJavaElement; +import org.eclipse.jdt.internal.ui.JavaPlugin; +import org.eclipse.jdt.internal.ui.JavaPluginImages; +import org.eclipse.jdt.internal.ui.wizards.NewElementWizard; +import org.eclipse.jface.text.TextSelection; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.ISelectionProvider; +import org.eclipse.swt.widgets.Display; +import org.eclipse.ui.IEditorPart; +import org.eclipse.ui.PartInitException; +import org.eclipse.ui.ide.IDE; +import org.eclipse.ui.texteditor.ITextEditor; + +import com.google.inject.Inject; + +/** + * @author Robert von Massow - Initial contribution and API + */ +@SuppressWarnings("restriction") +public class NewXtend2ClassWizard extends NewElementWizard { + + public static final String TITLE = "Xtend Class"; //$NON-NLS-1$ + + @Inject + private NewXtend2ClassWizardPage fPage; + + public NewXtend2ClassWizard() { + setDefaultPageImageDescriptor(JavaPluginImages.DESC_WIZBAN_NEWCLASS); + setDialogSettings(JavaPlugin.getDefault().getDialogSettings()); + setWindowTitle(TITLE); + } + + @Override + public void addPages() { + super.addPages(); + fPage.init(getSelection()); + super.addPage(fPage); + } + + @Override + protected void finishPage(IProgressMonitor monitor) throws InterruptedException, CoreException { + } + + @Override + public IJavaElement getCreatedElement() { + return null; + } + + @Override + public boolean performFinish() { + final int size = this.fPage.createType(); + final IResource resource = fPage.getResource(); + if(resource != null) { + selectAndReveal(resource); + final Display display= getShell().getDisplay(); + display.asyncExec(new Runnable() { + public void run() { + IEditorPart editor; + try { + editor = IDE.openEditor(JavaPlugin.getActivePage(), (IFile) resource); + if (editor instanceof ITextEditor) { + final ITextEditor textEditor = (ITextEditor) editor; + ISelectionProvider selectionProvider = textEditor.getSelectionProvider(); + ISelection selection = new TextSelection(size - 2, 0); + selectionProvider.setSelection(selection); + } + } catch (PartInitException e) { + throw new RuntimeException(e); + } + } + }); + return true; + } else { + return false; + } + } +} |

