/* This file is part of Green. * * Copyright (C) 2005 The Research Foundation of State University of New York * All Rights Under Copyright Reserved, The Research Foundation of S.U.N.Y. * * Green is free software, licensed under the terms of the Eclipse * Public License, version 1.0. The license is available at * http://www.eclipse.org/legal/epl-v10.html */ /** * */ package edu.buffalo.cse.green.dialogs.wizards; import org.eclipse.core.resources.IFile; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.ui.INewWizard; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.PartInitException; import org.eclipse.ui.ide.IDE; import org.eclipse.ui.internal.ide.DialogUtil; import org.eclipse.ui.internal.wizards.newresource.ResourceMessages; import org.eclipse.ui.wizards.newresource.BasicNewFileResourceWizard; import edu.buffalo.cse.green.constants.PluginConstants; /** * @author Gene Wang * */ public class NewDiagramWizard extends BasicNewFileResourceWizard implements INewWizard { private NewDiagramPage _page; // workbench selection when the wizard was started protected IStructuredSelection _selection; // the workbench instance protected IWorkbench _workbench; public NewDiagramWizard() { super(); this.setWindowTitle("New Green UML Diagram"); } public void addPages() { _page = new NewDiagramPage("New Diagram", _selection); addPage(_page); } public boolean canFinish() { return this.getContainer().getCurrentPage().isPageComplete(); } /** * @see org.eclipse.jface.wizard.Wizard#performCancel() */ @Override public boolean performCancel() { return true; } /** * @see org.eclipse.jface.wizard.Wizard#performFinish() */ @Override public boolean performFinish() { _page.setFileName(_page.getFileName() + "." + PluginConstants.GREEN_EXTENSION); IFile file = _page.createNewFile(); selectAndReveal(file); IWorkbenchWindow dw = getWorkbench().getActiveWorkbenchWindow(); try { if (dw != null) { IWorkbenchPage page = dw.getActivePage(); if (page != null) { IDE.openEditor(page, file, true); } } } catch (PartInitException e) { DialogUtil.openError(dw.getShell(), ResourceMessages.FileResource_errorMessage, e.getMessage(), e); } return true; } /** * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench, org.eclipse.jface.viewers.IStructuredSelection) */ public void init(IWorkbench workbench, IStructuredSelection selection) { super.init(workbench, selection); _workbench = workbench; _selection = selection; } }