package usda.weru.erosion;


import de.schlichtherle.io.File;
import java.beans.*;
import java.util.*;
import usda.weru.util.*;
import java.text.NumberFormat;
import javax.swing.JTextField;

class SoilLayers extends usda.weru.erosion.gui.SoilLayers_n implements PropertyChangeListener {

	private String measurementUnits = Util.SIUnits;
	private int curSubr = 0;
	
	private DataStore ds;

    public static void main(String[]args) {
        SoilLayers soi = new SoilLayers();
		soi.ds = new DataStore();
		soi.addPropertyChangeListener(soi.ds);
		soi.ds.addPropertyChangeListener(soi);
        soi.setSize(640,480);
		soi.setTitle("Daily Wind Erosion Model - SoilLayers Test");
		soi.setVisible(true);
		soi.ds.readTextFile(new File("c:/weps.wrk/test/barrier_test.in"));
    }

	Hashtable<String, JTextField> HT_displayFields = new Hashtable<String, JTextField>();
	
	SoilLayers() {
		super();
		
		HT_displayFields.put(DataStore.LayerOrigNum+0, JTF_orgLayerNum0);
		HT_displayFields.put(DataStore.LayerOrigNum+1, JTF_orgLayerNum1);
		HT_displayFields.put(DataStore.LayerOrigNum+2, JTF_orgLayerNum2);

        HT_displayFields.put(DataStore.LayerThickness+0, JTF_layerThk0);
		HT_displayFields.put(DataStore.LayerThickness+1, JTF_layerThk1);
		HT_displayFields.put(DataStore.LayerThickness+2, JTF_layerThk2);

		HT_displayFields.put(DataStore.LayerBD+0, JTF_layerBD0);
		HT_displayFields.put(DataStore.LayerBD+1, JTF_layerBD1);
		HT_displayFields.put(DataStore.LayerBD+2, JTF_layerBD2);

		HT_displayFields.put(DataStore.LayerSand+0, JTF_layerSand0);
		HT_displayFields.put(DataStore.LayerSand+1, JTF_layerSand1);
		HT_displayFields.put(DataStore.LayerSand+2, JTF_layerSand2);

		HT_displayFields.put(DataStore.LayerVFSand+0, JTF_layerVFSand0);
		HT_displayFields.put(DataStore.LayerVFSand+1, JTF_layerVFSand1);
		HT_displayFields.put(DataStore.LayerVFSand+2, JTF_layerVFSand2);

		HT_displayFields.put(DataStore.LayerSilt+0, JTF_layerSilt0);
		HT_displayFields.put(DataStore.LayerSilt+1, JTF_layerSilt1);
		HT_displayFields.put(DataStore.LayerSilt+2, JTF_layerSilt2);

		HT_displayFields.put(DataStore.LayerClay+0, JTF_layerClay0);
		HT_displayFields.put(DataStore.LayerClay+1, JTF_layerClay1);
		HT_displayFields.put(DataStore.LayerClay+2, JTF_layerClay2);

		HT_displayFields.put(DataStore.LayerRock+0, JTF_layerRock0);
		HT_displayFields.put(DataStore.LayerRock+1, JTF_layerRock1);
		HT_displayFields.put(DataStore.LayerRock+2, JTF_layerRock2);

		HT_displayFields.put(DataStore.LayerAggDen+0, JTF_layerAggDen0);
		HT_displayFields.put(DataStore.LayerAggDen+1, JTF_layerAggDen1);
		HT_displayFields.put(DataStore.LayerAggDen+2, JTF_layerAggDen2);

		HT_displayFields.put(DataStore.LayerAggSta+0, JTF_layerAggStab0);
		HT_displayFields.put(DataStore.LayerAggSta+1, JTF_layerAggStab1);
		HT_displayFields.put(DataStore.LayerAggSta+2, JTF_layerAggStab2);

		HT_displayFields.put(DataStore.LayerAggGMD+0, JTF_layerAggGMD0);
		HT_displayFields.put(DataStore.LayerAggGMD+1, JTF_layerAggGMD1);
		HT_displayFields.put(DataStore.LayerAggGMD+2, JTF_layerAggGMD2);

		HT_displayFields.put(DataStore.LayerAggMin+0, JTF_layerAggMin0);
		HT_displayFields.put(DataStore.LayerAggMin+1, JTF_layerAggMin1);
		HT_displayFields.put(DataStore.LayerAggMin+2, JTF_layerAggMin2);

		HT_displayFields.put(DataStore.LayerAggMax+0, JTF_layerAggMax0);
		HT_displayFields.put(DataStore.LayerAggMax+1, JTF_layerAggMax1);
		HT_displayFields.put(DataStore.LayerAggMax+2, JTF_layerAggMax2);

		HT_displayFields.put(DataStore.LayerAggGSD+0, JTF_layerAggGSD0);
		HT_displayFields.put(DataStore.LayerAggGSD+1, JTF_layerAggGSD1);
		HT_displayFields.put(DataStore.LayerAggGSD+2, JTF_layerAggGSD2);

		HT_displayFields.put(DataStore.LayerWPWC+0, JTF_wiltingPoint0);
		HT_displayFields.put(DataStore.LayerWPWC+1, JTF_wiltingPoint1);
		HT_displayFields.put(DataStore.LayerWPWC+2, JTF_wiltingPoint2);

	}

/** Field and button handlers **/	

