/*
* 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.ui.wizards;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.wizard.IWizard;
import org.eclipse.ui.IExportWizard;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.internal.IWorkbenchGraphicConstants;
import org.eclipse.ui.internal.WorkbenchImages;
import org.teiid.core.designer.util.I18nUtil;
import org.teiid.designer.ui.UiConstants;
import org.teiid.designer.ui.UiPlugin;
import org.teiid.designer.ui.common.util.WidgetUtil;
import org.teiid.designer.ui.common.wizard.AbstractSelectionWizard;
import org.teiid.designer.ui.product.IModelerProductContexts;
/**
* @since 8.0
*/
public class ExportWizard extends AbstractSelectionWizard implements UiConstants, UiConstants.ExtensionPoints.ExportWizards {
private static final String I18N_PREFIX = I18nUtil.getPropertyPrefix(ExportWizard.class);
private static final String TITLE = getString("title"); //$NON-NLS-1$
/**
* @since 4.0
*/
private static String getString( final String id ) {
return Util.getString(I18N_PREFIX + id);
}
/**
* @since 4.0
*/
public ExportWizard( final IWorkbench workbench,
final IStructuredSelection selection ) {
super(UiPlugin.getDefault(), workbench, selection, TITLE,
WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_WIZBAN_EXPORT_WIZ), ID,
new SingleColumnTableViewerSorter());
}
@Override
protected IConfigurationElement[] getConfigurationElementsFor() {
IConfigurationElement[] elements = super.getConfigurationElementsFor();
// FILTER THESE!!
List result = new ArrayList(elements.length);
for (int i = 0; i < elements.length; i++) {
String contribID = elements[i].getAttribute(UiConstants.ExtensionPoints.ExportWizards.ID_ID);
if (UiPlugin.getDefault().isProductContextValueSupported(IModelerProductContexts.Contributions.EXPORT, contribID)) {
result.add(elements[i]);
}
}
return (IConfigurationElement[])result.toArray(new IConfigurationElement[result.size()]);
}
/**
* @see org.teiid.designer.ui.common.wizard.AbstractSelectionWizard#createSelectedWizard()
* @since 4.0
*/
@Override
protected IWizard createSelectedWizard( final IConfigurationElement element ) {
try {
return (IWizard)element.createExecutableExtension(CLASS);
} catch (final CoreException err) {
Util.log(err);
WidgetUtil.showError(err);
return null;
}
}
/**
* @see org.teiid.designer.ui.common.wizard.AbstractSelectionWizard#getSelectedWizardIcon(org.eclipse.core.runtime.IConfigurationElement)
* @since 4.0
*/
@Override
protected String getSelectedWizardIcon( final IConfigurationElement element ) {
return element.getAttribute(ICON);
}
/**
* @see org.teiid.designer.ui.common.wizard.AbstractSelectionWizard#getSelectedWizardName(org.eclipse.core.runtime.IConfigurationElement)
* @since 4.0
*/
@Override
protected String getSelectedWizardName( final IConfigurationElement element ) {
return element.getAttribute(NAME);
}
/**
* @see org.teiid.designer.ui.common.wizard.AbstractSelectionWizard#initializeSelectedWizard(org.eclipse.jface.wizard.IWizard)
* @since 4.0
*/
@Override
protected void initializeSelectedWizard( final IWizard wizard,
final IWorkbench workbench,
final IStructuredSelection selection ) {
((IExportWizard)wizard).init(workbench, selection);
}
}