frysk.gui.register
Class RegisterWindow

java.lang.Object
  extended by org.gnu.glib.Struct
      extended by org.gnu.glib.GObject
          extended by org.gnu.gtk.GtkObject
              extended by org.gnu.gtk.Widget
                  extended by org.gnu.gtk.Container
                      extended by org.gnu.gtk.Bin
                          extended by org.gnu.gtk.Window
                              extended by frysk.gui.register.RegisterWindow
All Implemented Interfaces:
Saveable

public class RegisterWindow
extends org.gnu.gtk.Window
implements Saveable


Nested Class Summary
(package private)  class RegisterWindow.BinCellListener
           
(package private)  class RegisterWindow.DecCellListener
           
(package private)  class RegisterWindow.HexCellListener
           
(package private)  class RegisterWindow.LockObserver
          Local Observer class used to poke this window from RunState when all the Tasks belonging to this window's Proc have been blocked.
(package private)  class RegisterWindow.OctCellListener
           
 
Field Summary
private  org.gnu.gtk.DataColumnDouble alignmentColumn
           
private  org.gnu.gtk.DataColumnString binaryBigEndianColumn
           
private  org.gnu.gtk.DataColumnString binaryLittleEndianColumn
           
private  boolean closed
           
protected static String[] colNames
           
private  org.gnu.gtk.DataColumn[] cols
           
private  org.gnu.gtk.TreeViewColumn[] columns
           
protected  boolean[] colVisible
           
private  org.gnu.gtk.DataColumnString decimalBigEndianColumn
           
private  org.gnu.gtk.DataColumnString decimalLittleEndianColumn
           
private  RegisterFormatDialog formatDialog
           
private  org.gnu.glade.LibGlade glade
           
static String gladePath
           
private  org.gnu.gtk.DataColumnString hexidecimalBigEndianColumn
           
private  org.gnu.gtk.DataColumnString hexidecimalLittleEndianColumn
           
private  RegisterWindow.LockObserver lock
           
private  Task myTask
           
private  Observable observable
           
private  org.gnu.gtk.DataColumnString octalBigEndianColumn
           
private  org.gnu.gtk.DataColumnString octalLittleEndianColumn
           
private  Preferences prefs
           
private  org.gnu.gtk.DataColumnObject registerColumn
           
private  org.gnu.gtk.DataColumnString registerNameColumn
           
private  org.gnu.gtk.TreeView registerView
           
private  boolean RW_active
           
private  boolean toggle
           
private  org.gnu.gtk.DataColumnObject typeColumn
           
private  org.gnu.gtk.DataColumnObject valueColumn
           
 
Fields inherited from class org.gnu.glib.GObject
eventsInitialized
 
Constructor Summary
RegisterWindow(org.gnu.glade.LibGlade glade)
          The RegisterWindow allows the display and editing of the names and values of system registers.
 
Method Summary
private  void desensitize()
           
 void finishRegWin(Proc proc)
          Initializes the Glade file, the RegisterWindow itself, adds listeners and Assigns the Proc.
 boolean getClosed()
           
 RegisterWindow.LockObserver getLockObserver()
          Returns this RegisterWindow's LockObserver.
 Task getMyTask()
          Returns the Task being examined by this Window.
 boolean hasTaskSet()
          Check to see if the task to be examined has already been set.
 void load(Preferences prefs)
          Loads the saved preferences of this window.
private  void refreshList()
          Refreshes the TreeView displayed to the user with values grabbed from the Register Objects in the model.
private  void resensitize()
           
private  void resetList()
           
 void resetTask(Task task)
           
 void save(Preferences prefs)
          Saves the new preferences of this window.
private  void saveBinaryValue(Value val, org.gnu.gtk.TreePath path)
          Saves the incoming binary value to the model.
 void setClosed(boolean closed)
           
 void setIsRunning(boolean running)
          Sets whether the task is running or not, and if it is diable the widgets in the window
 void setObservable(Observable o)
           
 void setTask(Task myTask)
          Sets the task to be examined by this RegisterWindow.
private  void setValues(Task myTask, org.gnu.gtk.ListStore model)
           
private  String stringUsingValue(Value value, ArithmeticType type, Format format)
           
private static BigInteger swizzleByteOrder(BigInteger val, int bitLength)
          Reverse the byte order of an integer.
private  void writeBinaryValue(BigInteger val, org.gnu.gtk.TreePath path)
          Writes the incoming binary value to the Register Object for this Task.
private  void writeBinaryValue(String rawString, int radix, boolean littleEndian, org.gnu.gtk.TreePath path)
          Writes the incoming binary value to the Register Object for this Task.
 