    protected void JS_numLayersStateChanged(javax.swing.event.ChangeEvent evt) {                                            
		int numLayers = ((Integer) JS_numLayers.getValue()).intValue();
		changes.firePropertyChange(DataStore.LayerNum, null, " " + numLayers);
		JTF_layerThk0.setEnabled(0<numLayers);
		JTF_layerThk1.setEnabled(1<numLayers);
		JTF_layerThk2.setEnabled(2<numLayers);
		JTF_layerBD0.setEnabled(0<numLayers);
		JTF_layerBD1.setEnabled(1<numLayers);
		JTF_layerBD2.setEnabled(2<numLayers);
		JTF_layerSand0.setEnabled(0<numLayers);
		JTF_layerSand1.setEnabled(1<numLayers);
		JTF_layerSand2.setEnabled(2<numLayers);
		JTF_layerVFSand0.setEnabled(0<numLayers);
		JTF_layerVFSand1.setEnabled(1<numLayers);
		JTF_layerVFSand2.setEnabled(2<numLayers);
		JTF_layerSilt0.setEnabled(0<numLayers);
		JTF_layerSilt1.setEnabled(1<numLayers);
		JTF_layerSilt2.setEnabled(2<numLayers);
		JTF_layerClay0.setEnabled(0<numLayers);
		JTF_layerClay1.setEnabled(1<numLayers);
		JTF_layerClay2.setEnabled(2<numLayers);
		JTF_layerRock0.setEnabled(0<numLayers);
		JTF_layerRock1.setEnabled(1<numLayers);
		JTF_layerRock2.setEnabled(2<numLayers);
		JTF_layerAggDen0.setEnabled(0<numLayers);
		JTF_layerAggDen1.setEnabled(1<numLayers);
		JTF_layerAggDen2.setEnabled(2<numLayers);
		JTF_layerAggStab0.setEnabled(0<numLayers);
		JTF_layerAggStab1.setEnabled(1<numLayers);
		JTF_layerAggStab2.setEnabled(2<numLayers);
		JTF_layerAggGMD0.setEnabled(0<numLayers);
		JTF_layerAggGMD1.setEnabled(1<numLayers);
		JTF_layerAggGMD2.setEnabled(2<numLayers);
		JTF_layerAggMin0.setEnabled(0<numLayers);
		JTF_layerAggMin1.setEnabled(1<numLayers);
		JTF_layerAggMin2.setEnabled(2<numLayers);
		JTF_layerAggMax0.setEnabled(0<numLayers);
		JTF_layerAggMax1.setEnabled(1<numLayers);
		JTF_layerAggMax2.setEnabled(2<numLayers);
		JTF_layerAggGSD0.setEnabled(0<numLayers);
		JTF_layerAggGSD1.setEnabled(1<numLayers);
		JTF_layerAggGSD2.setEnabled(2<numLayers);
		JTF_wiltingPoint0.setEnabled(0<numLayers);
		JTF_wiltingPoint1.setEnabled(1<numLayers);
		JTF_wiltingPoint2.setEnabled(2<numLayers);

    }                                         

	double dummyDouble;
	
	protected void JB_shiftRightActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JB_shiftRightActionPerformed
		int numLayers = ((Integer) JS_numLayers.getValue()).intValue();
//System.out.println("SL_JBsR: " + numLayers);		
		if (numLayers == 3) return;
		numLayers++;
		changes.firePropertyChange(DataStore.LayerNum, null, " " + numLayers);

