ui.debugger: new mini error dialog box for deployed apps

db4
Slava Pestov 2009-05-11 16:18:47 -05:00
parent 87717fa78c
commit f5af7977ec
4 changed files with 22 additions and 12 deletions

View File

@ -0,0 +1,19 @@
! Copyright (C) 2006, 2009 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
USING: accessors debugger io kernel namespaces prettyprint
ui.gadgets.panes ui.gadgets.worlds ui ;
IN: ui.debugger
: <error-pane> ( error -- pane )
<pane> [ [ print-error ] with-pane ] keep ; inline
: error-window ( error -- )
<error-pane> "Error" open-window ;
[ error-window ] ui-error-hook set-global
M: world-error error.
"An error occurred while drawing the world " write
dup world>> pprint-short "." print
"This world has been deactivated to prevent cascading errors." print
error>> error. ;

2
basis/ui/gadgets/presentations/presentations.factor Normal file → Executable file
View File

@ -1,7 +1,7 @@
! Copyright (C) 2005, 2009 Slava Pestov. ! Copyright (C) 2005, 2009 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: arrays accessors definitions hashtables io kernel sequences USING: arrays accessors definitions hashtables io kernel sequences
strings words help math models namespaces quotations ui.gadgets strings words math models namespaces quotations ui.gadgets
ui.gadgets.borders ui.gadgets.buttons ui.gadgets.buttons.private ui.gadgets.borders ui.gadgets.buttons ui.gadgets.buttons.private
ui.gadgets.labels ui.gadgets.menus ui.gadgets.worlds ui.gadgets.labels ui.gadgets.menus ui.gadgets.worlds
ui.gadgets.status-bar ui.commands ui.operations ui.gestures ; ui.gadgets.status-bar ui.commands ui.operations ui.gestures ;

2
basis/ui/operations/operations.factor Normal file → Executable file
View File

@ -2,7 +2,7 @@
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: accessors arrays definitions kernel ui.commands USING: accessors arrays definitions kernel ui.commands
ui.gestures sequences strings math words generic namespaces ui.gestures sequences strings math words generic namespaces
hashtables help.markup quotations assocs fry linked-assocs ; hashtables quotations assocs fry linked-assocs ;
IN: ui.operations IN: ui.operations
SYMBOL: +keyboard+ SYMBOL: +keyboard+

11
basis/ui/tools/debugger/debugger.factor Normal file → Executable file
View File

@ -8,7 +8,7 @@ ui.gadgets.buttons ui.gadgets.labels ui.gadgets.panes
ui.gadgets.presentations ui.gadgets.viewports ui.gadgets.tables ui.gadgets.presentations ui.gadgets.viewports ui.gadgets.tables
ui.gadgets.tracks ui.gadgets.scrollers ui.gadgets.panes ui.gadgets.tracks ui.gadgets.scrollers ui.gadgets.panes
ui.gadgets.borders ui.gadgets.status-bar ui.tools.traceback ui.gadgets.borders ui.gadgets.status-bar ui.tools.traceback
ui.tools.inspector ui.tools.browser ; ui.tools.inspector ui.tools.browser ui.debugger ;
IN: ui.tools.debugger IN: ui.tools.debugger
TUPLE: debugger < track error restarts restart-hook restart-list continuation ; TUPLE: debugger < track error restarts restart-hook restart-list continuation ;
@ -27,9 +27,6 @@ M: restart-renderer row-columns
t >>selection-required? t >>selection-required?
t >>single-click? ; inline t >>single-click? ; inline
: <error-pane> ( error -- pane )
<pane> [ [ print-error ] with-pane ] keep ; inline
: <error-display> ( debugger -- gadget ) : <error-display> ( debugger -- gadget )
[ <filled-pile> ] dip [ <filled-pile> ] dip
[ error>> <error-pane> add-gadget ] [ error>> <error-pane> add-gadget ]
@ -72,12 +69,6 @@ M: object error-in-debugger? drop f ;
[ rethrow ] [ error-continuation get debugger-window ] if [ rethrow ] [ error-continuation get debugger-window ] if
] ui-error-hook set-global ] ui-error-hook set-global
M: world-error error.
"An error occurred while drawing the world " write
dup world>> pprint-short "." print
"This world has been deactivated to prevent cascading errors." print
error>> error. ;
debugger "gestures" f { debugger "gestures" f {
{ T{ button-down } request-focus } { T{ button-down } request-focus }
} define-command-map } define-command-map