package com.tibco.as.spacebar.ui.wizards.transfer.csv;
import java.io.File;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.wizard.IWizardPage;
import com.tibco.as.spacebar.ui.Image;
import com.tibco.as.spacebar.ui.preferences.Preferences;
import com.tibco.as.spacebar.ui.wizards.transfer.AbstractExportWizard;
import com.tibco.as.spacebar.ui.wizards.transfer.AbstractExportWizardPage;
import com.tibco.as.io.AbstractExporter;
import com.tibco.as.io.AbstractTransfer;
import com.tibco.as.file.text.delimited.DelimitedExport;
import com.tibco.as.file.text.delimited.DelimitedExporter;
import com.tibco.as.space.Metaspace;
public class DelimitedExportWizard extends AbstractExportWizard<String[]> {
public DelimitedExportWizard() {
super("DelimitedExportWizard", Image.WIZBAN_CSV);
}
@Override
protected DelimitedExport createTransfer() {
DelimitedExport config = new DelimitedExport();
Preferences.configureDelimitedExport(config);
return config;
}
@Override
protected AbstractExportWizardPage getMainPage(
IStructuredSelection selection) {
return new DelimitedExportMainPage(selection);
}
@Override
protected IWizardPage getConfigurationPage(AbstractTransfer transfer) {
return new DelimitedExportConfigurationPage((DelimitedExport) transfer);
}
@Override
protected AbstractExporter<String[]> getExporter(Metaspace ms, File dir) {
File directory = getDirectory(dir, ms);
if (directory.exists()) {
if (directory.isFile()) {
displayErrorDialog("Export Error",
"Target directory already exists as a file.");
return null;
}
if (!isOverwrite()) {
if (!queryYesNoQuestion("Target already exists. Would you like to overwrite it?")) {
return null;
}
}
} else {
if (!directory.mkdirs()) {
displayErrorDialog("Export Error",
"Target directory could not be created.");
return null;
}
}
return new DelimitedExporter(ms, directory);
}
private File getDirectory(File dir, com.tibco.as.space.Metaspace ms) {
DelimitedExportMainPage mainPage = (DelimitedExportMainPage) getMainPage();
if (mainPage.isCreateMetaspaceDirectories()) {
return new File(dir, ms.getName());
}
return dir;
}
}