		changes.firePropertyChange(DataStore.LayerOrigNum + 2, null, JTF_orgLayerNum1.getText());
		changes.firePropertyChange(DataStore.LayerOrigNum + 1, null, JTF_orgLayerNum0.getText());
		changes.firePropertyChange(DataStore.LayerOrigNum + 0, null, "User");
		changes.firePropertyChange(DataStore.LayerThickness+ 2, null, JTF_layerThk1.getText());
		changes.firePropertyChange(DataStore.LayerThickness+ 1, null, JTF_layerThk0.getText());
		changes.firePropertyChange(DataStore.LayerThickness+ 0, null, "");
		changes.firePropertyChange(DataStore.LayerBD+ 2, null, JTF_layerBD1.getText());
		changes.firePropertyChange(DataStore.LayerBD+ 1, null, JTF_layerBD0.getText());
		changes.firePropertyChange(DataStore.LayerBD+ 0, null, "");
		changes.firePropertyChange(DataStore.LayerSand+ 2, null, JTF_layerSand1.getText());
		changes.firePropertyChange(DataStore.LayerSand+ 1, null, JTF_layerSand0.getText());
		changes.firePropertyChange(DataStore.LayerSand+ 0, null, "");
		changes.firePropertyChange(DataStore.LayerVFSand+ 2, null, JTF_layerVFSand1.getText());
		changes.firePropertyChange(DataStore.LayerVFSand+ 1, null, JTF_layerVFSand0.getText());
		changes.firePropertyChange(DataStore.LayerVFSand+ 0, null, "");
		changes.firePropertyChange(DataStore.LayerSilt+ 2, null, JTF_layerSilt1.getText());
		changes.firePropertyChange(DataStore.LayerSilt+ 1, null, JTF_layerSilt0.getText());
		changes.firePropertyChange(DataStore.LayerSilt+ 0, null, "");
		changes.firePropertyChange(DataStore.LayerClay+ 2, null, JTF_layerClay1.getText());
		changes.firePropertyChange(DataStore.LayerClay+ 1, null, JTF_layerClay0.getText());
		changes.firePropertyChange(DataStore.LayerClay+ 0, null, "");
		changes.firePropertyChange(DataStore.LayerRock+ 2, null, JTF_layerRock1.getText());
		changes.firePropertyChange(DataStore.LayerRock+ 1, null, JTF_layerRock0.getText());
		changes.firePropertyChange(DataStore.LayerRock+ 0, null, "");
		changes.firePropertyChange(DataStore.LayerAggDen+ 2, null, JTF_layerAggDen1.getText());
		changes.firePropertyChange(DataStore.LayerAggDen+ 1, null, JTF_layerAggDen0.getText());
		changes.firePropertyChange(DataStore.LayerAggDen+ 0, null, "");
		changes.firePropertyChange(DataStore.LayerAggSta+ 2, null, JTF_layerAggStab1.getText());
		changes.firePropertyChange(DataStore.LayerAggSta+ 1, null, JTF_layerAggStab0.getText());
		changes.firePropertyChange(DataStore.LayerAggSta+ 0, null, "");
		changes.firePropertyChange(DataStore.LayerAggGMD+ 2, null, JTF_layerAggGMD1.getText());
		changes.firePropertyChange(DataStore.LayerAggGMD+ 1, null, JTF_layerAggGMD0.getText());
		changes.firePropertyChange(DataStore.LayerAggGMD+ 0, null, "");
		changes.firePropertyChange(DataStore.LayerAggMin+ 2, null, JTF_layerAggMin1.getText());
		changes.firePropertyChange(DataStore.LayerAggMin+ 1, null, JTF_layerAggMin0.getText());
		changes.firePropertyChange(DataStore.LayerAggMin+ 0, null, "");
		changes.firePropertyChange(DataStore.LayerAggMax+ 2, null, JTF_layerAggMax1.getText());
		changes.firePropertyChange(DataStore.LayerAggMax+ 1, null, JTF_layerAggMax0.getText());
		changes.firePropertyChange(DataStore.LayerAggMax+ 0, null, "");
		changes.firePropertyChange(DataStore.LayerAggGSD+ 2, null, JTF_layerAggGSD1.getText());
		changes.firePropertyChange(DataStore.LayerAggGSD+ 1, null, JTF_layerAggGSD0.getText());
		changes.firePropertyChange(DataStore.LayerAggGSD+ 0, null, "");
		changes.firePropertyChange(DataStore.LayerWPWC+ 2, null, JTF_wiltingPoint1.getText());
		changes.firePropertyChange(DataStore.LayerWPWC+ 1, null, JTF_wiltingPoint0.getText());
		changes.firePropertyChange(DataStore.LayerWPWC+ 0, null, "");

	}//GEN-LAST:event_JB_shiftRightActionPerformed

	protected void JB_shiftLeftActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JB_shiftLeftActionPerformed
		int numLayers = ((Integer) JS_numLayers.getValue()).intValue();
