From c27a31d947b4a74d1b560d56cf3887e39336999c Mon Sep 17 00:00:00 2001 From: jranke Date: Mon, 7 Oct 2013 19:20:17 +0000 Subject: - Added a list of models to select from - Started the model editor - Added two session files used for testing git-svn-id: svn+ssh://svn.r-forge.r-project.org/svnroot/kinfit/pkg/mkin@106 edb9625f-4e0d-4859-8d74-9fd3b1da38cb --- inst/GUI/TODO | 4 +-- inst/GUI/simple.R | 74 ++++++++++++++++++++++++++++++++++++++++++++++--------- 2 files changed, 64 insertions(+), 14 deletions(-) diff --git a/inst/GUI/TODO b/inst/GUI/TODO index 3eea921..ea875ce 100644 --- a/inst/GUI/TODO +++ b/inst/GUI/TODO @@ -1,3 +1 @@ -- Do some consistency checks when the changes to a dataset are saved -- Manage observed variable names and sampling times so they - are consistent within the datasets and with observed.df +- Write the model editor diff --git a/inst/GUI/simple.R b/inst/GUI/simple.R index 14ab482..201f9c6 100644 --- a/inst/GUI/simple.R +++ b/inst/GUI/simple.R @@ -17,6 +17,7 @@ studies.df <- data.frame(Index = as.integer(1), # Datasets {{{2 ds <- list() +observed.all <- vector() # FOCUS 2006 datasets {{{3 for (i in 1:5) { ds.letter = LETTERS[i] @@ -40,21 +41,41 @@ for (i in 1:5) { update_ds.df <- function() { # {{{3 ds.n <- length(ds) ds.df <<- data.frame(Index = 1:ds.n, - Study = character(ds.n), Title = character(ds.n), + Study = character(ds.n), stringsAsFactors = FALSE) for (i in 1:ds.n) { ds.index <- names(ds)[[i]] - ds.df[i, "Study"] <<- ds[[ds.index]]$study_nr ds.df[i, "Title"] <<- ds[[ds.index]]$title + ds.df[i, "Study"] <<- ds[[ds.index]]$study_nr + observed = as.character(unique(ds[[ds.index]]$data$name)) + observed.all <<- union(observed, observed.all) } } ds.df <- data.frame() update_ds.df() -# Set the initial dataset number globally +# Set the initial dataset number ds.cur = "1" +# Models {{{2 +m <- list() +m[["SFO"]] <- mkinmod(parent = list(type = "SFO")) +m[["FOMC"]] <- mkinmod(parent = list(type = "FOMC")) +m[["DFOP"]] <- mkinmod(parent = list(type = "DFOP")) +# Dataframe with models for selection with the gtable widget {{{2 +update_m.df <- function() { # {{{3 + m.n <- length(m) + m.df <<- data.frame(Index = 1:m.n, + Name = names(m), + stringsAsFactors = FALSE) +} +m.df <- data.frame() +update_m.df() + +# Set the initial model number +m.cur = "1" + # Project data management {{{1 upload_file_handler <- function(h, ...) # {{{2 { @@ -108,19 +129,35 @@ studies.gdf$set_column_width(1, 40) studies.gdf$set_column_width(2, 200) addHandlerChanged(studies.gdf, update_study_selector) -# Expandable group for datasets {{{1 -dsg <- gexpandgroup("Dataset selector", cont = g, horizontal = FALSE) +# Datasets and models {{{1 +dsm <- gframe("Datasets and models - double click to edit", cont = g, + horizontal = TRUE) # Dataset table with handler {{{2 ds.switcher <- function(h, ...) { ds.cur <<- as.character(svalue(h$obj)) update_ds_editor() + visible(dse) <- TRUE +} +ds.gtable <- gtable(ds.df, multiple = TRUE, cont = dsm) +addHandlerDoubleClick(ds.gtable, ds.switcher) +size(ds.gtable) <- list(columnWidths = c(40, 200, 40)) + +# Model table with handler {{{2 +m.switcher <- function(h, ...) { + m.cur <<- as.character(svalue(h$obj)) + update_m_editor() + visible(dse) <- FALSE + visible(me) <- TRUE } -ds.gtable <- gtable(ds.df, cont = dsg) -addHandlerClicked(ds.gtable, ds.switcher) -size(ds.gtable) <- list(columnWidths = c(40, 40, 200)) +m.gtable <- gtable(m.df, multiple = TRUE, cont = dsm) +addHandlerDoubleClick(m.gtable, m.switcher) +size(m.gtable) <- list(columnWidths = c(40, 200)) -# Dataset editor {{{2 +# Expandable group for the dataset editor {{{1 +dse <- gexpandgroup("Dataset editor", cont = g, horizontal = FALSE) +visible(dse) <- FALSE + # Handler functions {{{3 copy_dataset_handler <- function(h, ...) { ds.old <- ds.cur @@ -196,7 +233,7 @@ save_ds_changes_handler <- function(h, ...) { # Widget setup {{{3 -ds.editor <- gframe("Dataset 1", horizontal = FALSE, cont = dsg) +ds.editor <- gframe("Dataset 1", horizontal = FALSE, cont = dse) # Line 1 {{{4 ds.e.1 <- ggroup(cont = ds.editor, horizontal = TRUE) glabel("Title: ", cont = ds.e.1) @@ -245,7 +282,7 @@ ds.e.gdf <- gdf(ds[[ds.cur]]$data, name = "Kinetic data", width = 700, height = 700, cont = ds.editor) ds.e.gdf$set_column_width(2, 70) -# Update the editor {{{3 +# Update the dataset editor {{{3 update_ds_editor <- function() { svalue(ds.editor) <- paste("Dataset", ds.cur) svalue(ds.title.ge) <- ds[[ds.cur]]$title @@ -259,6 +296,21 @@ update_ds_editor <- function() { ds.e.gdf[,] <- ds[[ds.cur]]$data } + +# Expandable group for the model editor {{{1 +me <- gexpandgroup("Model editor", cont = g, horizontal = FALSE) +visible(me) <- FALSE + +m.e.rows <- list() +m.e.obs <- list() +m.e.rows[[1]] <- ggroup(cont = me, horizontal = TRUE) +m.e.obs[[1]] <- gcombobox(observed.all, cont = m.e.rows[[1]]) + +# Update the model editor {{{3 +update_m_editor <- function() { + +} + # 3}}} # 2}}} # 1}}} -- cgit v1.2.1