Methods inherited from class org.gnu.gtk.Window
addAccelGroup, checkState, deiconify, destroy, finalize, fullscreen, getAcceptFocus, getDefaultIconList, getFocusOnMap, getFocusWidget, getGravity, getIcon, getIconList, getIconName, getPosition, getScreen, getSize, getSkipPagerHint, getSkipTaskbarHint, getTitle, getTransientParent, getType, getWindow, gtk_window_activate_default, gtk_window_activate_focus, gtk_window_add_accel_group, gtk_window_add_mnemonic, gtk_window_begin_move_drag, gtk_window_begin_resize_drag, gtk_window_deiconify, gtk_window_fullscreen, gtk_window_get_accept_focus, gtk_window_get_decorated, gtk_window_get_default_icon_list, gtk_window_get_default_size, gtk_window_get_destroy_with_parent, gtk_window_get_focus, gtk_window_get_frame_dimensions, gtk_window_get_gravity, gtk_window_get_has_frame, gtk_window_get_icon_list, gtk_window_get_icon, gtk_window_get_mnemonic_modifier, gtk_window_get_modal, gtk_window_get_position, gtk_window_get_resizable, gtk_window_get_role, gtk_window_get_screen, gtk_window_get_size, gtk_window_get_skip_pager_hint, gtk_window_get_skip_taskbar_hint, gtk_window_get_title, gtk_window_get_transient_for, gtk_window_get_type_hint, gtk_window_get_type, gtk_window_has_toplevel_focus, gtk_window_iconify, gtk_window_is_active, gtk_window_list_toplevels, gtk_window_maximize, gtk_window_mnemonic_activate, gtk_window_move, gtk_window_new, gtk_window_parse_geometry, gtk_window_present, gtk_window_remove_accel_group, gtk_window_remove_mnemonic, gtk_window_resize, gtk_window_set_accept_focus, gtk_window_set_auto_startup_notification, gtk_window_set_decorated, gtk_window_set_default_icon_from_file, gtk_window_set_default_icon_list, gtk_window_set_default_icon, gtk_window_set_default_size, gtk_window_set_default, gtk_window_set_destroy_with_parent, gtk_window_set_focus, gtk_window_set_frame_dimensions, gtk_window_set_geometry_hints, gtk_window_set_gravity, gtk_window_set_has_frame, gtk_window_set_icon_from_file, gtk_window_set_icon_list, gtk_window_set_icon, gtk_window_set_keep_above, gtk_window_set_keep_below, gtk_window_set_mnemonic_modifier, gtk_window_set_modal, gtk_window_set_position, gtk_window_set_resizable, gtk_window_set_role, gtk_window_set_screen, gtk_window_set_skip_pager_hint, gtk_window_set_skip_taskbar_hint, gtk_window_set_title, gtk_window_set_transient_for, gtk_window_set_type_hint, gtk_window_set_wmclass, gtk_window_stick, gtk_window_unfullscreen, gtk_window_unmaximize, gtk_window_unstick, hasToplevelFocus, iconify, isActive, isDestroyed, listToplevelWindows, maximize, move, present, removeAccelGroup, resize, setAcceptFocus, setAutoStartupNotification, setDecorated, setDefaultIcon, setDefaultIconFromFile, setDefaultIconList, setDefaultIconName, setDefaultSize, setDefaultWidget, setFocusOnMap, setFocusWidget, setGeometryHints, setGravity, setIcon, setIconFromFile, setIconList, setIconName, setKeepAbove, setKeepBelow, setModal, setPosition, setResizable, setScreen, setSkipPagerHint, setSkipTaskbarHint, setTitle, setTransientParent, stick, unfullscreen, unmaximize, unstick
 
Methods inherited from class org.gnu.gtk.Bin
getBin, getChild, gtk_bin_get_child, gtk_bin_get_type
 
Methods inherited from class org.gnu.gtk.Container
add, addListener, fireContainerEvent, getBooleanChildProperty, getBorderWidth, getChildProperty, getChildren, getContainer, getEventListenerClass, getEventType, getIntChildProperty, getResizeMode, gtk_container_add, gtk_container_check_resize, gtk_container_child_get_property, gtk_container_child_set_property, gtk_container_child_type, gtk_container_get_border_width, gtk_container_get_children, gtk_container_get_focus_chain, gtk_container_get_focus_hadjustment, gtk_container_get_focus_vadjustment, gtk_container_get_resize_mode, gtk_container_get_type, gtk_container_propagate_expose, gtk_container_remove, gtk_container_resize_children, gtk_container_set_border_width, gtk_container_set_focus_chain, gtk_container_set_focus_child, gtk_container_set_focus_hadjustment, gtk_container_set_focus_vadjustment, gtk_container_set_reallocate_redraws, gtk_container_set_resize_mode, gtk_container_unset_focus_chain, remove, removeListener, resizeChildren, setBooleanChildProperty, setBorderWidth, setChildProperty, setIntChildProperty, setResizeMode
 
