/* * EuroCarbDB, a framework for carbohydrate bioinformatics * * Copyright (c) 2006-2009, Eurocarb project, or third-party contributors as * indicated by the @author tags or express copyright attribution * statements applied by the authors. * * This copyrighted material is made available to anyone wishing to use, modify, * copy, or redistribute it subject to the terms and conditions of the GNU * Lesser General Public License, as published by the Free Software Foundation. * A copy of this license accompanies this distribution in the file LICENSE.txt. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License * for more details. * * Last commit: $Rev: 1210 $ by $Author: glycoslave $ on $Date:: 2009-06-12 #$ */ package org.eurocarbdb.application.glycanbuilder; import java.util.Collection; /** Dialog to change the mass options for a set of structures. Some of the options can be left unspecified and the corresponding options in the various structures will not be changed @author Alessio Ceroni (a.ceroni@imperial.ac.uk) */ public class MassOptionsStructureDialog extends EscapeDialog implements java.awt.event.ActionListener { private MassOptions common_options = new MassOptions(); private Collection<Glycan> structures = null; /** Creates a new dialog @param parent the parent frame @param _structures the glycan structures whose mass options needs to be changed @param _default the default mass options */ public MassOptionsStructureDialog(java.awt.Frame parent, Collection<Glycan> _structures, MassOptions _default) { super(parent, true); structures = _structures; setCommonOptions(_structures,_default); initComponents(); initData(); setTraversal(); setActions(); enableItems(); // set location setLocationRelativeTo(parent); } /** Return the selected mass options */ public MassOptions getMassOptions() { return common_options; } private Object[] generateValues(int min, int max, boolean include_und) { if( include_und ) { Object[] values = new Object[1+(max-min+1)]; values[0] = "---"; for( int i=min; i<=max; i++ ) values[i-min+1] = Integer.valueOf(i); return values; } Object[] values = new Object[max-min+1]; for( int i=min; i<=max; i++ ) values[i-min] = Integer.valueOf(i); return values; } private void setValue(javax.swing.JSpinner field, int value) { if( value==999 ) field.setValue("---"); else field.setValue(Integer.valueOf(value)); } private int getValue(javax.swing.JSpinner field) { if( field.getValue().equals("---") ) return 999; return (Integer)field.getValue(); } private int limitValue(int v, int l) { if( v==999 ) return 999; return Math.min(v,l); } private void setCommonOptions(Collection<Glycan> structures, MassOptions _default) { if( structures==null || structures.size()==0 ) { common_options = _default; return; } // retrieve common options common_options = new MassOptions(true); boolean first = true; for( Glycan structure : structures ) { MassOptions structure_options = structure.getMassOptions(); if( first ) { common_options = structure_options.clone(); first = false; } else { common_options.merge(structure_options); } } } private void initData() { // set models field_isotope.setModel(new javax.swing.DefaultComboBoxModel(new String[] {"---",MassOptions.ISOTOPE_MONO,MassOptions.ISOTOPE_AVG})); field_derivatization.setModel(new javax.swing.DefaultComboBoxModel(new String[] {"---",MassOptions.NO_DERIVATIZATION,MassOptions.PERMETHYLATED,MassOptions.PERDMETHYLATED,MassOptions.PERACETYLATED,MassOptions.PERDACETYLATED})); field_reducingend.setModel(new javax.swing.DefaultComboBoxModel(new Union<String>().and("---").and(ResidueDictionary.getReducingEndsString()).and("Other...").toArray(new String[0]))); field_no_h_ions.setModel(new javax.swing.SpinnerListModel(generateValues(0,10,true))); field_no_na_ions.setModel(new javax.swing.SpinnerListModel(generateValues(0,10,true))); field_no_li_ions.setModel(new javax.swing.SpinnerListModel(generateValues(0,10,true))); field_no_k_ions.setModel(new javax.swing.SpinnerListModel(generateValues(0,10,true))); field_ex_na_ions.setModel(new javax.swing.SpinnerListModel(generateValues(0,50,true))); field_ex_li_ions.setModel(new javax.swing.SpinnerListModel(generateValues(0,50,true))); field_ex_k_ions.setModel(new javax.swing.SpinnerListModel(generateValues(0,50,true))); // set selections field_isotope.setSelectedItem(common_options.ISOTOPE); field_derivatization.setSelectedItem(common_options.DERIVATIZATION); if( common_options.REDUCING_END_TYPE==null ) { field_reducingend.setSelectedItem("---"); field_other_name.setText(""); field_other_mass.setText("0"); } else if( common_options.REDUCING_END_TYPE.isCustomType() ) { field_reducingend.setSelectedItem("Other..."); field_other_name.setText(common_options.REDUCING_END_TYPE.getResidueName()); field_other_mass.setText("" + common_options.REDUCING_END_TYPE.getResidueMassMain()); } else { field_reducingend.setSelectedItem(common_options.REDUCING_END_TYPE.getName()); field_other_name.setText(""); field_other_mass.setText("0"); } field_negative_mode.setSelected(common_options.ION_CLOUD.isNegative()); setValue(field_no_h_ions,Math.abs(common_options.ION_CLOUD.get(MassOptions.ION_H))); setValue(field_no_na_ions,Math.abs(common_options.ION_CLOUD.get(MassOptions.ION_NA))); setValue(field_no_li_ions,Math.abs(common_options.ION_CLOUD.get(MassOptions.ION_LI))); setValue(field_no_k_ions,Math.abs(common_options.ION_CLOUD.get(MassOptions.ION_K))); setValue(field_ex_na_ions,common_options.NEUTRAL_EXCHANGES.get(MassOptions.ION_NA)); setValue(field_ex_li_ions,common_options.NEUTRAL_EXCHANGES.get(MassOptions.ION_LI)); setValue(field_ex_k_ions,common_options.NEUTRAL_EXCHANGES.get(MassOptions.ION_K)); } private void setTraversal() { CustomFocusTraversalPolicy tp = new CustomFocusTraversalPolicy(); tp.addComponent(field_isotope); tp.addComponent(field_derivatization); tp.addComponent(field_reducingend); tp.addComponent(field_other_name); tp.addComponent(field_other_mass); tp.addComponent(field_negative_mode); tp.addComponent(field_no_h_ions); tp.addComponent(field_no_na_ions); tp.addComponent(field_no_li_ions); tp.addComponent(field_no_k_ions); tp.addComponent(field_ex_na_ions); tp.addComponent(field_ex_li_ions); tp.addComponent(field_ex_k_ions); tp.addComponent(button_ok); tp.addComponent(button_cancel); this.setFocusTraversalPolicy(tp); getRootPane().setDefaultButton(button_ok); } private void setActions() { button_ok.addActionListener(this); button_cancel.addActionListener(this); field_reducingend.addActionListener(this); } private void enableItems() { //field_isotope.setEnabled(structures==null || structures.size()==0); field_isotope.setEnabled(false); field_other_name.setEnabled(field_reducingend.getSelectedItem().equals("Other...")); field_other_mass.setEnabled(field_reducingend.getSelectedItem().equals("Other...")); } private boolean retrieveData() { // retrieve common options if( field_reducingend.getSelectedItem().equals("Other...") ) { ResidueType red_end_type = ResidueType.createOtherReducingEnd(field_other_name.getText(),Double.valueOf(field_other_mass.getText())); if( ResidueDictionary.findResidueType(red_end_type.getResidueName())!=null ) { javax.swing.JOptionPane.showMessageDialog(this,"The name specified for the reducing end is already existing.", "Duplicate name", javax.swing.JOptionPane.ERROR_MESSAGE); return false; } common_options.REDUCING_END_TYPE = red_end_type; } else common_options.REDUCING_END_TYPE = ResidueDictionary.findResidueType((String)field_reducingend.getSelectedItem()); common_options.ISOTOPE = (String)field_isotope.getSelectedItem(); common_options.DERIVATIZATION = (String)field_derivatization.getSelectedItem(); int multiplier = (field_negative_mode.isSelected()) ?-1 :1; common_options.ION_CLOUD.set(MassOptions.ION_H,multiplier*getValue(field_no_h_ions)); common_options.ION_CLOUD.set(MassOptions.ION_NA,multiplier*getValue(field_no_na_ions)); common_options.ION_CLOUD.set(MassOptions.ION_LI,multiplier*getValue(field_no_li_ions)); common_options.ION_CLOUD.set(MassOptions.ION_K,multiplier*getValue(field_no_k_ions)); common_options.NEUTRAL_EXCHANGES.set(MassOptions.ION_H,-getValue(field_ex_na_ions)-getValue(field_ex_li_ions)-getValue(field_ex_k_ions)); common_options.NEUTRAL_EXCHANGES.set(MassOptions.ION_NA,getValue(field_ex_na_ions)); common_options.NEUTRAL_EXCHANGES.set(MassOptions.ION_LI,getValue(field_ex_li_ions)); common_options.NEUTRAL_EXCHANGES.set(MassOptions.ION_K,getValue(field_ex_k_ions)); return true; } public void actionPerformed(java.awt.event.ActionEvent e) { String action = e.getActionCommand(); if (action == "OK") { return_status = action; if( retrieveData() ) closeDialog(); } else if (action == "Cancel"){ return_status = action; closeDialog(); } else enableItems(); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ private void initComponents() { jLabel2 = new javax.swing.JLabel(); field_isotope = new javax.swing.JComboBox(); field_derivatization = new javax.swing.JComboBox(); jLabel3 = new javax.swing.JLabel(); jLabel4 = new javax.swing.JLabel(); button_ok = new javax.swing.JButton(); button_cancel = new javax.swing.JButton(); jSeparator3 = new javax.swing.JSeparator(); jLabel5 = new javax.swing.JLabel(); jLabel7 = new javax.swing.JLabel(); jLabel8 = new javax.swing.JLabel(); field_no_h_ions = new javax.swing.JSpinner(); field_no_na_ions = new javax.swing.JSpinner(); field_no_li_ions = new javax.swing.JSpinner(); field_no_k_ions = new javax.swing.JSpinner(); jLabel6 = new javax.swing.JLabel(); jLabel9 = new javax.swing.JLabel(); jLabel10 = new javax.swing.JLabel(); field_ex_na_ions = new javax.swing.JSpinner(); field_ex_li_ions = new javax.swing.JSpinner(); field_ex_k_ions = new javax.swing.JSpinner(); jLabel11 = new javax.swing.JLabel(); field_negative_mode = new javax.swing.JCheckBox(); jLabel12 = new javax.swing.JLabel(); field_reducingend = new javax.swing.JComboBox(); jSeparator1 = new javax.swing.JSeparator(); jLabel1 = new javax.swing.JLabel(); field_other_name = new javax.swing.JTextField(); jLabel13 = new javax.swing.JLabel(); field_other_mass = new javax.swing.JTextField(); setResizable(false); setTitle("Mass options"); addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent evt) { closeDialog(); } }); jLabel2.setText("Isotope"); field_isotope.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" })); field_derivatization.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" })); jLabel3.setText("Derivatization"); jLabel4.setText("# H ions"); button_ok.setText("OK"); button_cancel.setText("Cancel"); jLabel5.setText("# Na ions"); jLabel7.setText("# Li ions"); jLabel8.setText("# K ions"); jLabel6.setText("ex. Na ions"); jLabel9.setText("ex. Li ions"); jLabel10.setText("ex. K ions"); jLabel11.setText("Negative mode"); field_negative_mode.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); field_negative_mode.setMargin(new java.awt.Insets(0, 0, 0, 0)); jLabel12.setText("Reducing end"); field_reducingend.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" })); jLabel1.setText("name"); field_other_name.setText("jTextField1"); jLabel13.setText("mass"); field_other_mass.setText("jTextField1"); org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this.getContentPane()); this.getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .addContainerGap() .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup() .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(jLabel3) .add(jLabel2) .add(jLabel12)) .add(21, 21, 21) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false) .add(jLabel1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .add(field_reducingend, 0, 80, Short.MAX_VALUE) .add(jLabel13, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING) .add(field_other_mass, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 160, Short.MAX_VALUE) .add(org.jdesktop.layout.GroupLayout.LEADING, field_other_name, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 160, Short.MAX_VALUE))) .add(layout.createSequentialGroup() .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING, false) .add(org.jdesktop.layout.GroupLayout.LEADING, field_isotope, 0, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .add(org.jdesktop.layout.GroupLayout.LEADING, field_derivatization, 0, 80, Short.MAX_VALUE)) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 172, Short.MAX_VALUE)))) .add(org.jdesktop.layout.GroupLayout.TRAILING, jSeparator1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 361, Short.MAX_VALUE) .add(layout.createSequentialGroup() .add(107, 107, 107) .add(button_ok) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(button_cancel)) .add(layout.createSequentialGroup() .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(jLabel11) .add(jLabel8) .add(jLabel7) .add(jLabel5) .add(jLabel4)) .add(16, 16, 16) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(field_no_na_ions, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 80, Short.MAX_VALUE) .add(field_no_h_ions, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 80, Short.MAX_VALUE) .add(field_no_li_ions, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 80, Short.MAX_VALUE) .add(field_no_k_ions, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 80, Short.MAX_VALUE)) .add(12, 12, 12)) .add(layout.createSequentialGroup() .add(field_negative_mode) .add(79, 79, 79))) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup() .add(jLabel10) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 19, Short.MAX_VALUE) .add(field_ex_k_ions, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 80, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup() .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(jLabel6) .add(jLabel9)) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(field_ex_na_ions, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 80, Short.MAX_VALUE) .add(org.jdesktop.layout.GroupLayout.TRAILING, field_ex_li_ions, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 80, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))))) .add(org.jdesktop.layout.GroupLayout.TRAILING, jSeparator3, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 361, Short.MAX_VALUE)) .addContainerGap()) ); layout.linkSize(new java.awt.Component[] {button_cancel, button_ok}, org.jdesktop.layout.GroupLayout.HORIZONTAL); layout.setVerticalGroup( layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .addContainerGap() .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(field_isotope, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(jLabel2)) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(field_derivatization, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(jLabel3)) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(jLabel12) .add(field_reducingend, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(jLabel1) .add(field_other_name, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(jLabel13) .add(field_other_mass, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jSeparator1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 10, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(jLabel11) .add(field_negative_mode)) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(jLabel4) .add(field_no_h_ions, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .add(30, 30, 30) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(jLabel7) .add(field_ex_li_ions, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(field_no_li_ions, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(jLabel9))) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(jLabel5) .add(field_ex_na_ions, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(field_no_na_ions, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(jLabel6))) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(jLabel8) .add(field_ex_k_ions, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(field_no_k_ions, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(jLabel10))) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jSeparator3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 10, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(button_ok) .add(button_cancel)) .addContainerGap()) ); pack(); }// </editor-fold> /** Closes the dialog */ private void closeDialog() {//GEN-FIRST:event_closeDialog setVisible(false); dispose(); }//GEN-LAST:event_closeDialog // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton button_cancel; private javax.swing.JButton button_ok; private javax.swing.JComboBox field_derivatization; private javax.swing.JSpinner field_ex_k_ions; private javax.swing.JSpinner field_ex_li_ions; private javax.swing.JSpinner field_ex_na_ions; private javax.swing.JComboBox field_isotope; private javax.swing.JCheckBox field_negative_mode; private javax.swing.JSpinner field_no_h_ions; private javax.swing.JSpinner field_no_k_ions; private javax.swing.JSpinner field_no_li_ions; private javax.swing.JSpinner field_no_na_ions; private javax.swing.JTextField field_other_mass; private javax.swing.JTextField field_other_name; private javax.swing.JComboBox field_reducingend; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel10; private javax.swing.JLabel jLabel11; private javax.swing.JLabel jLabel12; private javax.swing.JLabel jLabel13; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7; private javax.swing.JLabel jLabel8; private javax.swing.JLabel jLabel9; private javax.swing.JSeparator jSeparator1; private javax.swing.JSeparator jSeparator3; // End of variables declaration//GEN-END:variables }