package com.tibco.as.spacebar.ui.wizards.transfer; import java.io.File; import java.util.ArrayList; import java.util.Collection; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import org.eclipse.osgi.util.NLS; import org.eclipse.ui.IImportWizard; import com.tibco.as.spacebar.ui.Image; import com.tibco.as.spacebar.ui.SpaceBarPlugin; import com.tibco.as.spacebar.ui.model.Connection; import com.tibco.as.spacebar.ui.model.Metaspace; import com.tibco.as.spacebar.ui.wizards.transfer.AbstractImportWizardPage.ImportFileSystemElement; import com.tibco.as.io.IMetaspaceTransfer; import com.tibco.as.io.AbstractImport; import com.tibco.as.io.AbstractTransfer; import com.tibco.as.space.Tuple; public abstract class AbstractImportWizard<T> extends AbstractTransferWizard<File, T, Tuple> implements IImportWizard { /** * Creates a wizard for importing resources into the workspace from the file * system. */ public AbstractImportWizard(String sectionName, Image image) { super(sectionName, "Import", image); } @Override protected Class<File> getType() { return File.class; } @Override protected Collection<IMetaspaceTransfer> getTransfers(AbstractTransfer transfer) { List<File> files = new ArrayList<File>(); AbstractImportWizardPage mainPage = (AbstractImportWizardPage) getMainPage(); for (Object resource : mainPage.getSelectedResources()) { files.add((File) ((ImportFileSystemElement) resource) .getFileSystemObject()); } return getImporters(files, (AbstractImport) transfer); } @Override protected void addTransferOptionsPage(AbstractTransfer transfer) { addPage(new ImportOptionsPage((AbstractImport) transfer)); } protected abstract Collection<IMetaspaceTransfer> getImporters( List<File> files, AbstractImport defaultImport); @Override protected String getJobName() { return "Import"; } @Override protected String getTaskName(IMetaspaceTransfer transfer) { return NLS.bind("Importing to metaspace ''{0}''", transfer .getMetaspace().getName()); } @Override protected String getErrorMessage(IMetaspaceTransfer transfer) { return "Could not import"; } protected Map<String, com.tibco.as.space.Metaspace> getConnectedMetaspaces() { Map<String, com.tibco.as.space.Metaspace> metaspaces = new LinkedHashMap<String, com.tibco.as.space.Metaspace>(); for (Metaspace metaspace : SpaceBarPlugin.getDefault() .getMetaspaces().getConnectedMetaspaces()) { Connection connection = metaspace.getConnection(); com.tibco.as.space.Metaspace ms = connection.getMetaspace(); metaspaces.put(ms.getName(), ms); } return metaspaces; } }