Methods inherited from class org.gnu.gtk.Widget
activate, addAccelerator, addEvents, addListener, addListener, addListener, addListener, addListener, addListener, addListener, addListener, addListener, addListener, addListener, canActivateAccel, createContext, createLayout, draw, drawArea, drawArea, findListener, finish, fireBooleanLifeCycleEvent, fireConfigureEvent, fireDeleteDragDataEvent, fireDragMotionEvent, fireDropDragEvent, fireEndDragEvent, fireExposeEvent, fireFocusEvent, fireKeyEvent, fireLeaveDragDestinationEvent, fireLifeCycleEvent, fireMouseEvent, fireMouseMotionEvent, fireReceiveDragDataEvent, fireRequestDragDataEvent, fireStartDragEvent, getAccessible, getAllocation, getCanFocus, getColormap, getContext, getData, getDisplay, getDragData, getExtensionEvents, getModifierStyle, getName, getParent, getParentWindow, getPointer, getRootWindow, getSensitive, getStyle, getToplevel, getWidget, getWindow, grabDefault, grabFocus, gtk_drag_dest_set, gtk_drag_dest_unset, gtk_drag_finish, gtk_drag_get_data, gtk_drag_highlight, gtk_drag_source_set_icon_pixbuf, gtk_drag_source_set_icon_stock, gtk_drag_source_set_icon, gtk_drag_source_set, gtk_drag_source_unset, gtk_drag_unhighlight, gtk_widget_activate, gtk_widget_add_accelerator, gtk_widget_add_events, gtk_widget_add_mnemonic_label, gtk_widget_can_activate_accel, gtk_widget_child_focus, gtk_widget_child_notify, gtk_widget_class_path, gtk_widget_create_pango_context, gtk_widget_create_pango_layout, gtk_widget_destroy, gtk_widget_destroyed, gtk_widget_ensure_style, gtk_widget_event, gtk_widget_freeze_child_notify, gtk_widget_get_accessible, gtk_widget_get_allocation, gtk_widget_get_ancestor, gtk_widget_get_child_requisition, gtk_widget_get_child_visible, gtk_widget_get_colormap, gtk_widget_get_composite_name, gtk_widget_get_default_colormap, gtk_widget_get_default_direction, gtk_widget_get_default_style, gtk_widget_get_default_visual, gtk_widget_get_direction, gtk_widget_get_display, gtk_widget_get_events, gtk_widget_get_extension_events, gtk_widget_get_modifier_style, gtk_widget_get_name, gtk_widget_get_pango_context, gtk_widget_get_parent_window, gtk_widget_get_parent, gtk_widget_get_pointer, gtk_widget_get_root_window, gtk_widget_get_screen, gtk_widget_get_sensitive, gtk_widget_get_settings, gtk_widget_get_size_request, gtk_widget_get_style, gtk_widget_get_toplevel, gtk_widget_get_type, gtk_widget_get_visual, gtk_widget_get_window, gtk_widget_grab_default, gtk_widget_grab_focus, gtk_widget_has_screen, gtk_widget_hide_all, gtk_widget_hide_on_delete, gtk_widget_hide, gtk_widget_intersect, gtk_widget_is_ancestor, gtk_widget_is_focus, gtk_widget_list_accel_closures, gtk_widget_list_mnemonic_labels, gtk_widget_map, gtk_widget_mnemonic_activate, gtk_widget_modify_base, gtk_widget_modify_bg, gtk_widget_modify_fg, gtk_widget_modify_font, gtk_widget_modify_style, gtk_widget_modify_text, gtk_widget_path, gtk_widget_pop_colormap, gtk_widget_pop_composite_child, gtk_widget_push_colormap, gtk_widget_push_composite_child, gtk_widget_queue_draw_area, gtk_widget_queue_draw, gtk_widget_queue_resize, gtk_widget_realize, gtk_widget_region_intersect, gtk_widget_remove_accelerator, gtk_widget_remove_mnemonic_label, gtk_widget_render_icon, gtk_widget_reparent, gtk_widget_reset_rc_styles, gtk_widget_send_expose, gtk_widget_set_accel_path, gtk_widget_set_app_paintable, gtk_widget_set_child_visible, gtk_widget_set_colormap, gtk_widget_set_composite_name, gtk_widget_set_default_colormap, gtk_widget_set_default_direction, gtk_widget_set_direction, gtk_widget_set_double_buffered, gtk_widget_set_events, gtk_widget_set_extension_events, gtk_widget_set_name, gtk_widget_set_parent_window, gtk_widget_set_parent, gtk_widget_set_redraw_on_allocate, gtk_widget_set_scroll_adjustments, gtk_widget_set_sensitive, gtk_widget_set_size_request, gtk_widget_set_state, gtk_widget_set_style, gtk_widget_shape_combine_mask, gtk_widget_show_all, gtk_widget_show_now, gtk_widget_show, gtk_widget_size_allocate, gtk_widget_size_request, gtk_widget_style_get_property, gtk_widget_thaw_child_notify, gtk_widget_translate_coordinates, gtk_widget_unmap, gtk_widget_unparent, gtk_widget_unrealize, handleButtonPressed, handleButtonReleased, handleConfigure, handleDelete, handleDestroy, handleDragDataDeleted, handleDragDataReceived, handleDragDataRequested, handleDragDestinationLeft, handleDragDropped, handleDragEnded, handleDragMotionOccurred, handleDragStarted, handleExpose, handleFocusIn, handleFocusOut, handleHide, handleKeyPressed, handleKeyReleased, handleMap, handleMouseEnter, handleMouseLeave, handleMouseMotion, handleNoExpose, handleRealize, handleScroll, handleShow, handleUnmap, handleUnrealize, hasFocus, hasScreen, hide, hideAll, highlight, highlight, intersect, isAncestor, makeWidget, modifyStyle, popColormap, pushColormap, realize, removeAccelerator, removeListener, removeListener, removeListener, removeListener, removeListener, removeListener, removeListener, removeListener, removeListener, removeListener, removeListener, reparent, setBackgroundColor, setBaseColor, setCanFocus, setColormap, setDoubleBuffered, setDragDestination, setDragIcon, setDragIconPixbuf, setDragIconStock, setDragSource, setEvents, setExtensionEvents, setFont, setForegroundColor, setMinimumSize, setName, setNoDragDestination, setNoDragSource, setSensitive, setTextColor, shapeCombineMask, show, showAll, unHighlight, unHighlight
 
