Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ public class LightSheetManagerPlugin implements MenuPlugin, SciJavaPlugin {
public static final String copyright = "Applied Scientific Instrumentation (ASI), 2022-2026";
public static final String description = "A plugin to control various types of light sheet microscopes.";
public static final String menuName = "Light Sheet Manager";
public static final String version = "0.6.5";
public static final String version = "0.6.6";

private Studio studio_;
private LightSheetManager model_;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -292,7 +292,7 @@ private void createEventHandlers() {
if (selected) {
pnlAdvancedTiming_.updateSpinners();
} else {
model_.acquisitions().updateAcquisitionSettings();
model_.acquisitions().updateSettings();
model_.acquisitions().recalculateSliceTiming();
}
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@ public void createEventHandlers() {
}
}
// update settings and save to file
model_.acquisitions().updateAcquisitionSettings();
model_.acquisitions().updateSettings();
FileUtils.writeStringToFile(file.toString(), model_.acquisitions().settings().toPrettyJson());
model_.studio().logs().logMessage("Acquisition settings saved to: " + file);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -101,23 +101,23 @@ private void createEventHandlers() {
model_.acquisitions().settingsBuilder()
.sliceBuilder().periodMinimized(selected);
// update slice timing
model_.acquisitions().updateAcquisitionSettings();
model_.acquisitions().updateSettings();
model_.acquisitions().recalculateSliceTiming();
});

spnSlicePeriod_.registerListener(() -> {
model_.acquisitions().settingsBuilder()
.sliceBuilder().period(spnSlicePeriod_.getDouble());
// update slice timing
model_.acquisitions().updateAcquisitionSettings();
model_.acquisitions().updateSettings();
model_.acquisitions().recalculateSliceTiming();
});

