/*
* 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.event.ActionEvent;
public class CLColumnsFiltersSelection extends ColumnsFiltersSelection {
private boolean isPolfTableMap = false;
public CLColumnsFiltersSelection(boolean isPolfTableMap) {
this.isPolfTableMap = isPolfTableMap;
}
protected void addColSelection() {
addRPMColSelection();
addLoadColSelection();
addAFLearningColSelection();
addAFCorrectionColSelection();
addMAFVoltageColSelection();
addStockAFRColSelection();
addClOlStatusColSelection();
addTimeColSelection();
addIATColSelection();
if (isPolfTableMap)
addManifoldAbsolutePressureColSelection();
}
protected void addFilterSelection() {
addCLOLStatusFilter();
clolStatusFilter.setValue(Config.getClOlStatusValue());
addMAFVoltageMaximumFilter();
maxMafVFilter.setText(String.valueOf(Config.getMafVMaximumValue()));
addEngineLoadMinimumFilter();
minEngineLoadFilter.setText(String.valueOf(Config.getLoadMinimumValue()));
addIATMaximumFilter();
maxIatFilter.setText(String.valueOf(Config.getIatMaximumValue()));
addAFRMaximumFilter();
maxAfrFilter.setText(String.valueOf(Config.getAfrMaximumValue()));
addAFRMinimumFilter();
minAfrFilter.setText(String.valueOf(Config.getAfrMinimumValue()));
addDvDtMaximumFilter();
maxDvdtFilter.setText(String.valueOf(Config.getDvDtMaximumValue()));
addCellHitCountMinimumFilter();
minCellHitCountFilter.setText(String.valueOf(Config.getCLMinCellHitCount()));
}
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);
// Engine Load
value = loadName.getText().trim();
colName = loadLabelText;
if (value.isEmpty()) {
ret = false;
error.append("\"").append(colName).append("\" column must be specified\n");
}
else
Config.setLoadColumnName(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);
// CL/OL Status
value = clolStatusName.getText().trim();
colName = clolStatusLabelText;
if (value.isEmpty()) {
ret = false;
error.append("\"").append(colName).append("\" column must be specified\n");
}
else
Config.setClOlStatusColumnName(value);
// 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);
// CL/OL Status
value = clolStatusFilter.getValue().toString();
colName = clolStatusLabelText;
if (value.isEmpty() || value.equals("-1")) {
ret = false;
error.append("\"").append(colName).append("\" value must be specified\n");
}
else
Config.setClOlStatusValue(Integer.valueOf(value));
if (isPolfTableMap) {
// Manifold Absolute Pressure
value = mapName.getText().trim();
colName = mapLabelText;
if (value.isEmpty()) {
ret = false;
error.append("\"").append(colName).append("\" column must be specified\n");
}
else
Config.setMapColumnName(value);
}
// Max MAF Voltage filter
Config.setMafVMaximumValue(Double.valueOf(maxMafVFilter.getText()));
// Engine Load filter
Config.setLoadMinimumValue(Double.valueOf(minEngineLoadFilter.getText()));
// Minimum Cell Hit Count Filter
Config.setCLMinCellHitCount(Integer.valueOf(minCellHitCountFilter.getText()));
// IAT filter
Config.setIatMaximumValue(Double.valueOf(maxIatFilter.getText()));
// AFR filters
Config.setAfrMaximumValue(Double.valueOf(maxAfrFilter.getText()));
Config.setAfrMinimumValue(Double.valueOf(minAfrFilter.getText()));
// dV/dt filter
Config.setDvDtMaximumValue(Double.valueOf(maxDvdtFilter.getText()));
return ret;
}
protected boolean processDefaultButton(ActionEvent e) {
if ("maxmafv".equals(e.getActionCommand()))
maxMafVFilter.setText(Config.DefaultMafVMaximum);
else if ("clolstatus".equals(e.getActionCommand()))
clolStatusFilter.setValue(Integer.valueOf(Config.DefaultClOlStatusValue));
else if ("minengload".equals(e.getActionCommand()))
minEngineLoadFilter.setText(Config.DefaultLoadMinimum);
else if ("maxiat".equals(e.getActionCommand()))
maxIatFilter.setText(Config.DefaultIATMaximum);
else if ("maxafr".equals(e.getActionCommand()))
maxAfrFilter.setText(Config.DefaultAfrMaximum);
else if ("minafr".equals(e.getActionCommand()))
minAfrFilter.setText(Config.DefaultAfrMinimum);
else if ("maxdvdt".equals(e.getActionCommand()))
maxDvdtFilter.setText(Config.DefaultDvDtMaximum);
else if ("minhitcnt".equals(e.getActionCommand()))
minCellHitCountFilter.setText(Config.DefaultCLMinCellHitCount);
else
return false;
return true;
}
}