Methods inherited from class org.gnu.gtk.GtkObject
getFlags, gtk_object_destroy, gtk_object_get_type, gtk_object_sink, setFlags, sink
 
Methods inherited from class org.gnu.glib.GObject
addEventHandler, addEventHandler, addEventHandler, addEventHandler, addEventHandler, addEventHandler, addEventHandler, addListener, collect, freezeNotify, getBooleanProperty, getData, getData, getDoubleProperty, getFloatProperty, getGObjectFromHandle, getIntFromHandle, getIntProperty, getJavaObjectProperty, getLongProperty, getPixbufProperty, getProperty, getStringFromHandle, getStringProperty, hasProperty, instantiateJGObjectFromGType, notify, removeEventHandler, removeListener, retrieveGObject, setBooleanProperty, setData, setData, setDoubleProperty, setFloatProperty, setIntProperty, setJavaObjectProperty, setLongProperty, setPixbufProperty, setProperty, setStringProperty, thawNotify
 
Methods inherited from class org.gnu.glib.Struct
equals, getHandle, getNullHandle, hashCode, setHandle
 
Methods inherited from class java.lang.Object
clone, getClass, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

gladePath

public static String gladePath

myTask

private Task myTask

glade

private org.gnu.glade.LibGlade glade

prefs

private Preferences prefs

registerNameColumn

private org.gnu.gtk.DataColumnString registerNameColumn

decimalLittleEndianColumn

private org.gnu.gtk.DataColumnString decimalLittleEndianColumn

decimalBigEndianColumn

private org.gnu.gtk.DataColumnString decimalBigEndianColumn

hexidecimalLittleEndianColumn

private org.gnu.gtk.DataColumnString hexidecimalLittleEndianColumn

hexidecimalBigEndianColumn

private org.gnu.gtk.DataColumnString hexidecimalBigEndianColumn

octalLittleEndianColumn

private org.gnu.gtk.DataColumnString octalLittleEndianColumn

octalBigEndianColumn

private org.gnu.gtk.DataColumnString octalBigEndianColumn

binaryLittleEndianColumn

private org.gnu.gtk.DataColumnString binaryLittleEndianColumn

binaryBigEndianColumn

