private void btn_Show_PCB_Waiting_Click(object sender, RoutedEventArgs e) { SimulatorProcess selectedProcess = (SimulatorProcess)lst_WaitingProcesses.SelectedItem; if (selectedProcess == null) { MessageBox.Show("Please Select a Process"); return; } ProcessControlBlockWindow window = new ProcessControlBlockWindow(this, new LinkedListNode <ProcessControlBlock>(selectedProcess.ControlBlock)); window.Show(); }
private void btn_Pcb_Click(object sender, RoutedEventArgs e) { int selectedIndex = lst_Processes.SelectedIndex; if (selectedIndex < 0) { MessageBox.Show("Please Select a process to view its PCB"); return; } ProcessControlBlockWindow window = new ProcessControlBlockWindow(this, new LinkedListNode <ProcessControlBlock>(processes[selectedIndex].ControlBlock)); window.Show(); }
/// <summary> /// Constructor for process control block window when constructing from OperatingSystemMainWindow /// </summary> /// <param name="os_Parent"> the window that is creating this window</param> /// <param name="currentControlBlock"> the control block to be loaded</param> public ProcessControlBlockWindow(OperatingSystemMainWindow os_Parent, LinkedListNode <ProcessControlBlock> currentControlBlock) { this.os_Parent = os_Parent; this.main_Parent = null; this.procList_Parent = null; InitializeComponent(); currentInstance = this; this.currentControlBlock = currentControlBlock; currentControlBlocks = new LinkedList <ProcessControlBlock>(); if (currentControlBlock != null && currentControlBlock.Value != null) { currentControlBlocks.AddLast(currentControlBlock); } SetPCBWindowInstance(); }
/// <summary> /// Default Constructor for process control block window /// </summary> public ProcessControlBlockWindow() { InitializeComponent(); currentInstance = this; SetPCBWindowInstance(); }
private void ProcessControlBlockWindow1_Closing(object sender, System.ComponentModel.CancelEventArgs e) { currentInstance = null; SetPCBWindowInstance(); }