/*
* JBoss, Home of Professional Open Source.
*
* See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing.
*
* See the AUTHORS.txt file distributed with this work for a full listing of individual contributors.
*/
package org.teiid.designer.xml.ui.wizards;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.jface.dialogs.IDialogSettings;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.wizard.IWizardPage;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.IImportWizard;
import org.eclipse.ui.IWorkbench;
import org.teiid.core.designer.util.CoreStringUtil;
import org.teiid.core.designer.util.I18nUtil;
import org.teiid.designer.ui.common.wizard.AbstractWizard;
import org.teiid.designer.xml.ui.ModelerXmlUiConstants;
import org.teiid.designer.xml.ui.ModelerXmlUiPlugin;
/**
* @since 8.0
*/
public class CreateXmlViewFromXsdWizard extends AbstractWizard implements
IImportWizard,
CoreStringUtil.Constants,
ModelerXmlUiConstants {
// ============================================================================================================================
// Constants
private static final String I18N_PREFIX = I18nUtil.getPropertyPrefix(CreateXmlViewFromXsdWizard.class);
private static final String WIDTH = "width"; //$NON-NLS-1$
private static final String HEIGHT = "height"; //$NON-NLS-1$
private static final String TITLE = getString("title"); //$NON-NLS-1$
// Set Licensed to true. Leave licencing code in, just in case we decide
// to license in the future...
private static boolean importLicensed = true;
// private EObject xsdRoot;
private List xsdRoots;
// ============================================================================================================================
// Static Methods
/**
* <p>
* </p>
*
* @since 4.0
*/
private static String getString(final String id) {
return Util.getString(I18N_PREFIX + id);
}
// ============================================================================================================================
// Variables
private CreateXmlViewFromXsdMainPage mainPage;
// ============================================================================================================================
// Constructors
/**
* <p>
* </p>
*
* @since 4.0
*/
// public CreateXmlViewFromXsdWizard(EObject xsdRoot) {
// super(ModelerXmlUiPlugin.getDefault(), TITLE, null);
// this.xsdRoot = xsdRoot;
// }
public CreateXmlViewFromXsdWizard(List xsdRoots) {
super(ModelerXmlUiPlugin.getDefault(), TITLE, null);
this.xsdRoots = new ArrayList(xsdRoots);
}
// ============================================================================================================================
// Implemented Methods
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.wizard.IWizard#createPageControls(org.eclipse.swt.widgets.Composite)
*/
@Override
public void createPageControls(Composite pageContainer) {
if (importLicensed) {
// If no dialog size settings, then use default of 500X500
IDialogSettings settings = getDialogSettings();
// Try to get height and width settings
try {
settings.getInt(WIDTH);
settings.getInt(HEIGHT);
// If height or width not found, set 500x500 default
} catch (NumberFormatException e) {
settings.put(WIDTH, 500);
settings.put(HEIGHT, 500);
}
super.createPageControls(pageContainer);
}
}
/**
* <p>
* </p>
*
* @see org.eclipse.jface.wizard.IWizard#performFinish()
* @since 4.0
*/
@Override
public boolean finish() {
boolean result = true;
mainPage.finish();
return result;
}
/**
* <p>
* </p>
*
* @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench, org.eclipse.jface.viewers.IStructuredSelection)
* @since 4.0
*/
@Override
public void init(final IWorkbench workbench,
final IStructuredSelection selection) {
mainPage = new CreateXmlViewFromXsdMainPage(xsdRoots);
// page.setMessage(NOT_LICENSED_MSG, IMessageProvider.ERROR);
mainPage.setPageComplete(false);
//mainPage.setSelection(selection);
addPage(mainPage);
}
// ============================================================================================================================
// Overridden Methods
/**
* @see org.eclipse.jface.wizard.IWizard#getNextPage(org.eclipse.jface.wizard.IWizardPage)
*/
@Override
public IWizardPage getNextPage(final IWizardPage thePage) {
/*----------------------------------------
Pages:
A. mainPage
------------------------------------------*/
IWizardPage result = mainPage;
return result;
}
/**
* @see org.eclipse.jface.wizard.IWizard#getPreviousPage(org.eclipse.jface.wizard.IWizardPage)
*/
@Override
public IWizardPage getPreviousPage(IWizardPage thePage) {
IWizardPage pPage = super.getPreviousPage(thePage);
pPage.setVisible(true);
return pPage;
}
/**
* <p>
* </p>
*
* @see org.eclipse.jface.wizard.Wizard#canFinish()
* @since 4.0
*/
@Override
public boolean canFinish() {
boolean canFinish = false;
if (mainPage.isPageComplete()) {
canFinish = true;
}
return canFinish;
}
/**
* <p>
* </p>
*
* @see org.eclipse.jface.wizard.IWizard#dispose()
* @since 4.0
*/
@Override
public void dispose() {
super.dispose();
}
public Object getXmlStructureModel() {
if( mainPage != null ) {
return mainPage.getTargetXmlStructureModel();
}
return null;
}
}