package org.codemap.wizards; import java.io.ByteArrayInputStream; import java.io.InputStream; import org.eclipse.core.resources.IContainer; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IWorkspaceRoot; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.Path; 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.PartInitException; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.ide.IDE; public class NewCodemapCreationWizard extends Wizard implements INewWizard { private NewCodemapCreationWizardPage page; private IStructuredSelection fSelection; @Override public void addPages() { page = new NewCodemapCreationWizardPage(fSelection); addPage(page); } @Override public boolean performFinish() { String containerName = page.getContainerPath(); String fileName = page.getFilename(); IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); IResource resource = root.findMember(new Path(containerName)); IContainer container = (IContainer) resource; final IFile file = container.getFile(new Path(fileName)); try { InputStream stream = openContentStream(); if (file.exists()) { file.setContents(stream, true, true, null); } else { file.create(stream, true, null); } stream.close(); } catch (Exception ex) { throw new RuntimeException(ex); } getShell().getDisplay().asyncExec(new Runnable() { public void run() { try { IDE.openEditor(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(), file, true); } catch (PartInitException ex) { throw new RuntimeException(ex); } } }); // IContentType[] allContentTypes = Platform.getContentTypeManager().getAllContentTypes(); // IFileEditorMapping[] fileEditorMappings = WorkbenchPlugin.getDefault().getEditorRegistry().getFileEditorMappings(); return true; } private InputStream openContentStream() { String contents = "All your bytes are belong to us."; return new ByteArrayInputStream(contents.getBytes()); } public void init(IWorkbench workbench, IStructuredSelection selection) { this.fSelection = selection; } }