/*******************************************************************************
* Copyright (c) 2010 Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is made available under the terms of the
* Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributor:
* Red Hat, Inc. - initial API and implementation
******************************************************************************/
package org.hibernate.eclipse.codegen;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.wizard.Wizard;
import org.eclipse.ui.IExportWizard;
import org.eclipse.ui.IWorkbench;
import org.hibernate.eclipse.console.HibernateConsoleMessages;
import org.hibernate.eclipse.console.HibernateConsolePlugin;
/**
* Export wizard responsible to generate Ant code generation script
* from existing Hibernate Tools code generation launch configuration.
*
* @author Vitali Yemialyanchyk
*/
public class ExportAntCodeGenWizard extends Wizard implements IExportWizard {
protected ExportAntCodeGenWizardPage exportAntCodeGenWizardPage = null;
/**
* The workbench.
*/
private IWorkbench workbench;
/**
* The current selection.
*/
protected IStructuredSelection selection;
/**
* Creates a wizard for creating a new file resource in the workspace.
*/
public ExportAntCodeGenWizard() {
setWindowTitle(HibernateConsoleMessages.ExportAntCodeGenWizard_title);
ImageDescriptor descriptor = HibernateConsolePlugin.getImageDescriptor("icons/images/newhibernate_wiz.gif"); //$NON-NLS-1$
setDefaultPageImageDescriptor(descriptor);
}
/* (non-Javadoc)
* Method declared on IWizard.
*/
public boolean performFinish() {
IFile file = exportAntCodeGenWizardPage.createNewFile();
if (file == null || file.getParent() == null) {
return false;
}
try {
file.getParent().refreshLocal(IResource.DEPTH_ZERO, null);
} catch (CoreException e) {
HibernateConsolePlugin.getDefault()
.logErrorMessage("Refresh parent: ", e); //$NON-NLS-1$
}
return true;
}
/* (non-Javadoc)
* Method declared on IWizard.
*/
public void addPages() {
exportAntCodeGenWizardPage = new ExportAntCodeGenWizardPage(
HibernateConsoleMessages.ExportAntCodeGenWizard_page_name, getSelection());
exportAntCodeGenWizardPage.setTitle(HibernateConsoleMessages.ExportAntCodeGenWizard_title);
exportAntCodeGenWizardPage.setDescription(HibernateConsoleMessages.ExportAntCodeGenWizard_description);
exportAntCodeGenWizardPage.setFileExtension("xml"); //$NON-NLS-1$
addPage(exportAntCodeGenWizardPage);
}
/* (non-Javadoc)
* Method declared on IWorkbenchWizard.
*/
public void init(IWorkbench workbench, IStructuredSelection currentSelection) {
this.workbench = workbench;
this.selection = currentSelection;
setWindowTitle(HibernateConsoleMessages.ExportAntCodeGenWizard_title);
ImageDescriptor descriptor = HibernateConsolePlugin.getImageDescriptor("icons/images/newhibernate_wiz.gif"); //$NON-NLS-1$
setDefaultPageImageDescriptor(descriptor);
}
/**
* Returns the selection which was passed to <code>init</code>.
*
* @return the selection
*/
public IStructuredSelection getSelection() {
return selection;
}
/**
* Returns the workbench which was passed to <code>init</code>.
*
* @return the workbench
*/
public IWorkbench getWorkbench() {
return workbench;
}
}