//System.out.println("SL_JBsL: " + numLayers);		
		if (numLayers == 1) return;
		numLayers--;
		changes.firePropertyChange(DataStore.LayerNum, null, " " + numLayers);

		changes.firePropertyChange(DataStore.LayerOrigNum + 0, null, JTF_orgLayerNum1.getText());
		changes.firePropertyChange(DataStore.LayerOrigNum + 1, null, JTF_orgLayerNum2.getText());
		changes.firePropertyChange(DataStore.LayerOrigNum + 2, null, "");
		changes.firePropertyChange(DataStore.LayerThickness+ 0, null, JTF_layerThk1.getText());
		changes.firePropertyChange(DataStore.LayerThickness+ 1, null, JTF_layerThk2.getText());
		changes.firePropertyChange(DataStore.LayerThickness+ 2, null, "");
		changes.firePropertyChange(DataStore.LayerBD+ 0, null, JTF_layerBD1.getText());
		changes.firePropertyChange(DataStore.LayerBD+ 1, null, JTF_layerBD2.getText());
		changes.firePropertyChange(DataStore.LayerBD+ 2, null, "");
		changes.firePropertyChange(DataStore.LayerSand+ 0, null, JTF_layerSand1.getText());
		changes.firePropertyChange(DataStore.LayerSand+ 1, null, JTF_layerSand2.getText());
		changes.firePropertyChange(DataStore.LayerSand+ 2, null, "");
		changes.firePropertyChange(DataStore.LayerVFSand+ 0, null, JTF_layerVFSand1.getText());
		changes.firePropertyChange(DataStore.LayerVFSand+ 1, null, JTF_layerVFSand2.getText());
		changes.firePropertyChange(DataStore.LayerVFSand+ 2, null, "");
		changes.firePropertyChange(DataStore.LayerSilt+ 0, null, JTF_layerSilt1.getText());
		changes.firePropertyChange(DataStore.LayerSilt+ 1, null, JTF_layerSilt2.getText());
		changes.firePropertyChange(DataStore.LayerSilt+ 2, null, "");
		changes.firePropertyChange(DataStore.LayerClay+ 0, null, JTF_layerClay1.getText());
		changes.firePropertyChange(DataStore.LayerClay+ 1, null, JTF_layerClay2.getText());
		changes.firePropertyChange(DataStore.LayerClay+ 2, null, "");
		changes.firePropertyChange(DataStore.LayerRock+ 0, null, JTF_layerRock1.getText());
		changes.firePropertyChange(DataStore.LayerRock+ 1, null, JTF_layerRock2.getText());
		changes.firePropertyChange(DataStore.LayerRock+ 2, null, "");
		changes.firePropertyChange(DataStore.LayerAggDen+ 0, null, JTF_layerAggDen1.getText());
		changes.firePropertyChange(DataStore.LayerAggDen+ 1, null, JTF_layerAggDen2.getText());
		changes.firePropertyChange(DataStore.LayerAggDen+ 2, null, "");
		changes.firePropertyChange(DataStore.LayerAggSta+ 0, null, JTF_layerAggStab1.getText());
		changes.firePropertyChange(DataStore.LayerAggSta+ 1, null, JTF_layerAggStab2.getText());
		changes.firePropertyChange(DataStore.LayerAggSta+ 2, null, "");
		changes.firePropertyChange(DataStore.LayerAggGMD+ 0, null, JTF_layerAggGMD1.getText());
		changes.firePropertyChange(DataStore.LayerAggGMD+ 1, null, JTF_layerAggGMD2.getText());
		changes.firePropertyChange(DataStore.LayerAggGMD+ 2, null, "");
		changes.firePropertyChange(DataStore.LayerAggMin+ 0, null, JTF_layerAggMin1.getText());
		changes.firePropertyChange(DataStore.LayerAggMin+ 1, null, JTF_layerAggMin2.getText());
		changes.firePropertyChange(DataStore.LayerAggMin+ 2, null, "");
		changes.firePropertyChange(DataStore.LayerAggMax+ 0, null, JTF_layerAggMax1.getText());
		changes.firePropertyChange(DataStore.LayerAggMax+ 1, null, JTF_layerAggMax2.getText());
		changes.firePropertyChange(DataStore.LayerAggMax+ 2, null, "");
		changes.firePropertyChange(DataStore.LayerAggGSD+ 0, null, JTF_layerAggGSD1.getText());
		changes.firePropertyChange(DataStore.LayerAggGSD+ 1, null, JTF_layerAggGSD2.getText());
		changes.firePropertyChange(DataStore.LayerAggGSD+ 2, null, "");
		changes.firePropertyChange(DataStore.LayerWPWC+ 0, null, JTF_wiltingPoint1.getText());
		changes.firePropertyChange(DataStore.LayerWPWC+ 1, null, JTF_wiltingPoint2.getText());
		changes.firePropertyChange(DataStore.LayerWPWC+ 2, null, "");
	}//GEN-LAST:event_JB_shiftLeftActionPerformed

	protected void JTF_wiltingPoint0FocusLost(java.awt.event.FocusEvent evt) {                                           
//		if (evt.isTemporary()) return;
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_wiltingPoint0, dummyDouble,
							 DataStore.LayerWPWC+0+"+"+curSubr,
							 changes, measurementUnits);
	}                                          

	protected void JTF_wiltingPoint0ActionPerformed(java.awt.event.ActionEvent evt) {                                                 
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_wiltingPoint0, dummyDouble,
							 DataStore.LayerWPWC+0+"+"+curSubr,
							 changes, measurementUnits);
	}                                                


	protected void JTF_wiltingPoint1FocusLost(java.awt.event.FocusEvent evt) {                                           
//		if (evt.isTemporary()) return;
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_wiltingPoint1, dummyDouble,
							 DataStore.LayerWPWC+1+"+"+curSubr,
							 changes, measurementUnits);
	}                                          

	protected void JTF_wiltingPoint1ActionPerformed(java.awt.event.ActionEvent evt) {                                                 
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_wiltingPoint1, dummyDouble,
							 DataStore.LayerWPWC+1+"+"+curSubr,
							 changes, measurementUnits);
	}                                                


	protected void JTF_wiltingPoint2FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_JTF_wiltingPointFocusLost
