[html-bar/line/pie/scatter] guard all old api calls

This commit guards old jqplot API calls being used with html-chart
objects. Mainly useful for developers who are transitioning from old
API to new API, providing error message instead of report crash.
This commit is contained in:
Christopher Lam 2019-06-21 21:22:40 +08:00
parent 6b74f80bc3
commit 10a0e5c166
4 changed files with 188 additions and 0 deletions

View File

@ -43,6 +43,17 @@
button-2-legend-urls
button-3-legend-urls)))
(define-syntax-rule (gnc:guard-html-chart api)
;; this macro applied to old html-bar/line/scatter/pie apis will
;; guard a report writer from passing html-chart objects. this
;; should be removed in 5.x series.
(let ((old-api api))
(set! api
(lambda args
(if (and (pair? args) (gnc:html-chart? (car args)))
(gnc:warn "using old-api " (procedure-name api) " on html-chart object. set options via gnc:html-chart-set! or its shortcuts gnc:html-chart-set-title! etc, and set data via gnc:html-chart-add-data-series! see sample-graphs.scm for examples.")
(apply old-api args))))))
(define gnc:html-barchart?
(record-predicate <html-barchart>))
@ -297,3 +308,47 @@
(else
(gnc:warn "null-data, not rendering barchart")
""))))
(gnc:guard-html-chart gnc:html-barchart-data)
(gnc:guard-html-chart gnc:html-barchart-set-data!)
(gnc:guard-html-chart gnc:html-barchart-width)
(gnc:guard-html-chart gnc:html-barchart-set-width!)
(gnc:guard-html-chart gnc:html-barchart-height)
(gnc:guard-html-chart gnc:html-barchart-set-height!)
(gnc:guard-html-chart gnc:html-barchart-x-axis-label)
(gnc:guard-html-chart gnc:html-barchart-set-x-axis-label!)
(gnc:guard-html-chart gnc:html-barchart-y-axis-label)
(gnc:guard-html-chart gnc:html-barchart-set-y-axis-label!)
(gnc:guard-html-chart gnc:html-barchart-row-labels)
(gnc:guard-html-chart gnc:html-barchart-set-row-labels!)
(gnc:guard-html-chart gnc:html-barchart-row-labels-rotated?)
(gnc:guard-html-chart gnc:html-barchart-set-row-labels-rotated?!)
(gnc:guard-html-chart gnc:html-barchart-stacked?)
(gnc:guard-html-chart gnc:html-barchart-set-stacked?!)
(gnc:guard-html-chart gnc:html-barchart-col-labels)
(gnc:guard-html-chart gnc:html-barchart-set-col-labels!)
(gnc:guard-html-chart gnc:html-barchart-col-colors)
(gnc:guard-html-chart gnc:html-barchart-set-col-colors!)
(gnc:guard-html-chart gnc:html-barchart-legend-reversed?)
(gnc:guard-html-chart gnc:html-barchart-set-legend-reversed?!)
(gnc:guard-html-chart gnc:html-barchart-title)
(gnc:guard-html-chart gnc:html-barchart-set-title!)
(gnc:guard-html-chart gnc:html-barchart-subtitle)
(gnc:guard-html-chart gnc:html-barchart-set-subtitle!)
(gnc:guard-html-chart gnc:html-barchart-button-1-bar-urls)
(gnc:guard-html-chart gnc:html-barchart-set-button-1-bar-urls!)
(gnc:guard-html-chart gnc:html-barchart-button-2-bar-urls)
(gnc:guard-html-chart gnc:html-barchart-set-button-2-bar-urls!)
(gnc:guard-html-chart gnc:html-barchart-button-3-bar-urls)
(gnc:guard-html-chart gnc:html-barchart-set-button-3-bar-urls!)
(gnc:guard-html-chart gnc:html-barchart-button-1-legend-urls)
(gnc:guard-html-chart gnc:html-barchart-set-button-1-legend-urls!)
(gnc:guard-html-chart gnc:html-barchart-button-2-legend-urls)
(gnc:guard-html-chart gnc:html-barchart-set-button-2-legend-urls!)
(gnc:guard-html-chart gnc:html-barchart-button-3-legend-urls)
(gnc:guard-html-chart gnc:html-barchart-set-button-3-legend-urls!)
(gnc:guard-html-chart gnc:html-barchart-append-row!)
(gnc:guard-html-chart gnc:html-barchart-prepend-row!)
(gnc:guard-html-chart gnc:html-barchart-append-column!)
(gnc:guard-html-chart gnc:html-barchart-prepend-column!)
(gnc:guard-html-chart gnc:html-barchart-render)

View File

