72 lines
2.0 KiB
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();
|
|
}
|
|
|
|
}
|