//		if (evt.isTemporary()) return;
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_wiltingPoint2, dummyDouble,
							 DataStore.LayerWPWC+2+"+"+curSubr,
							 changes, measurementUnits);
	}//GEN-LAST:event_JTF_wiltingPointFocusLost

	protected void JTF_wiltingPoint2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JTF_wiltingPointActionPerformed
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_wiltingPoint2, dummyDouble,
							 DataStore.LayerWPWC+2+"+"+curSubr,
							 changes, measurementUnits);
	}//GEN-LAST:event_JTF_wiltingPointActionPerformed
	
    protected void JTF_layerAggGSD2FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_JTF_layerAggGSD2FocusLost
//		if (evt.isTemporary()) return;
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerAggGSD2, dummyDouble,
							 DataStore.LayerAggGSD+2+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerAggGSD2FocusLost

    protected void JTF_layerAggGSD2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JTF_layerAggGSD2ActionPerformed
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerAggGSD2, dummyDouble,
							 DataStore.LayerAggGSD+2+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerAggGSD2ActionPerformed

    protected void JTF_layerAggGSD1FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_JTF_layerAggGSD1FocusLost
//		if (evt.isTemporary()) return;
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerAggGSD1, dummyDouble,
							 DataStore.LayerAggGSD+1+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerAggGSD1FocusLost

    protected void JTF_layerAggGSD1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JTF_layerAggGSD1ActionPerformed
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerAggGSD1, dummyDouble,
							 DataStore.LayerAggGSD+1+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerAggGSD1ActionPerformed

    protected void JTF_layerAggGSD0FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_JTF_layerAggGSD0FocusLost
//		if (evt.isTemporary()) return;
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerAggGSD0, dummyDouble,
							 DataStore.LayerAggGSD+0+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerAggGSD0FocusLost

    protected void JTF_layerAggGSD0ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JTF_layerAggGSD0ActionPerformed
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerAggGSD0, dummyDouble,
							 DataStore.LayerAggGSD+0+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerAggGSD0ActionPerformed

    protected void JTF_layerAggMax2FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_JTF_layerAggMax2FocusLost
//		if (evt.isTemporary()) return;
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerAggMax2, dummyDouble,
							 DataStore.LayerAggMax+2+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerAggMax2FocusLost

    protected void JTF_layerAggMax2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JTF_layerAggMax2ActionPerformed
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerAggMax2, dummyDouble,
							 DataStore.LayerAggMax+2+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerAggMax2ActionPerformed

    protected void JTF_layerAggMax1FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_JTF_layerAggMax1FocusLost
//		if (evt.isTemporary()) return;
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerAggMax1, dummyDouble,
							 DataStore.LayerAggMax+1+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerAggMax1FocusLost

    protected void JTF_layerAggMax1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JTF_layerAggMax1ActionPerformed
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerAggGSD1, dummyDouble,
							 DataStore.LayerAggMax+1+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerAggMax1ActionPerformed

    protected void JTF_layerAggMax0FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_JTF_layerAggMax0FocusLost
//		if (evt.isTemporary()) return;
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerAggMax0, dummyDouble,
							 DataStore.LayerAggMax+0+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerAggMax0FocusLost

    protected void JTF_layerAggMax0ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JTF_layerAggMax0ActionPerformed
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerAggMax0, dummyDouble,
							 DataStore.LayerAggMax+0+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerAggMax0ActionPerformed

    protected void JTF_layerAggMin2FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_JTF_layerAggMin2FocusLost
//		if (evt.isTemporary()) return;
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerAggMin2, dummyDouble,
							 DataStore.LayerAggMin+2+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerAggMin2FocusLost

    protected void JTF_layerAggMin2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JTF_layerAggMin2ActionPerformed
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerAggMin2, dummyDouble,
							 DataStore.LayerAggMin+2+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerAggMin2ActionPerformed

    protected void JTF_layerAggMin1FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_JTF_layerAggMin1FocusLost
//		if (evt.isTemporary()) return;
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerAggMin1, dummyDouble,
							 DataStore.LayerAggMin+1+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerAggMin1FocusLost

    protected void JTF_layerAggMin1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JTF_layerAggMin1ActionPerformed
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerAggMin1, dummyDouble,
							 DataStore.LayerAggMin+1+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerAggMin1ActionPerformed

    protected void JTF_layerAggMin0FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_JTF_layerAggMin0FocusLost
//		if (evt.isTemporary()) return;
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerAggMin0, dummyDouble,
							 DataStore.LayerAggMin+0+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerAggMin0FocusLost

    protected void JTF_layerAggMin0ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JTF_layerAggMin0ActionPerformed
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerAggMin0, dummyDouble,
							 DataStore.LayerAggMin+0+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerAggMin0ActionPerformed

    protected void JTF_layerAggGMD2FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_JTF_layerAggGMD2FocusLost
//		if (evt.isTemporary()) return;
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerAggGMD2, dummyDouble,
							 DataStore.LayerAggGMD+2+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerAggGMD2FocusLost

    protected void JTF_layerAggGMD2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JTF_layerAggGMD2ActionPerformed
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerAggGMD2, dummyDouble,
							 DataStore.LayerAggGMD+2+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerAggGMD2ActionPerformed

    protected void JTF_layerAggGMD1FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_JTF_layerAggGMD1FocusLost