@ -50,6 +50,17 @@
button-3-legend-urls
line-width)))
(define-syntax-rule (gnc:guard-html-chart api)
;; this macro applied to old html-bar/line/scatter/pie apis will
;; guard a report writer from passing html-chart objects. this
;; should be removed in 5.x series.
(let ((old-api api))
(set! api
(lambda args
(if (and (pair? args) (gnc:html-chart? (car args)))
(gnc:warn "using old-api " (procedure-name api) " on html-chart object. set options via gnc:html-chart-set! or its shortcuts gnc:html-chart-set-title! etc, and set data via gnc:html-chart-add-data-series! see sample-graphs.scm for examples.")
(apply old-api args))))))
(define gnc:html-linechart?
(record-predicate <html-linechart>))
@ -358,3 +369,55 @@
(gnc:warn "null-data, not rendering linechart")
""))))
(gnc:guard-html-chart gnc:html-linechart-data)
(gnc:guard-html-chart gnc:html-linechart-set-data!)
(gnc:guard-html-chart gnc:html-linechart-width)
(gnc:guard-html-chart gnc:html-linechart-set-width!)
(gnc:guard-html-chart gnc:html-linechart-height)
(gnc:guard-html-chart gnc:html-linechart-set-height!)
(gnc:guard-html-chart gnc:html-linechart-x-axis-label)
(gnc:guard-html-chart gnc:html-linechart-set-x-axis-label!)
(gnc:guard-html-chart gnc:html-linechart-y-axis-label)
(gnc:guard-html-chart gnc:html-linechart-set-y-axis-label!)
(gnc:guard-html-chart gnc:html-linechart-row-labels)
(gnc:guard-html-chart gnc:html-linechart-set-row-labels!)
(gnc:guard-html-chart gnc:html-linechart-row-labels-rotated?)
(gnc:guard-html-chart gnc:html-linechart-set-row-labels-rotated?!)
(gnc:guard-html-chart gnc:html-linechart-stacked?)
(gnc:guard-html-chart gnc:html-linechart-set-stacked?!)
(gnc:guard-html-chart gnc:html-linechart-markers?)
(gnc:guard-html-chart gnc:html-linechart-set-markers?!)
(gnc:guard-html-chart gnc:html-linechart-major-grid?)
(gnc:guard-html-chart gnc:html-linechart-set-major-grid?!)
(gnc:guard-html-chart gnc:html-linechart-minor-grid?)
(gnc:guard-html-chart gnc:html-linechart-set-minor-grid?!)
(gnc:guard-html-chart gnc:html-linechart-col-labels)
(gnc:guard-html-chart gnc:html-linechart-set-col-labels!)
(gnc:guard-html-chart gnc:html-linechart-col-colors)
(gnc:guard-html-chart gnc:html-linechart-set-col-colors!)
(gnc:guard-html-chart gnc:html-linechart-legend-reversed?)
(gnc:guard-html-chart gnc:html-linechart-set-legend-reversed?!)
(gnc:guard-html-chart gnc:html-linechart-title)
(gnc:guard-html-chart gnc:html-linechart-set-title!)
(gnc:guard-html-chart gnc:html-linechart-subtitle)
(gnc:guard-html-chart gnc:html-linechart-set-subtitle!)
(gnc:guard-html-chart gnc:html-linechart-button-1-line-urls)
(gnc:guard-html-chart gnc:html-linechart-set-button-1-line-urls!)
(gnc:guard-html-chart gnc:html-linechart-button-2-line-urls)
(gnc:guard-html-chart gnc:html-linechart-set-button-2-line-urls!)
(gnc:guard-html-chart gnc:html-linechart-button-3-line-urls)
(gnc:guard-html-chart gnc:html-linechart-set-button-3-line-urls!)
(gnc:guard-html-chart gnc:html-linechart-button-1-legend-urls)
(gnc:guard-html-chart gnc:html-linechart-set-button-1-legend-urls!)
(gnc:guard-html-chart gnc:html-linechart-button-2-legend-urls)
(gnc:guard-html-chart gnc:html-linechart-set-button-2-legend-urls!)
(gnc:guard-html-chart gnc:html-linechart-button-3-legend-urls)
(gnc:guard-html-chart gnc:html-linechart-set-button-3-legend-urls!)
(gnc:guard-html-chart gnc:html-linechart-append-row!)
(gnc:guard-html-chart gnc:html-linechart-prepend-row!)
(gnc:guard-html-chart gnc:html-linechart-append-column!)
(gnc:guard-html-chart gnc:html-linechart-prepend-column!)
(gnc:guard-html-chart gnc:html-linechart-render)
(gnc:guard-html-chart gnc:html-linechart-set-line-width!)
(gnc:guard-html-chart gnc:html-linechart-line-width)

View File