spnSampleExposure_.registerListener(() -> {
model_.acquisitions().settingsBuilder()
.sliceBuilder().sampleExposure(spnSampleExposure_.getDouble());
// update slice timing
model_.acquisitions().updateAcquisitionSettings();
model_.acquisitions().updateSettings();
model_.acquisitions().recalculateSliceTiming();
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ private void createEventHandlers() {
table_.updatePresetComboBoxes(channelGroup);
// set the channel group to use when we get the channels
model_.acquisitions().settingsBuilder().channelBuilder().group(channelGroup);
model_.acquisitions().updateAcquisitionSettings();
model_.acquisitions().updateSettings();
// update the table data model and refresh ui
table_.getData().setChannels(channelGroup, model_.acquisitions().settings().channels().used());
table_.getData().setChannelGroup(channelGroup);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
package org.micromanager.lightsheetmanager.gui.tabs.setup;

import com.google.common.eventbus.Subscribe;
import org.micromanager.events.LiveModeEvent;
import org.micromanager.lightsheetmanager.api.data.CameraMode;
import org.micromanager.lightsheetmanager.api.data.GeometryType;
import org.micromanager.lightsheetmanager.gui.components.Button;
import org.micromanager.lightsheetmanager.gui.components.ComboBox;
import org.micromanager.lightsheetmanager.gui.components.Panel;
import org.micromanager.lightsheetmanager.gui.components.ToggleButton;
import org.micromanager.lightsheetmanager.gui.data.Icons;
import org.micromanager.lightsheetmanager.LightSheetManager;
import org.micromanager.lightsheetmanager.model.devices.cameras.CameraBase;

import javax.swing.JLabel;
import java.util.Objects;


Expand All @@ -19,6 +19,8 @@
*/
public class CameraPanel extends Panel {

public static final String CONFIG_GROUP = "Path Select";

private boolean isPreviewPressed = false;
private boolean isLivePressed = false;

Expand All @@ -29,6 +31,9 @@ public class CameraPanel extends Panel {
private ToggleButton btnInvertedPath_;
private ToggleButton btnLiveMode_;

// path selection for SCAPE
private ComboBox<String> cmbPreset_;

private final LightSheetManager model_;

public CameraPanel(final LightSheetManager model) {
Expand Down Expand Up @@ -62,6 +67,19 @@ private void createUserInterface() {
Icons.CAMERA, Icons.CANCEL
);

// populate the combo box if the group exists
String selected = "";
String[] presets = {""};
if (model_.core().isGroupDefined(CONFIG_GROUP)) {
presets = model_.core().getAvailableConfigs(CONFIG_GROUP).toArray();
try {
selected = model_.core().getCurrentConfig(CONFIG_GROUP);
} catch (Exception e) {
// ignore => use default value
}
}
cmbPreset_ = new ComboBox<>(presets, selected, 165, 26);

switch (geometryType) {
case DISPIM:
add(btnImagingPath_, "");
Expand All @@ -72,7 +90,9 @@ private void createUserInterface() {
break;
case SCAPE:
add(btnInvertedPath_, "wrap");
add(btnLiveMode_, "");
add(btnLiveMode_, "wrap");
add(new JLabel("Path Preset:"), "wrap");
add(cmbPreset_, "");
break;
default:
break;
Expand All @@ -85,23 +105,18 @@ private void createEventHandlers() {
switch (geometryType) {
case DISPIM:
btnImagingPath_.registerListener(() -> {

});

btnMultiPath_.registerListener(() -> {

});

btnEpiPath_.registerListener(() -> {

});

btnInvertedPath_.registerListener(() -> {

});

btnLiveMode_.registerListener(() -> {

});
break;
case SCAPE:
Expand Down Expand Up @@ -157,6 +172,18 @@ private void createEventHandlers() {
default:
break;
}

// select path preset
cmbPreset_.registerListener(() -> {
final String selected = cmbPreset_.getSelected();
try {
model_.core().setConfig(CONFIG_GROUP, selected);
model_.studio().app().refreshGUI();
} catch (Exception e) {
model_.studio().logs().showError("Failed to set configuration: " + e.getMessage());
}
});

}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import org.micromanager.lightsheetmanager.api.data.GeometryType;
import org.micromanager.lightsheetmanager.gui.components.Button;
import org.micromanager.lightsheetmanager.gui.components.ListeningPanel;
import org.micromanager.lightsheetmanager.gui.components.Panel;
import org.micromanager.lightsheetmanager.gui.components.TextField;
import org.micromanager.lightsheetmanager.LightSheetManager;
Expand All @@ -15,7 +16,7 @@
import java.awt.geom.Point2D;
import java.util.Objects;

public class PositionPanel extends Panel implements Subscriber {
public class PositionPanel extends Panel implements Subscriber, ListeningPanel {

private JLabel lblImagingCenterValue_;

Expand Down Expand Up @@ -58,9 +59,9 @@ private void createUserInterface() {
isUsingPLogic_ = model_.devices().isUsingPLogic();

final JLabel lblImagingCenter = new JLabel("Imaging Center:");
final double imagingCenter = model_.acquisitions().settings()
.sheetCalibration().imagingCenter();
lblImagingCenterValue_ = new JLabel(imagingCenter + " μm");
final String imagingCenter = String.format("%.3f μm",
model_.acquisitions().settings().sheetCalibration().imagingCenter());
lblImagingCenterValue_ = new JLabel(imagingCenter);

setMigLayout(
"",
Expand Down Expand Up @@ -116,7 +117,7 @@ private void createUserInterface() {
lblSlicePositionValue_.setText(scannerPositionStr);
}

// test fields
// text fields
txtSlicePosition_.setText("0");
txtImagingPosition_.setText("0");
txtIllumPosition_.setText("0");
Expand Down Expand Up @@ -193,6 +194,7 @@ private void createEventHandlers() {

btnImagingCenterGo_.registerListener(() -> {
// FIXME: make sure this is the same as original plugin, diSPIM also moves Scanner with computeGalvoFromPiezo
// TODO: (also check if the move when the tab is selected is correct)
final double imagingCenter = model_.acquisitions().settingsBuilder().build()
.sheetCalibration().imagingCenter();
piezo.setPosition(imagingCenter);
Expand Down Expand Up @@ -238,4 +240,20 @@ public void update(String topic, Object value) {
}
});
}

@Override
public void selected() {
if (model_.devices().isUsingPLogic()) {
// TODO: check the fixme above
final double imagingCenter = model_.acquisitions().settingsBuilder().build()
.sheetCalibration().imagingCenter();
final ASIPiezo piezo = model_.devices().device("ImagingFocus");
piezo.setPosition(imagingCenter);
}
}

@Override
public void unselected() {

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -72,10 +72,7 @@ private void createEventHandlers() {
if (isUsingPLogic_) {
final ASIScanner scanner = model_.devices().device("IllumSlice");

cbxBeamExc_.registerListener(() -> {
scanner.setBeamOn(cbxBeamExc_.isSelected());
//System.out.println("set beam on: " + cbxBeamExc_.isSelected());
});
cbxBeamExc_.registerListener(() -> scanner.setBeamOn(cbxBeamExc_.isSelected()));
}

if (model_.devices().adapter().geometry() == GeometryType.DISPIM) {
Expand All @@ -90,17 +87,13 @@ private void createEventHandlers() {
}
}

// TODO: only handles SCAPE for now
@Override
public void selected() {
final boolean isBeamOn = cbxBeamExc_.isSelected();

if (isUsingPLogic_) {
final ASIScanner scanner =
model_.devices().device("IllumSlice");
if (scanner != null && isBeamOn && !scanner.isBeamOn()) {
scanner.setBeamOn(true);
}
// final ASIScanner scanner = model_.devices().device("IllumSlice");
// if (scanner != null && !scanner.isBeamOn()) {
// scanner.setBeamOn(true);
// }
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,6 @@ public SetupPanel(final LightSheetManager model, final int pathNum) {
scannerPanel_ = new ScannerPanel(model_);
cameraPanel_ = new CameraPanel(model_);

// TODO: add joystick panel back in
leftPanel_.add(scannerPanel_, "growx, wrap");
leftPanel_.add(joystickPanel_, "growx, wrap");
if (model_.devices().adapter().geometry() == GeometryType.SCAPE) {
Expand Down Expand Up @@ -80,6 +79,7 @@ public int getPathNum() {
@Override
public void selected() {
scannerPanel_.selected();
positionPanel_.selected();
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -404,7 +404,7 @@ public void useDefaultImagingCameraOrder() {
// update settings with default camera order
model_.acquisitions().settingsBuilder()
.imagingCameraOrder(cameras.toArray(new CameraData[0]));
model_.acquisitions().updateAcquisitionSettings();
model_.acquisitions().updateSettings();
}

public DeviceAdapter adapter() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -258,7 +258,7 @@ public void convert(final String json) {
}

// build the settings from builder and update the ui
model_.acquisitions().updateAcquisitionSettings();
model_.acquisitions().updateSettings();
model_.userSettings().notifyListeners(model_.acquisitions().settings());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ public void loadFromJson(final String json, final boolean notify) {
*/
public void save() {
// make settings current before saving
model_.acquisitions().updateAcquisitionSettings();
model_.acquisitions().updateSettings();

// settings key based on geometry type
final GeometryType geometryType = model_.devices().adapter().geometry();
Expand Down
Loading
Loading