/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.core.gui.utils.common.configuration;
import java.io.File;
import java.io.FileNotFoundException;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.PlatformUI;
import de.rcenvironment.core.utils.common.excel.legacy.ExcelFileExporter;
import de.rcenvironment.core.utils.common.variables.legacy.TypedValue;
/**
*
* Provides a retry Dialog for the ExcelFileExporter.
*
* @author Jascha Riedel
*/
public final class ExcelFileExporterDialog {
private static final int MAX_RETRY_ON_EXCEL_EXPORT = 5;
private ExcelFileExporterDialog() {}
/**
*
* Exports a Matrix of excel cell values to the excelFile.
* User is prompted for retry if export fails due to FileNotFoundException.
*
* @param excelFile The file which will be created/replaced
* @param values Matrix of Excel cell values.
* @return Boolean succes.
*/
public static boolean exportExcelFile(File excelFile, TypedValue[][] values) {
boolean success = false;
int retry = 1;
int retryCount = 0;
do {
try {
success = ExcelFileExporter.exportValuesToExcelFile(excelFile, values);
retry = 1;
} catch (FileNotFoundException e) {
success = false;
Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
MessageDialog dialog = new MessageDialog(shell, Messages.exportToExcelDialogTitle,
null,
Messages.exportToExcelDialogText + "\n" + "File: " + excelFile.getAbsolutePath(),
MessageDialog.ERROR,
new String[] {"Retry", "Cancel"},
0);
retry = dialog.open();
retryCount++;
}
} while (retry == 0 && retryCount < MAX_RETRY_ON_EXCEL_EXPORT);
return success;
}
}