//		if (evt.isTemporary()) return;
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerAggGMD1, dummyDouble,
							 DataStore.LayerAggGMD+1+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerAggGMD1FocusLost

    protected void JTF_layerAggGMD1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JTF_layerAggGMD1ActionPerformed
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerAggGMD1, dummyDouble,
							 DataStore.LayerAggGMD+1+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerAggGMD1ActionPerformed

    protected void JTF_layerAggGMD0FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_JTF_layerAggGMD0FocusLost
//		if (evt.isTemporary()) return;
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerAggGMD0, dummyDouble,
							 DataStore.LayerAggGMD+0+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerAggGMD0FocusLost

    protected void JTF_layerAggGMD0ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JTF_layerAggGMD0ActionPerformed
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerAggGMD0, dummyDouble,
							 DataStore.LayerAggGMD+0+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerAggGMD0ActionPerformed

    protected void JTF_layerAggStab2FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_JTF_layerAggStab2FocusLost
//		if (evt.isTemporary()) return;
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerAggStab2, dummyDouble,
							 DataStore.LayerAggSta+2+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerAggStab2FocusLost

    protected void JTF_layerAggStab2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JTF_layerAggStab2ActionPerformed
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerAggStab2, dummyDouble,
							 DataStore.LayerAggSta+2+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerAggStab2ActionPerformed

    protected void JTF_layerAggStab1FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_JTF_layerAggStab1FocusLost
//		if (evt.isTemporary()) return;
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerAggStab1, dummyDouble,
							 DataStore.LayerAggSta+1+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerAggStab1FocusLost

    protected void JTF_layerAggStab1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JTF_layerAggStab1ActionPerformed
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerAggStab1, dummyDouble,
							 DataStore.LayerAggSta+1+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerAggStab1ActionPerformed

    protected void JTF_layerAggStab0FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_JTF_layerAggStab0FocusLost
//		if (evt.isTemporary()) return;
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerAggStab0, dummyDouble,
							 DataStore.LayerAggSta+0+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerAggStab0FocusLost

    protected void JTF_layerAggStab0ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JTF_layerAggStab0ActionPerformed
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerAggStab0, dummyDouble,
							 DataStore.LayerAggSta+0+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerAggStab0ActionPerformed

    protected void JTF_layerAggDen2FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_JTF_layerAggDen2FocusLost
//		if (evt.isTemporary()) return;
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerAggDen2, dummyDouble,
							 DataStore.LayerAggDen+2+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerAggDen2FocusLost

    protected void JTF_layerAggDen2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JTF_layerAggDen2ActionPerformed
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerAggDen2, dummyDouble,
							 DataStore.LayerAggDen+2+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerAggDen2ActionPerformed

    protected void JTF_layerAggDen1FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_JTF_layerAggDen1FocusLost
//		if (evt.isTemporary()) return;
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerAggDen1, dummyDouble,
							 DataStore.LayerAggDen+1+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerAggDen1FocusLost

    protected void JTF_layerAggDen1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JTF_layerAggDen1ActionPerformed
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerAggDen1, dummyDouble,
							 DataStore.LayerAggDen+1+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerAggDen1ActionPerformed

    protected void JTF_layerAggDen0FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_JTF_layerAggDen0FocusLost
//		if (evt.isTemporary()) return;
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerAggDen0, dummyDouble,
							 DataStore.LayerAggDen+0+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerAggDen0FocusLost

    protected void JTF_layerAggDen0ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JTF_layerAggDen0ActionPerformed
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerAggDen0, dummyDouble,
							 DataStore.LayerAggDen+0+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerAggDen0ActionPerformed

    protected void JTF_layerRock2FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_JTF_layerRock2FocusLost
//		if (evt.isTemporary()) return;
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerRock2, dummyDouble,
							 DataStore.LayerRock+2+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerRock2FocusLost

    protected void JTF_layerRock2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JTF_layerRock2ActionPerformed
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerRock2, dummyDouble,
							 DataStore.LayerRock+2+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerRock2ActionPerformed

    protected void JTF_layerRock1FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_JTF_layerRock1FocusLost
//		if (evt.isTemporary()) return;
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerRock1, dummyDouble,
							 DataStore.LayerRock+1+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerRock1FocusLost

    protected void JTF_layerRock1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JTF_layerRock1ActionPerformed
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerRock1, dummyDouble,
							 DataStore.LayerRock+1+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerRock1ActionPerformed

    protected void JTF_layerRock0FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_JTF_layerRock0FocusLost
//		if (evt.isTemporary()) return;
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerRock0, dummyDouble,
							 DataStore.LayerRock+0+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerRock0FocusLost

    protected void JTF_layerRock0ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JTF_layerRock0ActionPerformed
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerRock0, dummyDouble,
							 DataStore.LayerRock+0+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerRock0ActionPerformed

    protected void JTF_layerClay2FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_JTF_layerClay2FocusLost
