Skip to content

Commit

Permalink
Merge pull request #1841 from Mailaender/dbeditor-saveas
Browse files Browse the repository at this point in the history
Fixed Save As in Database Editor
  • Loading branch information
eselmeister authored Aug 27, 2024
2 parents abe676e + 9e9b34f commit e76f1ef
Showing 1 changed file with 26 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,13 @@
import org.eclipse.chemclipse.swt.ui.notifier.UpdateNotifierUI;
import org.eclipse.chemclipse.ux.extension.msd.ui.internal.support.DatabaseImportRunnable;
import org.eclipse.chemclipse.ux.extension.msd.ui.swt.MassSpectrumLibraryUI;
import org.eclipse.chemclipse.ux.extension.ui.editors.IChemClipseEditor;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.e4.core.services.events.IEventBroker;
import org.eclipse.e4.ui.di.Focus;
import org.eclipse.e4.ui.di.Persist;
import org.eclipse.e4.ui.model.application.MApplication;
import org.eclipse.e4.ui.model.application.ui.MDirtyable;
import org.eclipse.e4.ui.model.application.ui.basic.MPart;
import org.eclipse.e4.ui.model.application.ui.basic.MPartStack;
import org.eclipse.e4.ui.workbench.modeling.EModelService;
Expand All @@ -69,7 +71,7 @@
import jakarta.annotation.PreDestroy;
import jakarta.inject.Inject;

public class DatabaseEditor extends EditorPart {
public class DatabaseEditor extends EditorPart implements IChemClipseEditor {

public static final String ID = "org.eclipse.chemclipse.ux.extension.msd.ui.part.massSpectrumLibraryEditor";
public static final String CONTRIBUTION_URI = "bundleclass://org.eclipse.chemclipse.ux.extension.msd.ui/org.eclipse.chemclipse.ux.extension.msd.ui.editors.DatabaseEditor";
Expand All @@ -85,6 +87,8 @@ public class DatabaseEditor extends EditorPart {
@Inject
private MPart part;
@Inject
private MDirtyable dirtyable;
@Inject
private MApplication application;
@Inject
private EModelService modelService;
Expand Down Expand Up @@ -167,6 +171,9 @@ public void updateObjects(List<Object> objects, String topic) {
if(object instanceof IMassSpectra newMassSpectra) {
if(object == massSpectra) {
isDirty = newMassSpectra.isDirty();
if(dirtyable != null) {
dirtyable.setDirty(isDirty);
}
}
}
}
Expand All @@ -179,6 +186,9 @@ public void doSave(IProgressMonitor monitor) {
try {
boolean saveSuccessful = DatabaseFileSupport.saveMassSpectra(massSpectra);
isDirty = !saveSuccessful;
if(dirtyable != null) {
dirtyable.setDirty(isDirty);
}
} catch(NoConverterAvailableException e) {
logger.warn(e);
}
Expand Down Expand Up @@ -228,6 +238,18 @@ public boolean isSaveAsAllowed() {
return true;
}

@Override
public boolean saveAs() {

try {
DatabaseFileSupport.saveMassSpectra(Display.getCurrent().getActiveShell(), massSpectra, "Mass Spectra");
} catch(NoConverterAvailableException e) {
logger.warn(e);
return false;
}
return true;
}

@Override
public void createPartControl(Composite parent) {

Expand Down Expand Up @@ -386,6 +408,9 @@ private void saveMassSpectra(IProgressMonitor monitor, Shell shell) throws NoMas
IProcessingInfo<File> processingInfo = DatabaseConverter.convert(massSpectrumFile, massSpectra, false, converterId, monitor);
try {
isDirty = !processingInfo.hasErrorMessages();
if(dirtyable != null) {
dirtyable.setDirty(isDirty);
}
} catch(TypeCastException e) {
logger.warn(e);
}
Expand Down

0 comments on commit e76f1ef

Please sign in to comment.