racket/collects/schemeunit/private/gui/controller.ss
Ryan Culpepper 3b630af6f9 schemeunit:
moved internal modules to schemeunit/private
  moved tests to tests/schemeunig
  added schemeunit/gui

drscheme:
  fixed bug in show-backtrace-window

svn: r18243
2010-02-21 01:03:42 +00:00

51 lines
1.6 KiB
Scheme

#lang scheme/base
(require scheme/class
unstable/class-iop
unstable/gui/notify
"../base.ss"
"interfaces.ss"
"model.ss"
"view.ss")
(provide controller%)
(define controller%
(class* object% (controller<%>)
(init display-window)
(super-new)
;; model-shown : (notify-box (U model<%> #f))
;; The model currently displayed in the Details view, of #f is none.
(define-notify selected-model (new notify-box% (value #f)))
(define view
(new view%
(controller this)
(parent (send display-window get-area-container))))
;; create-model : test suite<%>/#f -> result<%>
(define/public (create-model test parent)
(define result
(cond [(schemeunit-test-case? test)
(new case-result%
(controller this)
(test test)
(name (or (schemeunit-test-case-name test)
"<unnamed test-case>"))
(parent parent))]
[(schemeunit-test-suite? test)
(new suite-result%
(controller this)
(test test)
(name (or (schemeunit-test-suite-name test)
"<unnamed test-suite>"))
(parent parent))]))
(send/i view view<%> create-view-link result parent)
result)
;; on-model-status-change : model<%> -> void
(define/public (on-model-status-change model)
(send view queue-for-update model)
(let [(parent (send model get-parent))]
(when parent (send parent on-child-status-change model))))
))