/* * 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.vdb.ui.wizards; import org.eclipse.core.runtime.IPath; import org.eclipse.jface.dialogs.IMessageProvider; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.wizard.WizardPage; import org.eclipse.swt.SWT; 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.core.ModelerCore; import org.teiid.designer.ui.PluginConstants; import org.teiid.designer.ui.common.wizard.AbstractWizard; import org.teiid.designer.vdb.ui.VdbUiConstants; import org.teiid.designer.vdb.ui.VdbUiPlugin; /** * Wizard which allows importing existing VDB files into the user's workspace. The resulting workspace items will replicate the * project/folder/model structure defined within the VDB. All other VDB artifacts, including manifest files and index files will not * be extracted into the workspace. * * @author BLaFond * * @since 8.0 */ public class ImportVdbWizard extends AbstractWizard implements IImportWizard, PluginConstants.Images, CoreStringUtil.Constants, VdbUiConstants { private static final String I18N_PREFIX = I18nUtil.getPropertyPrefix(ImportVdbWizard.class); private static final String TITLE = getString("title"); //$NON-NLS-1$ private static final ImageDescriptor IMAGE = null; // VdbUiPlugin.getDefault().getImageDescriptor(Images.IMPORT_VDB_ICON); private static final String NOT_LICENSED_MSG = getString("notLicensedMessage"); //$NON-NLS-1$ private static boolean importLicensed = true; /** * @param id * @return ? * @since 4.0 */ private static String getString( final String id ) { return VdbUiConstants.Util.getString(I18N_PREFIX + id); } private ImportVdbMainPage zipPage; /** * @since 4.0 */ public ImportVdbWizard() { super(VdbUiPlugin.singleton, TITLE, IMAGE); } Composite createEmptyPageControl( final Composite parent ) { return new Composite(parent, SWT.NONE); } /** * @param selection * @return ? */ protected ImportVdbMainPage createMainPage( final IStructuredSelection selection ) { return new ImportVdbMainPage(); } /** * @see org.eclipse.jface.wizard.IWizard#createPageControls(org.eclipse.swt.widgets.Composite) */ @Override public void createPageControls( final Composite pageContainer ) { if (importLicensed) super.createPageControls(pageContainer); } /** * @see org.eclipse.jface.wizard.IWizard#performFinish() * @since 4.0 */ @Override public boolean finish() { final boolean result = true; zipPage.finish(); return result; } IPath getFolder() { return ModelerCore.getWorkspace().getRoot().getRawLocation(); } /** * @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 ) { if (importLicensed) { zipPage = createMainPage(selection); addPage(zipPage); } else { // Create empty page final WizardPage page = new WizardPage(ImportVdbWizard.class.getSimpleName(), TITLE, null) { @Override public void createControl( final Composite parent ) { setControl(createEmptyPageControl(parent)); } }; page.setMessage(NOT_LICENSED_MSG, IMessageProvider.ERROR); page.setPageComplete(false); addPage(page); } } }