private void doTextFieldActionPerformed(JTextField source) { if (isUpdating) return; try { String inputText = source.getText().trim(); NumberValue nv; nv = app.getKernel().getAlgebraProcessor().evaluateToNumeric(inputText, false); double value = nv.getDouble(); // TODO better validation if (source == fldXMin) { settings.xMin = value; firePropertyChange("settings", true, false); } else if (source == fldXMax) { settings.xMax = value; firePropertyChange("settings", true, false); } else if (source == fldYMax) { settings.yMax = value; firePropertyChange("settings", true, false); } else if (source == fldYMin) { settings.yMin = value; firePropertyChange("settings", true, false); } else if (source == fldXInterval && value >= 0) { settings.xAxesInterval = value; firePropertyChange("settings", true, false); } else if (source == fldYInterval && value >= 0) { settings.yAxesInterval = value; firePropertyChange("settings", true, false); } else if (source == fldBarWidth && value >= 0) { settings.setBarWidth(value); firePropertyChange("settings", true, false); } updateGUI(); } catch (NumberFormatException e) { e.printStackTrace(); } }