package gdsc.smlm.ij.settings; import gdsc.smlm.ij.results.ResultsFileFormat; import gdsc.smlm.ij.results.ResultsImage; import gdsc.smlm.ij.results.ResultsTable; /*----------------------------------------------------------------------------- * GDSC SMLM Software * * Copyright (C) 2013 Alex Herbert * Genome Damage and Stability Centre * University of Sussex, UK * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. *---------------------------------------------------------------------------*/ /** * Contain the settings for the Results */ public class ResultsSettings implements Cloneable { public boolean logProgress = false; public boolean showDeviations = false; private ResultsImage resultsImage; public boolean weightedImage = true; public boolean equalisedImage = true; public double precision = 0.3; public double imageScale = 8; public int imageRollingWindow = 0; public String resultsDirectory = null; public String resultsFilename = null; private ResultsFileFormat resultsFileFormat; public boolean resultsInMemory = true; private ResultsTable resultsTable; public ResultsSettings() { initialiseState(); } /** * @return the resultsImage */ public ResultsImage getResultsImage() { return resultsImage; } /** * @param resultsImage * the resultsImage to set */ public void setResultsImage(ResultsImage resultsImage) { this.resultsImage = resultsImage; } /** * @param resultsImage * the resultsImage to set */ public void setResultsImage(int resultsImage) { if (resultsImage >= 0 && resultsImage < ResultsImage.values().length) { setResultsImage(ResultsImage.values()[resultsImage]); } } /** * @return the resultsFileFormat */ public ResultsFileFormat getResultsFileFormat() { return resultsFileFormat; } /** * @param resultsFileFormat * the resultsFileFormat to set */ public void setResultsFileFormat(ResultsFileFormat resultsFileFormat) { this.resultsFileFormat = resultsFileFormat; } /** * @param resultsFileFormat * the resultsFileFormat to set */ public void setResultsFileFormat(int resultsFileFormat) { if (resultsFileFormat >= 0 && resultsFileFormat < ResultsFileFormat.values().length) { setResultsFileFormat(ResultsFileFormat.values()[resultsFileFormat]); } } /** * @return the resultsTable */ public ResultsTable getResultsTable() { return resultsTable; } /** * @param resultsTable * the resultsTable to set */ public void setResultsTable(ResultsTable resultsTable) { this.resultsTable = resultsTable; } /** * @param resultsTable * the resultsImage to set */ public void setResultsTable(int resultsTable) { if (resultsTable >= 0 && resultsTable < ResultsTable.values().length) { setResultsTable(ResultsTable.values()[resultsTable]); } } /** * Ensure that the internal state of the object is initialised. This is used after deserialisation since some state * is not saved but restored from other property values. */ public void initialiseState() { if (resultsImage == null) resultsImage = ResultsImage.LOCALISATIONS; if (resultsFileFormat == null) resultsFileFormat = ResultsFileFormat.GDSC_TEXT; if (resultsTable == null) resultsTable = ResultsTable.NONE; } /* * (non-Javadoc) * * @see java.lang.Object#clone() */ public ResultsSettings clone() { ResultsSettings c; try { c = (ResultsSettings) super.clone(); } catch (CloneNotSupportedException e) { return null; } return c; } }