From 3ef70768f8da7efae635d2cbd006382804480a44 Mon Sep 17 00:00:00 2001 From: Brandon Date: Wed, 22 Jul 2026 03:10:02 -0700 Subject: [PATCH 1/3] use SaveMode in api/data instead of DataStore.SaveMode --- .../api/AcquisitionSettings.java | 6 ++-- .../lightsheetmanager/api/data/SaveMode.java | 3 +- .../api/internal/BaseAcquisitionSettings.java | 10 +++--- .../gui/tabs/acquisition/SavePanel.java | 5 +-- .../lightsheetmanager/model/DataStorage.java | 36 ++----------------- .../acquisitions/AcquisitionEngineDispim.java | 11 +++--- .../acquisitions/AcquisitionEngineScape.java | 11 +++--- 7 files changed, 24 insertions(+), 58 deletions(-) diff --git a/src/main/java/org/micromanager/lightsheetmanager/api/AcquisitionSettings.java b/src/main/java/org/micromanager/lightsheetmanager/api/AcquisitionSettings.java index 360b41c..3389ece 100644 --- a/src/main/java/org/micromanager/lightsheetmanager/api/AcquisitionSettings.java +++ b/src/main/java/org/micromanager/lightsheetmanager/api/AcquisitionSettings.java @@ -1,7 +1,7 @@ package org.micromanager.lightsheetmanager.api; +import org.micromanager.lightsheetmanager.api.data.SaveMode; import org.micromanager.lightsheetmanager.api.internal.DefaultAutofocusSettings; -import org.micromanager.lightsheetmanager.model.DataStorage; /** * Base acquisition settings for all microscopes. @@ -43,7 +43,7 @@ interface Builder> { * * @param saveMode the save mode */ - T saveMode(final DataStorage.SaveMode saveMode); + T saveMode(final SaveMode saveMode); /** * Returns the autofocus settings builder. @@ -108,7 +108,7 @@ interface Builder> { * * @return the save mode of the acquisition. */ - DataStorage.SaveMode saveMode(); + SaveMode saveMode(); /** * Returns the autofocus settings. diff --git a/src/main/java/org/micromanager/lightsheetmanager/api/data/SaveMode.java b/src/main/java/org/micromanager/lightsheetmanager/api/data/SaveMode.java index 8c4fc87..675f443 100644 --- a/src/main/java/org/micromanager/lightsheetmanager/api/data/SaveMode.java +++ b/src/main/java/org/micromanager/lightsheetmanager/api/data/SaveMode.java @@ -1,7 +1,6 @@ package org.micromanager.lightsheetmanager.api.data; import org.micromanager.data.Datastore; -import org.micromanager.lightsheetmanager.model.DataStorage; public enum SaveMode { SINGLEPLANE_TIFF_SERIES("Single Plane TIFF"), @@ -14,7 +13,7 @@ public enum SaveMode { text_ = text; } - public static Datastore.SaveMode convert(final DataStorage.SaveMode mode) { + public static Datastore.SaveMode convert(final SaveMode mode) { switch (mode) { case ND_TIFF: return Datastore.SaveMode.ND_TIFF; diff --git a/src/main/java/org/micromanager/lightsheetmanager/api/internal/BaseAcquisitionSettings.java b/src/main/java/org/micromanager/lightsheetmanager/api/internal/BaseAcquisitionSettings.java index afd4d6e..58b79e1 100644 --- a/src/main/java/org/micromanager/lightsheetmanager/api/internal/BaseAcquisitionSettings.java +++ b/src/main/java/org/micromanager/lightsheetmanager/api/internal/BaseAcquisitionSettings.java @@ -11,7 +11,7 @@ import org.micromanager.lightsheetmanager.api.StageScanSettings; import org.micromanager.lightsheetmanager.api.TimingSettings; import org.micromanager.lightsheetmanager.api.VolumeSettings; -import org.micromanager.lightsheetmanager.model.DataStorage; +import org.micromanager.lightsheetmanager.api.data.SaveMode; /** * Base acquisition settings for all microscopes. @@ -24,7 +24,7 @@ public abstract static class Builder> implements Acquisitio private String saveNamePrefix_ = "Experiment"; private boolean saveDuringAcq_ = false; private boolean demoMode_ = false; - private DataStorage.SaveMode saveMode_ = DataStorage.SaveMode.ND_TIFF; + private SaveMode saveMode_ = SaveMode.ND_TIFF; private DefaultAutofocusSettings.Builder afBuilder_ = DefaultAutofocusSettings.builder(); private ChannelSettings.Builder channelBuilder_ = DefaultChannelSettings.builder(); @@ -92,7 +92,7 @@ public T demoMode(final boolean state) { * @param saveMode the save mode */ @Override - public T saveMode(final DataStorage.SaveMode saveMode) { + public T saveMode(final SaveMode saveMode) { saveMode_ = saveMode; return self(); } @@ -133,7 +133,7 @@ public ChannelSettings.Builder channelBuilder() { private final String saveDirectory_; private final boolean saveDuringAcq_; private final boolean demoMode_; - private final DataStorage.SaveMode saveMode_; + private final SaveMode saveMode_; private final DefaultAutofocusSettings autofocus_; private final ChannelSettings channels_; @@ -200,7 +200,7 @@ public boolean demoMode() { * @return the save mode */ @Override - public DataStorage.SaveMode saveMode() { + public SaveMode saveMode() { return saveMode_; } diff --git a/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/acquisition/SavePanel.java b/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/acquisition/SavePanel.java index 73a7f7f..7dfd94e 100644 --- a/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/acquisition/SavePanel.java +++ b/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/acquisition/SavePanel.java @@ -4,6 +4,7 @@ import org.micromanager.lightsheetmanager.LightSheetManager; import org.micromanager.lightsheetmanager.LightSheetManagerFrame; import org.micromanager.lightsheetmanager.api.AcquisitionSettings; +import org.micromanager.lightsheetmanager.api.data.SaveMode; import org.micromanager.lightsheetmanager.api.internal.ScapeAcquisitionSettings; import org.micromanager.lightsheetmanager.gui.components.Button; import org.micromanager.lightsheetmanager.gui.components.CheckBox; @@ -32,7 +33,7 @@ public class SavePanel extends Panel implements SettingsListener { private Button btnBrowse_; private Button btnOpen_; - private ComboBox cbxSaveMode_; + private ComboBox cbxSaveMode_; private CheckBox cbxSaveWhileAcquiring_; private Button btnSaveSettings_; @@ -108,7 +109,7 @@ public void createUserInterface() { btnBrowse_ = new Button("...", 26, 20); btnOpen_ = new Button(Icons.FOLDER, 26, 20); - cbxSaveMode_ = new ComboBox<>(DataStorage.SaveMode.values(), + cbxSaveMode_ = new ComboBox<>(SaveMode.values(), acqSettings.saveMode(), 110, 20); cbxSaveWhileAcquiring_ = new CheckBox("Save images during acquisition", diff --git a/src/main/java/org/micromanager/lightsheetmanager/model/DataStorage.java b/src/main/java/org/micromanager/lightsheetmanager/model/DataStorage.java index 6052bdf..6147e2f 100644 --- a/src/main/java/org/micromanager/lightsheetmanager/model/DataStorage.java +++ b/src/main/java/org/micromanager/lightsheetmanager/model/DataStorage.java @@ -1,48 +1,16 @@ package org.micromanager.lightsheetmanager.model; import org.micromanager.Studio; -import org.micromanager.data.Datastore; import org.micromanager.data.Image; import org.micromanager.lightsheetmanager.api.DataSink; +import org.micromanager.lightsheetmanager.api.data.SaveMode; import java.util.Objects; public class DataStorage implements DataSink { - /** - * Easier to convert to a String. - */ - public enum SaveMode { - SINGLEPLANE_TIFF_SERIES("Single Plane TIFF"), - MULTIPAGE_TIFF("Multi Page TIFF"), - ND_TIFF("NDTiff"); - - private final String text_; - - SaveMode(final String text) { - text_ = text; - } - - public static Datastore.SaveMode convert(final DataStorage.SaveMode mode) { - switch (mode) { - case ND_TIFF: - return Datastore.SaveMode.ND_TIFF; - case MULTIPAGE_TIFF: - return Datastore.SaveMode.MULTIPAGE_TIFF; - case SINGLEPLANE_TIFF_SERIES: - default: - return Datastore.SaveMode.SINGLEPLANE_TIFF_SERIES; - } - } - - @Override - public String toString() { - return text_; - } - } - private final Studio studio_; - private DataStorage.SaveMode saveMode_; + private SaveMode saveMode_; public DataStorage(final Studio studio) { studio_ = Objects.requireNonNull(studio); diff --git a/src/main/java/org/micromanager/lightsheetmanager/model/acquisitions/AcquisitionEngineDispim.java b/src/main/java/org/micromanager/lightsheetmanager/model/acquisitions/AcquisitionEngineDispim.java index 2a4505e..08f4213 100644 --- a/src/main/java/org/micromanager/lightsheetmanager/model/acquisitions/AcquisitionEngineDispim.java +++ b/src/main/java/org/micromanager/lightsheetmanager/model/acquisitions/AcquisitionEngineDispim.java @@ -18,9 +18,9 @@ import org.micromanager.lightsheetmanager.api.data.CameraMode; import org.micromanager.lightsheetmanager.api.data.GeometryType; import org.micromanager.lightsheetmanager.api.data.ChannelMode; +import org.micromanager.lightsheetmanager.api.data.SaveMode; import org.micromanager.lightsheetmanager.api.internal.DispimAcquisitionSettings; import org.micromanager.lightsheetmanager.api.internal.DefaultTimingSettings; -import org.micromanager.lightsheetmanager.model.DataStorage; import org.micromanager.lightsheetmanager.model.utils.FileUtils; import org.micromanager.lightsheetmanager.LightSheetManager; import org.micromanager.lightsheetmanager.model.PLogicDispim; @@ -189,11 +189,11 @@ boolean run() { DefaultDatastore result = new DefaultDatastore(studio_); try { - if (acqSettings_.saveMode() == DataStorage.SaveMode.ND_TIFF) { + if (acqSettings_.saveMode() == SaveMode.ND_TIFF) { DefaultDatastore.setPreferredSaveMode(studio_, Datastore.SaveMode.ND_TIFF); - } else if (acqSettings_.saveMode() == DataStorage.SaveMode.MULTIPAGE_TIFF) { + } else if (acqSettings_.saveMode() == SaveMode.MULTIPAGE_TIFF) { DefaultDatastore.setPreferredSaveMode(studio_, Datastore.SaveMode.MULTIPAGE_TIFF); - } else if (acqSettings_.saveMode() == DataStorage.SaveMode.SINGLEPLANE_TIFF_SERIES) { + } else if (acqSettings_.saveMode() == SaveMode.SINGLEPLANE_TIFF_SERIES) { DefaultDatastore.setPreferredSaveMode(studio_, Datastore.SaveMode.SINGLEPLANE_TIFF_SERIES); } else { studio_.logs().showError("Unsupported save mode: " + acqSettings_.saveMode()); @@ -571,8 +571,7 @@ void finish() { acqSettings_.saveDirectory(), acqSettings_.saveNamePrefix()); try { // convert from DataStorage.SaveMode to Datastore.SaveMode - final Datastore.SaveMode saveMode = - DataStorage.SaveMode.convert(acqSettings_.saveMode()); + final Datastore.SaveMode saveMode = SaveMode.convert(acqSettings_.saveMode()); datastore_.save(saveMode, savePath); } catch (Exception e) { model_.studio().logs().showError("could not save the acquisition data to: \n" + savePath); diff --git a/src/main/java/org/micromanager/lightsheetmanager/model/acquisitions/AcquisitionEngineScape.java b/src/main/java/org/micromanager/lightsheetmanager/model/acquisitions/AcquisitionEngineScape.java index aaad5a6..70ad162 100644 --- a/src/main/java/org/micromanager/lightsheetmanager/model/acquisitions/AcquisitionEngineScape.java +++ b/src/main/java/org/micromanager/lightsheetmanager/model/acquisitions/AcquisitionEngineScape.java @@ -20,10 +20,10 @@ import org.micromanager.lightsheetmanager.api.data.CameraLibrary; import org.micromanager.lightsheetmanager.api.data.CameraMode; import org.micromanager.lightsheetmanager.api.data.ChannelMode; +import org.micromanager.lightsheetmanager.api.data.SaveMode; import org.micromanager.lightsheetmanager.api.internal.DefaultTimingSettings; import org.micromanager.lightsheetmanager.api.internal.ScapeAcquisitionSettings; import org.micromanager.lightsheetmanager.gui.utils.DialogUtils; -import org.micromanager.lightsheetmanager.model.DataStorage; import org.micromanager.lightsheetmanager.LightSheetManager; import org.micromanager.lightsheetmanager.model.PLogicScape; import org.micromanager.lightsheetmanager.model.devices.DeviceAdapter; @@ -261,11 +261,11 @@ boolean run() { // This sets the preferred save mode for DefaultDatastore, this value // is used in the MMAcquisition constructor to set the Storage object. - if (acqSettings_.saveMode() == DataStorage.SaveMode.ND_TIFF) { + if (acqSettings_.saveMode() == SaveMode.ND_TIFF) { DefaultDatastore.setPreferredSaveMode(studio_, Datastore.SaveMode.ND_TIFF); - } else if (acqSettings_.saveMode() == DataStorage.SaveMode.MULTIPAGE_TIFF) { + } else if (acqSettings_.saveMode() == SaveMode.MULTIPAGE_TIFF) { DefaultDatastore.setPreferredSaveMode(studio_, Datastore.SaveMode.MULTIPAGE_TIFF); - } else if (acqSettings_.saveMode() == DataStorage.SaveMode.SINGLEPLANE_TIFF_SERIES) { + } else if (acqSettings_.saveMode() == SaveMode.SINGLEPLANE_TIFF_SERIES) { DefaultDatastore.setPreferredSaveMode(studio_, Datastore.SaveMode.SINGLEPLANE_TIFF_SERIES); } else { studio_.logs().showError("Unsupported save mode: " + acqSettings_.saveMode()); @@ -796,8 +796,7 @@ void finish() { acqSettings_.saveDirectory(), acqSettings_.saveNamePrefix()); try { // convert from DataStorage.SaveMode to Datastore.SaveMode - final Datastore.SaveMode saveMode = - DataStorage.SaveMode.convert(acqSettings_.saveMode()); + final Datastore.SaveMode saveMode = SaveMode.convert(acqSettings_.saveMode()); datastore_.save(saveMode, savePath); } catch (Exception e) { model_.studio().logs().showError("could not save the acquisition data to: \n" + savePath); From 4e994c9cc9ff119f8afae686a27d5f9ecf3fcbae Mon Sep 17 00:00:00 2001 From: Brandon Date: Wed, 22 Jul 2026 03:13:06 -0700 Subject: [PATCH 2/3] remove DataStore from AcquisitionEngine, never used --- .../lightsheetmanager/gui/tabs/acquisition/SavePanel.java | 1 - .../model/acquisitions/AcquisitionEngine.java | 3 --- 2 files changed, 4 deletions(-) diff --git a/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/acquisition/SavePanel.java b/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/acquisition/SavePanel.java index 7dfd94e..bb10243 100644 --- a/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/acquisition/SavePanel.java +++ b/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/acquisition/SavePanel.java @@ -14,7 +14,6 @@ import org.micromanager.lightsheetmanager.gui.components.TextField; import org.micromanager.lightsheetmanager.gui.data.Icons; import org.micromanager.lightsheetmanager.gui.utils.DialogUtils; -import org.micromanager.lightsheetmanager.model.DataStorage; import org.micromanager.lightsheetmanager.model.SettingsAdapter; import org.micromanager.lightsheetmanager.model.utils.FileUtils; diff --git a/src/main/java/org/micromanager/lightsheetmanager/model/acquisitions/AcquisitionEngine.java b/src/main/java/org/micromanager/lightsheetmanager/model/acquisitions/AcquisitionEngine.java index e74fb0f..a8c3586 100644 --- a/src/main/java/org/micromanager/lightsheetmanager/model/acquisitions/AcquisitionEngine.java +++ b/src/main/java/org/micromanager/lightsheetmanager/model/acquisitions/AcquisitionEngine.java @@ -20,7 +20,6 @@ import org.micromanager.lightsheetmanager.api.data.AcquisitionMode; import org.micromanager.lightsheetmanager.api.internal.ScapeAcquisitionSettings; import org.micromanager.lightsheetmanager.gui.tabs.acquisition.DurationPanel; -import org.micromanager.lightsheetmanager.model.DataStorage; import org.micromanager.lightsheetmanager.model.autofocus.AutofocusAdapter; import org.micromanager.lightsheetmanager.model.channels.ChannelSpec; import org.micromanager.lightsheetmanager.model.devices.cameras.CameraBase; @@ -49,7 +48,6 @@ public abstract class AcquisitionEngine implements AcquisitionManager, MMAcquist private final AutofocusAdapter autofocus_; - private DataStorage data_; // TODO: use this, has enum that needs moved/deleted? protected Datastore datastore_; protected Pipeline curPipeline_; protected long nextWakeTime_ = -1; @@ -63,7 +61,6 @@ public AcquisitionEngine(final LightSheetManager model) { studio_ = model.studio(); core_ = model.core(); - data_ = new DataStorage(studio_); autofocus_ = new AutofocusAdapter(model_); // default settings From d497aff6124e61a9340c991f580b0e13ed9b8faf Mon Sep 17 00:00:00 2001 From: Brandon Date: Wed, 22 Jul 2026 03:14:01 -0700 Subject: [PATCH 3/3] remove DataStore.java file --- .../lightsheetmanager/model/DataStorage.java | 24 ------------------- 1 file changed, 24 deletions(-) delete mode 100644 src/main/java/org/micromanager/lightsheetmanager/model/DataStorage.java diff --git a/src/main/java/org/micromanager/lightsheetmanager/model/DataStorage.java b/src/main/java/org/micromanager/lightsheetmanager/model/DataStorage.java deleted file mode 100644 index 6147e2f..0000000 --- a/src/main/java/org/micromanager/lightsheetmanager/model/DataStorage.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.micromanager.lightsheetmanager.model; - -import org.micromanager.Studio; -import org.micromanager.data.Image; -import org.micromanager.lightsheetmanager.api.DataSink; -import org.micromanager.lightsheetmanager.api.data.SaveMode; - -import java.util.Objects; - -public class DataStorage implements DataSink { - - private final Studio studio_; - private SaveMode saveMode_; - - public DataStorage(final Studio studio) { - studio_ = Objects.requireNonNull(studio); - saveMode_ = SaveMode.SINGLEPLANE_TIFF_SERIES; - } - - @Override - public void putImage(final Image image) { - } - -}