frysk.gui.register
Class RegisterWindowFactory

java.lang.Object
  extended by frysk.gui.register.RegisterWindowFactory

public class RegisterWindowFactory
extends Object

Factory for creating RegisterWindows - allows multiple RegisterWindows to be instantiated for different processes, and disallows multiple windows on the same process. Uses a ProcBlockCounter to co-ordinate the un-blocking of the process between the Memory and SourceWindows if the other two are also running on that process. A singleton class dynamically creating RegisterWindows.


Field Summary
static RegisterWindow regWin
           
 
Constructor Summary
RegisterWindowFactory()
           
 
Method Summary
static void createRegisterWindow(Proc proc, SteppingEngine steppingEngine)
          Performs checks to ensure no other RegisterWindow is running on this Task; if not, assigns a ProcBlockCounter and attaches an Observer if there is no other Window already running on this Task.
static void setRegWin(Proc proc)
          Used by the SourceWindow to assign the static regWin object which it uses to ensure there is only one RegisterWindow running for its Task.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

regWin

public static RegisterWindow regWin
Constructor Detail

RegisterWindowFactory

public RegisterWindowFactory()
Method Detail

createRegisterWindow

public static void createRegisterWindow(Proc proc,
                                        SteppingEngine steppingEngine)
Performs checks to ensure no other RegisterWindow is running on this Task; if not, assigns a ProcBlockCounter and attaches an Observer if there is no other Window already running on this Task.

Parameters:
proc - The Proc to be examined by the new RegisterWindow.

setRegWin

public static void setRegWin(Proc proc)
Used by the SourceWindow to assign the static regWin object which it uses to ensure there is only one RegisterWindow running for its Task.

Parameters:
proc - The Proc used to find the RegisterWindow representing it.