Refactor DS2 Reset Panel and add reset checkbox descriptions

This commit is contained in:
Dale Schultz 2015-04-09 23:01:22 -04:00
parent 88c543fe6c
commit 34f1c33c38
2 changed files with 39 additions and 43 deletions

View File

@ -20,7 +20,7 @@
package com.romraider.logger.ecu.ui.swing.menubar.action; package com.romraider.logger.ecu.ui.swing.menubar.action;
import com.romraider.logger.ecu.EcuLogger; import com.romraider.logger.ecu.EcuLogger;
import com.romraider.logger.ecu.ui.swing.tools.DS2ResetItemsPanel; import com.romraider.logger.ecu.ui.swing.tools.DS2ResetPanel;
import com.romraider.swing.menubar.action.AbstractAction; import com.romraider.swing.menubar.action.AbstractAction;
import static javax.swing.JOptionPane.ERROR_MESSAGE; import static javax.swing.JOptionPane.ERROR_MESSAGE;
import static javax.swing.JOptionPane.INFORMATION_MESSAGE; import static javax.swing.JOptionPane.INFORMATION_MESSAGE;
@ -74,8 +74,8 @@ public final class ResetEcuAction extends AbstractAction {
} }
private void selectResetItems() { private void selectResetItems() {
final DS2ResetItemsPanel resetPanel = new DS2ResetItemsPanel(logger); final DS2ResetPanel resetPanel = new DS2ResetPanel(logger);
resetPanel.showResetItemsPanel(); resetPanel.showResetPanel();
final int result = resetPanel.getResults(); final int result = resetPanel.getResults();
if (result > 0) { if (result > 0) {
resetEcu(result); resetEcu(result);

View File

@ -34,38 +34,42 @@ import javax.swing.JSeparator;
import javax.swing.border.EmptyBorder; import javax.swing.border.EmptyBorder;
import com.romraider.logger.ecu.EcuLogger; import com.romraider.logger.ecu.EcuLogger;
public final class DS2ResetItemsPanel extends JDialog { public final class DS2ResetPanel extends JDialog {
private static final long serialVersionUID = 2406346286060014312L; private static final long serialVersionUID = 2406346286060014312L;
private static final String DIALOG_TITLE = "Reset DS2 Adaption Selection"; private static final String DIALOG_TITLE = "Reset DS2 Adaptation Selection";
private static final String OK_BUTTON_TEXT = "OK"; private static final String OK_BUTTON_TEXT = "OK";
private static final String CANCEL_BUTTON_TEXT = "Cancel"; private static final String CANCEL_BUTTON_TEXT = "Cancel";
private static final String PANEL_TT = "Unsupported items are ignored by the ECU if selected.";
private static int results; private static int results;
private final JCheckBox selectAll = new JCheckBox("Select All"); private final JCheckBox selectAll = new JCheckBox("Select All");
private final ResetItem[] resetItems = { private final ResetCheckBox[] resetItems = {
new ResetItem("Byte 1 bit 0", 0x0100), new ResetCheckBox("Knock Adaptations", 0x0100),
new ResetItem("Byte 1 bit 1", 0x0200), new ResetCheckBox("Idle Speed Adaptations", 0x0200),
new ResetItem("Byte 1 bit 2", 0x0400), new ResetCheckBox("Lambda Adaptations", 0x0400),
new ResetItem("Byte 1 bit 3", 0x0800), new ResetCheckBox("Throttle Adaptations", 0x0800),
new ResetItem("Byte 1 bit 4", 0x1000), new ResetCheckBox("Altitude Correction", 0x1000),
new ResetItem("Byte 1 bit 5", 0x2000), new ResetCheckBox("Undefined Adaptation", 0x2000),
new ResetItem("Byte 1 bit 6", 0x4000), new ResetCheckBox("Undefined Adaptation", 0x4000),
new ResetItem("Byte 1 bit 7", 0x8000), new ResetCheckBox("Undefined Adaptation", 0x8000),
new ResetItem("Byte 0 bit 0", 0x0001), new ResetCheckBox("Undefined Adaptation", 0x0001),
new ResetItem("Byte 0 bit 1", 0x0002) new ResetCheckBox("External Load History (M3 only)", 0x0002),
new ResetCheckBox("Undefined Adaptation (MS43 only)", 0x0004),
new ResetCheckBox("Undefined Adaptation (MS43 only)", 0x0008)
}; };
public DS2ResetItemsPanel(EcuLogger logger) { public DS2ResetPanel(EcuLogger logger) {
super(logger, true); super(logger, true);
setIconImage(logger.getIconImage()); setIconImage(logger.getIconImage());
setTitle(DIALOG_TITLE); setTitle(DIALOG_TITLE);
setBounds( setBounds(
logger.getX() + (logger.getWidth() / 2) - 166, logger.getX() + (logger.getWidth() / 2) - 180,
logger.getY() + 90, logger.getY() + 90,
332, 240,
332); 375);
final JPanel contentPanel = new JPanel(); final JPanel contentPanel = new JPanel();
contentPanel.setToolTipText(PANEL_TT);
contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5)); contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPanel.setLayout(new BoxLayout(contentPanel, BoxLayout.Y_AXIS)); contentPanel.setLayout(new BoxLayout(contentPanel, BoxLayout.Y_AXIS));
getContentPane().setLayout(new BorderLayout()); getContentPane().setLayout(new BorderLayout());
@ -74,18 +78,17 @@ public final class DS2ResetItemsPanel extends JDialog {
selectAll.addActionListener(new ActionListener() { selectAll.addActionListener(new ActionListener() {
@Override @Override
public void actionPerformed(ActionEvent actionEvent) { public void actionPerformed(ActionEvent actionEvent) {
for (ResetItem item : resetItems) { for (ResetCheckBox item : resetItems) {
item.checkBox.setSelected(selectAll.isSelected()); item.setSelected(selectAll.isSelected());
} }
} }
}); });
contentPanel.add(selectAll);
contentPanel.add(new JSeparator()); for (ResetCheckBox checkBox : resetItems) {
contentPanel.add(checkBox);
for (ResetItem item : resetItems) {
contentPanel.add(item.checkBox);
} }
contentPanel.add(new JSeparator());
contentPanel.add(selectAll);
final JPanel buttonPanel = new JPanel(); final JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(new FlowLayout(FlowLayout.RIGHT)); buttonPanel.setLayout(new FlowLayout(FlowLayout.RIGHT));
@ -95,9 +98,9 @@ public final class DS2ResetItemsPanel extends JDialog {
okButton.setActionCommand(OK_BUTTON_TEXT); okButton.setActionCommand(OK_BUTTON_TEXT);
okButton.addActionListener(new ActionListener() { okButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
for (ResetItem item : resetItems) { for (ResetCheckBox checkBox : resetItems) {
if(item.checkBox.isSelected()) { if(checkBox.isSelected()) {
results |= item.mask; results |= checkBox.mask;
} }
} }
closeDialog(); closeDialog();
@ -117,7 +120,7 @@ public final class DS2ResetItemsPanel extends JDialog {
getRootPane().setDefaultButton(cancelButton); getRootPane().setDefaultButton(cancelButton);
} }
public final void showResetItemsPanel() { public final void showResetPanel() {
setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE); setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
addWindowListener(new WindowAdapter() { addWindowListener(new WindowAdapter() {
@Override @Override
@ -139,16 +142,14 @@ public final class DS2ResetItemsPanel extends JDialog {
dispose(); dispose();
} }
class ResetItem { class ResetCheckBox extends JCheckBox {
public String name; private static final long serialVersionUID = 6324945868965147832L;
public int mask; public int mask;
public JCheckBox checkBox;
public ResetItem(String name, int mask) { public ResetCheckBox(String name, int mask) {
this.name = name;
this.mask = mask; this.mask = mask;
checkBox = new JCheckBox(name); this.setText(name);
checkBox.addActionListener(new ActionListener() { this.addActionListener(new ActionListener() {
@Override @Override
public void actionPerformed(ActionEvent actionEvent) { public void actionPerformed(ActionEvent actionEvent) {
final JCheckBox source = (JCheckBox) actionEvent.getSource(); final JCheckBox source = (JCheckBox) actionEvent.getSource();
@ -158,10 +159,5 @@ public final class DS2ResetItemsPanel extends JDialog {
} }
}); });
} }
@Override
public String toString() {
return name;
}
} }
} }