package app; // Java imports import java.awt.*; import java.awt.event.*; import java.util.*; import javax.swing.*; // Project imports import util.*; import vue.*; // CPU window class CPUWindow extends ChildWindow { // Instance fields MainWindow parent; // Containing window // UI components private DisassemblerPane panDasm; // Disassembler client private RegisterList lstProgram; // Program register list private RegisterList lstSystem; // System register list /////////////////////////////////////////////////////////////////////////// // Constructors // /////////////////////////////////////////////////////////////////////////// // Default constructor CPUWindow(MainWindow parent) { super(parent, "cpu.title"); // Configure instance fields this.parent = parent; // Configure child panes panDasm = new DisassemblerPane(this); lstSystem = new RegisterList(this, true); lstProgram = new RegisterList(this, false); // Configure layout var inner = Util.splitPane(JSplitPane.VERTICAL_SPLIT); inner.setTopComponent(lstSystem); inner.setBottomComponent(lstProgram); var outer = Util.splitPane(JSplitPane.HORIZONTAL_SPLIT); outer.setLeftComponent(panDasm); outer.setRightComponent(inner); outer.setResizeWeight(1); // Configure component var client = getContentPane(); client.add(outer); client.setPreferredSize(new Dimension(480, 300)); pack(); } /////////////////////////////////////////////////////////////////////////// // Package Methods // /////////////////////////////////////////////////////////////////////////// // Update the display void refresh(boolean seekToPC) { panDasm .refresh(seekToPC); lstSystem .refresh(); lstProgram.refresh(); } }