diff --git a/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/AcquisitionTab.java b/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/AcquisitionTab.java index a82abc7a..1a90a6b7 100644 --- a/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/AcquisitionTab.java +++ b/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/AcquisitionTab.java @@ -186,7 +186,7 @@ private void createUserInterface() { // set ui sizes, should match the MigLayout constraints pnlChannelTable_.setAbsoluteSize(280, 400); pnlLeft.setAbsoluteSize(300, 580); - pnlRight_.setAbsoluteSize(300, 420); + pnlRight_.setAbsoluteSize(300, 580); // acquisition buttons pnlButtons_.add(btnRunAcquisition_, ""); @@ -208,8 +208,8 @@ private void createUserInterface() { pnlCenter.add(cmbAcquisitionModes_, ""); pnlRight_.add(pnlVolumeSettings_, "growx, wrap"); - pnlRight_.add(model_.acquisitions().settings().isUsingAdvancedTiming() ? - pnlAdvancedTiming_ : pnlSliceSettings_, "growx, wrap"); + pnlRight_.add(pnlSliceSettings_, "growx, wrap"); + pnlRight_.add(pnlAdvancedTiming_, "growx, wrap"); pnlRight_.add(cbxUseAdvancedTiming_, "growx"); // add panels @@ -299,13 +299,8 @@ private void createEventHandlers() { * @param useAdvancedTiming {@code true} to swap to the advanced timing panel */ private void swapTimingSettingsPanels(final boolean useAdvancedTiming) { - pnlRight_.removeAll(); - pnlRight_.add(pnlVolumeSettings_, "growx, wrap"); - pnlRight_.add(useAdvancedTiming ? - pnlAdvancedTiming_ : pnlSliceSettings_, "growx, wrap"); - pnlRight_.add(cbxUseAdvancedTiming_, "growx"); - pnlRight_.revalidate(); - pnlRight_.repaint(); + pnlAdvancedTiming_.setPanelEnabled(useAdvancedTiming); + pnlSliceSettings_.setPanelEnabled(!useAdvancedTiming); } public PositionPanel getMultiPositionPanel() { diff --git a/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/DeviceTab.java b/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/DeviceTab.java deleted file mode 100644 index b6c6a062..00000000 --- a/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/DeviceTab.java +++ /dev/null @@ -1,75 +0,0 @@ -package org.micromanager.lightsheetmanager.gui.tabs; - -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.model.DeviceManager; -import org.micromanager.lightsheetmanager.LightSheetManager; - -import javax.swing.JLabel; -import java.util.Objects; - -/** - * - */ -public class DeviceTab extends Panel implements ListeningPanel { - - private Button btnCreateConfigGroup_; - - private DeviceManager devices_; - private LightSheetManager model_; - - public DeviceTab(final LightSheetManager model) { - model_ = Objects.requireNonNull(model); - devices_ = model_.devices(); - createUserInterface(); - createEventHandlers(); - } - - private void createUserInterface() { - - setMigLayout( - "", - "[]0[]", - "[]0[]" - ); - - btnCreateConfigGroup_ = new Button("Create Devices Configuration Group", 220, 30); - - final JLabel lblGeometryType = new JLabel("Microscope Geometry: " - + devices_.adapter().geometry()); - final JLabel lblLightSheetType = new JLabel("Light Sheet Type: " - + devices_.adapter().lightSheetType()); - final JLabel lblNumImagingPaths = new JLabel("Imaging Paths: " - + devices_.adapter().numImagingPaths()); - final JLabel lblNumIlluminationPaths = new JLabel("Illumination Paths: " - + devices_.adapter().numIlluminationPaths()); - final JLabel lblNumSimultaneousCameras = new JLabel("Simultaneous Cameras: " - + devices_.adapter().numSimultaneousCameras()); - - btnCreateConfigGroup_.setToolTipText("Creates or updates the \"LightSheetManager::Devices\" " + - "configuration group with all editable properties from the Light Sheet Manager device adapter."); - - add(lblGeometryType, "wrap"); - add(lblLightSheetType, "wrap"); - add(lblNumImagingPaths, "wrap"); - add(lblNumIlluminationPaths, "wrap"); - add(lblNumSimultaneousCameras, "wrap"); - add(btnCreateConfigGroup_, "gaptop 100"); - } - - private void createEventHandlers() { - btnCreateConfigGroup_.registerListener( - () -> devices_.createConfigGroup()); - } - - @Override - public void selected() { - - } - - @Override - public void unselected() { - - } -} diff --git a/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/HelpTab.java b/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/HelpTab.java deleted file mode 100644 index 328cb94a..00000000 --- a/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/HelpTab.java +++ /dev/null @@ -1,60 +0,0 @@ -package org.micromanager.lightsheetmanager.gui.tabs; - -import org.micromanager.lightsheetmanager.gui.components.ListeningPanel; -import org.micromanager.lightsheetmanager.gui.components.Panel; -import org.micromanager.lightsheetmanager.gui.components.TextPane; - -/** - * - */ -public class HelpTab extends Panel implements ListeningPanel { - - private TextPane textPane_; - - public HelpTab() { - createUserInterface(); - createEventHandlers(); - } - - // TODO: update text - private void createUserInterface() { - - textPane_ = new TextPane(); - textPane_.setText("This plugin is a work in progress"); -// textPane_.setText( -// "This plugin is a work in progress; please contact the authors " -// + "Jon and Nico with bug reports or feature requests " -// + "(jon@asiimaging.com)." -// + "
If you encounter bugs, the first step is to check and see if your " -// + "problem has already been fixed by using a recent nightly build of Micro-Manager. " -// + "If not, it is helpful to generate a problem report using \"Help\"" -// + "-> \"Report Problem...\" in the main Micro-Manager window. After clicking " -// + "\"Done\", click \"View Report\", save the text as a file, " -// + "and then email that file directly to Jon." -// + "
Further information and instructions are on the Micro-Manager wiki "
-// + ""
-// + "ASIdiSPIM Plugin"
-// + " as well as in the "
-// + ""
-// + "diSPIM User Manual."
-// );
-
- // add ui elements to the panel
- add(textPane_, "");
- }
-
- private void createEventHandlers() {
- textPane_.registerHyperlinkListener();
-
- }
-
- @Override
- public void selected() {
-
- }
-
- @Override
- public void unselected() {
-
- }
-}
diff --git a/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/SettingsTab.java b/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/SettingsTab.java
index 3a09aa44..8c4e6764 100644
--- a/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/SettingsTab.java
+++ b/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/SettingsTab.java
@@ -2,6 +2,7 @@
import org.micromanager.lightsheetmanager.api.data.GeometryType;
import org.micromanager.lightsheetmanager.api.internal.ScapeAcquisitionSettings;
+import org.micromanager.lightsheetmanager.gui.components.Button;
import org.micromanager.lightsheetmanager.gui.components.CheckBox;
import org.micromanager.lightsheetmanager.gui.components.ListeningPanel;
import org.micromanager.lightsheetmanager.gui.components.Panel;
@@ -28,6 +29,8 @@ public class SettingsTab extends Panel implements ListeningPanel {
private Spinner spnSliceAxisFilterFreq_;
private Spinner spnLiveScanPeriod_;
+ private Button btnCreateConfigGroup_;
+
// changes the ui setup
private boolean isUsingPLogic_;
private boolean isUsingScanSettings_;
@@ -47,6 +50,21 @@ private void createUserInterface() {
isUsingPLogic_ = model_.devices().isUsingPLogic();
isUsingScanSettings_ = model_.devices().hasStageScanning();
+ btnCreateConfigGroup_ = new Button("Create Devices Configuration Group", 220, 30);
+ btnCreateConfigGroup_.setToolTipText("Creates or updates the \"System::Startup\" configuration " +
+ "group with all editable properties from the Light Sheet Manager device adapter.");
+
+ final JLabel lblGeometryType = new JLabel("Microscope Geometry: "
+ + model_.devices().adapter().geometry());
+ final JLabel lblLightSheetType = new JLabel("Light Sheet Type: "
+ + model_.devices().adapter().lightSheetType());
+ final JLabel lblNumImagingPaths = new JLabel("Imaging Paths: "
+ + model_.devices().adapter().numImagingPaths());
+ final JLabel lblNumIlluminationPaths = new JLabel("Illumination Paths: "
+ + model_.devices().adapter().numIlluminationPaths());
+ final JLabel lblNumSimultaneousCameras = new JLabel("Simultaneous Cameras: "
+ + model_.devices().adapter().numSimultaneousCameras());
+
final Panel pnlScanSettings = new Panel("Stage Scan Settings");
pnlScanSettings.setMigLayout(
"",
@@ -99,6 +117,12 @@ private void createUserInterface() {
spnSliceAxisFilterFreq_ = Spinner.createDoubleSpinner(0.4, 0.1, 1.0, 0.1);
spnLiveScanPeriod_ = Spinner.createIntegerSpinner(20, 2, 10000, 100);
+ add(lblGeometryType, "wrap");
+ add(lblLightSheetType, "wrap");
+ add(lblNumImagingPaths, "wrap");
+ add(lblNumIlluminationPaths, "wrap");
+ add(lblNumSimultaneousCameras, "wrap");
+
// scan settings panel
if (isUsingScanSettings_) {
pnlScanSettings.add(lblScanAcceleration, "");
@@ -134,6 +158,8 @@ private void createUserInterface() {
if (isUsingPLogic_) {
add(pnlLightSheet, "growx");
}
+
+ add(btnCreateConfigGroup_, "gaptop 40");
}
private void createEventHandlers() {
@@ -175,6 +201,8 @@ private void createEventHandlers() {
() -> scanner.setFilterFreqY(spnSliceAxisFilterFreq_.getDouble()));
}
+ btnCreateConfigGroup_.registerListener(() -> model_.devices().createConfigGroup());
+
// TODO: make this work with diSPIM settings
// spnLiveScanPeriod_.registerListener(
// e -> model_.acquisitions().settingsBuilder()
diff --git a/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/SetupPathTab.java b/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/SetupPathTab.java
index 849ee8fa..a36e6d8e 100644
--- a/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/SetupPathTab.java
+++ b/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/SetupPathTab.java
@@ -1,6 +1,7 @@
package org.micromanager.lightsheetmanager.gui.tabs;
import org.micromanager.lightsheetmanager.api.data.CameraMode;
+import org.micromanager.lightsheetmanager.api.data.GeometryType;
import org.micromanager.lightsheetmanager.gui.components.Label;
import org.micromanager.lightsheetmanager.gui.components.ListeningPanel;
import org.micromanager.lightsheetmanager.gui.components.Panel;
@@ -24,7 +25,8 @@ public SetupPathTab(final LightSheetManager model, final int pathNum) {
}
private void createUserInterface() {
- final String title = "Setup Path " + pathNum_;
+ final String title = (model_.devices().adapter().numImagingPaths() > 1)
+ ? ("Setup Path " + pathNum_) : "Setup Path";
final Label lblTitle = new Label(title, Font.BOLD, 16);
setupPanel_ = new SetupPanel(model_, pathNum_);
diff --git a/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/TabPanel.java b/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/TabPanel.java
index 76198da6..0c7a0a2a 100644
--- a/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/TabPanel.java
+++ b/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/TabPanel.java
@@ -3,6 +3,7 @@
import org.micromanager.lightsheetmanager.api.data.CameraMode;
import org.micromanager.lightsheetmanager.LightSheetManagerFrame;
import org.micromanager.lightsheetmanager.LightSheetManager;
+import org.micromanager.lightsheetmanager.api.data.GeometryType;
import org.micromanager.lightsheetmanager.model.DeviceManager;
import org.micromanager.lightsheetmanager.gui.components.Panel;
import org.micromanager.lightsheetmanager.gui.components.TabbedPane;
@@ -19,10 +20,8 @@ public class TabPanel extends Panel {
private NavigationTab navigationTab_;
private AcquisitionTab acquisitionTab_;
private AutofocusTab autofocusTab_;
- private DeviceTab deviceTab_;
private CameraTab cameraTab_;
private SettingsTab settingsTab_;
- private HelpTab helpTab_;
private ArrayList