//		if (evt.isTemporary()) return;
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerClay2, dummyDouble,
							 DataStore.LayerClay+2+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerClay2FocusLost

    protected void JTF_layerClay2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JTF_layerClay2ActionPerformed
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerClay2, dummyDouble,
							 DataStore.LayerClay+2+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerClay2ActionPerformed

    protected void JTF_layerClay1FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_JTF_layerClay1FocusLost
//		if (evt.isTemporary()) return;
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerClay1, dummyDouble,
							 DataStore.LayerClay+1+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerClay1FocusLost

    protected void JTF_layerClay1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JTF_layerClay1ActionPerformed
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerClay1, dummyDouble,
							 DataStore.LayerClay+1+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerClay1ActionPerformed

    protected void JTF_layerClay0FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_JTF_layerClay0FocusLost
//		if (evt.isTemporary()) return;
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerClay0, dummyDouble,
							 DataStore.LayerClay+0+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerClay0FocusLost

    protected void JTF_layerClay0ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JTF_layerClay0ActionPerformed
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerClay0, dummyDouble,
							 DataStore.LayerClay+0+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerClay0ActionPerformed

    protected void JTF_layerSilt2FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_JTF_layerSilt2FocusLost
//		if (evt.isTemporary()) return;
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerSilt2, dummyDouble,
							 DataStore.LayerSilt+2+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerSilt2FocusLost

    protected void JTF_layerSilt2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JTF_layerSilt2ActionPerformed
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerSilt2, dummyDouble,
							 DataStore.LayerSilt+2+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerSilt2ActionPerformed

    protected void JTF_layerSilt1FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_JTF_layerSilt1FocusLost
//		if (evt.isTemporary()) return;
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerSilt1, dummyDouble,
							 DataStore.LayerSilt+1+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerSilt1FocusLost

    protected void JTF_layerSilt1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JTF_layerSilt1ActionPerformed
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerSilt1, dummyDouble,
							 DataStore.LayerSilt+1+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerSilt1ActionPerformed

    protected void JTF_layerSilt0FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_JTF_layerSilt0FocusLost
//		if (evt.isTemporary()) return;
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerSilt0, dummyDouble,
							 DataStore.LayerSilt+0+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerSilt0FocusLost

    protected void JTF_layerSilt0ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JTF_layerSilt0ActionPerformed
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerSilt0, dummyDouble,
							 DataStore.LayerSilt+0+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerSilt0ActionPerformed

    protected void JTF_layerVFSand2FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_JTF_layerVFSand2FocusLost
//		if (evt.isTemporary()) return;
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerVFSand2, dummyDouble,
							 DataStore.LayerVFSand+2+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerVFSand2FocusLost

    protected void JTF_layerVFSand2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JTF_layerVFSand2ActionPerformed
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerVFSand2, dummyDouble,
							 DataStore.LayerVFSand+2+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerVFSand2ActionPerformed

    protected void JTF_layerVFSand1FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_JTF_layerVFSand1FocusLost
//		if (evt.isTemporary()) return;
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerVFSand1, dummyDouble,
							 DataStore.LayerVFSand+1+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerVFSand1FocusLost

    protected void JTF_layerVFSand1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JTF_layerVFSand1ActionPerformed
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerVFSand1, dummyDouble,
							 DataStore.LayerVFSand+1+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerVFSand1ActionPerformed

    protected void JTF_layerVFSand0FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_JTF_layerVFSand0FocusLost
//		if (evt.isTemporary()) return;
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerVFSand0, dummyDouble,
							 DataStore.LayerVFSand+0+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerVFSand0FocusLost

    protected void JTF_layerVFSand0ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JTF_layerVFSand0ActionPerformed
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerVFSand0, dummyDouble,
							 DataStore.LayerVFSand+0+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerVFSand0ActionPerformed

    protected void JTF_layerSand2FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_JTF_layerSand2FocusLost
//		if (evt.isTemporary()) return;
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerSand2, dummyDouble,
							 DataStore.LayerSand+2+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerSand2FocusLost

    protected void JTF_layerSand2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JTF_layerSand2ActionPerformed
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerSand2, dummyDouble,
							 DataStore.LayerSand+2+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerSand2ActionPerformed

    protected void JTF_layerSand1FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_JTF_layerSand1FocusLost
//		if (evt.isTemporary()) return;
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerSand1, dummyDouble,
							 DataStore.LayerSand+1+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerSand1FocusLost

    protected void JTF_layerSand1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JTF_layerSand1ActionPerformed
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerSand1, dummyDouble,
							 DataStore.LayerSand+1+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerSand1ActionPerformed

    protected void JTF_layerSand0FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_JTF_layerSand0FocusLost
//		if (evt.isTemporary()) return;
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerSand0, dummyDouble,
							 DataStore.LayerSand+0+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerSand0FocusLost

    protected void JTF_layerSand0ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JTF_layerSand0ActionPerformed
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerSand0, dummyDouble,
							 DataStore.LayerSand+0+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerSand0ActionPerformed

    protected void JTF_layerBD2FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_JTF_layerBD2FocusLost
