Skip to content

Commit

Permalink
Merge pull request #2036 from Mailaender/v/wsd-converter-error-handling
Browse files Browse the repository at this point in the history
Show detailed feedback about UV/Vis, *IR and Raman converter errors
  • Loading branch information
eselmeister authored Jan 17, 2025
2 parents c8eb973 + 007b971 commit 2f6bde8
Show file tree
Hide file tree
Showing 6 changed files with 17 additions and 46 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@ Require-Bundle: org.eclipse.ui,
org.eclipse.chemclipse.vsd.model;bundle-version="0.9.0",
org.eclipse.chemclipse.processing;bundle-version="0.9.0",
org.apache.commons.commons-io;bundle-version="2.14.0",
org.eclipse.chemclipse.converter.ui;bundle-version="0.9.0"
org.eclipse.chemclipse.converter.ui;bundle-version="0.9.0",
org.eclipse.chemclipse.processing.ui;bundle-version="0.9.0"
Bundle-RequiredExecutionEnvironment: JavaSE-17
Bundle-ActivationPolicy: lazy
Bundle-Activator: org.eclipse.chemclipse.vsd.converter.ui.Activator
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import org.eclipse.chemclipse.processing.converter.ISupplier;
import org.eclipse.chemclipse.processing.core.IProcessingInfo;
import org.eclipse.chemclipse.processing.core.exceptions.TypeCastException;
import org.eclipse.chemclipse.processing.ui.support.ProcessingInfoPartSupport;
import org.eclipse.chemclipse.vsd.converter.core.ScanConverterVSD;
import org.eclipse.chemclipse.vsd.converter.ui.l10n.VibrationalSpectroscopyMessages;
import org.eclipse.chemclipse.vsd.model.core.ISpectrumVSD;
Expand Down Expand Up @@ -151,6 +152,7 @@ public void run(IProgressMonitor monitor) throws InvocationTargetException, Inte
monitor.beginTask(VibrationalSpectroscopyMessages.saveRaman, IProgressMonitor.UNKNOWN);
}
IProcessingInfo<File> processingInfo = ScanConverterVSD.convert(file, spectrum, supplier.getId(), monitor);
ProcessingInfoPartSupport.getInstance().update(processingInfo);
processingInfo.getProcessingResult();
} catch(TypeCastException e) {
logger.warn(e);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,16 +49,15 @@ private ScanConverterVSD() {

public static IProcessingInfo<ISpectrumVSD> convert(final File file, final String converterId, final IProgressMonitor monitor) {

IProcessingInfo<ISpectrumVSD> processingInfo;
IProcessingInfo<ISpectrumVSD> processingInfo = new ProcessingInfo<>();
;
/*
* Do not use a safe runnable here, because an object must
* be returned or null.
*/
IScanImportConverter importConverter = getScanImportConverter(converterId);
if(importConverter != null) {
processingInfo = importConverter.convert(file, monitor);
} else {
processingInfo = getImportProcessingError(file);
}
return processingInfo;
}
Expand All @@ -78,7 +77,7 @@ public static IProcessingInfo<ISpectrumVSD> convert(final File file, final IProg
*/
private static IProcessingInfo<ISpectrumVSD> getScan(final File file, IProgressMonitor monitor) {

IProcessingInfo<ISpectrumVSD> processingInfo;
IProcessingInfo<ISpectrumVSD> processingInfo = new ProcessingInfo<>();
IScanConverterSupport converterSupport = getScanConverterSupport();
try {
List<String> availableConverterIds = converterSupport.getAvailableConverterIds(file);
Expand All @@ -98,21 +97,19 @@ private static IProcessingInfo<ISpectrumVSD> getScan(final File file, IProgressM
} catch(NoConverterAvailableException e) {
logger.info(e);
}
return getImportProcessingError(file);
return processingInfo;
}

public static IProcessingInfo<File> convert(final File file, final ISpectrumVSD scan, final String converterId, final IProgressMonitor monitor) {

IProcessingInfo<File> processingInfo;
IProcessingInfo<File> processingInfo = new ProcessingInfo<>();
/*
* Do not use a safe runnable here, because an object must
* be returned or null.
*/
IScanExportConverter exportConverter = getScanExportConverter(converterId);
if(exportConverter != null) {
processingInfo = exportConverter.convert(file, scan, monitor);
} else {
processingInfo = getExportProcessingError(file);
}
return processingInfo;
}
Expand Down Expand Up @@ -219,18 +216,4 @@ private static IFileContentMatcher getFileContentMatcher(IConfigurationElement e
}
return fileContentMatcher;
}

private static IProcessingInfo<File> getExportProcessingError(File file) {

IProcessingInfo<File> processingInfo = new ProcessingInfo<>();
processingInfo.addErrorMessage("Scan Converter", "No suitable export converter was found for: " + file);
return processingInfo;
}

private static IProcessingInfo<ISpectrumVSD> getImportProcessingError(File file) {

IProcessingInfo<ISpectrumVSD> processingInfo = new ProcessingInfo<>();
processingInfo.addErrorMessage("Scan Converter", "No suitable import converter was found for: " + file);
return processingInfo;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@ Require-Bundle: org.eclipse.ui,
org.eclipse.chemclipse.wsd.converter,
org.eclipse.chemclipse.logging,
org.eclipse.chemclipse.support.ui,
org.eclipse.chemclipse.converter.ui
org.eclipse.chemclipse.converter.ui,
org.eclipse.chemclipse.processing.ui
Bundle-RequiredExecutionEnvironment: JavaSE-17
Bundle-ActivationPolicy: lazy
Export-Package: org.eclipse.chemclipse.wsd.converter.ui.swt
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import org.eclipse.chemclipse.processing.converter.ISupplier;
import org.eclipse.chemclipse.processing.core.IProcessingInfo;
import org.eclipse.chemclipse.processing.core.exceptions.TypeCastException;
import org.eclipse.chemclipse.processing.ui.support.ProcessingInfoPartSupport;
import org.eclipse.chemclipse.wsd.converter.core.ScanConverterWSD;
import org.eclipse.chemclipse.wsd.converter.ui.l10n.UltravioletVisibleSpectroscopy;
import org.eclipse.chemclipse.wsd.model.core.ISpectrumWSD;
Expand Down Expand Up @@ -146,6 +147,7 @@ public void run(IProgressMonitor monitor) throws InvocationTargetException, Inte
try {
monitor.beginTask(UltravioletVisibleSpectroscopy.saveUVVis, IProgressMonitor.UNKNOWN);
IProcessingInfo<File> processingInfo = ScanConverterWSD.convert(file, spectrum, supplier.getId(), monitor);
ProcessingInfoPartSupport.getInstance().update(processingInfo);
processingInfo.getProcessingResult();
} catch(TypeCastException e) {
logger.warn(e);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,16 +48,14 @@ private ScanConverterWSD() {

public static IProcessingInfo<ISpectrumWSD> convert(final File file, final String converterId, final IProgressMonitor monitor) {

IProcessingInfo<ISpectrumWSD> processingInfo;
IProcessingInfo<ISpectrumWSD> processingInfo = new ProcessingInfo<>();
/*
* Do not use a safe runnable here, because an object must
* be returned or null.
*/
IScanImportConverter importConverter = getScanImportConverter(converterId);
if(importConverter != null) {
processingInfo = importConverter.convert(file, monitor);
} else {
processingInfo = getImportProcessingError(file);
}
return processingInfo;
}
Expand All @@ -77,7 +75,7 @@ public static IProcessingInfo<ISpectrumWSD> convert(final File file, final IProg
*/
private static IProcessingInfo<ISpectrumWSD> getScan(final File file, IProgressMonitor monitor) {

IProcessingInfo<ISpectrumWSD> processingInfo;
IProcessingInfo<ISpectrumWSD> processingInfo = new ProcessingInfo<>();
IScanConverterSupport converterSupport = getScanConverterSupport();
try {
List<String> availableConverterIds = converterSupport.getAvailableConverterIds(file);
Expand All @@ -97,21 +95,19 @@ private static IProcessingInfo<ISpectrumWSD> getScan(final File file, IProgressM
} catch(NoConverterAvailableException e) {
logger.info(e);
}
return getImportProcessingError(file);
return processingInfo;
}

public static IProcessingInfo<File> convert(final File file, final ISpectrumWSD scan, final String converterId, final IProgressMonitor monitor) {

IProcessingInfo<File> processingInfo;
IProcessingInfo<File> processingInfo = new ProcessingInfo<>();
/*
* Do not use a safe runnable here, because an object must
* be returned or null.
*/
IScanExportConverter exportConverter = getScanExportConverter(converterId);
if(exportConverter != null) {
processingInfo = exportConverter.convert(file, scan, monitor);
} else {
processingInfo = getExportProcessingError(file);
}
return processingInfo;
}
Expand Down Expand Up @@ -218,18 +214,4 @@ private static IFileContentMatcher getFileContentMatcher(IConfigurationElement e
}
return fileContentMatcher;
}

private static IProcessingInfo<File> getExportProcessingError(File file) {

IProcessingInfo<File> processingInfo = new ProcessingInfo<>();
processingInfo.addErrorMessage("Scan Converter", "No suitable export converter was found for: " + file);
return processingInfo;
}

private static IProcessingInfo<ISpectrumWSD> getImportProcessingError(File file) {

IProcessingInfo<ISpectrumWSD> processingInfo = new ProcessingInfo<>();
processingInfo.addErrorMessage("Scan Converter", "No suitable import converter was found for: " + file);
return processingInfo;
}
}

0 comments on commit 2f6bde8

Please sign in to comment.