package org.dbflute.erflute.wizard;
import org.dbflute.erflute.Activator;
import org.dbflute.erflute.wizard.page.NewDiagramWizardPage1;
import org.dbflute.erflute.wizard.page.NewDiagramWizardPage2;
import org.eclipse.core.resources.IFile;
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.ide.IDE;
/**
* @author modified by jflute (originated in ermaster)
*/
public class NewDiagramWizard extends Wizard implements INewWizard {
private NewDiagramWizardPage1 page1;
private NewDiagramWizardPage2 page2;
private IStructuredSelection selection;
private IWorkbench workbench;
@Override
public boolean performFinish() {
try {
final String database = page2.getDatabase();
page1.createERDiagram(database);
final IFile file = page1.createNewFile();
if (file == null) {
return false;
}
final IWorkbenchPage page = workbench.getActiveWorkbenchWindow().getActivePage();
IDE.openEditor(page, file, true);
} catch (final Exception e) {
Activator.showExceptionDialog(e);
}
return true;
}
@Override
public void init(IWorkbench workbench, IStructuredSelection selection) {
this.selection = selection;
this.workbench = workbench;
}
@Override
public void addPages() {
this.page1 = new NewDiagramWizardPage1(selection);
addPage(page1);
this.page2 = new NewDiagramWizardPage2(selection);
addPage(page2);
}
}