use of java.awt.Checkbox in project GDSC-SMLM by aherbert.
the class FreeFilterResults method itemStateChanged.
public void itemStateChanged(ItemEvent e) {
// When the checkbox is clicked, output the list of available filters to the ImageJ log
Checkbox cb = (Checkbox) e.getSource();
if (cb.getState()) {
cb.setState(false);
logDemoFilters(TITLE);
}
}
use of java.awt.Checkbox in project GDSC-SMLM by aherbert.
the class DoubletAnalysis method showAnalysisDialog.
/**
* Show dialog.
*
* @return true, if successful
*/
@SuppressWarnings("unchecked")
private boolean showAnalysisDialog() {
GenericDialog gd = new GenericDialog(TITLE);
gd.addHelp(About.HELP_URL);
StringBuilder sb = new StringBuilder("Filters the doublet fits and reports the performance increase\n");
// Show the fitting settings that will effect filters, i.e. fit standard deviation, fit width
sb.append("SD0 = ").append(Utils.rounded(fitConfig.getInitialPeakStdDev0())).append("\n");
sb.append("SD1 = ").append(Utils.rounded(fitConfig.getInitialPeakStdDev1())).append("\n");
sb.append("Fit Width = ").append(config.getRelativeFitting()).append("\n");
gd.addMessage(sb.toString());
// Collect options for filtering
gd.addChoice("Selection_Criteria", SELECTION_CRITERIA, SELECTION_CRITERIA[selectionCriteria]);
// Copy the settings used when fitting
filterFitConfig.setInitialPeakStdDev0(fitConfig.getInitialPeakStdDev0());
filterFitConfig.setInitialPeakStdDev1(fitConfig.getInitialPeakStdDev1());
filterFitConfig.setModelCamera(fitConfig.isModelCamera());
filterFitConfig.setNmPerPixel(cal.getNmPerPixel());
filterFitConfig.setGain(cal.getGain());
filterFitConfig.setBias(cal.getBias());
filterFitConfig.setReadNoise(cal.getReadNoise());
filterFitConfig.setAmplification(cal.getAmplification());
filterFitConfig.setEmCCD(cal.isEmCCD());
filterFitConfig.setFitSolver(fitConfig.getFitSolver());
String[] templates = ConfigurationTemplate.getTemplateNames(true);
gd.addChoice("Template", templates, templates[0]);
// Allow the settings from the benchmark analysis to be used
gd.addCheckbox("Benchmark_settings", analysisUseBenchmarkSettings);
gd.addCheckbox("Smart_filter", fitConfig.isSmartFilter());
gd.addSlider("Shift_factor", 0.01, 2, filterFitConfig.getCoordinateShiftFactor());
gd.addNumericField("Signal_strength", filterFitConfig.getSignalStrength(), 2);
gd.addNumericField("Min_photons", filterFitConfig.getMinPhotons(), 0);
gd.addSlider("Min_width_factor", 0, 0.99, filterFitConfig.getMinWidthFactor());
gd.addSlider("Max_width_factor", 1.01, 5, filterFitConfig.getWidthFactor());
gd.addNumericField("Precision", filterFitConfig.getPrecisionThreshold(), 2);
gd.addCheckbox("Local_background", filterFitConfig.isPrecisionUsingBackground());
gd.addNumericField("Drift_angle", analysisDriftAngle, 2);
gd.addNumericField("Min_gap", minGap, 2);
// Collect display options
gd.addCheckbox("Show_results", analysisShowResults);
gd.addCheckbox("Show_Jaccard_Plot", showJaccardPlot);
gd.addCheckbox("Use_max_residuals", useMaxResiduals);
gd.addCheckbox("Logging", analysisLogging);
gd.addStringField("Title", analysisTitle);
gd.addCheckbox("Save_template", saveTemplate);
// Add a mouse listener to the config file field
if (Utils.isShowGenericDialog()) {
Vector<TextField> numerics = (Vector<TextField>) gd.getNumericFields();
Vector<Checkbox> checkboxes = (Vector<Checkbox>) gd.getCheckboxes();
Vector<Choice> choices = (Vector<Choice>) gd.getChoices();
int n = 0;
choices.get(1).addItemListener(this);
checkboxes.get(0).addItemListener(this);
cbSmartFilter = checkboxes.get(1);
textCoordinateShiftFactor = numerics.get(n++);
textSignalStrength = numerics.get(n++);
textMinPhotons = numerics.get(n++);
textMinWidthFactor = numerics.get(n++);
textWidthFactor = numerics.get(n++);
textPrecisionThreshold = numerics.get(n++);
cbLocalBackground = checkboxes.get(2);
}
gd.showDialog();
if (gd.wasCanceled())
return false;
if (gd.invalidNumber())
return false;
selectionCriteria = gd.getNextChoiceIndex();
// Ignore the template
gd.getNextChoice();
analysisUseBenchmarkSettings = gd.getNextBoolean();
fitConfig.setSmartFilter(gd.getNextBoolean());
filterFitConfig.setCoordinateShiftFactor(gd.getNextNumber());
filterFitConfig.setSignalStrength(gd.getNextNumber());
filterFitConfig.setMinPhotons(gd.getNextNumber());
filterFitConfig.setMinWidthFactor(gd.getNextNumber());
filterFitConfig.setWidthFactor(gd.getNextNumber());
filterFitConfig.setPrecisionThreshold(gd.getNextNumber());
filterFitConfig.setPrecisionUsingBackground(gd.getNextBoolean());
analysisDriftAngle = gd.getNextNumber();
minGap = gd.getNextNumber();
analysisShowResults = gd.getNextBoolean();
showJaccardPlot = gd.getNextBoolean();
useMaxResiduals = gd.getNextBoolean();
analysisLogging = gd.getNextBoolean();
analysisTitle = gd.getNextString();
saveTemplate = gd.getNextBoolean();
if (gd.invalidNumber())
return false;
if (analysisUseBenchmarkSettings) {
if (!updateFilterConfiguration(filterFitConfig))
return false;
}
return true;
}
use of java.awt.Checkbox in project GDSC-SMLM by aherbert.
the class DoubletAnalysis method showDialog.
/**
* Show dialog.
*
* @return true, if successful
*/
@SuppressWarnings("unchecked")
private boolean showDialog() {
GenericDialog gd = new GenericDialog(TITLE);
gd.addHelp(About.HELP_URL);
final double sa = getSa();
gd.addMessage(String.format("Fits the benchmark image created by CreateData plugin.\nPSF width = %s, adjusted = %s", Utils.rounded(simulationParameters.s / simulationParameters.a), Utils.rounded(sa)));
// For each new benchmark width, reset the PSF width to the square pixel adjustment
if (lastId != simulationParameters.id) {
double w = sa;
matchDistance = w * Gaussian2DFunction.SD_TO_HWHM_FACTOR;
lowerDistance = 0.5 * matchDistance;
fitConfig.setInitialPeakStdDev(w);
cal.setNmPerPixel(simulationParameters.a);
cal.setGain(simulationParameters.gain);
cal.setAmplification(simulationParameters.amplification);
cal.setExposureTime(100);
cal.setReadNoise(simulationParameters.readNoise);
cal.setBias(simulationParameters.bias);
cal.setEmCCD(simulationParameters.emCCD);
fitConfig.setGain(cal.getGain());
fitConfig.setBias(cal.getBias());
fitConfig.setReadNoise(cal.getReadNoise());
fitConfig.setAmplification(cal.getAmplification());
}
// Support for using templates
String[] templates = ConfigurationTemplate.getTemplateNames(true);
gd.addChoice("Template", templates, templates[0]);
// Allow the settings from the benchmark analysis to be used
gd.addCheckbox("Benchmark_settings", useBenchmarkSettings);
// Collect options for fitting
gd.addNumericField("Initial_StdDev", fitConfig.getInitialPeakStdDev0(), 3);
String[] filterTypes = SettingsManager.getNames((Object[]) DataFilterType.values());
gd.addChoice("Spot_filter_type", filterTypes, filterTypes[config.getDataFilterType().ordinal()]);
String[] filterNames = SettingsManager.getNames((Object[]) DataFilter.values());
gd.addChoice("Spot_filter", filterNames, filterNames[config.getDataFilter(0).ordinal()]);
gd.addSlider("Smoothing", 0, 2.5, config.getSmooth(0));
gd.addSlider("Search_width", 0.5, 2.5, config.getSearch());
gd.addSlider("Border", 0.5, 2.5, config.getBorder());
gd.addSlider("Fitting_width", 2, 4.5, config.getFitting());
String[] solverNames = SettingsManager.getNames((Object[]) FitSolver.values());
gd.addChoice("Fit_solver", solverNames, solverNames[fitConfig.getFitSolver().ordinal()]);
String[] functionNames = SettingsManager.getNames((Object[]) FitFunction.values());
gd.addChoice("Fit_function", functionNames, functionNames[fitConfig.getFitFunction().ordinal()]);
gd.addSlider("Iteration_increase", 1, 4.5, iterationIncrease);
gd.addCheckbox("Ignore_with_neighbours", ignoreWithNeighbours);
gd.addCheckbox("Show_overlay", showOverlay);
gd.addCheckbox("Show_histograms", showHistograms);
gd.addCheckbox("Show_results", showResults);
gd.addCheckbox("Show_Jaccard_Plot", showJaccardPlot);
gd.addCheckbox("Use_max_residuals", useMaxResiduals);
gd.addNumericField("Match_distance", matchDistance, 2);
gd.addNumericField("Lower_distance", lowerDistance, 2);
gd.addNumericField("Signal_factor", signalFactor, 2);
gd.addNumericField("Lower_factor", lowerSignalFactor, 2);
gd.addChoice("Matching", MATCHING, MATCHING[matching]);
// Add a mouse listener to the config file field
if (Utils.isShowGenericDialog()) {
Vector<TextField> numerics = (Vector<TextField>) gd.getNumericFields();
Vector<Choice> choices = (Vector<Choice>) gd.getChoices();
int n = 0;
int ch = 0;
choices.get(ch++).addItemListener(this);
Checkbox b = (Checkbox) gd.getCheckboxes().get(0);
b.addItemListener(this);
textInitialPeakStdDev0 = numerics.get(n++);
textDataFilterType = choices.get(ch++);
textDataFilter = choices.get(ch++);
textSmooth = numerics.get(n++);
textSearch = numerics.get(n++);
textBorder = numerics.get(n++);
textFitting = numerics.get(n++);
textFitSolver = choices.get(ch++);
textFitFunction = choices.get(ch++);
// Iteration increase
n++;
textMatchDistance = numerics.get(n++);
textLowerDistance = numerics.get(n++);
textSignalFactor = numerics.get(n++);
textLowerFactor = numerics.get(n++);
}
gd.showDialog();
if (gd.wasCanceled())
return false;
// Ignore the template
gd.getNextChoice();
useBenchmarkSettings = gd.getNextBoolean();
fitConfig.setInitialPeakStdDev(gd.getNextNumber());
config.setDataFilterType(gd.getNextChoiceIndex());
config.setDataFilter(gd.getNextChoiceIndex(), Math.abs(gd.getNextNumber()), 0);
config.setSearch(gd.getNextNumber());
config.setBorder(gd.getNextNumber());
config.setFitting(gd.getNextNumber());
fitConfig.setFitSolver(gd.getNextChoiceIndex());
fitConfig.setFitFunction(gd.getNextChoiceIndex());
// Avoid stupidness. Note: We are mostly ignoring the validation result and
// checking the results for the doublets manually.
// Realistically we cannot fit lower than this
fitConfig.setMinPhotons(15);
// Set the width factors to help establish bounds for bounded fitters
fitConfig.setMinWidthFactor(1.0 / 10);
fitConfig.setWidthFactor(10);
iterationIncrease = gd.getNextNumber();
ignoreWithNeighbours = gd.getNextBoolean();
showOverlay = gd.getNextBoolean();
showHistograms = gd.getNextBoolean();
showResults = gd.getNextBoolean();
showJaccardPlot = gd.getNextBoolean();
useMaxResiduals = gd.getNextBoolean();
matchDistance = Math.abs(gd.getNextNumber());
lowerDistance = Math.abs(gd.getNextNumber());
signalFactor = Math.abs(gd.getNextNumber());
lowerSignalFactor = Math.abs(gd.getNextNumber());
matching = gd.getNextChoiceIndex();
if (gd.invalidNumber())
return false;
if (lowerDistance > matchDistance)
lowerDistance = matchDistance;
if (lowerSignalFactor > signalFactor)
lowerSignalFactor = signalFactor;
if (useBenchmarkSettings) {
if (!updateFitConfiguration(config))
return false;
}
GlobalSettings settings = new GlobalSettings();
settings.setFitEngineConfiguration(config);
settings.setCalibration(cal);
boolean configure = true;
if (useBenchmarkSettings) {
// Only configure the fit solver if not in a macro
configure = Macro.getOptions() == null;
}
if (configure && !PeakFit.configureFitSolver(settings, null, false))
return false;
lastId = simulationParameters.id;
if (showHistograms) {
gd = new GenericDialog(TITLE);
gd.addMessage("Select the histograms to display");
for (int i = 0; i < NAMES.length; i++) gd.addCheckbox(NAMES[i].replace(' ', '_'), displayHistograms[i]);
for (int i = 0; i < NAMES2.length; i++) gd.addCheckbox(NAMES2[i].replace(' ', '_'), displayHistograms[i + NAMES.length]);
gd.showDialog();
if (gd.wasCanceled())
return false;
for (int i = 0; i < displayHistograms.length; i++) displayHistograms[i] = gd.getNextBoolean();
}
return true;
}
use of java.awt.Checkbox in project voltdb by VoltDB.
the class Transfer method initGUI.
/**
* Method declaration
*
*/
private void initGUI() {
Font fFont = new Font("Dialog", Font.PLAIN, 12);
setLayout(new BorderLayout());
Panel p = new Panel();
p.setBackground(SystemColor.control);
p.setLayout(new GridLayout(16, 1));
tSourceTable = new TextField();
tSourceTable.setEnabled(false);
tDestTable = new TextField();
tDestTable.addActionListener(this);
tDestDrop = new TextField();
tDestDrop.addActionListener(this);
tDestCreate = new TextField();
tDestCreate.addActionListener(this);
tDestDelete = new TextField();
tDestDelete.addActionListener(this);
tDestCreateIndex = new TextField();
tDestCreateIndex.addActionListener(this);
tDestDropIndex = new TextField();
tDestDropIndex.addActionListener(this);
tSourceSelect = new TextField();
tSourceSelect.addActionListener(this);
tDestInsert = new TextField();
tDestInsert.addActionListener(this);
tDestAlter = new TextField();
tDestAlter.addActionListener(this);
cTransfer = new Checkbox("Transfer to destination table", true);
cTransfer.addItemListener(this);
cDrop = new Checkbox("Drop destination table (ignore error)", true);
cDrop.addItemListener(this);
cCreate = new Checkbox("Create destination table", true);
cCreate.addItemListener(this);
cDropIndex = new Checkbox("Drop destination index (ignore error)", true);
cDropIndex.addItemListener(this);
cIdxForced = new Checkbox("force Idx_ prefix for indexes names", false);
cIdxForced.addItemListener(this);
cCreateIndex = new Checkbox("Create destination index", true);
cCreateIndex.addItemListener(this);
cDelete = new Checkbox("Delete rows in destination table", true);
cDelete.addItemListener(this);
cInsert = new Checkbox("Insert into destination", true);
cInsert.addItemListener(this);
cFKForced = new Checkbox("force FK_ prefix for foreign key names", false);
cFKForced.addItemListener(this);
cAlter = new Checkbox("Alter destination table", true);
cAlter.addItemListener(this);
p.add(createLabel("Source table"));
p.add(tSourceTable);
p.add(cTransfer);
p.add(tDestTable);
p.add(cDrop);
p.add(tDestDrop);
p.add(cCreate);
p.add(tDestCreate);
p.add(cDropIndex);
p.add(tDestDropIndex);
p.add(cCreateIndex);
p.add(tDestCreateIndex);
p.add(cDelete);
p.add(tDestDelete);
p.add(cAlter);
p.add(tDestAlter);
p.add(createLabel("Select source records"));
p.add(tSourceSelect);
p.add(cInsert);
p.add(tDestInsert);
p.add(createLabel(""));
p.add(createLabel(""));
p.add(cIdxForced);
p.add(cFKForced);
p.add(createLabel(""));
p.add(createLabel(""));
if (iTransferMode == TRFM_TRANSFER) {
bStart = new Button("Start Transfer");
bContinue = new Button("Continue Transfer");
bContinue.setEnabled(false);
} else if (iTransferMode == Transfer.TRFM_DUMP) {
bStart = new Button("Start Dump");
} else if (iTransferMode == Transfer.TRFM_RESTORE) {
bStart = new Button("Start Restore");
}
bStart.addActionListener(this);
p.add(bStart);
if (iTransferMode == TRFM_TRANSFER) {
bContinue.addActionListener(this);
p.add(bContinue);
}
bStart.setEnabled(false);
fMain.add("Center", createBorderPanel(p));
lTable = new java.awt.List(10);
lTable.addItemListener(this);
fMain.add("West", createBorderPanel(lTable));
tMessage = new TextField();
Panel pMessage = createBorderPanel(tMessage);
fMain.add("South", pMessage);
}
use of java.awt.Checkbox in project GDSC-SMLM by aherbert.
the class PSFCreator method showDialog.
private int showDialog() {
GenericDialog gd = new GenericDialog(TITLE);
gd.addHelp(About.HELP_URL);
gd.addMessage("Produces an average PSF using selected diffraction limited spots.\nUses the current fit configuration to fit spots.");
gd.addCheckbox("Update_Fit_Configuration", false);
gd.addNumericField("nm_per_slice", nmPerSlice, 0);
gd.addSlider("Radius", 3, 20, radius);
gd.addSlider("Amplitude_fraction", 0.01, 0.5, amplitudeFraction);
gd.addSlider("Start_background_frames", 1, 20, startBackgroundFrames);
gd.addSlider("End_background_frames", 1, 20, endBackgroundFrames);
gd.addSlider("Magnification", 5, 15, magnification);
gd.addSlider("Smoothing", 0.25, 0.5, smoothing);
gd.addCheckbox("Centre_each_slice", centreEachSlice);
gd.addNumericField("CoM_cut_off", comCutOff, -2);
gd.addCheckbox("Interactive_mode", interactiveMode);
String[] methods = ImageProcessor.getInterpolationMethods();
gd.addChoice("Interpolation", methods, methods[interpolationMethod]);
((Checkbox) gd.getCheckboxes().get(0)).addItemListener(this);
gd.showDialog();
if (gd.wasCanceled())
return DONE;
gd.getNextBoolean();
nmPerSlice = gd.getNextNumber();
radius = gd.getNextNumber();
amplitudeFraction = gd.getNextNumber();
startBackgroundFrames = (int) gd.getNextNumber();
endBackgroundFrames = (int) gd.getNextNumber();
magnification = (int) gd.getNextNumber();
smoothing = gd.getNextNumber();
centreEachSlice = gd.getNextBoolean();
comCutOff = Maths.max(0, gd.getNextNumber());
interactiveMode = gd.getNextBoolean();
interpolationMethod = gd.getNextChoiceIndex();
// Check arguments
try {
Parameters.isPositive("nm/slice", nmPerSlice);
Parameters.isAbove("Radius", radius, 2);
Parameters.isAbove("Amplitude fraction", amplitudeFraction, 0.01);
Parameters.isBelow("Amplitude fraction", amplitudeFraction, 0.9);
Parameters.isPositive("Start background frames", startBackgroundFrames);
Parameters.isPositive("End background frames", endBackgroundFrames);
Parameters.isAbove("Total background frames", startBackgroundFrames + endBackgroundFrames, 1);
Parameters.isAbove("Magnification", magnification, 1);
Parameters.isAbove("Smoothing", smoothing, 0);
Parameters.isBelow("Smoothing", smoothing, 1);
} catch (IllegalArgumentException e) {
IJ.error(TITLE, e.getMessage());
return DONE;
}
return flags;
}
Aggregations