question: private void refreshDebugger ( final boolean programHasChanged ) { if ( programHasChanged ) { currentInstructionList . setListData ( getInstructionsAsStringArray ( programToDebug ) ) ; } final int start = debugPointer ; int end = debugPointer ; while ( end + 1 < programToDebug . length && programToDebugIsData [ end + 1 ] ) { end ++ ; } currentInstructionList . setSelectionInterval ( start , end ) ; if ( start != 0 ) { int forward = end + 3 ; if ( forward >= programToDebug . length ) { forward = programToDebug . length - 1 ; } currentInstructionList . ensureIndexIsVisible ( forward ) ; int back = start - 2 ; if ( back < 0 ) { back = 0 ; } currentInstructionList . ensureIndexIsVisible ( back ) ; currentInstructionList . ensureIndexIsVisible ( end ) ; } currentInstructionList . ensureIndexIsVisible ( start ) ; stackList . setListData ( stack . toStringArray ( ) ) ; cvtList . setListData ( cvt . getCVTForDebug ( ) ) ; storageList . setListData ( getStorageAsArray ( ) ) ; stateDisplay . repaint ( ) ; debugGlyphDisplay . repaint ( ) ; }
target:  DEBUG METHOD - Refreshes the debugger's display components.