/*
* Copyright (C) 2013 The University of Electro-Communications All rights reserved.
* Copyright (C) 2013 AXE,Inc.
*/
package net.dependableos.dcase.diagram.editor.wizard;
import java.lang.reflect.InvocationTargetException;
import net.dependableos.dcase.diagram.common.exception.DcaseSystemException;
import net.dependableos.dcase.diagram.common.util.FileUtil;
import net.dependableos.dcase.diagram.common.util.MessageTypeImpl;
import net.dependableos.dcase.diagram.common.util.Messages;
import net.dependableos.dcase.diagram.editor.common.util.MessageWriter;
import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.wizard.IWizardContainer;
import org.eclipse.jface.wizard.Wizard;
import org.eclipse.ui.INewWizard;
import org.eclipse.ui.IWorkbench;
/**
* Creates a wizard of "GMF Model To SACM Wizard".
*/
public class XmlConversionToSacmWizard extends Wizard implements INewWizard {
/**
* Conversion file definition page.
*/
private XmlConversionToSacmWizardPage convertDefinitionPage;
/**
* The IStructuredSelection object which is chosen at the time of Wizard start in a work space.
*/
private IStructuredSelection selection;
/**
* Initializes the Wizard.
*
* @param workbench The workbench
* @param selection The selection object from workspace
* @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench,
* org.eclipse.jface.viewers.IStructuredSelection)
*/
public void init(IWorkbench workbench, IStructuredSelection selection) {
this.selection = selection;
setWindowTitle(Messages.XmlConversionToSacmWizard_3);
// Validates the progress monitor.
setNeedsProgressMonitor(true);
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.wizard.Wizard#addPages()
*/
@Override
public void addPages() {
convertDefinitionPage = new XmlConversionToSacmWizardPage(selection);
addPage(convertDefinitionPage);
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.wizard.Wizard#addPages()
*/
@Override
public boolean performFinish() {
IRunnableWithProgress operation = new XmlConversionToSacmRunnable(
FileUtil.getWorksapceFileFromPath(convertDefinitionPage.getInputFilePath().getText()),
FileUtil.getWorksapceFileFromPath(convertDefinitionPage.getOutputFilePath().getText()),
convertDefinitionPage.isOverwriteOption());
IWizardContainer container = getContainer();
try {
// Creates the output file.
container.run(true, true, operation);
} catch (InvocationTargetException e) {
DcaseSystemException dcaseSystemException = new DcaseSystemException(
Messages.XmlConversionToSacmWizard_1, null,
MessageTypeImpl.CONVERT_TO_SACM_FAILED);
MessageWriter.writeMessageToErrorLog(dcaseSystemException);
MessageWriter.showMessageBoxSeeErroLog();
return false;
} catch (InterruptedException e) {
DcaseSystemException dcaseSystemException = new DcaseSystemException(
Messages.XmlConversionToSacmWizard_2, null,
MessageTypeImpl.CONVERT_TO_SACM_FAILED);
MessageWriter.writeMessageToErrorLog(dcaseSystemException);
MessageWriter.showMessageBoxSeeErroLog();
return false;
}
return true;
}
}