//		if (evt.isTemporary()) return;
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerBD2, dummyDouble,
							 DataStore.LayerBD+2+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerBD2FocusLost

    protected void JTF_layerBD2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JTF_layerBD2ActionPerformed
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerBD2, dummyDouble,
							 DataStore.LayerBD+2+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerBD2ActionPerformed

    protected void JTF_layerBD1FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_JTF_layerBD1FocusLost
//		if (evt.isTemporary()) return;
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerBD1, dummyDouble,
							 DataStore.LayerBD+1+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerBD1FocusLost

    protected void JTF_layerBD1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JTF_layerBD1ActionPerformed
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerBD1, dummyDouble,
							 DataStore.LayerBD+1+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerBD1ActionPerformed

    protected void JTF_layerBD0FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_JTF_layerBD0FocusLost
//		if (evt.isTemporary()) return;
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerBD0, dummyDouble,
							 DataStore.LayerBD+0+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerBD0FocusLost

    protected void JTF_layerBD0ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JTF_layerBD0ActionPerformed
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerBD0, dummyDouble,
							 DataStore.LayerBD+0+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerBD0ActionPerformed

    protected void JTF_layerThk2FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_JTF_layerThk2FocusLost
//		if (evt.isTemporary()) return;
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerThk2, dummyDouble,
							 DataStore.LayerThickness+2+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerThk2FocusLost

    protected void JTF_layerThk2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JTF_layerThk2ActionPerformed
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerThk2, dummyDouble,
							 DataStore.LayerThickness+2+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerThk2ActionPerformed

    protected void JTF_layerThk1FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_JTF_layerThk1FocusLost
//		if (evt.isTemporary()) return;
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerThk1, dummyDouble,
							 DataStore.LayerThickness+1+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerThk1FocusLost

    protected void JTF_layerThk1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JTF_layerThk1ActionPerformed
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerThk1, dummyDouble,
							 DataStore.LayerThickness+1+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerThk1ActionPerformed

    protected void JTF_layerThk0FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_JTF_layerThk0FocusLost
//		if (evt.isTemporary()) return;
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerThk0, dummyDouble,
							 DataStore.LayerThickness+0+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerThk0FocusLost

    protected void JTF_layerThk0ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JTF_layerThk0ActionPerformed
		String valStr = (String) HT_prop.get(evt.getSource());
		try {
			dummyDouble = Double.parseDouble(valStr);
		} catch (NumberFormatException k) {
		}
		Util.checkNumericJTF(JP_layers, JTF_layerThk0, dummyDouble,
							 DataStore.LayerThickness+0+"+"+curSubr,
							 changes, measurementUnits);
    }//GEN-LAST:event_JTF_layerThk0ActionPerformed


	/****** Property change support methods *****/

	/**
     * RunFileData throws a property change each time setData is called.
     * Wrapper classes listen to determine if the the event is relevant to
     * them.
     */

	private PropertyChangeSupport changes = new PropertyChangeSupport(this);

	/**
     * Allows the container to add or register some other components to recognize the changes that occur
     * on this component.
     * @param l The listener that listens and reacts towards the the changes to be reflected.
     */
	public void addPropertyChangeListener(PropertyChangeListener l) {
		changes.addPropertyChangeListener(l);
	}

	/**
     * Allows the container to remove or de-register some other components and stop recognizing the
     * changes that occur on this component.
     * @param l The listener that does not listen and react towards the the changes to be reflected.
     */
	public void removePropertyChangeListener(PropertyChangeListener l) {
		changes.removePropertyChangeListener(l);
	}

	/**
     * Recognizes and takes appropriate actions on registered properties from different
     * screens to update and synchronize data and GUI screens as needed.
     * @param e The event itself that is responsible for triggering the change required for registered
     * properties/components.
     */

	Hashtable HT_prop = new Hashtable();

	public void propertyChange(PropertyChangeEvent e) {

		String property = e.getPropertyName();
		if (property.indexOf("+") > 0) property = property.substring(0, property.indexOf("+")); // strip region number (only have 1 region for now)
		if (property.equals(DataStore.LayerNum)) {
			setNumLayers((String) e.getNewValue());
		} else {
        String value = "";
            try {
                value = (String) e.getNewValue();
            } catch (ClassCastException cce) {
                // not our kind of thing
                return;
            }
			Object obj = HT_displayFields.get(property);
			if (obj != null) {
				if (obj instanceof javax.swing.JTextField) {
					javax.swing.JTextField jtf = (javax.swing.JTextField) obj;
					double val = 0.0;
					HT_prop.put(jtf, value);
					try {
						val = new Double(value).doubleValue();
						NumberFormat nf = NumberFormat.getNumberInstance(Locale.US);
						nf.setMaximumFractionDigits(3);
						nf.setMinimumFractionDigits(0);
						nf.setGroupingUsed(false);
						value = nf.format(val);
					} catch (NumberFormatException f) {
					}
					jtf.setText(value.trim());
				}
			}
		}
	}

	private void setNumLayers(String numLayStr) {
		int numLay = Integer.parseInt(numLayStr.trim());
//		JS_numLayers.setValue(new Integer(numLay));
		JS_numLayers.setValue(numLay);
	}

}
	
	