pvbemu/src/desktop/app/CPUWindow.java

72 lines
2.0 KiB
Java

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();
}
}