Changeset 3881


Ignore:
Timestamp:
Oct 13, 2010, 9:05:49 AM (13 years ago)
Author:
olle
Message:

Refs #700. Refs #698. X!Tandem parameter set form now created by its
own class:

  1. New class/file gui/form/XTandemParameterSetForm.java in client/servlet/

added:

  1. Valid parameters related to the X!Tandem parameter set fields were

moved to the new class from class/file
action/xTandemInput/SaveXTandemParameterSetStorage.java in client/servlet/.

  1. Two constructors were created, one default constructor without

arguments that creates all fields in the form, and a constructor with an
XTandemParameterSet instance as argument, which calls the default constructor
and then sets field values to the ones in the given XTandemParameterSet
instance.

  1. Management of option alternatives were moved to two new methods,

fetchDefaultOptionAlternatives() for setting default options, and
fetchOptionAlternatives(), that exchanges the former for option alternatives
obtained from an GPM web site, if avaliable.

  1. Class/file action/xTandemInput/SaveXTandemParameterSetStorage.java in

client/servlet updated:

  1. Valid parameters related to the X!Tandem parameter set fields were

moved to the new XTandemParameterSetForm class.

  1. X!Tandem parameter set values are transfered to the current form by

creating a temporary X!Tandem parameter set form with up-to-date values,
after which the fields in the latter are added as hidden fields by
new private method
Form addFormFields(Form targetForm, Form sourceForm)

  1. Class/file action/xTandemInput/ViewActiveXTandemParameterSetStorage.java

in client/servlet/ updated:

  1. Public method void runMe() updated by creating X!Tandem parameter set

form by new class XTandemParameterSetForm.

  1. Old methods related to creation of an X!Tandem parameter set form

and adding X!Tandem parameter set fields to a fieldset have been removed:
private List<Option> stringListToOptionList(List<String> stringList)
public Form getXTandemParameterSetForm(...)
public Fieldset addXTandemParameterSetToFieldset(...)
public Fieldset addXTandemParameterSetListPathFieldsToFieldset(...)
public Fieldset addXTandemParameterSetSpectrumFieldsToFieldset(...)
public Fieldset addXTandemParameterSetResidueFieldsToFieldset(...)
public Fieldset addXTandemParameterSetProteinFieldsToFieldset(...)
public Fieldset addXTandemParameterSetRefineFieldsToFieldset(...)
public Fieldset addXTandemParameterSetScoringFieldsToFieldset(...)
public Fieldset addXTandemParameterSetOutputFieldsToFieldset(...)
private boolean itemInOptionList(List<Option> optionList, String item)
private boolean allItemsInOptionList(List<Option> optionList, List<String> itemList)
private List<String> listStringToStringList(String listString, String delimiterRegex)

  1. Class/file gui/form/Select.java in client/servlet/ updated:
  2. Public constructor Select(D param, List<Option> optionList, List<String> selected)

updated by first checking if selected list is null before using it.

  1. New public method void selectOptions(List<String> selected) added.

It sets all options matching any value in the input list to selected.