private org.gnu.gtk.DataColumnString binaryBigEndianColumn

registerColumn

private org.gnu.gtk.DataColumnObject registerColumn

alignmentColumn

private org.gnu.gtk.DataColumnDouble alignmentColumn

valueColumn

private org.gnu.gtk.DataColumnObject valueColumn

typeColumn

private org.gnu.gtk.DataColumnObject typeColumn

cols

private org.gnu.gtk.DataColumn[] cols

colNames

protected static String[] colNames

colVisible

protected boolean[] colVisible

columns

private org.gnu.gtk.TreeViewColumn[] columns

formatDialog

private RegisterFormatDialog formatDialog

registerView

private org.gnu.gtk.TreeView registerView

RW_active

private boolean RW_active

observable

private Observable observable

lock

private RegisterWindow.LockObserver lock

toggle

private boolean toggle

closed

private boolean closed
Constructor Detail

RegisterWindow

public RegisterWindow(org.gnu.glade.LibGlade glade)
The RegisterWindow allows the display and editing of the names and values of system registers. The values of the registers can be displayed in decimal, hexadecimal, octal, or binary. Manipulating the registers is only possible when the task is stopped, otherwise all functionality is disabled. The RegisterWindow is created dynamically from the RegisterWindowFactory.

Parameters:
task - The Task for which to display the registers
glade - The glade file for the register window
Method Detail

finishRegWin

public void finishRegWin(Proc proc)
Initializes the Glade file, the RegisterWindow itself, adds listeners and Assigns the Proc.

Parameters:
proc - The Proc to be examined by rw.

setObservable

public void setObservable(Observable o)

hasTaskSet

public boolean hasTaskSet()
Check to see if the task to be examined has already been set.

Returns:
False if myTask is null, True otherwise.

setTask

public void setTask(Task myTask)
Sets the task to be examined by this RegisterWindow. Also initializes the ISA used and does most of the work setting up the initial members used by this class.

Parameters:
myTask - The Task to be examined by this RegisterWindow.

setValues

private void setValues(Task myTask,
                       org.gnu.gtk.ListStore model)

resetTask

public void resetTask(Task task)

setIsRunning

public void setIsRunning(boolean running)
Sets whether the task is running or not, and if it is diable the widgets in the window

Parameters:
running - Whether the task is running TODO: Should we be listening to the Task for some sort of an event in this regard?

save

public void save(Preferences prefs)
Saves the new preferences of this window.

Specified by:
save in interface Saveable
Parameters:
prefs - The preference node to be saved.

load

public void load(Preferences prefs)
Loads the saved preferences of this window.

Specified by:
load in interface Saveable
Parameters:
prefs - The preference node used to load preferences.

stringUsingValue

private String stringUsingValue(Value value,
                                ArithmeticType type,
                                Format format)

resetList

private void resetList()

refreshList

private void refreshList()
Refreshes the TreeView displayed to the user with values grabbed from the Register Objects in the model.


swizzleByteOrder

private static BigInteger swizzleByteOrder(BigInteger val,
                                           int bitLength)
Reverse the byte order of an integer.

Parameters:
val - The value to be reversed
bitLength - The number of bits in this value.

saveBinaryValue

private void saveBinaryValue(Value val,
                             org.gnu.gtk.TreePath path)
Saves the incoming binary value to the model.

Parameters:
val - The binary value to save
path - The path used to get the TreeIter from the model.

writeBinaryValue

private void writeBinaryValue(BigInteger val,
                              org.gnu.gtk.TreePath path)
Writes the incoming binary value to the Register Object for this Task.

Parameters:
val - The binary value to write
path - The TreePath used to get the TreeIter from the model.

writeBinaryValue

private void writeBinaryValue(String rawString,
                              int radix,
                              boolean littleEndian,
                              org.gnu.gtk.TreePath path)
Writes the incoming binary value to the Register Object for this Task. If the string is not negative but the sign bit of the register will be set, ensure that the BigInteger value is negative.

Parameters:
rawString - The String containing the value to write.
radix - The radix to convert rawString to.
littleEndian - The endianness of the incoming value.
path - The path used to get the TreeIter from this model.

desensitize

private void desensitize()

resensitize

private void resensitize()

getMyTask

public Task getMyTask()
Returns the Task being examined by this Window.

Returns:
myTask The Task being examined.

getClosed

public boolean getClosed()

setClosed

public void setClosed(boolean closed)

getLockObserver

public RegisterWindow.LockObserver getLockObserver()
Returns this RegisterWindow's LockObserver.

Returns:
lock This RegisterWindow's LockObserver