From eac387e4724ee26c5b12f6612654d1db7744341c Mon Sep 17 00:00:00 2001 From: Seth Morabito Date: Sun, 10 Aug 2014 14:08:15 -0700 Subject: [PATCH] Make StatusPanel aware of the Machine --- src/main/java/com/loomcom/symon/Simulator.java | 12 ++++++------ .../java/com/loomcom/symon/ui/StatusPanel.java | 15 ++++++++++----- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/loomcom/symon/Simulator.java b/src/main/java/com/loomcom/symon/Simulator.java index 52adeaa..b4a418d 100644 --- a/src/main/java/com/loomcom/symon/Simulator.java +++ b/src/main/java/com/loomcom/symon/Simulator.java @@ -143,7 +143,7 @@ public class Simulator { // UI components used for I/O. this.console = new com.loomcom.symon.ui.Console(80, 25, DEFAULT_FONT); - this.statusPane = new StatusPanel(); + this.statusPane = new StatusPanel(machine); console.setBorderWidth(CONSOLE_BORDER_WIDTH); @@ -295,7 +295,7 @@ public class Simulator { SwingUtilities.invokeLater(new Runnable() { public void run() { // Now update the state - statusPane.updateState(machine.getCpu()); + statusPane.updateState(); memoryWindow.updateState(); } }); @@ -317,7 +317,7 @@ public class Simulator { if (traceLog.isVisible()) { traceLog.refresh(); } - statusPane.updateState(machine.getCpu()); + statusPane.updateState(); memoryWindow.updateState(); } }); @@ -364,7 +364,7 @@ public class Simulator { SwingUtilities.invokeLater(new Runnable() { public void run() { // Now update the state - statusPane.updateState(machine.getCpu()); + statusPane.updateState(); memoryWindow.updateState(); } }); @@ -396,7 +396,7 @@ public class Simulator { SwingUtilities.invokeLater(new Runnable() { public void run() { // Now update the state - statusPane.updateState(machine.getCpu()); + statusPane.updateState(); memoryWindow.updateState(); } }); @@ -443,7 +443,7 @@ public class Simulator { SwingUtilities.invokeLater(new Runnable() { public void run() { - statusPane.updateState(machine.getCpu()); + statusPane.updateState(); memoryWindow.updateState(); runStopButton.setText("Run"); stepButton.setEnabled(true); diff --git a/src/main/java/com/loomcom/symon/ui/StatusPanel.java b/src/main/java/com/loomcom/symon/ui/StatusPanel.java index addb4cc..99b7305 100644 --- a/src/main/java/com/loomcom/symon/ui/StatusPanel.java +++ b/src/main/java/com/loomcom/symon/ui/StatusPanel.java @@ -24,11 +24,14 @@ package com.loomcom.symon.ui; import com.loomcom.symon.Cpu; +import com.loomcom.symon.machines.Machine; import javax.swing.*; import javax.swing.border.Border; import javax.swing.border.EtchedBorder; import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; /** * UI component that displays the current state of the simulated CPU. @@ -73,14 +76,17 @@ public class StatusPanel extends JPanel { private JLabel xLabel; private JLabel yLabel; + private Machine machine; + private static final int EMPTY_BORDER = 10; private static final Border LABEL_BORDER = BorderFactory.createEmptyBorder(0, 5, 0, 0); private static final Font LABEL_FONT = new Font(Font.SANS_SERIF, Font.BOLD, 12); private static final Dimension LARGE_TEXT_FIELD_SIZE = new Dimension(134, 22); private static final Dimension SMALL_TEXT_FIELD_SIZE = new Dimension(65, 22); - public StatusPanel() { + public StatusPanel(Machine machine) { super(); + this.machine = machine; createUi(); } @@ -220,14 +226,13 @@ public class StatusPanel extends JPanel { /** * Update the display based on the current state of the CPU. - * - * @param cpu The simulated 6502 CPU. */ - public void updateState(Cpu cpu) { + public void updateState() { + Cpu cpu = machine.getCpu(); Cpu.CpuState cpuState = cpu.getCpuState(); // Update the Processor Status Flag display - int status = cpu.getCpuState().getStatusFlag(); + int status = cpuState.getStatusFlag(); carryFlagLabel.setIcon(iconForFlag(status, 0)); zeroFlagLabel.setIcon(iconForFlag(status, 1));