diff --git a/DESCRIPTION b/DESCRIPTION index 1bf5e4cb53056a6bce9b0775e70ee8541f8e4233..5e10d69353ddfcbf2087494543de7eab89c0901b 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -50,6 +50,7 @@ Collate: 'plotting.R' 'extraction.R' 'api.R' + 'shiny-state.R' 'shiny-ui-base.R' Depends: RMassBank, diff --git a/NAMESPACE b/NAMESPACE index 7032fc1755be9359d29e65ff7adc443d47d24d33..b57cbd2925fbdd77df54773bbade1de32b72f121 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -41,6 +41,11 @@ export(setup_phase) export(sort_spectra) export(subset_summary) export(tk_save_file) +export(which_gui_inputs) +export(which_gui_numeric_inputs) +export(which_gui_radio_inputs) +export(which_gui_select_inputs) +export(which_gui_text_inputs) import(data.table) importFrom(MSnbase,filterMz) importFrom(MSnbase,readMSData) diff --git a/R/shiny-state.R b/R/shiny-state.R new file mode 100644 index 0000000000000000000000000000000000000000..c0160e5d0b23c411c79cb455b8ac466f7ee04c59 --- /dev/null +++ b/R/shiny-state.R @@ -0,0 +1,58 @@ +## Managing the state of shiny application. + + +GUI_SELECT_INPUTS <- c("proj_list", + "indir_list", + "ms1_coarse_unit", + "ms1_fine_unit", + "ms1_rt_win_unit", + "ret_time_shift_tol") + +GUI_NUMERIC_INPUTS <- c("ms1_coarse", + "ms1_fine", + "ms1_eic", + "ms1_rt_win", + "ms1_int_thresh", + "ms2_int_thresh", + "s2n", + "ret_time_shift_tol") + +GUI_TEXT_INPUTS <- c("rep_aut", + "rep_tit") + +GUI_RADIO_INPUTS <- c("missingprec") + +GUI_ALL_INPUTS <- c(GUI_SELECT_INPUTS, + GUI_NUMERIC_INPUTS, + GUI_TEXT_INPUTS, + GUI_RADIO_INPUTS) + + + + +#' @export +which_gui_inputs <- function() { + GUI_ALL_INPUTS +} + + +#' @export +which_gui_select_inputs <- function() { + GUI_SELECT_INPUTS + } + +#' @export +which_gui_numeric_inputs <- function() { + GUI_NUMERIC_INPUTS + } + +#' @export +which_gui_text_inputs <- function() { + GUI_TEXT_INPUTS +} + +#' @export +which_gui_radio_inputs <- function() { + GUI_RADIO_INPUTS +} + diff --git a/R/shiny-ui-base.R b/R/shiny-ui-base.R index 5255bb2b6cfaf9a0c99192369d0393fcb18b5ef0..96a9cdf9a1f3943ba89c1cc7fc825d484454143e 100644 --- a/R/shiny-ui-base.R +++ b/R/shiny-ui-base.R @@ -1133,21 +1133,21 @@ mk_shinyscreen_server <- function(projects,init) { ## If a saved state exists, load it. fn_state <- file.path(fullwd,FN_STATE) if (file.exists(fn_state)) { - reset_gui_and_state(session=session, - init = init, - wd = wd, - rv_dfile = rv_dfile, - rv_datatab = rv_datatab, - rv_flag_datatab = rv_flag_datatab, - rvs = rvs, - rv_projects = rv_projects) - rvs$m <- list2rev(readRDS(fn_state)) - rvs$m$conf$project <- input$proj_list - rvs$m$conf$paths$project <- fullwd - update_gui(session = session, - rv_dfile = rv_dfile, - rv_datatab = rv_datatab, - rv_flag_datatab = rv_flag_datatab) + ## reset_gui_and_state(session=session, + ## init = init, + ## wd = wd, + ## rv_dfile = rv_dfile, + ## rv_datatab = rv_datatab, + ## rv_flag_datatab = rv_flag_datatab, + ## rvs = rvs, + ## rv_projects = rv_projects) + ## rvs$m <- list2rev(readRDS(fn_state)) + ## rvs$m$conf$project <- input$proj_list + ## rvs$m$conf$paths$project <- fullwd + ## update_gui(session = session, + ## rv_dfile = rv_dfile, + ## rv_datatab = rv_datatab, + ## rv_flag_datatab = rv_flag_datatab) } else { message("No saved state found. Creating an empty project.") m <- new_empty_project(fullwd) @@ -1183,6 +1183,11 @@ mk_shinyscreen_server <- function(projects,init) { file = fconf) shinyscreen:::tab2file(tab=m$input$tab$mzml,file=ftab) m$conf$paths$datatab <- ftab + gui_inputs <- list() + gui_input_names <- which_gui_inputs() + gui_inputs <- shiny::reactiveValuesToList(input)[gui_input_names] + fn_gui <- file.path(m$conf$paths$project,"gui.rds") + saveRDS(object=gui_inputs,file=fn_gui) saveRDS(object=m,file=fn) } shinymsg("Saving state completed.")