Takes the current state and rebuilds the active figure. If the elements table has a row flagged for deletion, it will be deleted. If the cmd input is not NULL it will attempt to append that element to the figure.
Usage
FG_build(
state,
del_row = NULL,
cmd = NULL,
pll = NULL,
element = "unknown",
desc = "unknown"
)
Arguments
- state
FG state from
FG_fetch_state()
- del_row
Row number to be deleted (NULL if no rows need to be deleted)
- cmd
String containing the plotting command. Set to NULL to initialize a new figure or force a rebuild after a dataset update.
- pll
Preload list for the plotting command. Set to NULL to initialize a new figure or force a rebuild after a dataset update.
- element
Short name for the figure element being performed, eg. point
- desc
Verbose description for the action being performed
Value
list with the following elements
isgood: Return status of the function.
msgs: Messages to be passed back to the user.
pages: List with each element containing a ggplot object (
p
) and the code to generate that object (code
)
Examples
# \donttest{
library(formods)
# Within shiny both session and input variables will exist,
# this creates examples here for testing purposes:
sess_res = FG_test_mksession()
#> → ASM: including file
#> → ASM: source: file.path(system.file(package="onbrand"), "templates", "report.docx")
#> → ASM: dest: file.path("config","report.docx")
#> → ASM: including file
#> → ASM: source: file.path(system.file(package="onbrand"), "templates", "report.pptx")
#> → ASM: dest: file.path("config","report.pptx")
#> → ASM: including file
#> → ASM: source: file.path(system.file(package="onbrand"), "templates", "report.yaml")
#> → ASM: dest: file.path("config","report.yaml")
#> → ASM: State initialized
#> → ASM: module isgood: TRUE
#> → UD: including file
#> → UD: source: file.path(system.file(package="onbrand"), "templates", "report.docx")
#> → UD: dest: file.path("config","report.docx")
#> → UD: including file
#> → UD: source: file.path(system.file(package="onbrand"), "templates", "report.pptx")
#> → UD: dest: file.path("config","report.pptx")
#> → UD: including file
#> → UD: source: file.path(system.file(package="onbrand"), "templates", "report.yaml")
#> → UD: dest: file.path("config","report.yaml")
#> → UD: State initialized
#> → UD: module checksum updated:897d952fecbc804999396a96f9df4b20
#> → UD: module isgood: TRUE
#> → DW: including file
#> → DW: source: file.path(system.file(package="onbrand"), "templates", "report.docx")
#> → DW: dest: file.path("config","report.docx")
#> → DW: including file
#> → DW: source: file.path(system.file(package="onbrand"), "templates", "report.pptx")
#> → DW: dest: file.path("config","report.pptx")
#> → DW: including file
#> → DW: source: file.path(system.file(package="onbrand"), "templates", "report.yaml")
#> → DW: dest: file.path("config","report.yaml")
#> → DW: State initialized
#> → DW: module checksum updated:5b0f0b05ee3ac7336a74c564bb6efdad
#> → DW: loading data view idx: 1
#> → DW: setting name: Observations
#> → DW: module checksum updated:1ac3e0afcc601f848943f92b854b3830
#> → DW: -> filter
#> → DW: module checksum updated:67aff6e926eba73b3ecb361d26624844
#> → DW: -> filter
#> → DW: module checksum updated:0234f6d458ef7487a3b2e991b2d0957b
#> → DW: -> mutate
#> → DW: module checksum updated:37d0958f042076b974fdd3f894157822
#> → DW: loading data view idx: 2
#> → DW: setting name: PK 3mg SD IV
#> → DW: module checksum updated:4e7ca05728d66df3adfcf87387f9543a
#> → DW: -> filter
#> → DW: module checksum updated:2d95bc56262f46b7f135dd33fc4722b3
#> → DW: -> filter
#> → DW: module checksum updated:b8a30837145926d2d9cc6f788c10b7ed
#> → DW: -> filter
#> → DW: module checksum updated:24b554ee8736ebc84979c896ac2e93c3
#> → DW: -> filter
#> → DW: module checksum updated:daad88263faf7cbf90871ed00a0dd275
#> → DW: loading data view idx: 3
#> → DW: setting name: PK 3mg SD IV (NCA)
#> → DW: module checksum updated:a7b3ea35cdba272682716aa4619d3983
#> → DW: -> filter
#> → DW: module checksum updated:e8d2f77c0bd731995d845ee8be623e22
#> → DW: -> filter
#> → DW: module checksum updated:24cc7b591ca756a0abf560fb5295e04d
#> → DW: -> filter
#> → DW: module checksum updated:f79ef26bdb4dac420c24650b9e96f721
#> → DW: loading data view idx: 4
#> → DW: setting name: PKPD 3mg SD IV (NCA)
#> → DW: module checksum updated:c737e8b3a28ba600a83ddf58a969c90a
#> → DW: -> filter
#> → DW: module checksum updated:4c0d054f8ec47ae97fd1c650d8ddad55
#> → DW: -> filter
#> → DW: module checksum updated:1e3d65ec1bd6ee5850d67bd2250e3223
#> → DW: -> filter
#> → DW: module checksum updated:1e3d65ec1bd6ee5850d67bd2250e3223
#> → DW: module isgood: TRUE
#> → FG: including file
#> → FG: source: file.path(system.file(package="onbrand"), "templates", "report.docx")
#> → FG: dest: file.path("config","report.docx")
#> → FG: including file
#> → FG: source: file.path(system.file(package="onbrand"), "templates", "report.pptx")
#> → FG: dest: file.path("config","report.pptx")
#> → FG: including file
#> → FG: source: file.path(system.file(package="onbrand"), "templates", "report.yaml")
#> → FG: dest: file.path("config","report.yaml")
#> → FG: State initialized
#> → FG: module checksum updated:eddda5ff3e0864e5c9dbc6d539cd17ef
#> → FG: loading figure idx: 1
#> → FG: setting name: 3 mg SD IV
#> → FG: setting data source: DW_myDS_2
#> → FG: -> line
#> → FG: module checksum updated:886ecf874e030aaf9619f93e22e76326
#> → FG: -> label
#> → FG: module checksum updated:e95ef2af5814ff9b65394ae63a9f73a3
#> → FG: module isgood: TRUE
session = sess_res$session
input = sess_res$input
# This will create a populated FG state object:
state = sess_res$state
# This sets the current active figure to Fig_1
state[["FG"]][["current_fig"]] = "Fig_1"
# If this is a paginated figure, and we can access a specific
pg_1 = FG_extract_page(state, 1)
#> → FG: unable to extract figure page, no facet elements found
#> → FG: figure id: Fig_1
# This will give you access to the current figure directly:
current_fig = FG_fetch_current_fig(state)
# For example this will set the key for that figure:
current_fig$key = "Individual profiles by cohort (multiple pages)"
# Once you're done you can put it back into the state:
state = FG_set_current_fig(state, current_fig)
# If you made any changes to the actual figure, this will
# force a rebuild of the current figure:
state = FG_build( state=state, del_row = NULL, cmd = NULL)
#> → FG: module checksum updated:ba181875e534acc08218f68819a6bd50
# To create a new empty figure you can do this:
state = FG_new_fig(state)
#> → FG: module checksum updated:fc30a8d55b74bd58e7693180fab3c1d1
# }