@ -41,6 +41,16 @@
(define gnc:html-piechart?
(record-predicate <html-piechart>))
(define-syntax-rule (gnc:guard-html-chart api)
;; this macro applied to old html-bar/line/scatter/pie apis will
;; guard a report writer from passing html-chart objects. this
;; should be removed in 5.x series.
(let ((old-api api))
(set! api
(lambda args
(if (and (pair? args) (gnc:html-chart? (car args)))
(gnc:warn "using old-api " (procedure-name api) " on html-chart object. set options via gnc:html-chart-set! or its shortcuts gnc:html-chart-set-title! etc, and set data via gnc:html-chart-add-data-series! see sample-graphs.scm for examples.")
(apply old-api args))))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; <html-piechart> class
@ -161,3 +171,31 @@
(else
(gnc:warn "null-data, not rendering piechart")
""))))
(gnc:guard-html-chart gnc:html-piechart-data)
(gnc:guard-html-chart gnc:html-piechart-set-data!)
(gnc:guard-html-chart gnc:html-piechart-width)
(gnc:guard-html-chart gnc:html-piechart-set-width!)
(gnc:guard-html-chart gnc:html-piechart-height)
(gnc:guard-html-chart gnc:html-piechart-set-height!)
(gnc:guard-html-chart gnc:html-piechart-labels)
(gnc:guard-html-chart gnc:html-piechart-set-labels!)
(gnc:guard-html-chart gnc:html-piechart-colors)
(gnc:guard-html-chart gnc:html-piechart-set-colors!)
(gnc:guard-html-chart gnc:html-piechart-title)
(gnc:guard-html-chart gnc:html-piechart-set-title!)
(gnc:guard-html-chart gnc:html-piechart-subtitle)
(gnc:guard-html-chart gnc:html-piechart-set-subtitle!)
(gnc:guard-html-chart gnc:html-piechart-button-1-slice-urls)
(gnc:guard-html-chart gnc:html-piechart-set-button-1-slice-urls!)
(gnc:guard-html-chart gnc:html-piechart-button-2-slice-urls)
(gnc:guard-html-chart gnc:html-piechart-set-button-2-slice-urls!)
(gnc:guard-html-chart gnc:html-piechart-button-3-slice-urls)
(gnc:guard-html-chart gnc:html-piechart-set-button-3-slice-urls!)
(gnc:guard-html-chart gnc:html-piechart-button-1-legend-urls)
(gnc:guard-html-chart gnc:html-piechart-set-button-1-legend-urls!)
(gnc:guard-html-chart gnc:html-piechart-button-2-legend-urls)
(gnc:guard-html-chart gnc:html-piechart-set-button-2-legend-urls!)
(gnc:guard-html-chart gnc:html-piechart-button-3-legend-urls)
(gnc:guard-html-chart gnc:html-piechart-set-button-3-legend-urls!)
(gnc:guard-html-chart gnc:html-piechart-render)

View File

@ -44,6 +44,17 @@
markercolor
)))
(define-syntax-rule (gnc:guard-html-chart api)
;; this macro applied to old html-bar/line/scatter/pie apis will
;; guard a report writer from passing html-chart objects. this
;; should be removed in 5.x series.
(let ((old-api api))
(set! api
(lambda args
(if (and (pair? args) (gnc:html-chart? (car args)))
(gnc:warn "using old-api " (procedure-name api) " on html-chart object. set options via gnc:html-chart-set! or its shortcuts gnc:html-chart-set-title! etc, and set data via gnc:html-chart-add-data-series! see sample-graphs.scm for examples.")
(apply old-api args))))))
(define gnc:html-scatter?
(record-predicate <html-scatter>))
@ -162,3 +173,24 @@
(else
(gnc:warn "null-data, not rendering scatter")
""))))
(gnc:guard-html-chart gnc:html-scatter-width)
(gnc:guard-html-chart gnc:html-scatter-set-width!)
(gnc:guard-html-chart gnc:html-scatter-height)
(gnc:guard-html-chart gnc:html-scatter-set-height!)
(gnc:guard-html-chart gnc:html-scatter-title)
(gnc:guard-html-chart gnc:html-scatter-set-title!)
(gnc:guard-html-chart gnc:html-scatter-subtitle)
(gnc:guard-html-chart gnc:html-scatter-set-subtitle!)
(gnc:guard-html-chart gnc:html-scatter-x-axis-label)
(gnc:guard-html-chart gnc:html-scatter-set-x-axis-label!)
(gnc:guard-html-chart gnc:html-scatter-y-axis-label)
(gnc:guard-html-chart gnc:html-scatter-set-y-axis-label!)
(gnc:guard-html-chart gnc:html-scatter-data)
(gnc:guard-html-chart gnc:html-scatter-set-data!)
(gnc:guard-html-chart gnc:html-scatter-marker)
(gnc:guard-html-chart gnc:html-scatter-set-marker!)
(gnc:guard-html-chart gnc:html-scatter-markercolor)
(gnc:guard-html-chart gnc:html-scatter-set-markercolor!)
(gnc:guard-html-chart gnc:html-scatter-add-datapoint!)
(gnc:guard-html-chart gnc:html-scatter-render)