Location:
trunk/client/servlet/src/org/proteios
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/client/servlet/src/org/proteios/action/xTandemInput/SaveXTandemParameterSetStorage.java

    r3870 r3881  
    4848import org.proteios.core.query.Hql;
    4949import org.proteios.core.query.Restrictions;
     50import org.proteios.gui.GUIElement;
    5051import org.proteios.gui.Title;
    5152import org.proteios.gui.Toolbar;
     
    5758import se.lu.thep.waf.constraints.InvalidParameterValue;
    5859import se.lu.thep.waf.constraints.VInteger;
     60import se.lu.thep.waf.constraints.VParameter;
    5961import se.lu.thep.waf.constraints.VString;
    6062
     
    6769  public static final VInteger VXTANDEMPARAMETERFILEID = new VInteger(
    6870    "xTandemParameterFileId", 0, false);
    69   public static final VString VXTANDEM_LIST_PATH_DEFAULT_PARAMETERS = new VString("XTandemListPathDefaultParameters", 0,
    70     255, false);
    71   public static final VString VXTANDEM_LIST_PATH_TAXONOMY_INFORMATION = new VString("XTandemListPathTaxonomyInformation", 0,
    72     255, false);
    73   public static final VString VXTANDEM_SPECTRUM_PATH = new VString("XTandemSpectrumPath", 0,
    74     255, false);
    75   public static final VString VXTANDEM_SPECTRUM_FRAG_MI_MASS_ERROR = new VString("XTandemSpectrumFragmentMonoisotopicMassError", 0,
    76     32, false);
    77   public static final VString VXTANDEM_SPECTRUM_PARENT_MI_MASS_ERROR_PLUS = new VString("XTandemSpectrumParentMonoisotopicMassErrorPlus", 0,
    78     32, false);
    79   public static final VString VXTANDEM_SPECTRUM_PARENT_MI_MASS_ERROR_MINUS = new VString("XTandemSpectrumParentMonoisotopicMassErrorMinus", 0,
    80     32, false);
    81   public static final VString VXTANDEM_SPECTRUM_PARENT_MI_MASS_ISOTOPE_ERROR = new VString("XTandemSpectrumParentMonoisotopicMassIsotopeError", 0,
    82     32, false);
    83   public static final VString VXTANDEM_SPECTRUM_FRAG_MI_MASS_ERROR_UNITS = new VString("XTandemSpectrumFragmentMonoisotopicMassErrorUnits", 0,
    84     32, false);
    85   public static final VString VXTANDEM_SPECTRUM_PARENT_MI_MASS_ERROR_UNITS = new VString("XTandemSpectrumParentMonoisotopicMassErrorUnits", 0,
    86     32, false);
    87   public static final VString VXTANDEM_SPECTRUM_FRAG_MASS_TYPE = new VString("XTandemSpectrumFragmentMassType", 0,
    88     32, false);
    89   public static final VString VXTANDEM_SPECTRUM_DYNAMIC_RANGE = new VString("XTandemSpectrumDynamicRange", 0,
    90     32, false);
    91   public static final VString VXTANDEM_SPECTRUM_TOTAL_PEAKS = new VString("XTandemSpectrumTotalPeaks", 0,
    92     32, false);
    93   public static final VString VXTANDEM_SPECTRUM_MAX_PARENT_CHARGE = new VString("XTandemSpectrumMaximumParentCharge", 0,
    94     32, false);
    95   public static final VString VXTANDEM_SPECTRUM_USE_NOISE_SUPPRESSION = new VString("XTandemSpectrumUseNoiseSuppression", 0,
    96     32, false);
    97   public static final VString VXTANDEM_SPECTRUM_MIN_PARENT_M_PLUS_H = new VString("XTandemSpectrumMinimumParentMPlusH", 0,
    98     32, false);
    99   public static final VString VXTANDEM_SPECTRUM_MAX_PARENT_M_PLUS_H = new VString("XTandemSpectrumMaximumParentMPlusH", 0,
    100     32, false);
    101   public static final VString VXTANDEM_SPECTRUM_MIN_FRAG_MZ = new VString("XTandemSpectrumMinimumFragmentMz", 0,
    102     32, false);
    103   public static final VString VXTANDEM_SPECTRUM_MIN_PEAKS = new VString("XTandemSpectrumMinimumPeaks", 0,
    104     32, false);
    105   public static final VString VXTANDEM_SPECTRUM_THREADS = new VString("XTandemSpectrumThreads", 0,
    106     32, false);
    107   public static final VString VXTANDEM_SPECTRUM_SEQUENCE_BATCH_SIZE = new VString("XTandemSpectrumSequenceBatchSize", 0,
    108     32, false);
    109   public static final VString VXTANDEM_SPECTRUM_USE_CONDITIONING = new VString("XTandemSpectrumUseConditioning", 0,
    110     32, false);
    111   public static final VString VXTANDEM_RESIDUE_MODIFICATION_MASS_SELECT = new VString("XTandemResidueModificationMassSelect", 0,
    112     32, false);
    113   public static final VString VXTANDEM_RESIDUE_MODIFICATION_MASS = new VString("XTandemResidueModificationMass", 0,
    114     150, false);
    115   public static final VString VXTANDEM_RESIDUE_POTENTIAL_MODIFICATION_MASS_SELECT = new VString("XTandemResiduePotentialModificationMassSelect", 0,
    116     32, false);
    117   public static final VString VXTANDEM_RESIDUE_POTENTIAL_MODIFICATION_MASS = new VString("XTandemResiduePotentialModificationMass", 0,
    118     150, false);
    119   public static final VString VXTANDEM_RESIDUE_POTENTIAL_MODIFICATION_MOTIF = new VString("XTandemResiduePotentialModificationMotif", 0,
    120     100, false);
    121   public static final VString VXTANDEM_PROTEIN_TAXON = new VString("XTandemProteinTaxon", 0,
    122     64, false);
    123   public static final VString VXTANDEM_PROTEIN_TAXON1 = new VString("XTandemProteinTaxon1", 0,
    124     64, false);
    125   public static final VString VXTANDEM_PROTEIN_CLEAVAGE_SITE_SELECT = new VString("XTandemProteinCleavageSiteSelect", 0,
    126     32, false);
    127   public static final VString VXTANDEM_PROTEIN_CLEAVAGE_SITE = new VString("XTandemProteinCleavageSite", 0,
    128     32, false);
    129   public static final VString VXTANDEM_PROTEIN_MODIFIED_RESIDUE_MASS_FILE = new VString("XTandemProteinModifiedResidueMassFile", 0,
    130     32, false);
    131   public static final VString VXTANDEM_PROTEIN_CLEAVAGE_N_TERMINAL_MASS_CHANGE = new VString("XTandemProteinCleavageNTerminalMassChange", 0,
    132     32, false);
    133   public static final VString VXTANDEM_PROTEIN_CLEAVAGE_C_TERMINAL_MASS_CHANGE = new VString("XTandemProteinCleavageCTerminalMassChange", 0,
    134     32, false);
    135   public static final VString VXTANDEM_PROTEIN_N_TERMINAL_RESIDUE_MODIFICATION_MASS = new VString("XTandemProteinNTerminalResidueModificationMass", 0,
    136     32, false);
    137   public static final VString VXTANDEM_PROTEIN_C_TERMINAL_RESIDUE_MODIFICATION_MASS = new VString("XTandemProteinCTerminalResidueModificationMass", 0,
    138     32, false);
    139   public static final VString VXTANDEM_PROTEIN_HOMOLOG_MANAGEMENT = new VString("XTandemProteinHomologManagement", 0,
    140     32, false);
    141   public static final VString VXTANDEM_REFINE = new VString("XTandemRefine", 0,
    142     32, false);
    143   public static final VString VXTANDEM_REFINE_MODIFICATION_MASS = new VString("XTandemRefineModificationMass", 0,
    144     32, false);
    145   public static final VString VXTANDEM_REFINE_SEQUENCE_PATH = new VString("XTandemRefineSequencePath", 0,
    146     255, false);
    147   public static final VString VXTANDEM_REFINE_TIC_PERCENT = new VString("XTandemRefineTicPercent", 0,
    148     32, false);
    149   public static final VString VXTANDEM_REFINE_SPECTRUM_SYNTHESIS = new VString("XTandemRefineSpectrumSynthesis", 0,
    150     32, false);
    151   public static final VString VXTANDEM_REFINE_MAX_VALID_EXPECTATION_VALUE = new VString("XTandemRefineMaximumValidExpectationValue", 0,
    152     32, false);
    153   public static final VString VXTANDEM_REFINE_POTENTIAL_N_TERMINUS_MODIFICATIONS = new VString("XTandemRefinePotentialNTerminusModifications", 0,
    154     32, false);
    155   public static final VString VXTANDEM_REFINE_POTENTIAL_C_TERMINUS_MODIFICATIONS = new VString("XTandemRefinePotentialCTerminusModifications", 0,
    156     32, false);
    157   public static final VString VXTANDEM_REFINE_UNANTICIPATED_CLEAVAGE = new VString("XTandemRefineUnanticipatedCleavage", 0,
    158     32, false);
    159   public static final VString VXTANDEM_REFINE_POTENTIAL_MODIFICATION_MASS_SELECT = new VString("XTandemRefinePotentialModificationMassSelect", 0,
    160     32, false);
    161   public static final VString VXTANDEM_REFINE_POTENTIAL_MODIFICATION_MASS = new VString("XTandemRefinePotentialModificationMass", 0,
    162     32, false);
    163   public static final VString VXTANDEM_REFINE_POINT_MUTATIONS = new VString("XTandemRefinePointMutations", 0,
    164     32, false);
    165   public static final VString VXTANDEM_REFINE_USE_POTENTIAL_MODIFICATIONS_FOR_FULL_REFINEMENT = new VString("XTandemRefineUsePotentialModificationsForFullRefinement", 0,
    166     32, false);
    167   public static final VString VXTANDEM_REFINE_POTENTIAL_MODIFICATION_MOTIF = new VString("XTandemRefinePotentialModificationMotif", 0,
    168     32, false);
    169   public static final VString VXTANDEM_SCORING_MIN_ION_COUNT = new VString("XTandemScoringMinIonCount", 0,
    170     32, false);
    171   public static final VString VXTANDEM_SCORING_MAX_MISSED_CLEAVAGE_SITES = new VString("XTandemScoringMaxMissedCleavageSites", 0,
    172     32, false);
    173   public static final VString VXTANDEM_SCORING_X_IONS = new VString("XTandemScoringXIons", 0,
    174     32, false);
    175   public static final VString VXTANDEM_SCORING_Y_IONS = new VString("XTandemScoringYIons", 0,
    176     32, false);
    177   public static final VString VXTANDEM_SCORING_Z_IONS = new VString("XTandemScoringZIons", 0,
    178     32, false);
    179   public static final VString VXTANDEM_SCORING_A_IONS = new VString("XTandemScoringAIons", 0,
    180     32, false);
    181   public static final VString VXTANDEM_SCORING_B_IONS = new VString("XTandemScoringBIons", 0,
    182     32, false);
    183   public static final VString VXTANDEM_SCORING_C_IONS = new VString("XTandemScoringCIons", 0,
    184     32, false);
    185   public static final VString VXTANDEM_SCORING_CYCLIC_PERMUTATION = new VString("XTandemScoringCyclicPermutation", 0,
    186     32, false);
    187   public static final VString VXTANDEM_SCORING_INCLUDE_REVERSE = new VString("XTandemScoringIncludeReverse", 0,
    188     32, false);
    189   public static final VString VXTANDEM_SCORING_ALGORITHM = new VString("XTandemScoringAlgorithm", 0,
    190     32, false);
    191   public static final VString VXTANDEM_OUTPUT_PATH = new VString("XTandemOutputPath", 0,
    192     255, false);
    193   public static final VString VXTANDEM_OUTPUT_LOG_PATH = new VString("XTandemOutputLogPath", 0,
    194     255, false);
    195   public static final VString VXTANDEM_OUTPUT_MESSAGE = new VString("XTandemOutputMessage", 0,
    196     255, false);
    197   public static final VString VXTANDEM_OUTPUT_SEQUENCE_PATH = new VString("XTandemOutputSequencePath", 0,
    198     255, false);
    199   public static final VString VXTANDEM_OUTPUT_SORT_RESULTS_BY = new VString("XTandemOutputSortResultsBy", 0,
    200     32, false);
    201   public static final VString VXTANDEM_OUTPUT_PATH_HASHING = new VString("XTandemOutputPathHashing", 0,
    202     255, false);
    203   public static final VString VXTANDEM_OUTPUT_XSL_PATH = new VString("XTandemOutputXslPath", 0,
    204     255, false);
    205   public static final VString VXTANDEM_OUTPUT_PARAMETERS = new VString("XTandemOutputParameters", 0,
    206     32, false);
    207   public static final VString VXTANDEM_OUTPUT_PERFORMANCE = new VString("XTandemOutputPerformance", 0,
    208     32, false);
    209   public static final VString VXTANDEM_OUTPUT_SPECTRA = new VString("XTandemOutputSpectra", 0,
    210     32, false);
    211   public static final VString VXTANDEM_OUTPUT_HISTOGRAMS = new VString("XTandemOutputHistograms", 0,
    212     32, false);
    213   public static final VString VXTANDEM_OUTPUT_PROTEINS = new VString("XTandemOutputProteins", 0,
    214     32, false);
    215   public static final VString VXTANDEM_OUTPUT_SEQUENCES = new VString("XTandemOutputSequences", 0,
    216     32, false);
    217   public static final VString VXTANDEM_OUTPUT_ONE_SEQUENCE_COPY = new VString("XTandemOutputOneSequenceCopy", 0,
    218     32, false);
    219   public static final VString VXTANDEM_OUTPUT_RESULTS = new VString("XTandemOutputResults", 0,
    220     32, false);
    221   public static final VString VXTANDEM_OUTPUT_MAX_VALID_EXPECTATION_VALUE = new VString("XTandemOutputMaximumValidExpectationValue", 0,
    222     32, false);
    223   public static final VString VXTANDEM_OUTPUT_HISTOGRAM_COLUMN_WIDTH = new VString("XTandemOutputHistogramColumnWidth", 0,
    224     32, false);
    22571
    22672  @Override
     
    291137        // XTandemParameterSetStorage form
    292138        Form form = new SaveAsXTandemStorageForm(xtpss, xTandemParameterSet);
     139        // Hidden fields for transferring values of XTandem parameter set
     140        Form xTandemParameterSetForm = new XTandemParameterSetForm();
     141        populateForm(xTandemParameterSetForm);
     142        form = addFormFields(form, xTandemParameterSetForm);
    293143        // Toolbar
    294144        Toolbar tb = new Toolbar();
     
    505355
    506356  /**
     357   * Adds form fields in source form as hidden fields to target form.
     358   * @param targetForm Form The form to add hidden fields to.
     359   * @param sourceForm Form The form to take fields from.
     360   * @return Form The updated target form.
     361   */
     362  private Form addFormFields(Form targetForm, Form sourceForm)
     363  {
     364    // Get last target fieldset to add hidden fields to
     365    Fieldset targetFS = null;
     366    for (Fieldset fieldset: targetForm.getFieldsets())
     367    {
     368      targetFS = fieldset;
     369    }
     370    if (targetFS == null)
     371    {
     372      log.debug("No fieldset in form " + targetForm.getTitle() + " to add hidden fields to");
     373      // Create new fieldset without title to store hidden fields
     374      targetFS = new Fieldset();
     375      targetForm.addFieldset(targetFS);
     376    }
     377    else
     378    {
     379      log.debug("Fields from form " + sourceForm.getTitle() + " added as hidden fields to fieldset " + targetFS.getTitle() + " in form " + targetForm.getTitle());
     380    }
     381    for (Fieldset sourceFS: sourceForm.getFieldsets())
     382    {
     383      for (GUIElement guiElement: sourceFS.getFields())
     384      {
     385         if (guiElement instanceof Select)
     386           {
     387           Select sourceS = ((Select) guiElement);
     388           TextField field = new TextField(sourceS.getParam());
     389           field.setId(sourceS.getId());
     390           field.setLabel(sourceS.getLabel());
     391           try
     392           {
     393             List<String> stringList = getValidStringList((VString) sourceS.getParam());
     394             log.debug("Source select - " + sourceS.getLabel() + " string list = " + stringList);
     395             String delimiterString = new String(",");
     396             if (sourceS.getLabel().equals("XTandemProteinTaxonEukaryotes") ||
     397                 sourceS.getLabel().equals("XTandemProteinTaxonProkaryotes"))
     398             {
     399               delimiterString = new String(", ");
     400             }
     401             String listString = stringListToListString(stringList, delimiterString);
     402             field.setValue(listString);
     403           }
     404           catch(InvalidParameterValue e)
     405           {
     406             log.debug("Source select - " + sourceS.getLabel() + " InvalidParameterValue: " + e);
     407           }
     408           log.debug("Target field - " + field.getLabel() + ": " + field.getValue());
     409           field.setHidden(true);
     410           targetFS.add(field);
     411           }
     412         else if (guiElement instanceof TextField)
     413           {
     414           TextField sourceF = ((TextField) guiElement);
     415           TextField field = new TextField(sourceF.getParam());
     416           field.setId(sourceF.getId());
     417           field.setLabel(sourceF.getLabel());
     418           field.setValue(sourceF.getValue());
     419           field.setHidden(true);
     420           targetFS.add(field);
     421           }
     422      }
     423    }
     424    return targetForm;
     425  }
     426
     427
     428  /**
    507429   * Fetches values of XTandemParameterSet variables from valid parameters
    508430   * and stores them in corresponding variables in an XTandemParameterSet
     
    519441    XTandemParameterSet xTandemParameterSet = new XTandemParameterSet();
    520442    //
    521     String listPathDefaultParameters = getString(VXTANDEM_LIST_PATH_DEFAULT_PARAMETERS);
     443    String listPathDefaultParameters = getString(XTandemParameterSetForm.VXTANDEM_LIST_PATH_DEFAULT_PARAMETERS);
    522444    xTandemParameterSet.setListPathDefaultParameters(listPathDefaultParameters);
    523445    log.debug("listPathDefaultParameters = " + listPathDefaultParameters);
    524446    //
    525     String listPathTaxonomyInformation = getString(VXTANDEM_LIST_PATH_TAXONOMY_INFORMATION);
     447    String listPathTaxonomyInformation = getString(XTandemParameterSetForm.VXTANDEM_LIST_PATH_TAXONOMY_INFORMATION);
    526448    xTandemParameterSet.setListPathTaxonomyInformation(listPathTaxonomyInformation);
    527449    log.debug("listPathTaxonomyInformation = " + listPathTaxonomyInformation);
    528450    //
    529     String spectrumPath = getString(VXTANDEM_SPECTRUM_PATH);
     451    String spectrumPath = getString(XTandemParameterSetForm.VXTANDEM_SPECTRUM_PATH);
    530452    xTandemParameterSet.setSpectrumPath(spectrumPath);
    531453    log.debug("spectrumPath = " + spectrumPath);
    532454    //
    533     String spectrumFragMiMassError = getString(VXTANDEM_SPECTRUM_FRAG_MI_MASS_ERROR);
     455    String spectrumFragMiMassError = getString(XTandemParameterSetForm.VXTANDEM_SPECTRUM_FRAG_MI_MASS_ERROR);
    534456    xTandemParameterSet.setSpectrumFragmentMonoisotopicMassError(spectrumFragMiMassError);
    535457    log.debug("spectrumFragMiMassError = " + spectrumFragMiMassError);
    536458    //
    537     String spectrumParentMiMassErrorPlus = getString(VXTANDEM_SPECTRUM_PARENT_MI_MASS_ERROR_PLUS);
     459    String spectrumParentMiMassErrorPlus = getString(XTandemParameterSetForm.VXTANDEM_SPECTRUM_PARENT_MI_MASS_ERROR_PLUS);
    538460    xTandemParameterSet.setSpectrumParentMonoisotopicMassErrorPlus(spectrumParentMiMassErrorPlus);
    539461    log.debug("spectrumParentMiMassErrorPlus = " + spectrumParentMiMassErrorPlus);
    540462    //
    541     String spectrumParentMiMassErrorMinus = getString(VXTANDEM_SPECTRUM_PARENT_MI_MASS_ERROR_MINUS);
     463    String spectrumParentMiMassErrorMinus = getString(XTandemParameterSetForm.VXTANDEM_SPECTRUM_PARENT_MI_MASS_ERROR_MINUS);
    542464    xTandemParameterSet.setSpectrumParentMonoisotopicMassErrorMinus(spectrumParentMiMassErrorMinus);
    543465    log.debug("spectrumParentMiMassErrorMinus = " + spectrumParentMiMassErrorMinus);
    544466    //
    545     String spectrumParentMiMassIsotopeError = getString(VXTANDEM_SPECTRUM_PARENT_MI_MASS_ISOTOPE_ERROR);
     467    String spectrumParentMiMassIsotopeError = getString(XTandemParameterSetForm.VXTANDEM_SPECTRUM_PARENT_MI_MASS_ISOTOPE_ERROR);
    546468    xTandemParameterSet.setSpectrumParentMonoisotopicMassIsotopeError(spectrumParentMiMassIsotopeError);
    547469    log.debug("spectrumParentMiMassIsotopeError = " + spectrumParentMiMassIsotopeError);
    548470    //
    549     String spectrumFragMiMassErrorUnits = getString(VXTANDEM_SPECTRUM_FRAG_MI_MASS_ERROR_UNITS);
     471    String spectrumFragMiMassErrorUnits = getString(XTandemParameterSetForm.VXTANDEM_SPECTRUM_FRAG_MI_MASS_ERROR_UNITS);
    550472    xTandemParameterSet.setSpectrumFragmentMonoisotopicMassErrorUnits(spectrumFragMiMassErrorUnits);
    551473    log.debug("spectrumFragMiMassErrorUnits = " + spectrumFragMiMassErrorUnits);
    552474    //
    553     String spectrumParentMiMassErrorUnits = getString(VXTANDEM_SPECTRUM_PARENT_MI_MASS_ERROR_UNITS);
     475    String spectrumParentMiMassErrorUnits = getString(XTandemParameterSetForm.VXTANDEM_SPECTRUM_PARENT_MI_MASS_ERROR_UNITS);
    554476    xTandemParameterSet.setSpectrumParentMonoisotopicMassErrorUnits(spectrumParentMiMassErrorUnits);
    555477    log.debug("spectrumParentMiMassErrorUnits = " + spectrumParentMiMassErrorUnits);
    556478    //
    557     String spectrumFragMassType = getString(VXTANDEM_SPECTRUM_FRAG_MASS_TYPE);
     479    String spectrumFragMassType = getString(XTandemParameterSetForm.VXTANDEM_SPECTRUM_FRAG_MASS_TYPE);
    558480    xTandemParameterSet.setSpectrumFragmentMassType(spectrumFragMassType);
    559481    log.debug("spectrumFragMassType = " + spectrumFragMassType);
    560482    //
    561     String spectrumDynamicRange = getString(VXTANDEM_SPECTRUM_DYNAMIC_RANGE);
     483    String spectrumDynamicRange = getString(XTandemParameterSetForm.VXTANDEM_SPECTRUM_DYNAMIC_RANGE);
    562484    xTandemParameterSet.setSpectrumDynamicRange(spectrumDynamicRange);
    563485    log.debug("spectrumDynamicRange = " + spectrumDynamicRange);
    564486    //
    565     String spectrumTotalPeaks = getString(VXTANDEM_SPECTRUM_TOTAL_PEAKS);
     487    String spectrumTotalPeaks = getString(XTandemParameterSetForm.VXTANDEM_SPECTRUM_TOTAL_PEAKS);
    566488    xTandemParameterSet.setSpectrumTotalPeaks(spectrumTotalPeaks);
    567489    log.debug("spectrumTotalPeaks = " + spectrumTotalPeaks);
    568490    //
    569     String spectrumMaxParentCharge = getString(VXTANDEM_SPECTRUM_MAX_PARENT_CHARGE);
     491    String spectrumMaxParentCharge = getString(XTandemParameterSetForm.VXTANDEM_SPECTRUM_MAX_PARENT_CHARGE);
    570492    xTandemParameterSet.setSpectrumMaximumParentCharge(spectrumMaxParentCharge);
    571493    log.debug("spectrumMaxParentCharge = " + spectrumMaxParentCharge);
    572494    //
    573     String spectrumUseNoiseSuppression = getString(VXTANDEM_SPECTRUM_USE_NOISE_SUPPRESSION);
     495    String spectrumUseNoiseSuppression = getString(XTandemParameterSetForm.VXTANDEM_SPECTRUM_USE_NOISE_SUPPRESSION);
    574496    xTandemParameterSet.setSpectrumUseNoiseSuppression(spectrumUseNoiseSuppression);
    575497    log.debug("spectrumUseNoiseSuppression = " + spectrumUseNoiseSuppression);
    576498    //
    577     String spectrumMinParentMPlusH = getString(VXTANDEM_SPECTRUM_MIN_PARENT_M_PLUS_H);
     499    String spectrumMinParentMPlusH = getString(XTandemParameterSetForm.VXTANDEM_SPECTRUM_MIN_PARENT_M_PLUS_H);
    578500    xTandemParameterSet.setSpectrumMinimumParentMPlusH(spectrumMinParentMPlusH);
    579501    log.debug("spectrumMinParentMPlusH = " + spectrumMinParentMPlusH);
    580502    //
    581     String spectrumMaxParentMPlusH = getString(VXTANDEM_SPECTRUM_MAX_PARENT_M_PLUS_H);
     503    String spectrumMaxParentMPlusH = getString(XTandemParameterSetForm.VXTANDEM_SPECTRUM_MAX_PARENT_M_PLUS_H);
    582504    xTandemParameterSet.setSpectrumMaximumParentMPlusH(spectrumMaxParentMPlusH);
    583505    log.debug("spectrumMaxParentMPlusH = " + spectrumMaxParentMPlusH);
    584506    //
    585     String spectrumMinFragmentMz = getString(VXTANDEM_SPECTRUM_MIN_FRAG_MZ);
     507    String spectrumMinFragmentMz = getString(XTandemParameterSetForm.VXTANDEM_SPECTRUM_MIN_FRAG_MZ);
    586508    xTandemParameterSet.setSpectrumMinimumFragmentMz(spectrumMinFragmentMz);
    587509    log.debug("spectrumMinFragmentMz = " + spectrumMinFragmentMz);
    588510    //
    589     String spectrumMinPeaks = getString(VXTANDEM_SPECTRUM_MIN_PEAKS);
     511    String spectrumMinPeaks = getString(XTandemParameterSetForm.VXTANDEM_SPECTRUM_MIN_PEAKS);
    590512    xTandemParameterSet.setSpectrumMinimumPeaks(spectrumMinPeaks);
    591513    log.debug("spectrumMinPeaks = " + spectrumMinPeaks);
    592514    //
    593     String spectrumThreads = getString(VXTANDEM_SPECTRUM_THREADS);
     515    String spectrumThreads = getString(XTandemParameterSetForm.VXTANDEM_SPECTRUM_THREADS);
    594516    xTandemParameterSet.setSpectrumThreads(spectrumThreads);
    595517    log.debug("spectrumThreads = " + spectrumThreads);
    596518    //
    597     String spectrumSequenceBatchSize = getString(VXTANDEM_SPECTRUM_SEQUENCE_BATCH_SIZE);
     519    String spectrumSequenceBatchSize = getString(XTandemParameterSetForm.VXTANDEM_SPECTRUM_SEQUENCE_BATCH_SIZE);
    598520    xTandemParameterSet.setSpectrumSequenceBatchSize(spectrumSequenceBatchSize);
    599521    log.debug("spectrumSequenceBatchSize = " + spectrumSequenceBatchSize);
    600522    //
    601     String spectrumUseConditioning = getString(VXTANDEM_SPECTRUM_USE_CONDITIONING);
     523    String spectrumUseConditioning = getString(XTandemParameterSetForm.VXTANDEM_SPECTRUM_USE_CONDITIONING);
    602524    xTandemParameterSet.setSpectrumUseConditioning(spectrumUseConditioning);
    603525    log.debug("spectrumUseConditioning = " + spectrumUseConditioning);
     
    610532     */
    611533    // Residue modification mass select box
    612     String residueModificationMassSelect = getString(VXTANDEM_RESIDUE_MODIFICATION_MASS_SELECT);
     534    String residueModificationMassSelect = getString(XTandemParameterSetForm.VXTANDEM_RESIDUE_MODIFICATION_MASS_SELECT);
    613535    log.debug("residueModificationMassSelect = " + residueModificationMassSelect);
    614536    // Residue modification mass from entry field
    615     String residueModificationMass = getString(VXTANDEM_RESIDUE_MODIFICATION_MASS);
     537    String residueModificationMass = getString(XTandemParameterSetForm.VXTANDEM_RESIDUE_MODIFICATION_MASS);
    616538    log.debug("residueModificationMass (own) = " + residueModificationMass);
    617539    // If no entered value, use selected value
     
    638560    // Residue potential modification mass select box list
    639561    //String residuePotentialModificationMassSelect = getString(VXTANDEM_RESIDUE_POTENTIAL_MODIFICATION_MASS_SELECT);
    640     List<String> residuePotentialModificationMassSelectList = getValidStringList(VXTANDEM_RESIDUE_POTENTIAL_MODIFICATION_MASS_SELECT);
     562    List<String> residuePotentialModificationMassSelectList = getValidStringList(XTandemParameterSetForm.VXTANDEM_RESIDUE_POTENTIAL_MODIFICATION_MASS_SELECT);
    641563    log.debug("residuePotentialModificationMassSelectList = " + residuePotentialModificationMassSelectList);
    642564    residuePotentialModificationMassSelectList = uniqueStringItemList(residuePotentialModificationMassSelectList);
     
    648570    log.debug("residuePotentialModificationMassSelect = \"" + residuePotentialModificationMassSelect + "\"");
    649571    // Residue potential modification mass list from entry field
    650     String residuePotentialModificationMass = getString(VXTANDEM_RESIDUE_POTENTIAL_MODIFICATION_MASS);
     572    String residuePotentialModificationMass = getString(XTandemParameterSetForm.VXTANDEM_RESIDUE_POTENTIAL_MODIFICATION_MASS);
    651573    log.debug("residuePotentialModificationMass (own) = " + residuePotentialModificationMass);
    652574    // If no entered values, use selected values
     
    661583    log.debug("residuePotentialModificationMass = " + residuePotentialModificationMass);
    662584    //
    663     String residuePotentialModificationMotif = getString(VXTANDEM_RESIDUE_POTENTIAL_MODIFICATION_MOTIF);
     585    String residuePotentialModificationMotif = getString(XTandemParameterSetForm.VXTANDEM_RESIDUE_POTENTIAL_MODIFICATION_MOTIF);
    664586    xTandemParameterSet.setResiduePotentialModificationMotif(residuePotentialModificationMotif);
    665587    log.debug("residuePotentialModificationMotif = " + residuePotentialModificationMotif);
     
    676598    //String proteinTaxon = getString(VXTANDEM_PROTEIN_TAXON);
    677599    // Taxon list 1, Eukaryotes
    678     List<String> proteinTaxonList = getValidStringList(VXTANDEM_PROTEIN_TAXON);
     600    List<String> proteinTaxonList = getValidStringList(XTandemParameterSetForm.VXTANDEM_PROTEIN_TAXON);
    679601    log.debug("proteinTaxonList = " + proteinTaxonList);
    680602    proteinTaxonList = uniqueStringItemList(proteinTaxonList);
    681603    log.debug("proteinTaxonList with unique items = " + proteinTaxonList);
    682604    // Taxon list 2, Prokaryotes
    683     List<String> proteinTaxon1List = getValidStringList(VXTANDEM_PROTEIN_TAXON1);
     605    List<String> proteinTaxon1List = getValidStringList(XTandemParameterSetForm.VXTANDEM_PROTEIN_TAXON1);
    684606    log.debug("proteinTaxon1List = " + proteinTaxon1List);
    685607    proteinTaxon1List = uniqueStringItemList(proteinTaxon1List);
     
    710632     */
    711633    // Protein cleavage site select box
    712     String proteinCleavageSiteSelect = getString(VXTANDEM_PROTEIN_CLEAVAGE_SITE_SELECT);
     634    String proteinCleavageSiteSelect = getString(XTandemParameterSetForm.VXTANDEM_PROTEIN_CLEAVAGE_SITE_SELECT);
    713635    log.debug("proteinCleavageSiteSelect = " + proteinCleavageSiteSelect);
    714636    // Protein cleavage site from entry field
    715     String proteinCleavageSite = getString(VXTANDEM_PROTEIN_CLEAVAGE_SITE);
     637    String proteinCleavageSite = getString(XTandemParameterSetForm.VXTANDEM_PROTEIN_CLEAVAGE_SITE);
    716638    log.debug("proteinCleavageSite (own) = " + proteinCleavageSite);
    717639    // If no entered value, use selected value
     
    726648    log.debug("proteinCleavageSite = " + proteinCleavageSite);
    727649    //
    728     String proteinModifiedResidueMassFile = getString(VXTANDEM_PROTEIN_MODIFIED_RESIDUE_MASS_FILE);
     650    String proteinModifiedResidueMassFile = getString(XTandemParameterSetForm.VXTANDEM_PROTEIN_MODIFIED_RESIDUE_MASS_FILE);
    729651    xTandemParameterSet.setProteinModifiedResidueMassFile(proteinModifiedResidueMassFile);
    730652    log.debug("proteinModifiedResidueMassFile = " + proteinModifiedResidueMassFile);
    731653    //
    732     String proteinCleavageNTerminalMassChange = getString(VXTANDEM_PROTEIN_CLEAVAGE_N_TERMINAL_MASS_CHANGE);
     654    String proteinCleavageNTerminalMassChange = getString(XTandemParameterSetForm.VXTANDEM_PROTEIN_CLEAVAGE_N_TERMINAL_MASS_CHANGE);
    733655    xTandemParameterSet.setProteinCleavageNTerminalMassChange(proteinCleavageNTerminalMassChange);
    734656    log.debug("proteinCleavageNTerminalMassChange = " + proteinCleavageNTerminalMassChange);
    735657    //
    736     String proteinCleavageCTerminalMassChange = getString(VXTANDEM_PROTEIN_CLEAVAGE_C_TERMINAL_MASS_CHANGE);
     658    String proteinCleavageCTerminalMassChange = getString(XTandemParameterSetForm.VXTANDEM_PROTEIN_CLEAVAGE_C_TERMINAL_MASS_CHANGE);
    737659    xTandemParameterSet.setProteinCleavageCTerminalMassChange(proteinCleavageCTerminalMassChange);
    738660    log.debug("proteinCleavageCTerminalMassChange = " + proteinCleavageCTerminalMassChange);
    739661    //
    740     String proteinNTerminalResidueModificationMass = getString(VXTANDEM_PROTEIN_N_TERMINAL_RESIDUE_MODIFICATION_MASS);
     662    String proteinNTerminalResidueModificationMass = getString(XTandemParameterSetForm.VXTANDEM_PROTEIN_N_TERMINAL_RESIDUE_MODIFICATION_MASS);
    741663    xTandemParameterSet.setProteinNTerminalResidueModificationMass(proteinNTerminalResidueModificationMass);
    742664    log.debug("proteinNTerminalResidueModificationMass = " + proteinNTerminalResidueModificationMass);
    743665    //
    744     String proteinCTerminalResidueModificationMass = getString(VXTANDEM_PROTEIN_C_TERMINAL_RESIDUE_MODIFICATION_MASS);
     666    String proteinCTerminalResidueModificationMass = getString(XTandemParameterSetForm.VXTANDEM_PROTEIN_C_TERMINAL_RESIDUE_MODIFICATION_MASS);
    745667    xTandemParameterSet.setProteinCTerminalResidueModificationMass(proteinCTerminalResidueModificationMass);
    746668    log.debug("proteinCTerminalResidueModificationMass = " + proteinCTerminalResidueModificationMass);
    747669    //
    748     String proteinHomologManagement = getString(VXTANDEM_PROTEIN_HOMOLOG_MANAGEMENT);
     670    String proteinHomologManagement = getString(XTandemParameterSetForm.VXTANDEM_PROTEIN_HOMOLOG_MANAGEMENT);
    749671    xTandemParameterSet.setProteinHomologManagement(proteinHomologManagement);
    750672    log.debug("proteinHomologManagement = " + proteinHomologManagement);
    751673    //
    752     String refine = getString(VXTANDEM_REFINE);
     674    String refine = getString(XTandemParameterSetForm.VXTANDEM_REFINE);
    753675    xTandemParameterSet.setRefine(refine);
    754676    log.debug("refine = " + refine);
    755677    //
    756     String refineModificationMass = getString(VXTANDEM_REFINE_MODIFICATION_MASS);
     678    String refineModificationMass = getString(XTandemParameterSetForm.VXTANDEM_REFINE_MODIFICATION_MASS);
    757679    xTandemParameterSet.setRefineModificationMass(refineModificationMass);
    758680    log.debug("refineModificationMass = " + refineModificationMass);
    759681    //
    760     String refineSequencePath = getString(VXTANDEM_REFINE_SEQUENCE_PATH);
     682    String refineSequencePath = getString(XTandemParameterSetForm.VXTANDEM_REFINE_SEQUENCE_PATH);
    761683    xTandemParameterSet.setRefineSequencePath(refineSequencePath);
    762684    log.debug("refineSequencePath = " + refineSequencePath);
    763685    //
    764     String refineTicPercent = getString(VXTANDEM_REFINE_TIC_PERCENT);
     686    String refineTicPercent = getString(XTandemParameterSetForm.VXTANDEM_REFINE_TIC_PERCENT);
    765687    xTandemParameterSet.setRefineTicPercent(refineTicPercent);
    766688    log.debug("refineTicPercent = " + refineTicPercent);
    767689    //
    768     String refineSpectrumSynthesis = getString(VXTANDEM_REFINE_SPECTRUM_SYNTHESIS);
     690    String refineSpectrumSynthesis = getString(XTandemParameterSetForm.VXTANDEM_REFINE_SPECTRUM_SYNTHESIS);
    769691    xTandemParameterSet.setRefineSpectrumSynthesis(refineSpectrumSynthesis);
    770692    log.debug("refineSpectrumSynthesis = " + refineSpectrumSynthesis);
    771693    //
    772     String refineMaxValidExpectationValue = getString(VXTANDEM_REFINE_MAX_VALID_EXPECTATION_VALUE);
     694    String refineMaxValidExpectationValue = getString(XTandemParameterSetForm.VXTANDEM_REFINE_MAX_VALID_EXPECTATION_VALUE);
    773695    xTandemParameterSet.setRefineMaximumValidExpectationValue(refineMaxValidExpectationValue);
    774696    log.debug("refineMaxValidExpectationValue = " + refineMaxValidExpectationValue);
    775697    //
    776     String refinePotentialNTerminusModifications = getString(VXTANDEM_REFINE_POTENTIAL_N_TERMINUS_MODIFICATIONS);
     698    String refinePotentialNTerminusModifications = getString(XTandemParameterSetForm.VXTANDEM_REFINE_POTENTIAL_N_TERMINUS_MODIFICATIONS);
    777699    xTandemParameterSet.setRefinePotentialNTerminusModifications(refinePotentialNTerminusModifications);
    778700    log.debug("refinePotentialNTerminusModifications = " + refinePotentialNTerminusModifications);
    779701    //
    780     String refinePotentialCTerminusModifications = getString(VXTANDEM_REFINE_POTENTIAL_C_TERMINUS_MODIFICATIONS);
     702    String refinePotentialCTerminusModifications = getString(XTandemParameterSetForm.VXTANDEM_REFINE_POTENTIAL_C_TERMINUS_MODIFICATIONS);
    781703    xTandemParameterSet.setRefinePotentialCTerminusModifications(refinePotentialCTerminusModifications);
    782704    log.debug("refinePotentialCTerminusModifications = " + refinePotentialCTerminusModifications);
    783705    //
    784     String refineUnanticipatedCleavage = getString(VXTANDEM_REFINE_UNANTICIPATED_CLEAVAGE);
     706    String refineUnanticipatedCleavage = getString(XTandemParameterSetForm.VXTANDEM_REFINE_UNANTICIPATED_CLEAVAGE);
    785707    xTandemParameterSet.setRefineUnanticipatedCleavage(refineUnanticipatedCleavage);
    786708    log.debug("refineUnanticipatedCleavage = " + refineUnanticipatedCleavage);
     
    798720    // Refine potential modification mass select box list
    799721    //String refinePotentialModificationMassSelect = getString(VXTANDEM_REFINE_POTENTIAL_MODIFICATION_MASS_SELECT);
    800     List<String> refinePotentialModificationMassSelectList = getValidStringList(VXTANDEM_REFINE_POTENTIAL_MODIFICATION_MASS_SELECT);
     722    List<String> refinePotentialModificationMassSelectList = getValidStringList(XTandemParameterSetForm.VXTANDEM_REFINE_POTENTIAL_MODIFICATION_MASS_SELECT);
    801723    log.debug("refinePotentialModificationMassSelectList = " + refinePotentialModificationMassSelectList);
    802724    refinePotentialModificationMassSelectList = uniqueStringItemList(refinePotentialModificationMassSelectList);
     
    806728    log.debug("refinePotentialModificationMassSelect = \"" + refinePotentialModificationMassSelect + "\"");
    807729    // Refine potential modification mass list from entry field
    808     String refinePotentialModificationMass = getString(VXTANDEM_REFINE_POTENTIAL_MODIFICATION_MASS);
     730    String refinePotentialModificationMass = getString(XTandemParameterSetForm.VXTANDEM_REFINE_POTENTIAL_MODIFICATION_MASS);
    809731    log.debug("refinePotentialModificationMass (own) = " + refinePotentialModificationMass);
    810732    // If no entered values, use selected values
     
    820742    log.debug("refinePotentialModificationMassRefine = " + refinePotentialModificationMass);
    821743    //
    822     String refinePointMutations = getString(VXTANDEM_REFINE_POINT_MUTATIONS);
     744    String refinePointMutations = getString(XTandemParameterSetForm.VXTANDEM_REFINE_POINT_MUTATIONS);
    823745    xTandemParameterSet.setRefinePointMutations(refinePointMutations);
    824746    log.debug("refinePointMutations = " + refinePointMutations);
    825747    //
    826     String refineUsePotentialModificationsForFullRefinement = getString(VXTANDEM_REFINE_USE_POTENTIAL_MODIFICATIONS_FOR_FULL_REFINEMENT);
     748    String refineUsePotentialModificationsForFullRefinement = getString(XTandemParameterSetForm.VXTANDEM_REFINE_USE_POTENTIAL_MODIFICATIONS_FOR_FULL_REFINEMENT);
    827749    xTandemParameterSet.setRefineUsePotentialModificationsForFullRefinement(refineUsePotentialModificationsForFullRefinement);
    828750    log.debug("refineUsePotentialModificationsForFullRefinement = " + refineUsePotentialModificationsForFullRefinement);
    829751    //
    830     String refinePotentialModificationMotifRefine = getString(VXTANDEM_REFINE_POTENTIAL_MODIFICATION_MOTIF);
     752    String refinePotentialModificationMotifRefine = getString(XTandemParameterSetForm.VXTANDEM_REFINE_POTENTIAL_MODIFICATION_MOTIF);
    831753    xTandemParameterSet.setRefinePotentialModificationMotif(refinePotentialModificationMotifRefine);
    832754    log.debug("refinePotentialModificationMotifRefine = " + refinePotentialModificationMotifRefine);
    833755    //
    834     String scoringMinIonCount = getString(VXTANDEM_SCORING_MIN_ION_COUNT);
     756    String scoringMinIonCount = getString(XTandemParameterSetForm.VXTANDEM_SCORING_MIN_ION_COUNT);
    835757    xTandemParameterSet.setScoringMinimumIonCount(scoringMinIonCount);
    836758    log.debug("scoringMinIonCount = " + scoringMinIonCount);
    837759    //
    838     String scoringMaxMissedCleavageSites = getString(VXTANDEM_SCORING_MAX_MISSED_CLEAVAGE_SITES);
     760    String scoringMaxMissedCleavageSites = getString(XTandemParameterSetForm.VXTANDEM_SCORING_MAX_MISSED_CLEAVAGE_SITES);
    839761    xTandemParameterSet.setScoringMaximumMissedCleavageSites(scoringMaxMissedCleavageSites);
    840762    log.debug("scoringMaxMissedCleavageSites = " + scoringMaxMissedCleavageSites);
    841763    //
    842     String scoringXIons = getString(VXTANDEM_SCORING_X_IONS);
     764    String scoringXIons = getString(XTandemParameterSetForm.VXTANDEM_SCORING_X_IONS);
    843765    xTandemParameterSet.setScoringXIons(scoringXIons);
    844766    log.debug("scoringXIons = " + scoringXIons);
    845767    //
    846     String scoringYIons = getString(VXTANDEM_SCORING_Y_IONS);
     768    String scoringYIons = getString(XTandemParameterSetForm.VXTANDEM_SCORING_Y_IONS);
    847769    xTandemParameterSet.setScoringYIons(scoringYIons);
    848770    log.debug("scoringYIons = " + scoringYIons);
    849771    //
    850     String scoringZIons = getString(VXTANDEM_SCORING_Z_IONS);
     772    String scoringZIons = getString(XTandemParameterSetForm.VXTANDEM_SCORING_Z_IONS);
    851773    xTandemParameterSet.setScoringZIons(scoringZIons);
    852774    log.debug("scoringZIons = " + scoringZIons);
    853775    //
    854     String scoringAIons = getString(VXTANDEM_SCORING_A_IONS);
     776    String scoringAIons = getString(XTandemParameterSetForm.VXTANDEM_SCORING_A_IONS);
    855777    xTandemParameterSet.setScoringAIons(scoringAIons);
    856778    log.debug("scoringAIons = " + scoringAIons);
    857779    //
    858     String scoringBIons = getString(VXTANDEM_SCORING_B_IONS);
     780    String scoringBIons = getString(XTandemParameterSetForm.VXTANDEM_SCORING_B_IONS);
    859781    xTandemParameterSet.setScoringBIons(scoringBIons);
    860782    log.debug("scoringBIons = " + scoringBIons);
    861783    //
    862     String scoringCIons = getString(VXTANDEM_SCORING_C_IONS);
     784    String scoringCIons = getString(XTandemParameterSetForm.VXTANDEM_SCORING_C_IONS);
    863785    xTandemParameterSet.setScoringCIons(scoringCIons);
    864786    log.debug("scoringCIons = " + scoringCIons);
    865787    //
    866     String scoringCyclicPermutation = getString(VXTANDEM_SCORING_CYCLIC_PERMUTATION);
     788    String scoringCyclicPermutation = getString(XTandemParameterSetForm.VXTANDEM_SCORING_CYCLIC_PERMUTATION);
    867789    xTandemParameterSet.setScoringCyclicPermutation(scoringCyclicPermutation);
    868790    log.debug("scoringCyclicPermutation = " + scoringCyclicPermutation);
    869791    //
    870     String scoringIncludeReverse = getString(VXTANDEM_SCORING_INCLUDE_REVERSE);
     792    String scoringIncludeReverse = getString(XTandemParameterSetForm.VXTANDEM_SCORING_INCLUDE_REVERSE);
    871793    xTandemParameterSet.setScoringIncludeReverse(scoringIncludeReverse);
    872794    log.debug("scoringIncludeReverse = " + scoringIncludeReverse);
    873795    //
    874     String scoringAlgorithm = getString(VXTANDEM_SCORING_ALGORITHM);
     796    String scoringAlgorithm = getString(XTandemParameterSetForm.VXTANDEM_SCORING_ALGORITHM);
    875797    xTandemParameterSet.setScoringAlgorithm(scoringAlgorithm);
    876798    log.debug("scoringAlgorithm = " + scoringAlgorithm);
    877799    //
    878     String outputPath = getString(VXTANDEM_OUTPUT_PATH);
     800    String outputPath = getString(XTandemParameterSetForm.VXTANDEM_OUTPUT_PATH);
    879801    xTandemParameterSet.setOutputPath(outputPath);
    880802    log.debug("outputPath = " + outputPath);
    881803    //
    882     String outputLogPath = getString(VXTANDEM_OUTPUT_LOG_PATH);
     804    String outputLogPath = getString(XTandemParameterSetForm.VXTANDEM_OUTPUT_LOG_PATH);
    883805    xTandemParameterSet.setOutputLogPath(outputLogPath);
    884806    log.debug("outputLogPath = " + outputLogPath);
    885807    //
    886     String outputMessage = getString(VXTANDEM_OUTPUT_MESSAGE);
     808    String outputMessage = getString(XTandemParameterSetForm.VXTANDEM_OUTPUT_MESSAGE);
    887809    xTandemParameterSet.setOutputMessage(outputMessage);
    888810    log.debug("outputMessage = " + outputMessage);
    889811    //
    890     String outputSequencePath = getString(VXTANDEM_OUTPUT_SEQUENCE_PATH);
     812    String outputSequencePath = getString(XTandemParameterSetForm.VXTANDEM_OUTPUT_SEQUENCE_PATH);
    891813    xTandemParameterSet.setOutputSequencePath(outputSequencePath);
    892814    log.debug("outputSequencePath = " + outputSequencePath);
    893815    //
    894     String outputSortResultsBy = getString(VXTANDEM_OUTPUT_SORT_RESULTS_BY);
     816    String outputSortResultsBy = getString(XTandemParameterSetForm.VXTANDEM_OUTPUT_SORT_RESULTS_BY);
    895817    xTandemParameterSet.setOutputSortResultsBy(outputSortResultsBy);
    896818    log.debug("outputSortResultsBy = " + outputSortResultsBy);
    897819    //
    898     String outputPathHashing = getString(VXTANDEM_OUTPUT_PATH_HASHING);
     820    String outputPathHashing = getString(XTandemParameterSetForm.VXTANDEM_OUTPUT_PATH_HASHING);
    899821    xTandemParameterSet.setOutputPathHashing(outputPathHashing);
    900822    log.debug("outputPathHashing = " + outputPathHashing);
    901823    //
    902     String outputXslPath = getString(VXTANDEM_OUTPUT_XSL_PATH);
     824    String outputXslPath = getString(XTandemParameterSetForm.VXTANDEM_OUTPUT_XSL_PATH);
    903825    xTandemParameterSet.setOutputXslPath(outputXslPath);
    904826    log.debug("outptuXslPath = " + outputXslPath);
    905827    //
    906     String outputParameters = getString(VXTANDEM_OUTPUT_PARAMETERS);
     828    String outputParameters = getString(XTandemParameterSetForm.VXTANDEM_OUTPUT_PARAMETERS);
    907829    xTandemParameterSet.setOutputParameters(outputParameters);
    908830    log.debug("outputParameters = " + outputParameters);
    909831    //
    910     String outputPerformance = getString(VXTANDEM_OUTPUT_PERFORMANCE);
     832    String outputPerformance = getString(XTandemParameterSetForm.VXTANDEM_OUTPUT_PERFORMANCE);
    911833    xTandemParameterSet.setOutputPerformance(outputPerformance);
    912834    log.debug("outputPerformance = " + outputPerformance);
    913835    //
    914     String outputSpectra = getString(VXTANDEM_OUTPUT_SPECTRA);
     836    String outputSpectra = getString(XTandemParameterSetForm.VXTANDEM_OUTPUT_SPECTRA);
    915837    xTandemParameterSet.setOutputSpectra(outputSpectra);
    916838    log.debug("outputSpectra = " + outputSpectra);
    917839    //
    918     String outputHistograms = getString(VXTANDEM_OUTPUT_HISTOGRAMS);
     840    String outputHistograms = getString(XTandemParameterSetForm.VXTANDEM_OUTPUT_HISTOGRAMS);
    919841    xTandemParameterSet.setOutputHistograms(outputHistograms);
    920842    log.debug("outputHistograms = " + outputHistograms);
    921843    //
    922     String outputProteins = getString(VXTANDEM_OUTPUT_PROTEINS);
     844    String outputProteins = getString(XTandemParameterSetForm.VXTANDEM_OUTPUT_PROTEINS);
    923845    xTandemParameterSet.setOutputProteins(outputProteins);
    924846    log.debug("outputProteins = " + outputProteins);
    925847    //
    926     String outputSequences = getString(VXTANDEM_OUTPUT_SEQUENCES);
     848    String outputSequences = getString(XTandemParameterSetForm.VXTANDEM_OUTPUT_SEQUENCES);
    927849    xTandemParameterSet.setOutputSequences(outputSequences);
    928850    log.debug("outputSequences = " + outputSequences);
    929851    //
    930     String outputOneSequenceCopy = getString(VXTANDEM_OUTPUT_ONE_SEQUENCE_COPY);
     852    String outputOneSequenceCopy = getString(XTandemParameterSetForm.VXTANDEM_OUTPUT_ONE_SEQUENCE_COPY);
    931853    xTandemParameterSet.setOutputOneSequenceCopy(outputOneSequenceCopy);
    932854    log.debug("outputOneSequenceCopy = " + outputOneSequenceCopy);
    933855    //
    934     String outputResults = getString(VXTANDEM_OUTPUT_RESULTS);
     856    String outputResults = getString(XTandemParameterSetForm.VXTANDEM_OUTPUT_RESULTS);
    935857    xTandemParameterSet.setOutputResults(outputResults);
    936858    log.debug("outputResults = " + outputResults);
    937859    //
    938     String outputMaxValidExpectationValueOutput = getString(VXTANDEM_OUTPUT_MAX_VALID_EXPECTATION_VALUE);
     860    String outputMaxValidExpectationValueOutput = getString(XTandemParameterSetForm.VXTANDEM_OUTPUT_MAX_VALID_EXPECTATION_VALUE);
    939861    xTandemParameterSet.setOutputMaximumValidExpectationValue(outputMaxValidExpectationValueOutput);
    940862    log.debug("outputMaxValidExpectationValueOutput = " + outputMaxValidExpectationValueOutput);
    941863    //
    942     String outputHistogramColumnWidth = getString(VXTANDEM_OUTPUT_HISTOGRAM_COLUMN_WIDTH);
     864    String outputHistogramColumnWidth = getString(XTandemParameterSetForm.VXTANDEM_OUTPUT_HISTOGRAM_COLUMN_WIDTH);
    943865    xTandemParameterSet.setOutputHistogramColumnWidth(outputHistogramColumnWidth);
    944866    log.debug("outputHistogramColumnWidth = " + outputHistogramColumnWidth);
  • trunk/client/servlet/src/org/proteios/action/xTandemInput/ViewActiveXTandemParameterSetStorage.java

    r3872 r3881  
    3030
    3131import java.io.InputStream;
    32 import java.util.ArrayList;
    3332import java.util.List;
    3433import org.proteios.ActionLink;
     
    4342import org.proteios.io.XTandemParameterFileUtil;
    4443import org.proteios.io.XTandemParameterSet;
    45 import org.proteios.io.XTandemParameterSetOptionsUtil;
     44//import org.proteios.io.XTandemParameterSetOptionsUtil;
    4645import se.lu.thep.waf.ActionException;
    4746import se.lu.thep.waf.constraints.InvalidParameterValue;
    4847import se.lu.thep.waf.constraints.VInteger;
    49 import se.lu.thep.waf.constraints.VString;
    5048
    5149/**
     
    9694    xTandemParameterFileUtil.setXMLInputStream(iStream);
    9795    XTandemParameterSet xTandemParameterSet = xTandemParameterFileUtil.fetchXTandemParameterSet();
    98     // Get XTandemParameterSetOptionsUtil instance
    99     XTandemParameterSetOptionsUtil xTandemParameterSetOptionUtil = new XTandemParameterSetOptionsUtil();
    100     // Get list path default parameters option data
    101     List<String> listPathDefaultParametersStringList = xTandemParameterSetOptionUtil.fetchListPathDefaultParametersStringList();
    102     List<Option> listPathDefaultParametersOptionList = stringListToOptionList(listPathDefaultParametersStringList);
    103     // Get Eukaryotes species option data
    104     List<String> speciesStringList = xTandemParameterSetOptionUtil.fetchSpeciesStringList();
    105     List<Option> speciesOptionList = stringListToOptionList(speciesStringList);
    106     // Get Prokaryotes species option data
    107     List<String> proSpeciesStringList = xTandemParameterSetOptionUtil.fetchProSpeciesStringList();
    108     List<Option> proSpeciesOptionList = stringListToOptionList(proSpeciesStringList);
    109     // Get residue modification mass option data
    110     List<String> residueModificationMassStringList = xTandemParameterSetOptionUtil.fetchResidueModificationMassStringList();
    111     List<Option> residueModificationMassOptionList = stringListToOptionList(residueModificationMassStringList);
    112     // Get residue potential modification mass option data
    113     List<String> residuePotentialModificationMassStringList = xTandemParameterSetOptionUtil.fetchResiduePotentialModificationMassStringList();
    114     List<Option> residuePotentialModificationMassOptionList = stringListToOptionList(residuePotentialModificationMassStringList);
    115     // Get protein cleavage site option data
    116     List<String> proteinCleavageSiteStringList = xTandemParameterSetOptionUtil.fetchProteinCleavageSiteStringList();
    117     List<Option> proteinCleavageSiteOptionList = stringListToOptionList(proteinCleavageSiteStringList);
    118     // Get refine potential modification mass option data
    119     List<String> refinePotentialModificationMassStringList = xTandemParameterSetOptionUtil.fetchRefinePotentialModificationMassStringList();
    120     List<Option> refinePotentialModificationMassOptionList = stringListToOptionList(refinePotentialModificationMassStringList);
    121     // XTandem parameter set form
    122     //Form xTandemParameterSetForm = getFormFactory().getXTandemParameterSetForm(xTandemParameterSet);
    123     Form xTandemParameterSetForm = getXTandemParameterSetForm(xTandemParameterSet,
    124       listPathDefaultParametersOptionList,
    125       speciesOptionList,
    126       proSpeciesOptionList,
    127       residueModificationMassOptionList,
    128       residuePotentialModificationMassOptionList,
    129       proteinCleavageSiteOptionList,
    130       refinePotentialModificationMassOptionList);
     96    Form xTandemParameterSetForm = new XTandemParameterSetForm(xTandemParameterSet);
    13197    /***********************************************************************
    13298     * Annotations table
     
    173139      for (Integer spectrumFileId : spectrumFileIds)
    174140      {
    175        getFormFactory().addHiddenField(xTandemParameterSetForm, SearchXTandem.VSPECTRUMFILEID, spectrumFileId);
     141        getFormFactory().addHiddenField(xTandemParameterSetForm, SearchXTandem.VSPECTRUMFILEID, spectrumFileId);
    176142      }
    177143      searchXTandemViaWebInterface.addParameter(SearchXTandem.VXTANDEMUSEWEBINTERFACEFLAG, true);
     
    220186    setLayout(layout);
    221187  }
    222 
    223 
    224   /**
    225    * Converts a list of alternating key and value strings
    226    * into a list of options.
    227    *
    228    * @param stringList List<String> A list of alternating key and value strings.
    229    * @return List<Option> A list of options
    230    */
    231   private List<Option> stringListToOptionList(List<String> stringList)
    232   {
    233     List<Option> optionList = new ArrayList<Option>(0);
    234     for (int i = 0; i < stringList.size(); i = i + 2)
    235     {
    236       String key = stringList.get(i);
    237       String value = stringList.get(i + 1);
    238       /*
    239        * Note that the option "value" corresponds
    240        * to the "key" in the key-value string pair,
    241        * while the option "content" corresponds
    242        * to the "value" in the key-value string pair.
    243        */
    244       Option option = new Option(key, value);
    245       optionList.add(option);
    246     }
    247     return optionList;
    248   }
    249 
    250   public Form getXTandemParameterSetForm(
    251       XTandemParameterSet xTandemParameterSet,
    252       List<Option> listPathDefaultParametersOptionList,
    253       List<Option> speciesOptionList, List<Option> proSpeciesOptionList,
    254       List<Option> residueModificationMassOptionList,
    255       List<Option> residuePotentialModificationMassOptionList,
    256       List<Option> proteinCleavageSiteOptionList,
    257       List<Option> refinePotentialModificationMassOptionList)
    258   {
    259     // DbControl dc = project.getDbControl();
    260     Form form = new Form("XTandemParameterSetForm");
    261     /*
    262      * String select box variables
    263      */
    264     VString validStringParam = null;
    265     List<String> stringList = null;
    266     List<Option> optionList = null;
    267     String selected = null;
    268     List<String> selectedList = null;
    269     /*
    270      * List path field set
    271      */
    272     Fieldset listPathFS = new Fieldset();
    273     listPathFS.setTitle("XTandemParameterSetListPath");
    274     form.addFieldset(listPathFS);
    275     // List path, default parameters
    276     validStringParam = SaveXTandemParameterSetStorage.VXTANDEM_LIST_PATH_DEFAULT_PARAMETERS;
    277     optionList = new ArrayList<Option>();
    278     optionList.add(new Option("/tandem/methods/fticr.xml", "FTICR (10 ppm)"));
    279     optionList.add(new Option("/tandem/methods/qstar.xml",  "Quad-TOF (100 ppm)"));
    280     optionList.add(new Option("/tandem/methods/qstar_l.xml",  "Quad-TOF (0.5 Da)"));
    281     optionList.add(new Option("/tandem/methods/iontrap.xml",  "Ion Trap (4 Da)"));
    282     // Use input list path default parameters option list if present
    283     if (listPathDefaultParametersOptionList != null && listPathDefaultParametersOptionList.size() > 0)
    284     {
    285       optionList = listPathDefaultParametersOptionList;
    286     }
    287     selected = xTandemParameterSet.getListPathDefaultParameters();
    288     Select<VString> listPathDefaultParametersSelectBox = new Select<VString>(validStringParam, optionList);
    289   listPathDefaultParametersSelectBox.selectOption( selected);
    290     listPathDefaultParametersSelectBox.setLabel("XTandemListPathDefaultParameters");
    291     listPathDefaultParametersSelectBox.setMultiple(false);
    292     int selectBoxSize = 4;
    293     if (optionList.size() < selectBoxSize)
    294     {
    295       selectBoxSize = optionList.size();
    296     }
    297     listPathDefaultParametersSelectBox.setSize(selectBoxSize);
    298     listPathFS.add(listPathDefaultParametersSelectBox);
    299     // List path, taxonomy information
    300     TextField<String> taxonomyInformationListPath = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_LIST_PATH_TAXONOMY_INFORMATION);
    301     taxonomyInformationListPath.setValue(xTandemParameterSet
    302       .getListPathTaxonomyInformation());
    303     listPathFS.add(taxonomyInformationListPath);
    304     /*
    305      * Spectrum field set
    306      */
    307     Fieldset spectrumFS = new Fieldset();
    308     spectrumFS.setTitle("XTandemParameterSetSpectrum");
    309     form.addFieldset(spectrumFS);
    310     // Spectrum, path
    311     TextField<String> spectrumPath = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_SPECTRUM_PATH);
    312     spectrumPath.setValue(xTandemParameterSet.getSpectrumPath());
    313     spectrumFS.add(spectrumPath);
    314     // Spectrum, fragment monoisotopic mass error
    315     TextField<String> fragMiMassError = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_SPECTRUM_FRAG_MI_MASS_ERROR);
    316     fragMiMassError.setValue(xTandemParameterSet
    317       .getSpectrumFragmentMonoisotopicMassError());
    318     spectrumFS.add(fragMiMassError);
    319     // Spectrum, parent monoisotopic mass error plus
    320     TextField<String> parentMiMassErrorPlus = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_SPECTRUM_PARENT_MI_MASS_ERROR_PLUS);
    321     parentMiMassErrorPlus.setValue(xTandemParameterSet
    322       .getSpectrumParentMonoisotopicMassErrorPlus());
    323     spectrumFS.add(parentMiMassErrorPlus);
    324     // Spectrum, parent monoisotopic mass error minus
    325     TextField<String> parentMiMassErrorMinus = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_SPECTRUM_PARENT_MI_MASS_ERROR_MINUS);
    326     parentMiMassErrorMinus.setValue(xTandemParameterSet
    327       .getSpectrumParentMonoisotopicMassErrorMinus());
    328     spectrumFS.add(parentMiMassErrorMinus);
    329     // Spectrum, parent monoisotopic mass isotope error
    330     validStringParam = SaveXTandemParameterSetStorage.VXTANDEM_SPECTRUM_PARENT_MI_MASS_ISOTOPE_ERROR;
    331     stringList = new ArrayList<String>();
    332     stringList.add("yes");
    333     stringList.add("no");
    334     selected = xTandemParameterSet
    335       .getSpectrumParentMonoisotopicMassIsotopeError();
    336     Select<VString> parentMiMassIsotopeError = new Select<VString>(validStringParam, stringList, selected);
    337     spectrumFS.add(parentMiMassIsotopeError);
    338     // Spectrum, fragment monoisotopic mass error units
    339     validStringParam = SaveXTandemParameterSetStorage.VXTANDEM_SPECTRUM_FRAG_MI_MASS_ERROR_UNITS;
    340     stringList = new ArrayList<String>();
    341     stringList.add("Daltons");
    342     stringList.add("ppm");
    343     selected = xTandemParameterSet
    344       .getSpectrumFragmentMonoisotopicMassErrorUnits();
    345     Select<VString> fragMiMassErrorUnits = new Select<VString>(validStringParam, stringList, selected);
    346     spectrumFS.add(fragMiMassErrorUnits);
    347     // Spectrum, parent monoisotopic mass error units
    348     validStringParam = SaveXTandemParameterSetStorage.VXTANDEM_SPECTRUM_PARENT_MI_MASS_ERROR_UNITS;
    349     stringList = new ArrayList<String>();
    350     stringList.add("Daltons");
    351     stringList.add("ppm");
    352     selected = xTandemParameterSet
    353       .getSpectrumParentMonoisotopicMassErrorUnits();
    354     Select<VString> parentMiMassErrorUnits = new Select<VString>(validStringParam, stringList, selected);
    355     spectrumFS.add(parentMiMassErrorUnits);
    356     // Spectrum, fragment mass type
    357     validStringParam = SaveXTandemParameterSetStorage.VXTANDEM_SPECTRUM_FRAG_MASS_TYPE;
    358     stringList = new ArrayList<String>();
    359     stringList.add("monoisotopic");
    360     stringList.add("average");
    361     selected = xTandemParameterSet.getSpectrumFragmentMassType();
    362     Select<VString> fragMassType = new Select<VString>(validStringParam,  stringList, selected);
    363     spectrumFS.add(fragMassType);
    364     // Spectrum, dynamic range
    365     TextField<String> dynamicRange = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_SPECTRUM_DYNAMIC_RANGE);
    366     dynamicRange.setValue(xTandemParameterSet.getSpectrumDynamicRange());
    367     spectrumFS.add(dynamicRange);
    368     // Spectrum, total peaks
    369     TextField<String> totalPeaks = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_SPECTRUM_TOTAL_PEAKS);
    370     totalPeaks.setValue(xTandemParameterSet.getSpectrumTotalPeaks());
    371     spectrumFS.add(totalPeaks);
    372     // Spectrum, maximum parent charge
    373     TextField<String> maxParentCharge = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_SPECTRUM_MAX_PARENT_CHARGE);
    374     maxParentCharge.setValue(xTandemParameterSet
    375       .getSpectrumMaximumParentCharge());
    376     spectrumFS.add(maxParentCharge);
    377     // Spectrum, use noise suppression
    378     validStringParam = SaveXTandemParameterSetStorage.VXTANDEM_SPECTRUM_USE_NOISE_SUPPRESSION;
    379     stringList = new ArrayList<String>();
    380     stringList.add("yes");
    381     stringList.add("no");
    382     selected = xTandemParameterSet.getSpectrumUseNoiseSuppression();
    383     Select<VString> useNoiseSuppression = new Select<VString>(validStringParam, stringList, selected);
    384     spectrumFS.add(useNoiseSuppression);
    385     // Spectrum, minimum parent m+h
    386     TextField<String> minParentMPlusH = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_SPECTRUM_MIN_PARENT_M_PLUS_H);
    387     minParentMPlusH.setValue(xTandemParameterSet
    388       .getSpectrumMinimumParentMPlusH());
    389     spectrumFS.add(minParentMPlusH);
    390     // Spectrum, maximum parent m+h
    391     TextField<String> maxParentMPlusH = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_SPECTRUM_MAX_PARENT_M_PLUS_H);
    392     maxParentMPlusH.setValue(xTandemParameterSet
    393       .getSpectrumMaximumParentMPlusH());
    394     spectrumFS.add(maxParentMPlusH);
    395     // Spectrum, minimum fragment mz
    396     TextField<String> minFragmentMz = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_SPECTRUM_MIN_FRAG_MZ);
    397     minFragmentMz.setValue(xTandemParameterSet
    398       .getSpectrumMinimumFragmentMz());
    399     spectrumFS.add(minFragmentMz);
    400     // Spectrum, minimum peaks
    401     TextField<String> minPeaks = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_SPECTRUM_MIN_PEAKS);
    402     minPeaks.setValue(xTandemParameterSet.getSpectrumMinimumPeaks());
    403     spectrumFS.add(minPeaks);
    404     // Spectrum, threads
    405     TextField<String> threads = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_SPECTRUM_THREADS);
    406     threads.setValue(xTandemParameterSet.getSpectrumThreads());
    407     spectrumFS.add(threads);
    408     // Spectrum, sequence batch size
    409     TextField<String> spectrumSequenceBatchSize = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_SPECTRUM_SEQUENCE_BATCH_SIZE);
    410     spectrumSequenceBatchSize.setValue(xTandemParameterSet
    411       .getSpectrumSequenceBatchSize());
    412     spectrumFS.add(spectrumSequenceBatchSize);
    413     /*
    414      * Residue field set
    415      */
    416     Fieldset residueFS = new Fieldset();
    417     residueFS.setTitle("XTandemParameterSetResidue");
    418     form.addFieldset(residueFS);
    419     // Residue, modification mass select
    420     /*
    421      * Residue modification mass selection has one peculiarity: 1. The GUI
    422      * selection is divided into one selection box and an entry field. A
    423      * selection in the selection box will only be used if the entry field
    424      * is empty.
    425      */
    426     validStringParam = SaveXTandemParameterSetStorage.VXTANDEM_RESIDUE_MODIFICATION_MASS_SELECT;
    427     optionList = new ArrayList<Option>();
    428     optionList.add(new Option("", "none"));
    429     optionList.add(new Option("57.021464@C", "Carbamidomethyl (C)"));
    430     optionList.add(new Option("442.224991@C", "ICAT-D (C)"));
    431     optionList.add(new Option("227.126991@C", "ICAT-C (C)"));
    432     optionList.add(new Option("58.005479@C", "Carboxymethyl (C)"));
    433     optionList.add(new Option("105.057849@C", "Pyridylethyl (C)"));
    434     optionList.add(new Option("71.037114@C", "Propionamide (C)"));
    435     optionList.add(new Option("144.102063@[,144.102063@K",
    436       "iTRAQ (N-term,K)"));
    437     // Use input residue modification mass option list if present
    438     if (residueModificationMassOptionList != null && residueModificationMassOptionList
    439       .size() > 0)
    440     {
    441       optionList = residueModificationMassOptionList;
    442     }
    443     selected = xTandemParameterSet.getResidueModificationMass();
    444     Select<VString> residueModificationMassSelectBox = new Select<VString>(
    445       validStringParam, optionList);
    446   residueModificationMassSelectBox.selectOption( selected);
    447     residueModificationMassSelectBox
    448       .setLabel("XTandemResidueModificationMassSelect");
    449     residueFS.add(residueModificationMassSelectBox);
    450     // Residue, modification mass (own entered value)
    451     TextField<String> modificationMass = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_RESIDUE_MODIFICATION_MASS);
    452     modificationMass.setLabel("XTandemResidueModificationMassEnter");
    453     // Only insert selected value if not found in select box
    454     if (!itemInOptionList(optionList, selected))
    455     {
    456       log
    457         .debug("residue modification mass, inserted value = \"" + xTandemParameterSet
    458           .getResidueModificationMass() + "\"");
    459       modificationMass.setValue(xTandemParameterSet
    460         .getResidueModificationMass());
    461     }
    462     else
    463     {
    464 
    465       modificationMass.setValue("");
    466     }
    467     log
    468       .debug("residue modification mass, modificationMass.getValue() = \"" + modificationMass
    469         .getValue() + "\"");
    470     residueFS.add(modificationMass);
    471     // Residue, potential modification mass select
    472     /*
    473      * Residue potential modification mass selection has two peculiarities:
    474      * 1. It supports selection of multiple items. 2. The GUI selection is
    475      * divided into one multiple selection box and an entry field.
    476      * Selections in the selection box will only be used if the entry field
    477      * is empty. The multiple selection items are stored in XML as a string
    478      * with items separated by ", ".
    479      */
    480     validStringParam = SaveXTandemParameterSetStorage.VXTANDEM_RESIDUE_POTENTIAL_MODIFICATION_MASS_SELECT;
    481     optionList = new ArrayList<Option>();
    482     optionList.add(new Option("", "none"));
    483     optionList.add(new Option("15.994915@M", "Oxidation (M)"));
    484     optionList.add(new Option("15.994915@W", "Oxidation (W)"));
    485     optionList.add(new Option("0.984016@N", "Deamidation (N)"));
    486     optionList.add(new Option("0.984016@Q", "Deamidation (Q)"));
    487     optionList.add(new Option("8.0502@C", "ICAT-D:2H(8) (C)"));
    488     optionList.add(new Option("9.0302@C", "ICAT-C:13C(9) (C)"));
    489     optionList.add(new Option("144.102063@[", "iTRAQ (N-term)"));
    490     optionList.add(new Option("144.102063@K", "iTRAQ (K)"));
    491     optionList.add(new Option("79.966331@S", "Phospho (S)"));
    492     optionList.add(new Option("79.966331@T", "Phospho (T)"));
    493     optionList.add(new Option("79.966331@Y", "Phospho (Y)"));
    494     optionList.add(new Option("79.956815@Y", "Sulfo (Y)"));
    495     optionList.add(new Option("42.010565@K", "Acetyl (K)"));
    496     // Use input residue potential modification mass option list if present
    497     if (residuePotentialModificationMassOptionList != null && residuePotentialModificationMassOptionList
    498       .size() > 0)
    499     {
    500       optionList = residuePotentialModificationMassOptionList;
    501       log
    502         .debug("Input residue potential modification mass option list used");
    503     }
    504     else
    505     {
    506       log
    507         .debug("Default residue potential modification mass option list used");
    508     }
    509     selected = xTandemParameterSet.getResiduePotentialModificationMass();
    510     log
    511       .debug("residue potential modification mass selected = \"" + selected + "\"");
    512     selectedList = listStringToStringList(selected, ",");
    513     log
    514       .debug("residue potential modification mass selectedList = " + selectedList);
    515     Select<VString> residuePotentialModificationMassSelectBox = new Select<VString>(
    516       validStringParam, optionList, selectedList);
    517     residuePotentialModificationMassSelectBox
    518       .setLabel("XTandemResiduePotentialModificationMassSelect");
    519     residuePotentialModificationMassSelectBox.setMultiple(true);
    520     residuePotentialModificationMassSelectBox.setSize(4);
    521     residueFS.add(residuePotentialModificationMassSelectBox);
    522     // Residue, potential modification mass
    523     TextField<String> potentialModificationMass = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_RESIDUE_POTENTIAL_MODIFICATION_MASS);
    524     potentialModificationMass
    525       .setLabel("XTandemResiduePotentialModificationMassEnter");
    526     potentialModificationMass.setValue(xTandemParameterSet
    527       .getResiduePotentialModificationMass());
    528     // Only insert selected values if not all found in select box
    529     if (!allItemsInOptionList(optionList, selectedList))
    530     {
    531       log
    532         .debug("residue potential modification mass, inserted value = \"" + xTandemParameterSet
    533           .getResiduePotentialModificationMass() + "\"");
    534       potentialModificationMass.setValue(xTandemParameterSet
    535         .getResiduePotentialModificationMass());
    536     }
    537     else
    538     {
    539       potentialModificationMass.setValue("");
    540     }
    541     residueFS.add(potentialModificationMass);
    542     // Residue, potential modification motif
    543     TextField<String> potentialModificationMotif = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_RESIDUE_POTENTIAL_MODIFICATION_MOTIF);
    544     potentialModificationMotif.setValue(xTandemParameterSet
    545       .getResiduePotentialModificationMotif());
    546     residueFS.add(potentialModificationMotif);
    547     /*
    548      * Protein field set
    549      */
    550     Fieldset proteinFS = new Fieldset();
    551     proteinFS.setTitle("XTandemParameterSetProtein");
    552     form.addFieldset(proteinFS);
    553     // Protein, taxon
    554     /*
    555      * Taxonomy selection has two peculiarities: 1. It supports selection of
    556      * multiple items. 2. The GUI selection is divided into two multiple
    557      * selection boxes. The multiple selection items are stored in XML as a
    558      * string with items separated by ", ".
    559      */
    560     // Taxon - Eukaryotes
    561     validStringParam = SaveXTandemParameterSetStorage.VXTANDEM_PROTEIN_TAXON;
    562     optionList = new ArrayList<Option>();
    563     optionList.add(new Option("", "none"));
    564     optionList.add(new Option("human", "H. sapiens (human)"));
    565     optionList.add(new Option("mouse", "M. musculus (mouse)"));
    566     optionList.add(new Option("rat", "R. norvegicus (rat)"));
    567     optionList.add(new Option("yeast", "S. cerevisiae (budding yeast)"));
    568     optionList.add(new Option("", "------------------"));
    569     optionList.add(new Option("mosquito", "A. gambiae (mosquito)"));
    570     optionList.add(new Option("aspergillus_fumigatus",
    571       "A. fumigatus (mould)"));
    572     optionList.add(new Option("bee", "A. mellifera (honey bee)"));
    573     optionList.add(new Option("thalecress", "A. thaliana (thale cress)"));
    574     optionList.add(new Option("cow", "B. taurus (cow)"));
    575     optionList.add(new Option("dog", "C. familiaris (dog)"));
    576     optionList.add(new Option("worm", "C. elegans (round worm)"));
    577     optionList.add(new Option("zebrafish", "D. rerio (zebra fish)"));
    578     optionList.add(new Option("fly", "D. melanogaster (fruit fly)"));
    579     optionList.add(new Option("chicken", "G. gallus (hen)"));
    580     optionList.add(new Option("human", "H. sapiens (human)"));
    581     optionList.add(new Option("mouse", "M. musculus (mouse)"));
    582     optionList.add(new Option("rice", "O.sativa (rice)"));
    583     optionList.add(new Option("rat", "R. norvegicus (rat)"));
    584     optionList.add(new Option("spombe", "S. pombe (fission yeast)"));
    585     optionList.add(new Option("yeast", "S. cerevisiae (budding yeast)"));
    586     optionList.add(new Option("frog", "S. tropicalis (toad)"));
    587     // Use input species option list if present
    588     if (speciesOptionList != null && speciesOptionList.size() > 0)
    589     {
    590       optionList = speciesOptionList;
    591     }
    592     selected = xTandemParameterSet.getProteinTaxon();
    593     selectedList = listStringToStringList(selected, ",\\ ");
    594     Select<VString> taxon = new Select<VString>(validStringParam,
    595       optionList, selectedList);
    596     taxon.setLabel("XTandemProteinTaxonEukaryotes");
    597     taxon.setMultiple(true);
    598     taxon.setSize(5);
    599     proteinFS.add(taxon);
    600     // Taxon - Prokaryotes
    601     validStringParam = SaveXTandemParameterSetStorage.VXTANDEM_PROTEIN_TAXON1;
    602     optionList = new ArrayList<Option>();
    603     optionList.add(new Option("", "none"));
    604     optionList.add(new Option("Bacillus_subtilis", "Bacillus subtilis"));
    605     optionList.add(new Option("Clostridium_perfringens",
    606       "Clostridium perfringens"));
    607     optionList.add(new Option("Deinococcus_radiodurans",
    608       "Deinococcus radiodurans"));
    609     optionList.add(new Option("Escherichia_coli_K12",
    610       "Escherichia coli K12"));
    611     optionList.add(new Option("Francisella_tularensis_tularensis",
    612       "Francisella tularensis tularensis"));
    613     optionList.add(new Option("Geobacter_sulfurreducens",
    614       "Geobacter sulfurreducens"));
    615     optionList.add(new Option("Haemophilus_influenzae",
    616       "Haemophilus influenzae"));
    617     optionList.add(new Option("Listeria_innocua", "Listeria innocua"));
    618     optionList.add(new Option("Mycobacterium_leprae",
    619       "Mycobacterium leprae"));
    620     optionList.add(new Option("Mycobacterium_tuberculosis_CDC1551",
    621       "Mycobacterium tuberculosis CDC1551"));
    622     optionList
    623       .add(new Option("Mycoplasma_pulmonis", "Mycoplasma pulmonis"));
    624     optionList.add(new Option("Staphylococcus_aureus_MW2",
    625       "Staphylococcus aureus MW2"));
    626     optionList.add(new Option("Streptococcus_pneumoniae_TIGR4",
    627       "Streptococcus pneumoniae TIGR4"));
    628     optionList.add(new Option("Streptococcus_pyogenes_M1_GAS",
    629       "Streptococcus pyogenes M1 GAS"));
    630     optionList.add(new Option("Yersinia_pestis_CO92",
    631       "Yersinia pestis CO92"));
    632     // Use input species option list if present
    633     if (proSpeciesOptionList != null && proSpeciesOptionList.size() > 0)
    634     {
    635       optionList = proSpeciesOptionList;
    636     }
    637     // Same selection list as for Eukaryotes taxon is used for Prokaryotes
    638     Select<VString> taxon1 = new Select<VString>(validStringParam,
    639       optionList, selectedList);
    640     taxon1.setLabel("XTandemProteinTaxonProkaryotes");
    641     taxon1.setMultiple(true);
    642     taxon1.setSize(5);
    643     proteinFS.add(taxon1);
    644     // Protein, cleavage site
    645     /*
    646      * Protein cleavage site selection has one peculiarity: 1. The GUI
    647      * selection is divided into one selection box and an entry field. A
    648      * selection in the selection box will only be used if the entry field
    649      * is empty.
    650      */
    651     validStringParam = SaveXTandemParameterSetStorage.VXTANDEM_PROTEIN_CLEAVAGE_SITE_SELECT;
    652     optionList = new ArrayList<Option>();
    653     optionList.add(new Option("[RK]|{P}", "trypsin, [RK]|{P}"));
    654     optionList.add(new Option("[R]|[X]", "endo-arg-C, [R]|[X]"));
    655     optionList.add(new Option("[K]|[X]", "endo-lys-C, [K]|[X]"));
    656     optionList.add(new Option("[E]|[X]", "endo-glu-C, [E]|[X]"));
    657     optionList.add(new Option("[X]|[D]", "endo-asp-N, [X]|[D]"));
    658     optionList.add(new Option("[ED]|[X]", "V8, [ED]|[X]"));
    659     // Use input protein cleavage site option list if present
    660     if (proteinCleavageSiteOptionList != null && proteinCleavageSiteOptionList
    661       .size() > 0)
    662     {
    663       optionList = proteinCleavageSiteOptionList;
    664     }
    665     selected = xTandemParameterSet.getProteinCleavageSite();
    666     Select<VString> proteinCleavageSiteSelectBox = new Select<VString>(
    667       validStringParam, optionList);
    668   proteinCleavageSiteSelectBox.selectOption( selected);
    669     proteinCleavageSiteSelectBox
    670       .setLabel("XTandemProteinCleavageSiteSelect");
    671     proteinFS.add(proteinCleavageSiteSelectBox);
    672     // Protein, cleavage site (own entered value)
    673     TextField<String> cleavageSite = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_PROTEIN_CLEAVAGE_SITE);
    674     cleavageSite.setLabel("XTandemProteinCleavageSiteEnter");
    675     // Only insert selected value if not found in select box
    676     if (!itemInOptionList(optionList, selected))
    677     {
    678       cleavageSite.setValue(xTandemParameterSet.getProteinCleavageSite());
    679     }
    680     else
    681     {
    682       cleavageSite.setValue("");
    683     }
    684     proteinFS.add(cleavageSite);
    685     // Protein, modified residue mass file
    686     TextField<String> proteinModifiedResidueMassFile = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_PROTEIN_MODIFIED_RESIDUE_MASS_FILE);
    687     proteinModifiedResidueMassFile.setValue(xTandemParameterSet
    688       .getProteinModifiedResidueMassFile());
    689     proteinFS.add(proteinModifiedResidueMassFile);
    690     // Protein, cleavage N-terminal mass change
    691     TextField<String> proteinCleavageNTerminalMassChange = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_PROTEIN_CLEAVAGE_N_TERMINAL_MASS_CHANGE);
    692     proteinCleavageNTerminalMassChange.setValue(xTandemParameterSet
    693       .getProteinCleavageNTerminalMassChange());
    694     proteinFS.add(proteinCleavageNTerminalMassChange);
    695     // Protein, cleavage C-terminal mass change
    696     TextField<String> proteinCleavageCTerminalMassChange = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_PROTEIN_CLEAVAGE_C_TERMINAL_MASS_CHANGE);
    697     proteinCleavageCTerminalMassChange.setValue(xTandemParameterSet
    698       .getProteinCleavageCTerminalMassChange());
    699     proteinFS.add(proteinCleavageCTerminalMassChange);
    700     // Protein, N-terminal residue modification mass
    701     TextField<String> nTerminalResidueModificationMass = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_PROTEIN_N_TERMINAL_RESIDUE_MODIFICATION_MASS);
    702     nTerminalResidueModificationMass.setValue(xTandemParameterSet
    703       .getProteinNTerminalResidueModificationMass());
    704     proteinFS.add(nTerminalResidueModificationMass);
    705     // Protein, C-terminal residue modification mass
    706     TextField<String> cTerminalResidueModificationMass = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_PROTEIN_C_TERMINAL_RESIDUE_MODIFICATION_MASS);
    707     cTerminalResidueModificationMass.setValue(xTandemParameterSet
    708       .getProteinCTerminalResidueModificationMass());
    709     proteinFS.add(cTerminalResidueModificationMass);
    710     // Protein, homolog management
    711     validStringParam = SaveXTandemParameterSetStorage.VXTANDEM_PROTEIN_HOMOLOG_MANAGEMENT;
    712     stringList = new ArrayList<String>();
    713     stringList.add("yes");
    714     stringList.add("no");
    715     selected = xTandemParameterSet.getProteinHomologManagement();
    716     Select<VString> homologManagement = new Select<VString>(validStringParam, stringList, selected);
    717     proteinFS.add(homologManagement);
    718     /*
    719      * Refine field set
    720      */
    721     Fieldset refineFS = new Fieldset();
    722     refineFS.setTitle("XTandemParameterSetRefine");
    723     form.addFieldset(refineFS);
    724     // Refine
    725     validStringParam = SaveXTandemParameterSetStorage.VXTANDEM_REFINE;
    726     stringList = new ArrayList<String>();
    727     stringList.add("yes");
    728     stringList.add("no");
    729     selected = xTandemParameterSet.getRefine();
    730     Select<VString> refine = new Select<VString>(validStringParam,  stringList, selected);
    731     refineFS.add(refine);
    732     // Refine, modification mass
    733     TextField<String> refineModificationMass = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_REFINE_MODIFICATION_MASS);
    734     refineModificationMass.setValue(xTandemParameterSet
    735       .getRefineModificationMass());
    736     refineFS.add(refineModificationMass);
    737     // Refine, sequence path
    738     TextField<String> refineSequencePath = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_REFINE_SEQUENCE_PATH);
    739     refineSequencePath
    740       .setValue(xTandemParameterSet.getRefineSequencePath());
    741     refineFS.add(refineSequencePath);
    742     // Refine, tic percent
    743     TextField<String> refineTicPercent = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_REFINE_TIC_PERCENT);
    744     refineTicPercent.setValue(xTandemParameterSet.getRefineTicPercent());
    745     refineFS.add(refineTicPercent);
    746     // Refine, spectrum synthesis
    747     validStringParam = SaveXTandemParameterSetStorage.VXTANDEM_REFINE_SPECTRUM_SYNTHESIS;
    748     stringList = new ArrayList<String>();
    749     stringList.add("yes");
    750     stringList.add("no");
    751     selected = xTandemParameterSet.getRefineSpectrumSynthesis();
    752     Select<VString> spectrumSynthesis = new Select<VString>(validStringParam, stringList, selected);
    753     refineFS.add(spectrumSynthesis);
    754     // Refine, maximum valid expectation value
    755     TextField<String> maxValidExpectationValue = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_REFINE_MAX_VALID_EXPECTATION_VALUE);
    756     maxValidExpectationValue.setValue(xTandemParameterSet
    757       .getRefineMaximumValidExpectationValue());
    758     refineFS.add(maxValidExpectationValue);
    759     // Refine, potential N-terminus modifications
    760     TextField<String> potentialNTerminusModifications = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_REFINE_POTENTIAL_N_TERMINUS_MODIFICATIONS);
    761     potentialNTerminusModifications.setValue(xTandemParameterSet
    762       .getRefinePotentialNTerminusModifications());
    763     refineFS.add(potentialNTerminusModifications);
    764     // Refine, potential C-terminus modifications
    765     TextField<String> potentialCTerminusModifications = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_REFINE_POTENTIAL_C_TERMINUS_MODIFICATIONS);
    766     potentialCTerminusModifications.setValue(xTandemParameterSet
    767       .getRefinePotentialCTerminusModifications());
    768     refineFS.add(potentialCTerminusModifications);
    769     // Refine, unanticipated cleavage
    770     validStringParam = SaveXTandemParameterSetStorage.VXTANDEM_REFINE_UNANTICIPATED_CLEAVAGE;
    771     stringList = new ArrayList<String>();
    772     stringList.add("yes");
    773     stringList.add("no");
    774     selected = xTandemParameterSet.getRefineUnanticipatedCleavage();
    775     Select<VString> unanticipatedCleavage = new Select<VString>(validStringParam, stringList, selected);
    776     refineFS.add(unanticipatedCleavage);
    777     // Refine, potential modification mass select
    778     /*
    779      * Refine potential modification mass selection has two peculiarities:
    780      * 1. It supports selection of multiple items. 2. The GUI selection is
    781      * divided into one multiple selection box and an entry field.
    782      * Selections in the selection box will only be used if the entry field
    783      * is empty. The multiple selection items are stored in XML as a string
    784      * with items separated by ", ".
    785      */
    786     validStringParam = SaveXTandemParameterSetStorage.VXTANDEM_REFINE_POTENTIAL_MODIFICATION_MASS_SELECT;
    787     optionList = new ArrayList<Option>();
    788     optionList.add(new Option("", "none"));
    789     optionList.add(new Option("15.994915@M", "Oxidation (M)"));
    790     optionList.add(new Option("15.994915@W", "Oxidation (W)"));
    791     optionList.add(new Option("0.984016@N", "Deamidation (N)"));
    792     optionList.add(new Option("0.984016@Q", "Deamidation (Q)"));
    793     optionList.add(new Option("8.0502@C", "ICAT-D:2H(8) (C)"));
    794     optionList.add(new Option("9.0302@C", "ICAT-C:13C(9) (C)"));
    795     optionList.add(new Option("144.102063@[", "iTRAQ (N-term)"));
    796     optionList.add(new Option("144.102063@K", "iTRAQ (K)"));
    797     optionList.add(new Option("79.966331@S", "Phospho (S)"));
    798     optionList.add(new Option("79.966331@T", "Phospho (T)"));
    799     optionList.add(new Option("79.966331@Y", "Phospho (Y)"));
    800     optionList.add(new Option("79.956815@Y", "Sulfo (Y)"));
    801     optionList.add(new Option("42.010565@K", "Acetyl (K)"));
    802     // Use input refine potential modification mass option list if present
    803     if (refinePotentialModificationMassOptionList != null && refinePotentialModificationMassOptionList
    804       .size() > 0)
    805     {
    806       optionList = refinePotentialModificationMassOptionList;
    807       log
    808         .debug("Input refine potential modification mass option list used");
    809     }
    810     else
    811     {
    812       log
    813         .debug("Default refine potential modification mass option list used");
    814     }
    815     selected = xTandemParameterSet.getRefinePotentialModificationMass();
    816     log
    817       .debug("refine potential modification mass selected = \"" + selected + "\"");
    818     selectedList = listStringToStringList(selected, ",");
    819     log
    820       .debug("refine potential modification mass selectedList = " + selectedList);
    821     Select<VString> refinePotentialModificationMassSelectBox = new Select<VString>(
    822       validStringParam, optionList, selectedList);
    823     refinePotentialModificationMassSelectBox
    824       .setLabel("XTandemRefinePotentialModificationMassSelect");
    825     refinePotentialModificationMassSelectBox.setMultiple(true);
    826     refinePotentialModificationMassSelectBox.setSize(4);
    827     refineFS.add(refinePotentialModificationMassSelectBox);
    828     // Refine, potential modification mass
    829     TextField<String> refinePotentialModificationMass = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_REFINE_POTENTIAL_MODIFICATION_MASS);
    830     refinePotentialModificationMass
    831       .setLabel("XTandemRefinePotentialModificationMassEnter");
    832     refinePotentialModificationMass.setValue(xTandemParameterSet
    833       .getRefinePotentialModificationMass());
    834     // Only insert selected values if not all found in select box
    835     if (!allItemsInOptionList(optionList, selectedList))
    836     {
    837       log
    838         .debug("refine potential modification mass, inserted value = \"" + xTandemParameterSet
    839           .getRefinePotentialModificationMass() + "\"");
    840       refinePotentialModificationMass.setValue(xTandemParameterSet
    841         .getRefinePotentialModificationMass());
    842     }
    843     else
    844     {
    845       refinePotentialModificationMass.setValue("");
    846     }
    847     refineFS.add(refinePotentialModificationMass);
    848     /** **************************************** */
    849     // Refine, point mutations
    850     validStringParam = SaveXTandemParameterSetStorage.VXTANDEM_REFINE_POINT_MUTATIONS;
    851     stringList = new ArrayList<String>();
    852     stringList.add("yes");
    853     stringList.add("no");
    854     selected = xTandemParameterSet.getRefinePointMutations();
    855     Select<VString> pointMutations = new Select<VString>(validStringParam,  stringList, selected);
    856     refineFS.add(pointMutations);
    857     // Refine, use potential modifications for full refinement
    858     validStringParam = SaveXTandemParameterSetStorage.VXTANDEM_REFINE_USE_POTENTIAL_MODIFICATIONS_FOR_FULL_REFINEMENT;
    859     stringList = new ArrayList<String>();
    860     stringList.add("yes");
    861     stringList.add("no");
    862     selected = xTandemParameterSet
    863       .getRefineUsePotentialModificationsForFullRefinement();
    864     Select<VString> usePotentialModificationsForFullRefinement = new Select<VString>(validStringParam, stringList, selected);
    865     refineFS.add(usePotentialModificationsForFullRefinement);
    866     // Refine, potential modification motif
    867     TextField<String> potentialModificationMotifRefine = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_REFINE_POTENTIAL_MODIFICATION_MOTIF);
    868     potentialModificationMotifRefine.setValue(xTandemParameterSet
    869       .getRefinePotentialModificationMotif());
    870     refineFS.add(potentialModificationMotifRefine);
    871     /*
    872      * Scoring field set
    873      */
    874     Fieldset scoringFS = new Fieldset();
    875     scoringFS.setTitle("XTandemParameterSetScoring");
    876     form.addFieldset(scoringFS);
    877     // Scoring, minimum ion count
    878     TextField<String> minIonCount = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_SCORING_MIN_ION_COUNT);
    879     minIonCount.setValue(xTandemParameterSet.getScoringMinimumIonCount());
    880     scoringFS.add(minIonCount);
    881     // Scoring, maximum missed cleavage sites
    882     TextField<String> maxMissedCleavageSites = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_SCORING_MAX_MISSED_CLEAVAGE_SITES);
    883     maxMissedCleavageSites.setValue(xTandemParameterSet
    884       .getScoringMaximumMissedCleavageSites());
    885     scoringFS.add(maxMissedCleavageSites);
    886     // Scoring, x ions
    887     validStringParam = SaveXTandemParameterSetStorage.VXTANDEM_SCORING_X_IONS;
    888     stringList = new ArrayList<String>();
    889     stringList.add("yes");
    890     stringList.add("no");
    891     selected = xTandemParameterSet.getScoringXIons();
    892     Select<VString> xIons = new Select<VString>(validStringParam, stringList, selected);
    893     scoringFS.add(xIons);
    894     // Scoring, y ions
    895     validStringParam = SaveXTandemParameterSetStorage.VXTANDEM_SCORING_Y_IONS;
    896     stringList = new ArrayList<String>();
    897     stringList.add("yes");
    898     stringList.add("no");
    899     selected = xTandemParameterSet.getScoringYIons();
    900     Select<VString> yIons = new Select<VString>(validStringParam, stringList, selected);
    901     scoringFS.add(yIons);
    902     // Scoring, z ions
    903     validStringParam = SaveXTandemParameterSetStorage.VXTANDEM_SCORING_Z_IONS;
    904     stringList = new ArrayList<String>();
    905     stringList.add("yes");
    906     stringList.add("no");
    907     selected = xTandemParameterSet.getScoringZIons();
    908     Select<VString> zIons = new Select<VString>(validStringParam, stringList, selected);
    909     scoringFS.add(zIons);
    910     // Scoring, a ions
    911     validStringParam = SaveXTandemParameterSetStorage.VXTANDEM_SCORING_A_IONS;
    912     stringList = new ArrayList<String>();
    913     stringList.add("yes");
    914     stringList.add("no");
    915     selected = xTandemParameterSet.getScoringAIons();
    916     Select<VString> aIons = new Select<VString>(validStringParam, stringList, selected);
    917     scoringFS.add(aIons);
    918     // Scoring, b ions
    919     validStringParam = SaveXTandemParameterSetStorage.VXTANDEM_SCORING_B_IONS;
    920     stringList = new ArrayList<String>();
    921     stringList.add("yes");
    922     stringList.add("no");
    923     selected = xTandemParameterSet.getScoringBIons();
    924     Select<VString> bIons = new Select<VString>(validStringParam, stringList, selected);
    925     scoringFS.add(bIons);
    926     // Scoring, c ions
    927     validStringParam = SaveXTandemParameterSetStorage.VXTANDEM_SCORING_C_IONS;
    928     stringList = new ArrayList<String>();
    929     stringList.add("yes");
    930     stringList.add("no");
    931     selected = xTandemParameterSet.getScoringCIons();
    932     Select<VString> cIons = new Select<VString>(validStringParam, stringList, selected);
    933     scoringFS.add(cIons);
    934     // Scoring, cyclic permutation
    935     validStringParam = SaveXTandemParameterSetStorage.VXTANDEM_SCORING_CYCLIC_PERMUTATION;
    936     stringList = new ArrayList<String>();
    937     stringList.add("yes");
    938     stringList.add("no");
    939     selected = xTandemParameterSet.getScoringCyclicPermutation();
    940     Select<VString> cyclicPermutation = new Select<VString>(validStringParam, stringList, selected);
    941     scoringFS.add(cyclicPermutation);
    942     // Scoring, include reverse
    943     validStringParam = SaveXTandemParameterSetStorage.VXTANDEM_SCORING_INCLUDE_REVERSE;
    944     stringList = new ArrayList<String>();
    945     stringList.add("yes");
    946     stringList.add("no");
    947     selected = xTandemParameterSet.getScoringIncludeReverse();
    948     Select<VString> includeReverse = new Select<VString>(validStringParam, stringList, selected);
    949     scoringFS.add(includeReverse);
    950     // Scoring, algorithm
    951     validStringParam = SaveXTandemParameterSetStorage.VXTANDEM_SCORING_ALGORITHM;
    952     optionList = new ArrayList<Option>();
    953     optionList.add(new Option("", "native"));
    954     optionList.add(new Option("k-score", "k-score"));
    955     selected = xTandemParameterSet.getScoringAlgorithm();
    956     Select<VString> algorithmSelectBox = new Select<VString>(
    957       validStringParam, optionList);
    958   algorithmSelectBox.selectOption( selected);
    959     scoringFS.add(algorithmSelectBox);
    960     /*
    961      * Output field set
    962      */
    963     Fieldset outputFS = new Fieldset();
    964     outputFS.setTitle("XTandemParameterSetOutput");
    965     form.addFieldset(outputFS);
    966     // Output, path
    967     TextField<String> outputPath = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_OUTPUT_PATH);
    968     outputPath.setValue(xTandemParameterSet.getOutputPath());
    969     outputFS.add(outputPath);
    970     // Output, log path
    971     TextField<String> outputLogPath = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_OUTPUT_LOG_PATH);
    972     outputLogPath.setValue(xTandemParameterSet.getOutputLogPath());
    973     outputFS.add(outputLogPath);
    974     // Output, message
    975     TextField<String> outputMessage = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_OUTPUT_MESSAGE);
    976     outputMessage.setValue(xTandemParameterSet.getOutputMessage());
    977     outputFS.add(outputMessage);
    978     // Output, sequence path
    979     TextField<String> outputSequencePath = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_OUTPUT_SEQUENCE_PATH);
    980     outputSequencePath
    981       .setValue(xTandemParameterSet.getOutputSequencePath());
    982     outputFS.add(outputSequencePath);
    983     // Output, sort results by
    984     validStringParam = SaveXTandemParameterSetStorage.VXTANDEM_OUTPUT_SORT_RESULTS_BY;
    985     stringList = new ArrayList<String>();
    986     stringList.add("protein");
    987     stringList.add("spectrum");
    988     selected = xTandemParameterSet.getOutputSortResultsBy();
    989     Select<VString> outputSortResultsBy = new Select<VString>(validStringParam, stringList, selected);
    990     outputFS.add(outputSortResultsBy);
    991     // Output, path hashing
    992     validStringParam = SaveXTandemParameterSetStorage.VXTANDEM_OUTPUT_PATH_HASHING;
    993     stringList = new ArrayList<String>();
    994     stringList.add("yes");
    995     stringList.add("no");
    996     selected = xTandemParameterSet.getOutputPathHashing();
    997     Select<VString> pathHashing = new Select<VString>(validStringParam, stringList, selected);
    998     outputFS.add(pathHashing);
    999     // Output, xsl path
    1000     TextField<String> xslPath = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_OUTPUT_XSL_PATH);
    1001     xslPath.setValue(xTandemParameterSet.getOutputXslPath());
    1002     outputFS.add(xslPath);
    1003     // Output, parameters
    1004     validStringParam = SaveXTandemParameterSetStorage.VXTANDEM_OUTPUT_PARAMETERS;
    1005     stringList = new ArrayList<String>();
    1006     stringList.add("yes");
    1007     stringList.add("no");
    1008     selected = xTandemParameterSet.getOutputParameters();
    1009     Select<VString> parameters = new Select<VString>(validStringParam, stringList, selected);
    1010     outputFS.add(parameters);
    1011     // Output, performance
    1012     validStringParam = SaveXTandemParameterSetStorage.VXTANDEM_OUTPUT_PERFORMANCE;
    1013     stringList = new ArrayList<String>();
    1014     stringList.add("yes");
    1015     stringList.add("no");
    1016     selected = xTandemParameterSet.getOutputPerformance();
    1017     Select<VString> performance = new Select<VString>(validStringParam, stringList, selected);
    1018     outputFS.add(performance);
    1019     // Output, spectra
    1020     validStringParam = SaveXTandemParameterSetStorage.VXTANDEM_OUTPUT_SPECTRA;
    1021     stringList = new ArrayList<String>();
    1022     stringList.add("yes");
    1023     stringList.add("no");
    1024     selected = xTandemParameterSet.getOutputSpectra();
    1025     Select<VString> spectra = new Select<VString>(validStringParam, stringList, selected);
    1026     outputFS.add(spectra);
    1027     // Output, histograms
    1028     validStringParam = SaveXTandemParameterSetStorage.VXTANDEM_OUTPUT_HISTOGRAMS;
    1029     stringList = new ArrayList<String>();
    1030     stringList.add("yes");
    1031     stringList.add("no");
    1032     selected = xTandemParameterSet.getOutputHistograms();
    1033     Select<VString> histograms = new Select<VString>(validStringParam,  stringList, selected);
    1034     outputFS.add(histograms);
    1035     // Output, proteins
    1036     validStringParam = SaveXTandemParameterSetStorage.VXTANDEM_OUTPUT_PROTEINS;
    1037     stringList = new ArrayList<String>();
    1038     stringList.add("yes");
    1039     stringList.add("no");
    1040     selected = xTandemParameterSet.getOutputProteins();
    1041     Select<VString> proteins = new Select<VString>(validStringParam,  stringList, selected);
    1042     outputFS.add(proteins);
    1043     // Output, sequences
    1044     validStringParam = SaveXTandemParameterSetStorage.VXTANDEM_OUTPUT_SEQUENCES;
    1045     stringList = new ArrayList<String>();
    1046     stringList.add("yes");
    1047     stringList.add("no");
    1048     selected = xTandemParameterSet.getOutputSequences();
    1049     Select<VString> sequences = new Select<VString>(validStringParam, stringList, selected);
    1050     outputFS.add(sequences);
    1051     // Output, one sequence copy
    1052     validStringParam = SaveXTandemParameterSetStorage.VXTANDEM_OUTPUT_ONE_SEQUENCE_COPY;
    1053     stringList = new ArrayList<String>();
    1054     stringList.add("yes");
    1055     stringList.add("no");
    1056     selected = xTandemParameterSet.getOutputOneSequenceCopy();
    1057     Select<VString> oneSequenceCopy = new Select<VString>(validStringParam, stringList, selected);
    1058     outputFS.add(oneSequenceCopy);
    1059     // Output, results
    1060     validStringParam = SaveXTandemParameterSetStorage.VXTANDEM_OUTPUT_RESULTS;
    1061     stringList = new ArrayList<String>();
    1062     stringList.add("all");
    1063     stringList.add("valid");
    1064     stringList.add("stochastic");
    1065     selected = xTandemParameterSet.getOutputResults();
    1066     Select<VString> results = new Select<VString>(validStringParam, stringList, selected);
    1067     outputFS.add(results);
    1068     // Output, maximum valid expectation value
    1069     TextField<String> outputMaxValidExpectationValue = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_OUTPUT_MAX_VALID_EXPECTATION_VALUE);
    1070     outputMaxValidExpectationValue.setValue(xTandemParameterSet
    1071       .getOutputMaximumValidExpectationValue());
    1072     outputFS.add(outputMaxValidExpectationValue);
    1073     // Output, histogram column width
    1074     TextField<String> histogramColumnWidth = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_OUTPUT_HISTOGRAM_COLUMN_WIDTH);
    1075     histogramColumnWidth.setValue(xTandemParameterSet
    1076       .getOutputHistogramColumnWidth());
    1077     outputFS.add(histogramColumnWidth);
    1078     //
    1079     return form;
    1080   }
    1081 
    1082 
    1083   /**
    1084    * Convenience method for adding XTandemParameterSet fields to a Fieldset.
    1085    *
    1086    * @param xTandemParameterSet XTandemParameterSet object (need not be stored
    1087    *        in database) with default field values.
    1088    * @param fs Fieldset The Fieldset to add the XTandemParameterSet fields to.
    1089    * @param fieldsHidden boolean Flag indicating that added fields should be
    1090    *        hidden.
    1091    * @param fieldsDisabled boolean Flag indicating that added fields should be
    1092    *        disabled.
    1093    * @return Fieldset The input fieldset with added XTandemParameterSet
    1094    *         fields.
    1095    */
    1096   public Fieldset addXTandemParameterSetToFieldset(
    1097       XTandemParameterSet xTandemParameterSet, Fieldset fs,
    1098       boolean fieldsHidden, boolean fieldsDisabled)
    1099   {
    1100     // List path fields
    1101     fs = addXTandemParameterSetListPathFieldsToFieldset(
    1102       xTandemParameterSet, fs, fieldsHidden, fieldsDisabled);
    1103     // Spectrum fields
    1104     fs = addXTandemParameterSetSpectrumFieldsToFieldset(
    1105       xTandemParameterSet, fs, fieldsHidden, fieldsDisabled);
    1106     // Residue fields
    1107     fs = addXTandemParameterSetResidueFieldsToFieldset(xTandemParameterSet,
    1108       fs, fieldsHidden, fieldsDisabled);
    1109     // Protein fields
    1110     fs = addXTandemParameterSetProteinFieldsToFieldset(xTandemParameterSet,
    1111       fs, fieldsHidden, fieldsDisabled);
    1112     // Refine fields
    1113     fs = addXTandemParameterSetRefineFieldsToFieldset(xTandemParameterSet,
    1114       fs, fieldsHidden, fieldsDisabled);
    1115     // Scoring fields
    1116     fs = addXTandemParameterSetScoringFieldsToFieldset(xTandemParameterSet,
    1117       fs, fieldsHidden, fieldsDisabled);
    1118     // Output fields
    1119     fs = addXTandemParameterSetOutputFieldsToFieldset(xTandemParameterSet,
    1120       fs, fieldsHidden, fieldsDisabled);
    1121     // Return Fieldset with added fields
    1122     return fs;
    1123   }
    1124 
    1125 
    1126   /**
    1127    * Convenience method for adding XTandemParameterSet list path fields to a
    1128    * Fieldset.
    1129    *
    1130    * @param xTandemParameterSet XTandemParameterSet object (need not be stored
    1131    *        in database) with default field values.
    1132    * @param fs Fieldset The Fieldset to add the XTandemParameterSet fields to.
    1133    * @param fieldsHidden boolean Flag indicating that added fields should be
    1134    *        hidden.
    1135    * @param fieldsDisabled boolean Flag indicating that added fields should be
    1136    *        disabled.
    1137    * @return Fieldset The input fieldset with added XTandemParameterSet
    1138    *         fields.
    1139    */
    1140   public Fieldset addXTandemParameterSetListPathFieldsToFieldset(
    1141       XTandemParameterSet xTandemParameterSet, Fieldset fs,
    1142       boolean fieldsHidden, boolean fieldsDisabled)
    1143   {
    1144     // List path, default parameters
    1145     TextField<String> defaultParametersListPath = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_LIST_PATH_DEFAULT_PARAMETERS);
    1146     defaultParametersListPath.setHidden(fieldsHidden);
    1147     defaultParametersListPath.setDisabled(fieldsDisabled);
    1148     defaultParametersListPath.setValue(xTandemParameterSet
    1149       .getListPathDefaultParameters());
    1150     fs.add(defaultParametersListPath);
    1151     // List path, taxonomy information
    1152     TextField<String> taxonomyInformationListPath = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_LIST_PATH_TAXONOMY_INFORMATION);
    1153     taxonomyInformationListPath.setHidden(fieldsHidden);
    1154     taxonomyInformationListPath.setDisabled(fieldsDisabled);
    1155     taxonomyInformationListPath.setValue(xTandemParameterSet
    1156       .getListPathTaxonomyInformation());
    1157     fs.add(taxonomyInformationListPath);
    1158     // Return Fieldset with added fields
    1159     return fs;
    1160   }
    1161 
    1162 
    1163   /**
    1164    * Convenience method for adding XTandemParameterSet spectrum fields to a
    1165    * Fieldset.
    1166    *
    1167    * @param xTandemParameterSet XTandemParameterSet object (need not be stored
    1168    *        in database) with default field values.
    1169    * @param fs Fieldset The Fieldset to add the XTandemParameterSet fields to.
    1170    * @param fieldsHidden boolean Flag indicating that added fields should be
    1171    *        hidden.
    1172    * @param fieldsDisabled boolean Flag indicating that added fields should be
    1173    *        disabled.
    1174    * @return Fieldset The input fieldset with added XTandemParameterSet
    1175    *         fields.
    1176    */
    1177   public Fieldset addXTandemParameterSetSpectrumFieldsToFieldset(
    1178       XTandemParameterSet xTandemParameterSet, Fieldset fs,
    1179       boolean fieldsHidden, boolean fieldsDisabled)
    1180   {
    1181     // Spectrum, path
    1182     TextField<String> spectrumPath = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_SPECTRUM_PATH);
    1183     spectrumPath.setHidden(fieldsHidden);
    1184     spectrumPath.setDisabled(fieldsDisabled);
    1185     spectrumPath.setValue(xTandemParameterSet.getSpectrumPath());
    1186     fs.add(spectrumPath);
    1187     // Spectrum, fragment monoisotopic mass error
    1188     TextField<String> fragMiMassError = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_SPECTRUM_FRAG_MI_MASS_ERROR);
    1189     fragMiMassError.setHidden(fieldsHidden);
    1190     fragMiMassError.setDisabled(fieldsDisabled);
    1191     fragMiMassError.setValue(xTandemParameterSet
    1192       .getSpectrumFragmentMonoisotopicMassError());
    1193     fs.add(fragMiMassError);
    1194     // Spectrum, parent monoisotopic mass error plus
    1195     TextField<String> parentMiMassErrorPlus = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_SPECTRUM_PARENT_MI_MASS_ERROR_PLUS);
    1196     parentMiMassErrorPlus.setHidden(fieldsHidden);
    1197     parentMiMassErrorPlus.setDisabled(fieldsDisabled);
    1198     parentMiMassErrorPlus.setValue(xTandemParameterSet
    1199       .getSpectrumParentMonoisotopicMassErrorPlus());
    1200     fs.add(parentMiMassErrorPlus);
    1201     // Spectrum, parent monoisotopic mass error minus
    1202     TextField<String> parentMiMassErrorMinus = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_SPECTRUM_PARENT_MI_MASS_ERROR_MINUS);
    1203     parentMiMassErrorMinus.setHidden(fieldsHidden);
    1204     parentMiMassErrorMinus.setDisabled(fieldsDisabled);
    1205     parentMiMassErrorMinus.setValue(xTandemParameterSet
    1206       .getSpectrumParentMonoisotopicMassErrorMinus());
    1207     fs.add(parentMiMassErrorMinus);
    1208     // Spectrum, parent monoisotopic mass isotope error
    1209     TextField<String> parentMiMassIsotopeError = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_SPECTRUM_PARENT_MI_MASS_ISOTOPE_ERROR);
    1210     parentMiMassIsotopeError.setHidden(fieldsHidden);
    1211     parentMiMassIsotopeError.setDisabled(fieldsDisabled);
    1212     parentMiMassIsotopeError.setValue(xTandemParameterSet
    1213       .getSpectrumParentMonoisotopicMassIsotopeError());
    1214     fs.add(parentMiMassIsotopeError);
    1215     // Spectrum, fragment monoisotopic mass error units
    1216     TextField<String> fragMiMassErrorUnits = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_SPECTRUM_FRAG_MI_MASS_ERROR_UNITS);
    1217     fragMiMassErrorUnits.setHidden(fieldsHidden);
    1218     fragMiMassErrorUnits.setDisabled(fieldsDisabled);
    1219     fragMiMassErrorUnits.setValue(xTandemParameterSet
    1220       .getSpectrumFragmentMonoisotopicMassErrorUnits());
    1221     fs.add(fragMiMassErrorUnits);
    1222     // Spectrum, parent monoisotopic mass error units
    1223     TextField<String> parentMiMassErrorUnits = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_SPECTRUM_PARENT_MI_MASS_ERROR_UNITS);
    1224     parentMiMassErrorUnits.setHidden(fieldsHidden);
    1225     parentMiMassErrorUnits.setDisabled(fieldsDisabled);
    1226     parentMiMassErrorUnits.setValue(xTandemParameterSet
    1227       .getSpectrumParentMonoisotopicMassErrorUnits());
    1228     fs.add(parentMiMassErrorUnits);
    1229     // Spectrum, fragment mass type
    1230     TextField<String> fragMassType = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_SPECTRUM_FRAG_MASS_TYPE);
    1231     fragMassType.setHidden(fieldsHidden);
    1232     fragMassType.setDisabled(fieldsDisabled);
    1233     fragMassType
    1234       .setValue(xTandemParameterSet.getSpectrumFragmentMassType());
    1235     fs.add(fragMassType);
    1236     // Spectrum, dynamic range
    1237     TextField<String> dynamicRange = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_SPECTRUM_DYNAMIC_RANGE);
    1238     dynamicRange.setHidden(fieldsHidden);
    1239     dynamicRange.setDisabled(fieldsDisabled);
    1240     dynamicRange.setValue(xTandemParameterSet.getSpectrumDynamicRange());
    1241     fs.add(dynamicRange);
    1242     // Spectrum, total peaks
    1243     TextField<String> totalPeaks = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_SPECTRUM_TOTAL_PEAKS);
    1244     totalPeaks.setHidden(fieldsHidden);
    1245     totalPeaks.setDisabled(fieldsDisabled);
    1246     totalPeaks.setValue(xTandemParameterSet.getSpectrumTotalPeaks());
    1247     fs.add(totalPeaks);
    1248     // Spectrum, maximum parent charge
    1249     TextField<String> maxParentCharge = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_SPECTRUM_MAX_PARENT_CHARGE);
    1250     maxParentCharge.setHidden(fieldsHidden);
    1251     maxParentCharge.setDisabled(fieldsDisabled);
    1252     maxParentCharge.setValue(xTandemParameterSet
    1253       .getSpectrumMaximumParentCharge());
    1254     fs.add(maxParentCharge);
    1255     // Spectrum, use noise suppression
    1256     TextField<String> useNoiseSuppression = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_SPECTRUM_USE_NOISE_SUPPRESSION);
    1257     useNoiseSuppression.setHidden(fieldsHidden);
    1258     useNoiseSuppression.setDisabled(fieldsDisabled);
    1259     useNoiseSuppression.setValue(xTandemParameterSet
    1260       .getSpectrumUseNoiseSuppression());
    1261     fs.add(useNoiseSuppression);
    1262     // Spectrum, minimum parent m+h
    1263     TextField<String> minParentMPlusH = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_SPECTRUM_MIN_PARENT_M_PLUS_H);
    1264     minParentMPlusH.setHidden(fieldsHidden);
    1265     minParentMPlusH.setDisabled(fieldsDisabled);
    1266     minParentMPlusH.setValue(xTandemParameterSet
    1267       .getSpectrumMinimumParentMPlusH());
    1268     fs.add(minParentMPlusH);
    1269     // Spectrum, maximum parent m+h
    1270     TextField<String> maxParentMPlusH = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_SPECTRUM_MAX_PARENT_M_PLUS_H);
    1271     maxParentMPlusH.setHidden(fieldsHidden);
    1272     maxParentMPlusH.setDisabled(fieldsDisabled);
    1273     maxParentMPlusH.setValue(xTandemParameterSet
    1274       .getSpectrumMaximumParentMPlusH());
    1275     fs.add(maxParentMPlusH);
    1276     // Spectrum, minimum fragment mz
    1277     TextField<String> minFragmentMz = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_SPECTRUM_MIN_FRAG_MZ);
    1278     minFragmentMz.setHidden(fieldsHidden);
    1279     minFragmentMz.setDisabled(fieldsDisabled);
    1280     minFragmentMz.setValue(xTandemParameterSet
    1281       .getSpectrumMinimumFragmentMz());
    1282     fs.add(minFragmentMz);
    1283     // Spectrum, minimum peaks
    1284     TextField<String> minPeaks = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_SPECTRUM_MIN_PEAKS);
    1285     minPeaks.setHidden(fieldsHidden);
    1286     minPeaks.setDisabled(fieldsDisabled);
    1287     minPeaks.setValue(xTandemParameterSet.getSpectrumMinimumPeaks());
    1288     fs.add(minPeaks);
    1289     // Spectrum, threads
    1290     TextField<String> threads = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_SPECTRUM_THREADS);
    1291     threads.setHidden(fieldsHidden);
    1292     threads.setDisabled(fieldsDisabled);
    1293     threads.setValue(xTandemParameterSet.getSpectrumThreads());
    1294     fs.add(threads);
    1295     // Spectrum, sequence batch size
    1296     TextField<String> spectrumSequenceBatchSize = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_SPECTRUM_SEQUENCE_BATCH_SIZE);
    1297     spectrumSequenceBatchSize.setHidden(fieldsHidden);
    1298     spectrumSequenceBatchSize.setDisabled(fieldsDisabled);
    1299     spectrumSequenceBatchSize.setValue(xTandemParameterSet
    1300       .getSpectrumSequenceBatchSize());
    1301     fs.add(spectrumSequenceBatchSize);
    1302     // Return Fieldset with added fields
    1303     return fs;
    1304   }
    1305 
    1306 
    1307   /**
    1308    * Convenience method for adding XTandemParameterSet residue fields to a
    1309    * Fieldset.
    1310    *
    1311    * @param xTandemParameterSet XTandemParameterSet object (need not be stored
    1312    *        in database) with default field values.
    1313    * @param fs Fieldset The Fieldset to add the XTandemParameterSet fields to.
    1314    * @param fieldsHidden boolean Flag indicating that added fields should be
    1315    *        hidden.
    1316    * @param fieldsDisabled boolean Flag indicating that added fields should be
    1317    *        disabled.
    1318    * @return Fieldset The input fieldset with added XTandemParameterSet
    1319    *         fields.
    1320    */
    1321   public Fieldset addXTandemParameterSetResidueFieldsToFieldset(
    1322       XTandemParameterSet xTandemParameterSet, Fieldset fs,
    1323       boolean fieldsHidden, boolean fieldsDisabled)
    1324   {
    1325     // Residue, modification mass
    1326     TextField<String> modificationMass = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_RESIDUE_MODIFICATION_MASS);
    1327     modificationMass.setHidden(fieldsHidden);
    1328     modificationMass.setDisabled(fieldsDisabled);
    1329     modificationMass.setValue(xTandemParameterSet
    1330       .getResidueModificationMass());
    1331     fs.add(modificationMass);
    1332     // Residue, potential modification mass
    1333     TextField<String> potentialModificationMass = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_RESIDUE_POTENTIAL_MODIFICATION_MASS);
    1334     potentialModificationMass.setHidden(fieldsHidden);
    1335     potentialModificationMass.setDisabled(fieldsDisabled);
    1336     potentialModificationMass.setValue(xTandemParameterSet
    1337       .getResiduePotentialModificationMass());
    1338     fs.add(potentialModificationMass);
    1339     // Residue, potential modification motif
    1340     TextField<String> potentialModificationMotif = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_RESIDUE_POTENTIAL_MODIFICATION_MOTIF);
    1341     potentialModificationMotif.setHidden(fieldsHidden);
    1342     potentialModificationMotif.setDisabled(fieldsDisabled);
    1343     potentialModificationMotif.setValue(xTandemParameterSet
    1344       .getResiduePotentialModificationMotif());
    1345     fs.add(potentialModificationMotif);
    1346     // Return Fieldset with added fields
    1347     return fs;
    1348   }
    1349 
    1350 
    1351   /**
    1352    * Convenience method for adding XTandemParameterSet protein fields to a
    1353    * Fieldset.
    1354    *
    1355    * @param xTandemParameterSet XTandemParameterSet object (need not be stored
    1356    *        in database) with default field values.
    1357    * @param fs Fieldset The Fieldset to add the XTandemParameterSet fields to.
    1358    * @param fieldsHidden boolean Flag indicating that added fields should be
    1359    *        hidden.
    1360    * @param fieldsDisabled boolean Flag indicating that added fields should be
    1361    *        disabled.
    1362    * @return Fieldset The input fieldset with added XTandemParameterSet
    1363    *         fields.
    1364    */
    1365   public Fieldset addXTandemParameterSetProteinFieldsToFieldset(
    1366       XTandemParameterSet xTandemParameterSet, Fieldset fs,
    1367       boolean fieldsHidden, boolean fieldsDisabled)
    1368   {
    1369     // Protein, taxon
    1370     TextField<String> taxon = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_PROTEIN_TAXON);
    1371     taxon.setHidden(fieldsHidden);
    1372     taxon.setDisabled(fieldsDisabled);
    1373     taxon.setValue(xTandemParameterSet.getProteinTaxon());
    1374     fs.add(taxon);
    1375     // Protein, cleavage site
    1376     TextField<String> cleavageSite = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_PROTEIN_CLEAVAGE_SITE);
    1377     cleavageSite.setHidden(fieldsHidden);
    1378     cleavageSite.setDisabled(fieldsDisabled);
    1379     cleavageSite.setValue(xTandemParameterSet.getProteinCleavageSite());
    1380     fs.add(cleavageSite);
    1381     // Protein, modified residue mass file
    1382     TextField<String> proteinModifiedResidueMassFile = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_PROTEIN_MODIFIED_RESIDUE_MASS_FILE);
    1383     proteinModifiedResidueMassFile.setHidden(fieldsHidden);
    1384     proteinModifiedResidueMassFile.setDisabled(fieldsDisabled);
    1385     proteinModifiedResidueMassFile.setValue(xTandemParameterSet
    1386       .getProteinModifiedResidueMassFile());
    1387     fs.add(proteinModifiedResidueMassFile);
    1388     // Protein, cleavage N-terminal mass change
    1389     TextField<String> proteinCleavageNTerminalMassChange = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_PROTEIN_CLEAVAGE_N_TERMINAL_MASS_CHANGE);
    1390     proteinCleavageNTerminalMassChange.setHidden(fieldsHidden);
    1391     proteinCleavageNTerminalMassChange.setDisabled(fieldsDisabled);
    1392     proteinCleavageNTerminalMassChange.setValue(xTandemParameterSet
    1393       .getProteinCleavageNTerminalMassChange());
    1394     fs.add(proteinCleavageNTerminalMassChange);
    1395     // Protein, cleavage C-terminal mass change
    1396     TextField<String> proteinCleavageCTerminalMassChange = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_PROTEIN_CLEAVAGE_C_TERMINAL_MASS_CHANGE);
    1397     proteinCleavageCTerminalMassChange.setHidden(fieldsHidden);
    1398     proteinCleavageCTerminalMassChange.setDisabled(fieldsDisabled);
    1399     proteinCleavageCTerminalMassChange.setValue(xTandemParameterSet
    1400       .getProteinCleavageCTerminalMassChange());
    1401     fs.add(proteinCleavageCTerminalMassChange);
    1402     // Protein, N-terminal residue modification mass
    1403     TextField<String> nTerminalResidueModificationMass = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_PROTEIN_N_TERMINAL_RESIDUE_MODIFICATION_MASS);
    1404     nTerminalResidueModificationMass.setHidden(fieldsHidden);
    1405     nTerminalResidueModificationMass.setDisabled(fieldsDisabled);
    1406     nTerminalResidueModificationMass.setValue(xTandemParameterSet
    1407       .getProteinNTerminalResidueModificationMass());
    1408     fs.add(nTerminalResidueModificationMass);
    1409     // Protein, C-terminal residue modification mass
    1410     TextField<String> cTerminalResidueModificationMass = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_PROTEIN_C_TERMINAL_RESIDUE_MODIFICATION_MASS);
    1411     cTerminalResidueModificationMass.setHidden(fieldsHidden);
    1412     cTerminalResidueModificationMass.setDisabled(fieldsDisabled);
    1413     cTerminalResidueModificationMass.setValue(xTandemParameterSet
    1414       .getProteinCTerminalResidueModificationMass());
    1415     fs.add(cTerminalResidueModificationMass);
    1416     // Protein, homolog management
    1417     TextField<String> homologManagement = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_PROTEIN_HOMOLOG_MANAGEMENT);
    1418     homologManagement.setHidden(fieldsHidden);
    1419     homologManagement.setDisabled(fieldsDisabled);
    1420     homologManagement.setValue(xTandemParameterSet
    1421       .getProteinHomologManagement());
    1422     fs.add(homologManagement);
    1423     // Return Fieldset with added fields
    1424     return fs;
    1425   }
    1426 
    1427 
    1428   /**
    1429    * Convenience method for adding XTandemParameterSet refine fields to a
    1430    * Fieldset.
    1431    *
    1432    * @param xTandemParameterSet XTandemParameterSet object (need not be stored
    1433    *        in database) with default field values.
    1434    * @param fs Fieldset The Fieldset to add the XTandemParameterSet fields to.
    1435    * @param fieldsHidden boolean Flag indicating that added fields should be
    1436    *        hidden.
    1437    * @param fieldsDisabled boolean Flag indicating that added fields should be
    1438    *        disabled.
    1439    * @return Fieldset The input fieldset with added XTandemParameterSet
    1440    *         fields.
    1441    */
    1442   public Fieldset addXTandemParameterSetRefineFieldsToFieldset(
    1443       XTandemParameterSet xTandemParameterSet, Fieldset fs,
    1444       boolean fieldsHidden, boolean fieldsDisabled)
    1445   {
    1446     // Refine
    1447     TextField<String> refine = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_REFINE);
    1448     refine.setHidden(fieldsHidden);
    1449     refine.setDisabled(fieldsDisabled);
    1450     refine.setValue(xTandemParameterSet.getRefine());
    1451     fs.add(refine);
    1452     // Refine, modification mass
    1453     TextField<String> refineModificationMass = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_REFINE_MODIFICATION_MASS);
    1454     refineModificationMass.setHidden(fieldsHidden);
    1455     refineModificationMass.setDisabled(fieldsDisabled);
    1456     refineModificationMass.setValue(xTandemParameterSet
    1457       .getRefineModificationMass());
    1458     fs.add(refineModificationMass);
    1459     // Refine, sequence path
    1460     TextField<String> refineSequencePath = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_REFINE_SEQUENCE_PATH);
    1461     refineSequencePath.setHidden(fieldsHidden);
    1462     refineSequencePath.setDisabled(fieldsDisabled);
    1463     refineSequencePath
    1464       .setValue(xTandemParameterSet.getRefineSequencePath());
    1465     fs.add(refineSequencePath);
    1466     // Refine, tic percent
    1467     TextField<String> refineTicPercent = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_REFINE_TIC_PERCENT);
    1468     refineTicPercent.setHidden(fieldsHidden);
    1469     refineTicPercent.setDisabled(fieldsDisabled);
    1470     refineTicPercent.setValue(xTandemParameterSet.getRefineTicPercent());
    1471     fs.add(refineTicPercent);
    1472     // Refine, spectrum synthesis
    1473     TextField<String> spectrumSynthesis = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_REFINE_SPECTRUM_SYNTHESIS);
    1474     spectrumSynthesis.setHidden(fieldsHidden);
    1475     spectrumSynthesis.setDisabled(fieldsDisabled);
    1476     spectrumSynthesis.setValue(xTandemParameterSet
    1477       .getRefineSpectrumSynthesis());
    1478     fs.add(spectrumSynthesis);
    1479     // Refine, maximum valid expectation value
    1480     TextField<String> maxValidExpectationValue = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_REFINE_MAX_VALID_EXPECTATION_VALUE);
    1481     maxValidExpectationValue.setHidden(fieldsHidden);
    1482     maxValidExpectationValue.setDisabled(fieldsDisabled);
    1483     maxValidExpectationValue.setValue(xTandemParameterSet
    1484       .getRefineMaximumValidExpectationValue());
    1485     fs.add(maxValidExpectationValue);
    1486     // Refine, potential N-terminus modifications
    1487     TextField<String> potentialNTerminusModifications = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_REFINE_POTENTIAL_N_TERMINUS_MODIFICATIONS);
    1488     potentialNTerminusModifications.setHidden(fieldsHidden);
    1489     potentialNTerminusModifications.setDisabled(fieldsDisabled);
    1490     potentialNTerminusModifications.setValue(xTandemParameterSet
    1491       .getRefinePotentialNTerminusModifications());
    1492     fs.add(potentialNTerminusModifications);
    1493     // Refine, potential C-terminus modifications
    1494     TextField<String> potentialCTerminusModifications = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_REFINE_POTENTIAL_C_TERMINUS_MODIFICATIONS);
    1495     potentialCTerminusModifications.setHidden(fieldsHidden);
    1496     potentialCTerminusModifications.setDisabled(fieldsDisabled);
    1497     potentialCTerminusModifications.setValue(xTandemParameterSet
    1498       .getRefinePotentialCTerminusModifications());
    1499     fs.add(potentialCTerminusModifications);
    1500     // Refine, unanticipated cleavage
    1501     TextField<String> unanticipatedCleavage = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_REFINE_UNANTICIPATED_CLEAVAGE);
    1502     unanticipatedCleavage.setHidden(fieldsHidden);
    1503     unanticipatedCleavage.setDisabled(fieldsDisabled);
    1504     unanticipatedCleavage.setValue(xTandemParameterSet
    1505       .getRefineUnanticipatedCleavage());
    1506     fs.add(unanticipatedCleavage);
    1507     // Refine, potential modification mass
    1508     TextField<String> refinePotentialModificationMass = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_REFINE_POTENTIAL_MODIFICATION_MASS);
    1509     refinePotentialModificationMass.setHidden(fieldsHidden);
    1510     refinePotentialModificationMass.setDisabled(fieldsDisabled);
    1511     refinePotentialModificationMass.setValue(xTandemParameterSet
    1512       .getRefinePotentialModificationMass());
    1513     fs.add(refinePotentialModificationMass);
    1514     // Refine, point mutations
    1515     TextField<String> pointMutations = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_REFINE_POINT_MUTATIONS);
    1516     pointMutations.setHidden(fieldsHidden);
    1517     pointMutations.setDisabled(fieldsDisabled);
    1518     pointMutations.setValue(xTandemParameterSet.getRefinePointMutations());
    1519     fs.add(pointMutations);
    1520     // Refine, use potential modifications for full refinement
    1521     TextField<String> usePotentialModificationsForFullRefinement = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_REFINE_USE_POTENTIAL_MODIFICATIONS_FOR_FULL_REFINEMENT);
    1522     usePotentialModificationsForFullRefinement.setHidden(fieldsHidden);
    1523     usePotentialModificationsForFullRefinement.setDisabled(fieldsDisabled);
    1524     usePotentialModificationsForFullRefinement.setValue(xTandemParameterSet
    1525       .getRefineUsePotentialModificationsForFullRefinement());
    1526     fs.add(usePotentialModificationsForFullRefinement);
    1527     // Refine, potential modification motif
    1528     TextField<String> potentialModificationMotifRefine = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_REFINE_POTENTIAL_MODIFICATION_MOTIF);
    1529     potentialModificationMotifRefine.setHidden(fieldsHidden);
    1530     potentialModificationMotifRefine.setDisabled(fieldsDisabled);
    1531     potentialModificationMotifRefine.setValue(xTandemParameterSet
    1532       .getRefinePotentialModificationMotif());
    1533     fs.add(potentialModificationMotifRefine);
    1534     // Return Fieldset with added fields
    1535     return fs;
    1536   }
    1537 
    1538 
    1539   /**
    1540    * Convenience method for adding XTandemParameterSet scoring fields to a
    1541    * Fieldset.
    1542    *
    1543    * @param xTandemParameterSet XTandemParameterSet object (need not be stored
    1544    *        in database) with default field values.
    1545    * @param fs Fieldset The Fieldset to add the XTandemParameterSet fields to.
    1546    * @param fieldsHidden boolean Flag indicating that added fields should be
    1547    *        hidden.
    1548    * @param fieldsDisabled boolean Flag indicating that added fields should be
    1549    *        disabled.
    1550    * @return Fieldset The input fieldset with added XTandemParameterSet
    1551    *         fields.
    1552    */
    1553   public Fieldset addXTandemParameterSetScoringFieldsToFieldset(
    1554       XTandemParameterSet xTandemParameterSet, Fieldset fs,
    1555       boolean fieldsHidden, boolean fieldsDisabled)
    1556   {
    1557     // Scoring, minimum ion count
    1558     TextField<String> minIonCount = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_SCORING_MIN_ION_COUNT);
    1559     minIonCount.setHidden(fieldsHidden);
    1560     minIonCount.setDisabled(fieldsDisabled);
    1561     minIonCount.setValue(xTandemParameterSet.getScoringMinimumIonCount());
    1562     fs.add(minIonCount);
    1563     // Scoring, maximum missed cleavage sites
    1564     TextField<String> maxMissedCleavageSites = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_SCORING_MAX_MISSED_CLEAVAGE_SITES);
    1565     maxMissedCleavageSites.setHidden(fieldsHidden);
    1566     maxMissedCleavageSites.setDisabled(fieldsDisabled);
    1567     maxMissedCleavageSites.setValue(xTandemParameterSet
    1568       .getScoringMaximumMissedCleavageSites());
    1569     fs.add(maxMissedCleavageSites);
    1570     // Scoring, x ions
    1571     TextField<String> xIons = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_SCORING_X_IONS);
    1572     xIons.setHidden(fieldsHidden);
    1573     xIons.setDisabled(fieldsDisabled);
    1574     xIons.setValue(xTandemParameterSet.getScoringXIons());
    1575     fs.add(xIons);
    1576     // Scoring, y ions
    1577     TextField<String> yIons = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_SCORING_Y_IONS);
    1578     yIons.setHidden(fieldsHidden);
    1579     yIons.setDisabled(fieldsDisabled);
    1580     yIons.setValue(xTandemParameterSet.getScoringYIons());
    1581     fs.add(yIons);
    1582     // Scoring, z ions
    1583     TextField<String> zIons = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_SCORING_Z_IONS);
    1584     zIons.setHidden(fieldsHidden);
    1585     zIons.setDisabled(fieldsDisabled);
    1586     zIons.setValue(xTandemParameterSet.getScoringZIons());
    1587     fs.add(zIons);
    1588     // Scoring, a ions
    1589     TextField<String> aIons = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_SCORING_A_IONS);
    1590     aIons.setHidden(fieldsHidden);
    1591     aIons.setDisabled(fieldsDisabled);
    1592     aIons.setValue(xTandemParameterSet.getScoringAIons());
    1593     fs.add(aIons);
    1594     // Scoring, b ions
    1595     TextField<String> bIons = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_SCORING_B_IONS);
    1596     bIons.setHidden(fieldsHidden);
    1597     bIons.setDisabled(fieldsDisabled);
    1598     bIons.setValue(xTandemParameterSet.getScoringBIons());
    1599     fs.add(bIons);
    1600     // Scoring, c ions
    1601     TextField<String> cIons = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_SCORING_C_IONS);
    1602     cIons.setHidden(fieldsHidden);
    1603     cIons.setDisabled(fieldsDisabled);
    1604     cIons.setValue(xTandemParameterSet.getScoringCIons());
    1605     fs.add(cIons);
    1606     // Scoring, cyclic permutation
    1607     TextField<String> cyclicPermutation = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_SCORING_CYCLIC_PERMUTATION);
    1608     cyclicPermutation.setHidden(fieldsHidden);
    1609     cyclicPermutation.setDisabled(fieldsDisabled);
    1610     cyclicPermutation.setValue(xTandemParameterSet
    1611       .getScoringCyclicPermutation());
    1612     fs.add(cyclicPermutation);
    1613     // Scoring, include reverse
    1614     TextField<String> includeReverse = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_SCORING_INCLUDE_REVERSE);
    1615     includeReverse.setHidden(fieldsHidden);
    1616     includeReverse.setDisabled(fieldsDisabled);
    1617     includeReverse.setValue(xTandemParameterSet.getScoringIncludeReverse());
    1618     fs.add(includeReverse);
    1619     // Scoring, algorithm
    1620     TextField<String> algorithm = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_SCORING_ALGORITHM);
    1621     algorithm.setHidden(fieldsHidden);
    1622     algorithm.setDisabled(fieldsDisabled);
    1623     algorithm.setValue(xTandemParameterSet.getScoringAlgorithm());
    1624     fs.add(algorithm);
    1625     // Return Fieldset with added fields
    1626     return fs;
    1627   }
    1628 
    1629 
    1630   /**
    1631    * Convenience method for adding XTandemParameterSet output fields to a
    1632    * Fieldset.
    1633    *
    1634    * @param xTandemParameterSet XTandemParameterSet object (need not be stored
    1635    *        in database) with default field values.
    1636    * @param fs Fieldset The Fieldset to add the XTandemParameterSet fields to.
    1637    * @param fieldsHidden boolean Flag indicating that added fields should be
    1638    *        hidden.
    1639    * @param fieldsDisabled boolean Flag indicating that added fields should be
    1640    *        disabled.
    1641    * @return Fieldset The input fieldset with added XTandemParameterSet
    1642    *         fields.
    1643    */
    1644   public Fieldset addXTandemParameterSetOutputFieldsToFieldset(
    1645       XTandemParameterSet xTandemParameterSet, Fieldset fs,
    1646       boolean fieldsHidden, boolean fieldsDisabled)
    1647   {
    1648     // Output, path
    1649     TextField<String> outputPath = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_OUTPUT_PATH);
    1650     outputPath.setHidden(fieldsHidden);
    1651     outputPath.setDisabled(fieldsDisabled);
    1652     outputPath.setValue(xTandemParameterSet.getOutputPath());
    1653     fs.add(outputPath);
    1654     // Output, log path
    1655     TextField<String> outputLogPath = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_OUTPUT_LOG_PATH);
    1656     outputLogPath.setHidden(fieldsHidden);
    1657     outputLogPath.setDisabled(fieldsDisabled);
    1658     outputLogPath.setValue(xTandemParameterSet.getOutputLogPath());
    1659     fs.add(outputLogPath);
    1660     // Output, message
    1661     TextField<String> outputMessage = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_OUTPUT_MESSAGE);
    1662     outputMessage.setHidden(fieldsHidden);
    1663     outputMessage.setDisabled(fieldsDisabled);
    1664     outputMessage.setValue(xTandemParameterSet.getOutputMessage());
    1665     fs.add(outputMessage);
    1666     // Output, sequence path
    1667     TextField<String> outputSequencePath = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_OUTPUT_SEQUENCE_PATH);
    1668     outputSequencePath.setHidden(fieldsHidden);
    1669     outputSequencePath.setDisabled(fieldsDisabled);
    1670     outputSequencePath
    1671       .setValue(xTandemParameterSet.getOutputSequencePath());
    1672     fs.add(outputSequencePath);
    1673     // Output, sort results by
    1674     TextField<String> outputSortResultsBy = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_OUTPUT_SORT_RESULTS_BY);
    1675     outputSortResultsBy.setHidden(fieldsHidden);
    1676     outputSortResultsBy.setDisabled(fieldsDisabled);
    1677     outputSortResultsBy.setValue(xTandemParameterSet
    1678       .getOutputSortResultsBy());
    1679     fs.add(outputSortResultsBy);
    1680     // Output, path hashing
    1681     TextField<String> pathHashing = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_OUTPUT_PATH_HASHING);
    1682     pathHashing.setHidden(fieldsHidden);
    1683     pathHashing.setDisabled(fieldsDisabled);
    1684     pathHashing.setValue(xTandemParameterSet.getOutputPathHashing());
    1685     fs.add(pathHashing);
    1686     // Output, xsl path
    1687     TextField<String> xslPath = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_OUTPUT_XSL_PATH);
    1688     xslPath.setHidden(fieldsHidden);
    1689     xslPath.setDisabled(fieldsDisabled);
    1690     xslPath.setValue(xTandemParameterSet.getOutputXslPath());
    1691     fs.add(xslPath);
    1692     // Output, parameters
    1693     TextField<String> parameters = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_OUTPUT_PARAMETERS);
    1694     parameters.setHidden(fieldsHidden);
    1695     parameters.setDisabled(fieldsDisabled);
    1696     parameters.setValue(xTandemParameterSet.getOutputParameters());
    1697     fs.add(parameters);
    1698     // Output, performance
    1699     TextField<String> performance = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_OUTPUT_PERFORMANCE);
    1700     performance.setHidden(fieldsHidden);
    1701     performance.setDisabled(fieldsDisabled);
    1702     performance.setValue(xTandemParameterSet.getOutputPerformance());
    1703     fs.add(performance);
    1704     // Output, spectra
    1705     TextField<String> spectra = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_OUTPUT_SPECTRA);
    1706     spectra.setValue(xTandemParameterSet.getOutputSpectra());
    1707     spectra.setHidden(fieldsHidden);
    1708     spectra.setDisabled(fieldsDisabled);
    1709     fs.add(spectra);
    1710     // Output, histograms
    1711     TextField<String> histograms = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_OUTPUT_HISTOGRAMS);
    1712     histograms.setHidden(fieldsHidden);
    1713     histograms.setDisabled(fieldsDisabled);
    1714     histograms.setValue(xTandemParameterSet.getOutputHistograms());
    1715     fs.add(histograms);
    1716     // Output, proteins
    1717     TextField<String> proteins = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_OUTPUT_PROTEINS);
    1718     proteins.setHidden(fieldsHidden);
    1719     proteins.setDisabled(fieldsDisabled);
    1720     proteins.setValue(xTandemParameterSet.getOutputProteins());
    1721     fs.add(proteins);
    1722     // Output, sequences
    1723     TextField<String> sequences = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_OUTPUT_SEQUENCES);
    1724     sequences.setHidden(fieldsHidden);
    1725     sequences.setDisabled(fieldsDisabled);
    1726     sequences.setValue(xTandemParameterSet.getOutputSequences());
    1727     fs.add(sequences);
    1728     // Output, one sequence copy
    1729     TextField<String> oneSequenceCopy = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_OUTPUT_ONE_SEQUENCE_COPY);
    1730     oneSequenceCopy.setHidden(fieldsHidden);
    1731     oneSequenceCopy.setDisabled(fieldsDisabled);
    1732     oneSequenceCopy
    1733       .setValue(xTandemParameterSet.getOutputOneSequenceCopy());
    1734     fs.add(oneSequenceCopy);
    1735     // Output, results
    1736     TextField<String> results = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_OUTPUT_RESULTS);
    1737     results.setHidden(fieldsHidden);
    1738     results.setDisabled(fieldsDisabled);
    1739     results.setValue(xTandemParameterSet.getOutputResults());
    1740     fs.add(results);
    1741     // Output, maximum valid expectation value
    1742     TextField<String> outputMaxValidExpectationValue = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_OUTPUT_MAX_VALID_EXPECTATION_VALUE);
    1743     outputMaxValidExpectationValue.setHidden(fieldsHidden);
    1744     outputMaxValidExpectationValue.setDisabled(fieldsDisabled);
    1745     outputMaxValidExpectationValue.setValue(xTandemParameterSet
    1746       .getOutputMaximumValidExpectationValue());
    1747     fs.add(outputMaxValidExpectationValue);
    1748     // Output, histogram column width
    1749     TextField<String> histogramColumnWidth = new TextField<String>(SaveXTandemParameterSetStorage.VXTANDEM_OUTPUT_HISTOGRAM_COLUMN_WIDTH);
    1750     histogramColumnWidth.setHidden(fieldsHidden);
    1751     histogramColumnWidth.setDisabled(fieldsDisabled);
    1752     histogramColumnWidth.setValue(xTandemParameterSet
    1753       .getOutputHistogramColumnWidth());
    1754     fs.add(histogramColumnWidth);
    1755     // Return Fieldset with added fields
    1756     return fs;
    1757   }
    1758 
    1759 
    1760   /**
    1761    * Checks if a string is found as option value in an option list.
    1762    *
    1763    * @param optionList List<Option> Option list of options.
    1764    * @param item String String to look for in option values.
    1765    * @return boolean True if item found as option value, else false.
    1766    */
    1767   private boolean itemInOptionList(List<Option> optionList, String item)
    1768   {
    1769     boolean isFound = false;
    1770     // Check if item if found as option value in option list
    1771     if (optionList != null)
    1772     {
    1773       for (int i = 0; i < optionList.size(); i++)
    1774       {
    1775         if (optionList.get(i) != null)
    1776         {
    1777           if (optionList.get(i).getValue().equals(item))
    1778           {
    1779             isFound = true;
    1780             break;
    1781           }
    1782         }
    1783       }
    1784     }
    1785     return isFound;
    1786   }
    1787 
    1788 
    1789   /**
    1790    * Checks if all strings in input list are found as option values in an
    1791    * option list.
    1792    *
    1793    * @param optionList List<Option> Option list of options.
    1794    * @param itemList List<String> List with strings to look for in option
    1795    *        values.
    1796    * @return boolean True if all items found as option values, else false.
    1797    */
    1798   private boolean allItemsInOptionList(List<Option> optionList,
    1799       List<String> itemList)
    1800   {
    1801     // Check if all items are found among option values
    1802     if (itemList != null)
    1803     {
    1804       for (int j = 0; j < itemList.size(); j++)
    1805       {
    1806         if (itemList.get(j) != null)
    1807         {
    1808           String item = itemList.get(j);
    1809           // Check if item is found among option values
    1810           boolean isFound = false;
    1811           if (optionList != null)
    1812           {
    1813             for (int i = 0; i < optionList.size(); i++)
    1814             {
    1815               if (optionList.get(i) != null)
    1816               {
    1817                 if (optionList.get(i).getValue().equals(item))
    1818                 {
    1819                   isFound = true;
    1820                 }
    1821               }
    1822             }
    1823           }
    1824           // Return if item was not found among option values
    1825           if (!isFound)
    1826           {
    1827             log
    1828               .debug("j = " + j + " item = \"" + item + "\" isFound = " + isFound + " - return false");
    1829             return false;
    1830           }
    1831         }
    1832       }
    1833     }
    1834     return true;
    1835   }
    1836 
    1837 
    1838   /**
    1839    * Converts a list String to a list with String elements. If the list string
    1840    * contains two delimiter strings directly after each other, an empty string
    1841    * element will be added to the list in the corresponding place. Example:
    1842    * List string "one, two, three" will be converted to a list with the three
    1843    * String elements "one", "two", and "three" using delimiter regular
    1844    * expression ",\\ ".
    1845    *
    1846    * @param listString String A string with a list
    1847    * @param delimiterRegex String A regular expression for the delimiter
    1848    *        between list elements
    1849    * @return List<String> A list of String elements
    1850    */
    1851   private List<String> listStringToStringList(String listString,
    1852       String delimiterRegex)
    1853   {
    1854     List<String> stringList = null;
    1855     if (listString != null)
    1856     {
    1857       stringList = new ArrayList<String>(0);
    1858       for (String part : listString.split(delimiterRegex, -1))
    1859       {
    1860         // Add list part if not already in list
    1861         if (part != null && !stringList.contains(part))
    1862         {
    1863           stringList.add(part);
    1864         }
    1865       }
    1866     }
    1867     return stringList;
    1868   }
    1869 
    1870188}
  • trunk/client/servlet/src/org/proteios/gui/form/Select.java

    r3863 r3881  
    7171  }
    7272
    73  public Select(D param ,  List<Option> optionList, List<String> selected)
     73 public Select(D param, List<Option> optionList, List<String> selected)
    7474 {
    7575  this(param);
    76   this.options.addAll(options);
    77   for(String str : selected)
    78   {
    79    selectOption(str);
     76  this.options.addAll(optionList);
     77  if (selected != null)
     78  {   
     79    for(String str : selected)
     80    {
     81      selectOption(str);
     82    }
    8083  }
    8184  setMaxSize(5); 
     
    174177  }
    175178
     179 
     180 /**
     181  * Sets all options matching any value in the input list to selected.
     182  *
     183  * @param List<Sting> selected List with selected values.
     184  */
     185 public void selectOptions(List<String> selected)
     186 {
     187   if (selected != null)
     188   {
     189     for(String str : selected)
     190     {
     191       selectOption(str);
     192     }
     193   }
     194 }
    176195}
Note: See TracChangeset for help on using the changeset viewer.