engine type preset panel

This commit is contained in:
rusefi 2019-01-12 04:11:48 -05:00
parent 06e664a23b
commit 17dc4c33fd
8 changed files with 138 additions and 69 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

View File

@ -1,17 +1,15 @@
package com.rusefi;
import com.rusefi.io.CommandQueue;
import com.rusefi.ui.MessagesView;
import com.rusefi.ui.util.UiUtils;
import com.rusefi.ui.widgets.EtbResearch;
import com.rusefi.ui.widgets.EtbTestSequence;
import org.jetbrains.annotations.NotNull;
import org.putgemin.VerticalFlowLayout;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import static com.rusefi.CommandControl.TEST;
public class BenchTestPane {
private final JPanel content = new JPanel(new GridLayout(2, 4));
@ -32,7 +30,7 @@ public class BenchTestPane {
}
private Component createMILTest() {
BenchTestPanel panel = new BenchTestPanel("MIL", "check_engine.jpg") {
CommandControl panel = new CommandControl("MIL", "check_engine.jpg", TEST) {
@NotNull
protected String getCommand() {
return "milbench";
@ -42,7 +40,7 @@ public class BenchTestPane {
}
private Component createIdleTest() {
BenchTestPanel panel = new BenchTestPanel("Idle Valve", "idle_valve.png") {
CommandControl panel = new CommandControl("Idle Valve", "idle_valve.png", TEST) {
@NotNull
protected String getCommand() {
return "idlebench";
@ -52,38 +50,23 @@ public class BenchTestPane {
}
private Component createDizzyTest() {
BenchTestPanel panel = new BenchTestPanel("Dizzy", "dizzy.jpg") {
@NotNull
protected String getCommand() {
return "dizzybench";
}
};
CommandControl panel = new FixedCommandControl("Dizzy", "dizzy.jpg", TEST, "dizzybench");
return panel.getContent();
}
private Component createFanTest() {
BenchTestPanel panel = new BenchTestPanel("Radiator Fan", "radiator_fan.jpg") {
@NotNull
protected String getCommand() {
return "fanbench";
}
};
CommandControl panel = new FixedCommandControl("Radiator Fan", "radiator_fan.jpg", TEST, "fanbench");
return panel.getContent();
}
private Component createFuelPumpTest() {
BenchTestPanel panel = new BenchTestPanel("Fuel Pump", "fuel_pump.jpg") {
@NotNull
protected String getCommand() {
return "fuelpumpbench";
}
};
CommandControl panel = new FixedCommandControl("Fuel Pump", "fuel_pump.jpg", TEST, "fuelpumpbench");
return panel.getContent();
}
private Component createSparkTest() {
final JComboBox<Integer> indexes = createIndexCombo();
BenchTestPanel panel = new BenchTestPanel("Spark #", "spark.jpg", indexes) {
CommandControl panel = new CommandControl("Spark #", "spark.jpg", TEST, indexes) {
@Override
protected String getCommand() {
return "sparkbench2 1000 " + indexes.getSelectedItem() + " 5 333 3";
@ -94,7 +77,7 @@ public class BenchTestPane {
private Component createInjectorTest() {
final JComboBox<Integer> indexes = createIndexCombo();
BenchTestPanel panel = new BenchTestPanel("Injector #", "injector.png", indexes) {
CommandControl panel = new CommandControl("Injector #", "injector.png", TEST, indexes) {
@Override
protected String getCommand() {
return "fuelbench2 1000 " + indexes.getSelectedItem() + " 5 333 3";
@ -116,37 +99,4 @@ public class BenchTestPane {
return content;
}
private abstract static class BenchTestPanel {
final JPanel panel = new JPanel(new FlowLayout(FlowLayout.RIGHT, 5, 0));
final JButton test = new JButton("Test");
public BenchTestPanel(String text, String iconFileName, JComponent... components) {
ImageIcon icon = UiUtils.loadIcon(iconFileName);
JPanel rightVerticalPanel = new JPanel(new VerticalFlowLayout());
rightVerticalPanel.add(new JLabel(text));
for (JComponent component : components)
rightVerticalPanel.add(component);
rightVerticalPanel.add(test);
panel.add(new JLabel(icon));
panel.add(rightVerticalPanel);
int GAP = 3;
panel.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createLineBorder(Color.black), BorderFactory.createEmptyBorder(GAP, GAP, GAP, GAP)));
test.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
CommandQueue.getInstance().write(getCommand());
}
});
}
protected abstract String getCommand();
public Component getContent() {
return UiUtils.wrap(panel);
}
}
}

View File

@ -0,0 +1,50 @@
package com.rusefi;
import com.rusefi.io.CommandQueue;
import com.rusefi.ui.util.UiUtils;
import org.jetbrains.annotations.NotNull;
import org.putgemin.VerticalFlowLayout;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;
/**
* (c) Andrey Belomutskiy 2013-2019
*/
abstract class CommandControl {
public static final String TEST = "Test";
public static final String SET = "Set";
protected final JPanel panel = new JPanel(new FlowLayout(FlowLayout.RIGHT, 5, 0));
final JButton test;
public CommandControl(String labelText, String iconFileName, String buttonText, JComponent... components) {
ImageIcon icon = UiUtils.loadIcon(iconFileName);
JPanel rightVerticalPanel = new JPanel(new VerticalFlowLayout());
rightVerticalPanel.add(new JLabel(labelText));
for (JComponent component : components)
rightVerticalPanel.add(component);
test = new JButton(buttonText);
rightVerticalPanel.add(test);
panel.add(new JLabel(icon));
panel.add(rightVerticalPanel);
int GAP = 3;
panel.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createLineBorder(Color.black), BorderFactory.createEmptyBorder(GAP, GAP, GAP, GAP)));
test.addActionListener(createButtonListener());
}
@NotNull
protected ActionListener createButtonListener() {
return e -> CommandQueue.getInstance().write(getCommand());
}
protected abstract String getCommand();
public Component getContent() {
return UiUtils.wrap(panel);
}
}

View File

@ -0,0 +1,15 @@
package com.rusefi;
public class FixedCommandControl extends CommandControl {
private final String command;
public FixedCommandControl(String labelText, String iconFileName, String buttonText, String command) {
super(labelText, iconFileName, buttonText);
this.command = command;
}
@Override
protected String getCommand() {
return command;
}
}

View File

@ -39,13 +39,13 @@ import static com.rusefi.ui.storage.PersistentConfiguration.getConfig;
* <p/>
* <p/>
* 12/25/12
* (c) Andrey Belomutskiy 2013-2018
* (c) Andrey Belomutskiy 2013-2019
*
* @see StartupFrame
* @see EngineSnifferPanel
*/
public class Launcher {
public static final int CONSOLE_VERSION = 20181117;
public static final int CONSOLE_VERSION = 20190112;
public static final boolean SHOW_STIMULATOR = false;
private static final String TAB_INDEX = "main_tab";
protected static final String PORT_KEY = "port";
@ -151,8 +151,14 @@ public class Launcher {
if (!LinkManager.isLogViewer())
tabbedPane.addTab("Gauges", new GaugesPanel(getConfig().getRoot().getChild("gauges")).getContent());
if (!LinkManager.isLogViewer())
tabbedPane.addTab("Formulas", new FormulasPane().getContent());
if (!LinkManager.isLogViewer()) {
MessagesPane messagesPane = new MessagesPane(getConfig().getRoot().getChild("messages"));
tabbedPaneAdd("Messages", messagesPane.getContent(), messagesPane.getTabSelectedListener());
}
if (!LinkManager.isLogViewer()) {
tabbedPane.add("Bench Test", new BenchTestPane().getContent());
tabbedPane.add("Presets", new PresetsPans().getContent());
}
tabbedPaneAdd("Engine Sniffer", engineSnifferPanel.getPanel(), engineSnifferPanel.getTabSelectedListener());
@ -170,10 +176,6 @@ public class Launcher {
tabbedPane.add("ECU stimulation", stimulator.getPanel());
}
// tabbedPane.addTab("live map adjustment", new Live3DReport().getControl());
if (!LinkManager.isLogViewer()) {
MessagesPane messagesPane = new MessagesPane(getConfig().getRoot().getChild("messages"));
tabbedPaneAdd("Messages", messagesPane.getContent(), messagesPane.getTabSelectedListener());
}
if (!LinkManager.isLogViewer())
tabbedPane.addTab("Table Editor", tableEditor);
// tabbedPane.add("Wizards", new Wizard().createPane());
@ -181,7 +183,7 @@ public class Launcher {
if (!LinkManager.isLogViewer())
tabbedPane.add("Settings", settingsTab.createPane());
if (!LinkManager.isLogViewer())
tabbedPane.add("Bench Test", new BenchTestPane().getContent());
tabbedPane.addTab("Formulas", new FormulasPane().getContent());
if (!LinkManager.isLogViewer() && false) // todo: fix it & better name?
tabbedPane.add("Logs Manager", logsManager.getContent());
fuelTunePane = new FuelTunePane(getConfig().getRoot().getChild("fueltune"));

View File

@ -0,0 +1,50 @@
package com.rusefi;
import com.rusefi.io.CommandQueue;
import org.jetbrains.annotations.NotNull;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;
/**
* (c) Andrey Belomutskiy 2013-2019
*/
public class PresetsPans {
// see rusefi_enums.h
private static final int MIATA_NA_1_6 = 41;
private static final int MAZDA_MIATA_2003 = 47;
private JPanel content = new JPanel(new GridLayout(2, 4));
public PresetsPans() {
content.add(new SetEngineTypeCommandControl("Miata NA6", "engines/miata_na.png", MIATA_NA_1_6).getContent());
content.add(new SetEngineTypeCommandControl("Miata NB2", "engines/miata_nb.png", MAZDA_MIATA_2003).getContent());
}
public JPanel getContent() {
return content;
}
private class SetEngineTypeCommandControl extends FixedCommandControl {
private final String labelTest;
public SetEngineTypeCommandControl(String labelTest, String imageFileName, int engineType) {
super(labelTest, imageFileName, CommandControl.SET, "set engine_type " + engineType);
this.labelTest = labelTest;
}
@NotNull
@Override
protected ActionListener createButtonListener() {
return e -> {
int dialogResult = JOptionPane.showConfirmDialog(panel, "Do you really want to reset all settings to " + labelTest,
"Warning", JOptionPane.YES_NO_OPTION);
if (dialogResult != JOptionPane.YES_OPTION)
return;
CommandQueue.getInstance().write(getCommand());
};
}
}
}

View File

@ -77,7 +77,9 @@ public class LogDownloader {
removeFile.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int i = JOptionPane.showConfirmDialog(Launcher.getFrame(), "Do you really want to delete " + name + "?");
int i = JOptionPane.showConfirmDialog(Launcher.getFrame(), ("Do you really want to delete " + name + "?"),
UIManager.getString("OptionPane.titleText"),
JOptionPane.YES_NO_OPTION);
if (i == JOptionPane.YES_OPTION) {
CommandQueue.getInstance().write("del " + name);
timer.restart();