/*
* Open-Source tuning tools
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
package com.vgi.mafscaling;
import java.awt.Component;
import java.awt.event.ActionEvent;
import javax.swing.JEditorPane;
public class LCColumnsFiltersSelection extends ColumnsFiltersSelection {
protected void addColSelection() {
addRPMColSelection();
addThrottleAngleColSelection();
addAFLearningColSelection();
addAFCorrectionColSelection();
addMAFVoltageColSelection();
addStockAFRColSelection();
addManifoldPressureColSelection();
addTimeColSelection();
addIATColSelection();
addCruiseStatusColSelection();
}
protected void addFilterSelection() {
addLoadCompInRatioFlag();
isLoadCompInRatioBool.setSelected(Config.getIsLoadCompInRatio());
addAtmPressureFilter();
atmPressureFilter.setText(String.valueOf(Config.getAtmPressureValue()));
addThrottleChangeMaximumFilter();
thrtlChangeMaxFilter.setValue(Config.getThrottleChangeMaxValue());
addRPMMaximumFilter();
maxRPMFilter.setText(String.valueOf(Config.getRPMMaximumValue()));
addRPMMinimumFilter();
minRPMFilter.setText(String.valueOf(Config.getRPMMinimumValue()));
addIATMaximumFilter();
maxIatFilter.setText(String.valueOf(Config.getLCIatMaximumValue()));
addAFRMaximumFilter();
maxAfrFilter.setText(String.valueOf(Config.getLCAfrMaximumValue()));
addAFRMinimumFilter();
minAfrFilter.setText(String.valueOf(Config.getLCAfrMinimumValue()));
addManifoldPressureMaximumFilter();
maxMPFilter.setText(String.valueOf(Config.getLCMPMaximumValue()));
addManifoldPressureMinimumFilter();
minMPFilter.setText(String.valueOf(Config.getLCMPMinimumValue()));
addDvDtMaximumFilter();
maxDvdtFilter.setText(String.valueOf(Config.getLCDvDtMaximumValue()));
addCellHitCountMinimumFilter();
minCellHitCountFilter.setText(String.valueOf(Config.getLCMinCellHitCount()));
addCruiseStatusFilter();
cruiseStatusFilter.setValue(Config.getCruiseStatusValue());
addCorrectionAppliedValue();
correctionAppliedValue.setValue(Config.getLCCorrectionAppliedValue());
for (Component c : filtersPanel.getComponents()) {
if (c instanceof JEditorPane) {
JEditorPane label = (JEditorPane)c;
if (label.getText().startsWith("Remove data where RPM is above"))
label.setText(label.getText() + " (hint: check max RPM in Load Comp table)");
}
}
}
protected boolean validate(StringBuffer error) {
boolean ret = true;
String value;
String colName;
// Engine Speed
value = rpmName.getText().trim();
colName = rpmLabelText;
if (value.isEmpty()) {
ret = false;
error.append("\"").append(colName).append("\" column must be specified\n");
}
else
Config.setRpmColumnName(value);
// AFR Learning
value = afLearningName.getText().trim();
colName = afLearningLabelText;
if (value.isEmpty()) {
ret = false;
error.append("\"").append(colName).append("\" column must be specified\n");
}
else
Config.setAfLearningColumnName(value);
// AFR Correction
value = afCorrectionName.getText().trim();
colName = afCorrectionLabelText;
if (value.isEmpty()) {
ret = false;
error.append("\"").append(colName).append("\" column must be specified\n");
}
else
Config.setAfCorrectionColumnName(value);
// Maf Voltage
value = mafVName.getText().trim();
colName = mafVLabelText;
if (value.isEmpty()) {
ret = false;
error.append("\"").append(colName).append("\" column must be specified\n");
}
else
Config.setMafVoltageColumnName(value);
// MP
value = mpName.getText().trim();
colName = mpLabelText;
if (value.isEmpty()) {
ret = false;
error.append("\"").append(colName).append("\" column must be specified\n");
}
else
Config.setMpColumnName(value);
// Throttle Angle
value = thrtlAngleName.getText().trim();
colName = thrtlAngleLabelText;
if (value.isEmpty()) {
ret = false;
error.append("\"").append(colName).append("\" column must be specified\n");
}
else
Config.setThrottleAngleColumnName(value);
// Cruise/Non-cruise Status
Config.setCruiseStatusColumnName(cruiseStatusName.getText().trim());
// Stock AFR
value = stockAfrName.getText().trim();
colName = stockAfrLabelText;
if (value.isEmpty()) {
ret = false;
error.append("\"").append(colName).append("\" column must be specified\n");
}
else
Config.setAfrColumnName(value);
// Time
value = timeName.getText().trim();
colName = timeLabelText;
if (value.isEmpty()) {
ret = false;
error.append("\"").append(colName).append("\" column must be specified\n");
}
else
Config.setTimeColumnName(value);
// Intake Air Temperature
value = iatName.getText().trim();
colName = iatLabelText;
if (value.isEmpty()) {
ret = false;
error.append("\"").append(colName).append("\" column must be specified\n");
}
else
Config.setIatColumnName(value);
// Load Compensation values in ratio
Config.setIsLoadCompInRatio(isLoadCompInRatioBool.isSelected());
// Atm Pressure filters
Config.setAtmPressureValue(Double.valueOf(atmPressureFilter.getText()));
// Throttle Change % Maximum
Config.setThrottleChangeMaxValue(Integer.valueOf(thrtlChangeMaxFilter.getValue().toString()));
// RPM filters
Config.setRPMMaximumValue(Integer.valueOf(maxRPMFilter.getText()));
Config.setRPMMinimumValue(Integer.valueOf(minRPMFilter.getText()));
// Minimum Cell Hit Count Filter
Config.setLCMinCellHitCount(Integer.valueOf(minCellHitCountFilter.getText()));
// IAT filter
Config.setLCIatMaximumValue(Double.valueOf(maxIatFilter.getText()));
// AFR filters
Config.setLCAfrMaximumValue(Double.valueOf(maxAfrFilter.getText()));
Config.setLCAfrMinimumValue(Double.valueOf(minAfrFilter.getText()));
// MP filters
Config.setLCMPMaximumValue(Double.valueOf(maxMPFilter.getText()));
Config.setLCMPMinimumValue(Double.valueOf(minMPFilter.getText()));
// dV/dt filter
Config.setLCDvDtMaximumValue(Double.valueOf(maxDvdtFilter.getText()));
// Cruise/Non-cruise Status
value = cruiseStatusFilter.getValue().toString();
if (!value.isEmpty())
Config.setCruiseStatusValue(Integer.valueOf(value));
// Correction applied
Config.setLCCorrectionAppliedValue(Integer.valueOf(correctionAppliedValue.getValue().toString()));
return ret;
}
protected boolean processDefaultButton(ActionEvent e) {
if ("thrtlchange".equals(e.getActionCommand()))
thrtlChangeMaxFilter.setValue(Integer.valueOf(Config.DefaultThrottleChangeMax));
else if ("maxrpm".equals(e.getActionCommand()))
maxRPMFilter.setText(Config.DefaultRPMMaximum);
else if ("minrpm".equals(e.getActionCommand()))
minRPMFilter.setText(Config.DefaultRPMMinimum);
else if ("maxiat".equals(e.getActionCommand()))
maxIatFilter.setText(Config.DefaultLCIATMaximum);
else if ("maxafr".equals(e.getActionCommand()))
maxAfrFilter.setText(Config.DefaultLCAfrMaximum);
else if ("minafr".equals(e.getActionCommand()))
minAfrFilter.setText(Config.DefaultLCAfrMinimum);
else if ("maxmp".equals(e.getActionCommand()))
maxMPFilter.setText(Config.DefaultMPMaximum);
else if ("minmp".equals(e.getActionCommand()))
minMPFilter.setText(Config.DefaultMPMinimum);
else if ("maxdvdt".equals(e.getActionCommand()))
maxDvdtFilter.setText(Config.DefaultDvDtMaximum);
else if ("minhitcnt".equals(e.getActionCommand()))
minCellHitCountFilter.setText(Config.DefaultLCMinCellHitCount);
else if ("cruisestatus".equals(e.getActionCommand()))
cruiseStatusFilter.setValue(Integer.valueOf(Config.DefaultCruiseStatusValue));
else if ("corrapply".equals(e.getActionCommand()))
correctionAppliedValue.setValue(Integer.valueOf(Config.DefaultCorrectionAppliedValue));
else if ("atmpress".equals(e.getActionCommand()))
atmPressureFilter.setText(Config.DefaultAtmPressure);
else
return false;
return true;
}
}