# IMPORTANT: To manually run R CMD check in RStudio all packages must be installed in
# both the 32 and 64 bit version. Make sure it is possible to start manually
# See http://r-pkgs.had.co.nz/release.html for advice on release.
# IMPORTANT: Use devtools::spell_check() to check spelling.
# IMPORTANT: Use devtools::check_win_devel() to check on R-dev.
# IMPORTANT: Use devtools::check_win_release() to check on current R.
# IMPORTANT: Use devtools::check_win_oldrelease() to test on previous major R.
# IMPORTANT: Use revdepcheck::revdep_check() to check reverse dependencies?
# IMPORTANT: Use devtools::check_rhub() to check on multiple platforms.
# IMPORTANT: Use devtools::release() to submit to CRAN.
# NB! The error below indicates some problem with the test server (try again later).
# Error in curl::curl_fetch_memory(url, handle = h) : Timeout was reached
# Versioning convention (x.yy.z[.9###]):
# Increment x on major change.
# Increment yy on new features.
# Increment z on minor changes and bug fixes.
# [optional]Increment ### on development versions.
# NB! Write changes in NEWS for x.yy.z.9### versions, but move changes to NEWS
# under x.yy.z upon release official version.
# NOTE: Can't import data frame named 'drop'
# NOTE: Buttons named 'Plot' will show up 'plot'.
# NOTE: Some button names will change due to locale.
################################################################################
# CHANGE LOG (last 20 changes)
# 14.09.2022: Added export buttons to DT table for View.
# 10.09.2022: Fixed warning when selecting multiple objects for export.
# 02.09.2022: Added "datatables" to supported classes in view function.
# 21.08.2022: Fixed workspace not refreshed when no supported objects in environment and after loading a previous project.
# 12.08.2022: Added "plotly" to supported classes and view function.
# 23.07.2022: Added button to plotEPG2.
# 28.06.2020: Description made gexpandgroup and loads only if opened.
# 07.06.2020: Added calls to calculateStatistics_gui. Depracated table*.
# 21.05.2020: Added language support for welcome tab/about.
# 11.05.2020: Fixed bugs in language support.
# 04.05.2020: Added language support.
# 06.09.2019: Changed new.env() to new.env(parent = emptyenv())
# 16.03.2019: Added button to YouTube channel.
# 14.03.2019: Updated about. Fixed R-Check note.
# 22.02.2019: Reset projects list and description field if no project in folder.
# 19.02.2019: Fixed previous project activated in Description, Projects tab.
# 19.02.2019: Expand text box in welcome tab.
# 15.02.2019: Rearranged buttons on welcome tab.
# 14.02.2019: Adaptations to gWidgets2tcltk and updated welcome tab.
# 19.01.2019: Adaptations to gWidgets2tcltk.
# 18.07.2018: Added button to plot groups in 'Result' tab.
# 17.07.2018: Added button to calculate stochastic thresholds in 'Dropout' tab.
# 02.08.2017: Allow multiple objects to be removed from workspace.
#' @title Graphical User Interface For The STR-validator Package
#'
#' @description
#' GUI simplifying the use of the strvalidator package.
#'
#' @details The graphical user interface give easy access to all graphical
#' versions of the functions available in the strvalidator package. It connects
#' functions 'under the hood' to allow a degree of automation not available
#' using the command based functions. In addition it provides a project based
#' workflow.\cr\cr
#' Click \code{Index} at the bottom of the help page to see a complete list
#' of functions.
#'
#' @param debug logical indicating printing debug information.
#'
#' @return TRUE
#'
#' @import gWidgets2
#' @import gWidgets2tcltk
#' @importFrom utils packageVersion help object.size browseURL
#' @importFrom graphics title
#'
#' @export
#'
#' @examples
#' # To start the graphical user interface.
#' \dontrun{
#' strvalidator()
#' }
#'
strvalidator <- function(debug = FALSE) {
# Global variables.
.strvalidator_env <- new.env(parent = emptyenv())
.separator <- .Platform$file.sep # Platform dependent path separator.
.save_gui <- TRUE
.ws_last_open_dir <- getwd()
.object_classes_view <- c("data.frame", "ggplot", "plotly")
.object_classes_import <- c("data.frame", "ggplot", "plotly")
.project_description_variable <- ".strvalidator_project_description"
.project_tmp_env <- new.env(parent = emptyenv())
.project_name_list <- NULL
.project_path_list <- NULL
.ws_name_variable <- ".strvalidator_project_name"
.ws_path_variable <- ".strvalidator_project_path"
.object_empty_df <- data.frame(
Object = "[Object]", Size = "[Size]",
stringsAsFactors = FALSE
)
# Language ------------------------------------------------------------------
# Get text for welcome tab from:
# .../strvalidator/extdata/languages/xx_YY_about.txt
.about_txt <- getStrings(about = TRUE)
if (is.null(.about_txt)) {
.about_txt <- "Language file not found."
}
# Get this functions name from call.
fnc <- as.character(match.call()[[1]])
if (debug) {
print(paste("IN:", fnc))
}
# Default strings.
strChkGui <- "Save GUI settings"
strBtnHelp <- "Help"
strTabWelcome <- "Welcome"
strTabWorkspace <- "Workspace"
strTabProject <- "Projects"
strTabDryLab <- "DryLab"
strTabTools <- "Tools"
strTabAT <- "AT"
strTabStutter <- "Stutter"
strTabBalance <- "Balance"
strTabConcordance <- "Concordance"
strTabDroput <- "Dropout"
strTabMixture <- "Mixture"
strTabResult <- "Result"
strTabPrecision <- "Precision"
strTabPullup <- "Pull-up"
strBtnWebpage <- "STR-validator website"
strTipWebpage <- "General information, workshops, and tutorials"
strBtnVideo <- "Video tutorials"
strTipVideo <- "STR-validator YouTube channel"
strBtnFacebook <- "Facebook page"
strTipFacebook <- "News, tips, and other information"
strBtnSupport <- "Support forum"
strTipSupport <- "Get help from the Facebook user community"
strBtnReport <- "Report bugs"
strTipReport <- "Report bugs, errors, and issues"
strBtnSource <- "Source code"
strTipSource <- "Take a look at future, current, and past source code"
strBtnCran <- "CRAN page"
strTipCran <- "Official CRAN page with address to maintainer and version archive"
strBtnLicense <- "License"
strLblFolder <- "Folder:"
strFrmProject <- "Projects"
strBtnOpen <- "Open"
strTipOpen <- "Open selected project"
strBtnAdd <- "Add"
strTipAdd <- "Merge a project with the current project"
strBtnDelete <- "Delete"
strTipDelete <- "Delete selected project from the file system"
strLblProject <- "Project:"
strStrNoProject <- "[No project found]"
strFrmDescription <- "Description"
strStrDescription <- "Write a project description here!"
strStrProjectDescription <- "[Project description]"
strBtnSave <- "Save"
strTipSaveDescription <- "Save project description"
strBtnNew <- "New"
strTipNewProject <- "Create a new project"
strTipOpenProject <- "Open project"
strTipSaveProject <- "Save project"
strBtnSaveAs <- "Save As"
strTipSaveAs <- "Choose a location and save project"
strBtnImport <- "Import"
strTipImport <- "Import data from file"
strBtnExport <- "Export"
strTipExport <- "Open the export dialogue with the selected objects"
strBtnRefresh <- "Refresh"
strTipRefresh <- "Refresh the workspace"
strTipDeleteObject <- "Delete selected object"
strBtnRename <- "Rename"
strTipRenameObject <- "Rename selected object"
strBtnView <- "View"
strTipView <- "View selected object"
strMsgNew <- "Are you sure you want to create a new project?\nAny changes to current project since last save will be lost!"
strMsgRename <- "Currently you can only rename one object at a time!"
strMsgSelectWorkspace <- "Select a saved workspace or dataset"
strMsgNotFound <- "The workspace file was not found"
strMsgTitleNotFound <- "File not found"
strMsgExport <- "Please select the objects to export!"
strMsgNoObjectSelected <- "No object selected!"
strMsgTitleError <- "Error"
strMsgTypeNotSupported <- "object type not supported!"
strMsgTitleNotSupported <- "Unable to view object"
strMsgSelectObject <- "Please select an object!"
strMsgProjectSaved <- "Project saved!\n\n"
strMsgDirNotFound <- "The project directory was not found"
strMsgTitleDirNotFound <- "Directory not found"
strMsgFileNameMissing <- "A file name must be provided"
strMsgFileNameRequired <- "File name required"
strMsgUseSaveAs <- "No project name or path!\nUse 'Save As' instead"
strMsgPropertyNotFound <- "Property not found"
strMsgSelectDirSave <- "Select a directory to save project in"
strMsgInputProject <- "Input project name"
strMsgTitleSaveAs <- "Save as"
strMsgOverwrite <- "\nalready exist!\n\n Overwrite?"
strMsgTitleConfirm <- "Confirm"
strMsgProjectNotSaved <- "Project was not saved!"
strMsgTitleInfo <- "Info"
strFrmRworkspace <- "Load objects from R workspace"
strBtnLoad <- "Load object"
strDrpObject <- "<Select object>"
strLblViewDataset <- "View a dataset"
strBtnKits <- "Kits"
strLblKits <- "Add new kits or edit kits file"
strBtnPlotKit <- "Plot Kit"
strLblPlotKit <- "Plot marker ranges for kits"
strBtnBins <- "Analyse Overlap"
strLblBins <- "Compare bins overlap for kits"
strBtnOl <- "Analyse OL"
strLblOl <- "Compare risk of getting off-ladder alleles for kits"
strBtnEdit <- "Edit"
strLblEdit <- "Edit a dataset"
strBtnTrim <- "Trim"
strLblTrim <- "Trim/discard samples or columns from a dataset"
strBtnSlim <- "Slim"
strLblSlim <- "Slim a dataset to 'long' format"
strBtnFilter <- "Filter"
strLblFilter <- "Filter a dataset using a reference set"
strBtnCrop <- "Crop"
strLblCrop <- "Discard, or replace data"
strBtnGuess <- "Guess"
strLblGuess <- "Guess the profile from raw DNA result"
strBtnDye <- "Dye"
strLblDye <- "Add dye information according to kit"
strBtnMarker <- "Marker"
strLblMarker <- "Add missing markers to dataset"
strBtnSize <- "Size"
strLblSize <- "Add approximate size to alleles in a dataset"
strBtnData <- "Data"
strLblData <- "Add new information to a dataset"
strBtnCheck <- "Check"
strLblCheck <- "Check the subsetting of a dataset"
strBtnCombine <- "Combine"
strLblCombine <- "Combine two datasets"
strBtnColumns <- "Columns"
strLblColumns <- "Perform actions on columns"
strBtnCopies <- "Copies"
strLblCopies <- "Calculate allele copies"
strBtnHeight <- "Height"
strLblHeight <- "Calculate peak height metrics"
strBtnEPG <- "EPG"
strLblEPG <- "Generate EPG like plot"
strBtnEPG2 <- "EPG2"
strLblEPG2 <- "Generate interactive EPG like plot"
strBtnCalculate <- "Calculate"
strLblAT <- "Calculate analytical threshold (AT1, AT2, AT4, AT7)"
strLblAT6 <- "Calculate analytical threshold (AT6)"
strBtnPlot <- "Plot"
strLblPlotAT6 <- "Create plots for analysed data (AT6)"
strLblStutter <- "Calculate stutters for a dataset"
strLblPlotStutter <- "Create plots for stutter data"
strBtnStatistics <- "Statistics"
strLblStatStutterGlobal <- "Calculate global summary statistics"
strLblStatStutterMarker <- "Calculate summary statistics by marker"
strLblStatStutterStutter <- "Calculate summary statistics by marker and stutter type"
strFrmHb <- "Heterozygote balance (intra-locus)"
strFrmLb <- "Profile balance (inter-locus)"
strLblHb <- "Calculate heterozygote balance"
strLblLb <- "Calculate profile balance"
strLblPlotBalance <- "Create plots for analysed data"
strLblStatBalanceGlobal <- "Calculate global summary statistics"
strLblStatBalanceMarker <- "Calculate summary statistics by marker"
strFrmCapillary <- "Capillary balance"
strLblCapillary <- "Calculate capillary balance for a dataset"
strLblPlotCapillary <- "Create plots for capillary balance data"
strLblStatCapillaryCap <- "Calculate summary statistics by capillary"
strLblStatCapillaryInj <- "Calculate summary statistics by injection"
strLblStatCapillaryRow <- "Calculate summary statistics by plate row"
strLblStatCapillaryRun <- "Calculate summary statistics by run"
strLblStatCapillaryIns <- "Calculate summary statistics by instrument"
strFrmRatio <- "Marker peak height ratio"
strLblRatio <- "Calculate locus ratio for a dataset"
strLblPlotRatio <- "Create plots for marker ratio data"
strLblConcordance <- "Calculate concordance between multiple datasets"
strBtnScore <- "Score"
strLblScore <- "Score dropouts for a dataset"
strLblDropout <- "Calculate stochastic thresholds"
strBtnModel <- "Model"
strLblModel <- "Model and plot dropout risk"
strLblPlotDropout <- "Create plots for analysed data"
strLblMixture <- "Calculate mixture for a dataset"
strFrmType <- "Result types"
strLblType <- "Calculate result types for a dataset"
strLblPlotType <- "Create plots for result type data"
strFrmPeaks <- "Number of peaks"
strLblPeaks <- "Count the number of peaks in sample"
strLblPlotPeaks <- "Create plots for peak data"
strFrmStatistics <- "Summary statistics"
strLblStatistics <- "Calculate summary statistics"
strFrmDistribution <- "Distributions"
strLblDistribution <- "Plot distributions for data"
strLblGroups <- "Plot cumulative distribution for multiple groups"
strFrmDropin <- "Drop-in tools"
strLblSpikes <- "Identify possible spikes"
strLblFilterSpikes <- "Remove spikes"
strLblArtefacts <- "Identify possible artefacts"
strLblFilterArtefacts <- "Remove artefacts"
strLblPlotContamination <- "Plot contamination"
strFrmSlope <- "Profile slope"
strLblSlope <- "Calculate the profile slope"
strLblPlotSlope <- "Plot slope data"
strLblPrecision <- "Create precision plots"
strLblStatPrecisionSize <- "Calculate summary statistics for Size"
strLblStatPrecisionDataPoint <- "Calculate summary statistics for Data.Point"
strLblStatPrecisionHeight <- "Calculate summary statistics for Height"
strLblPullup <- "Calculate spectral pull-up/bleed-through"
strLblPlotPullup <- "Create plots for pull-up data"
# Get strings from language file.
dtStrings <- getStrings(gui = fnc)
# If language file is found.
if (!is.null(dtStrings)) {
# Get language strings, use default if not found.
strtmp <- dtStrings["strChkGui"]$value
strChkGui <- ifelse(is.na(strtmp), strChkGui, strtmp)
strtmp <- dtStrings["strBtnHelp"]$value
strBtnHelp <- ifelse(is.na(strtmp), strBtnHelp, strtmp)
strtmp <- dtStrings["strBtnCalculate"]$value
strBtnCalculate <- ifelse(is.na(strtmp), strBtnCalculate, strtmp)
strtmp <- dtStrings["strTabWelcome"]$value
strTabWelcome <- ifelse(is.na(strtmp), strTabWelcome, strtmp)
strtmp <- dtStrings["strTabWorkspace"]$value
strTabWorkspace <- ifelse(is.na(strtmp), strTabWorkspace, strtmp)
strtmp <- dtStrings["strTabProject"]$value
strTabProject <- ifelse(is.na(strtmp), strTabProject, strtmp)
strtmp <- dtStrings["strTabDryLab"]$value
strTabDryLab <- ifelse(is.na(strtmp), strTabDryLab, strtmp)
strtmp <- dtStrings["strTabTools"]$value
strTabTools <- ifelse(is.na(strtmp), strTabTools, strtmp)
strtmp <- dtStrings["strTabAT"]$value
strTabAT <- ifelse(is.na(strtmp), strTabAT, strtmp)
strtmp <- dtStrings["strTabStutter"]$value
strTabStutter <- ifelse(is.na(strtmp), strTabStutter, strtmp)
strtmp <- dtStrings["strTabBalance"]$value
strTabBalance <- ifelse(is.na(strtmp), strTabBalance, strtmp)
strtmp <- dtStrings["strTabConcordance"]$value
strTabConcordance <- ifelse(is.na(strtmp), strTabConcordance, strtmp)
strtmp <- dtStrings["strTabDroput"]$value
strTabDroput <- ifelse(is.na(strtmp), strTabDroput, strtmp)
strtmp <- dtStrings["strTabMixture"]$value
strTabMixture <- ifelse(is.na(strtmp), strTabMixture, strtmp)
strtmp <- dtStrings["strTabResult"]$value
strTabResult <- ifelse(is.na(strtmp), strTabResult, strtmp)
strtmp <- dtStrings["strTabPrecision"]$value
strTabPrecision <- ifelse(is.na(strtmp), strTabPrecision, strtmp)
strtmp <- dtStrings["strTabPullup"]$value
strTabPullup <- ifelse(is.na(strtmp), strTabPullup, strtmp)
strtmp <- dtStrings["strBtnWebpage"]$value
strBtnWebpage <- ifelse(is.na(strtmp), strBtnWebpage, strtmp)
strtmp <- dtStrings["strTipWebpage"]$value
strTipWebpage <- ifelse(is.na(strtmp), strTipWebpage, strtmp)
strtmp <- dtStrings["strBtnVideo"]$value
strBtnVideo <- ifelse(is.na(strtmp), strBtnVideo, strtmp)
strtmp <- dtStrings["strTipVideo"]$value
strTipVideo <- ifelse(is.na(strtmp), strTipVideo, strtmp)
strtmp <- dtStrings["strBtnFacebook"]$value
strBtnFacebook <- ifelse(is.na(strtmp), strBtnFacebook, strtmp)
strtmp <- dtStrings["strTipFacebook"]$value
strTipFacebook <- ifelse(is.na(strtmp), strTipFacebook, strtmp)
strtmp <- dtStrings["strBtnSupport"]$value
strBtnSupport <- ifelse(is.na(strtmp), strBtnSupport, strtmp)
strtmp <- dtStrings["strTipSupport"]$value
strTipSupport <- ifelse(is.na(strtmp), strTipSupport, strtmp)
strtmp <- dtStrings["strBtnReport"]$value
strBtnReport <- ifelse(is.na(strtmp), strBtnReport, strtmp)
strtmp <- dtStrings["strTipReport"]$value
strTipReport <- ifelse(is.na(strtmp), strTipReport, strtmp)
strtmp <- dtStrings["strBtnSource"]$value
strBtnSource <- ifelse(is.na(strtmp), strBtnSource, strtmp)
strtmp <- dtStrings["strTipSource"]$value
strTipSource <- ifelse(is.na(strtmp), strTipSource, strtmp)
strtmp <- dtStrings["strBtnCran"]$value
strBtnCran <- ifelse(is.na(strtmp), strBtnCran, strtmp)
strtmp <- dtStrings["strTipCran"]$value
strTipCran <- ifelse(is.na(strtmp), strTipCran, strtmp)
strtmp <- dtStrings["strBtnLicense"]$value
strBtnLicense <- ifelse(is.na(strtmp), strBtnLicense, strtmp)
strtmp <- dtStrings["strLblFolder"]$value
strLblFolder <- ifelse(is.na(strtmp), strLblFolder, strtmp)
strtmp <- dtStrings["strFrmProject"]$value
strFrmProject <- ifelse(is.na(strtmp), strFrmProject, strtmp)
strtmp <- dtStrings["strBtnOpen"]$value
strBtnOpen <- ifelse(is.na(strtmp), strBtnOpen, strtmp)
strtmp <- dtStrings["strTipOpen"]$value
strTipOpen <- ifelse(is.na(strtmp), strTipOpen, strtmp)
strtmp <- dtStrings["strBtnAdd"]$value
strBtnAdd <- ifelse(is.na(strtmp), strBtnAdd, strtmp)
strtmp <- dtStrings["strTipAdd"]$value
strTipAdd <- ifelse(is.na(strtmp), strTipAdd, strtmp)
strtmp <- dtStrings["strBtnDelete"]$value
strBtnDelete <- ifelse(is.na(strtmp), strBtnDelete, strtmp)
strtmp <- dtStrings["strTipDelete"]$value
strTipDelete <- ifelse(is.na(strtmp), strTipDelete, strtmp)
strtmp <- dtStrings["strLblProject"]$value
strLblProject <- ifelse(is.na(strtmp), strLblProject, strtmp)
strtmp <- dtStrings["strStrNoProject"]$value
strStrNoProject <- ifelse(is.na(strtmp), strStrNoProject, strtmp)
strtmp <- dtStrings["strFrmDescription"]$value
strFrmDescription <- ifelse(is.na(strtmp), strFrmDescription, strtmp)
strtmp <- dtStrings["strStrDescription"]$value
strStrDescription <- ifelse(is.na(strtmp), strStrDescription, strtmp)
strtmp <- dtStrings["strStrProjectDescription"]$value
strStrProjectDescription <- ifelse(is.na(strtmp), strStrProjectDescription, strtmp)
strtmp <- dtStrings["strBtnSave"]$value
strBtnSave <- ifelse(is.na(strtmp), strBtnSave, strtmp)
strtmp <- dtStrings["strTipSaveDescription"]$value
strTipSaveDescription <- ifelse(is.na(strtmp), strTipSaveDescription, strtmp)
strtmp <- dtStrings["strBtnNew"]$value
strBtnNew <- ifelse(is.na(strtmp), strBtnNew, strtmp)
strtmp <- dtStrings["strTipNewProject"]$value
strTipNewProject <- ifelse(is.na(strtmp), strTipNewProject, strtmp)
strtmp <- dtStrings["strTipOpenProject"]$value
strTipOpenProject <- ifelse(is.na(strtmp), strTipOpenProject, strtmp)
strtmp <- dtStrings["strTipSaveProject"]$value
strTipSaveProject <- ifelse(is.na(strtmp), strTipSaveProject, strtmp)
strtmp <- dtStrings["strBtnSaveAs"]$value
strBtnSaveAs <- ifelse(is.na(strtmp), strBtnSaveAs, strtmp)
strtmp <- dtStrings["strTipSaveAs"]$value
strTipSaveAs <- ifelse(is.na(strtmp), strTipSaveAs, strtmp)
strtmp <- dtStrings["strBtnImport"]$value
strBtnImport <- ifelse(is.na(strtmp), strBtnImport, strtmp)
strtmp <- dtStrings["strTipImport"]$value
strTipImport <- ifelse(is.na(strtmp), strTipImport, strtmp)
strtmp <- dtStrings["strBtnExport"]$value
strBtnExport <- ifelse(is.na(strtmp), strBtnExport, strtmp)
strtmp <- dtStrings["strTipExport"]$value
strTipExport <- ifelse(is.na(strtmp), strTipExport, strtmp)
strtmp <- dtStrings["strBtnRefresh"]$value
strBtnRefresh <- ifelse(is.na(strtmp), strBtnRefresh, strtmp)
strtmp <- dtStrings["strTipRefresh"]$value
strTipRefresh <- ifelse(is.na(strtmp), strTipRefresh, strtmp)
strtmp <- dtStrings["strTipDeleteObject"]$value
strTipDeleteObject <- ifelse(is.na(strtmp), strTipDeleteObject, strtmp)
strtmp <- dtStrings["strBtnRename"]$value
strBtnRename <- ifelse(is.na(strtmp), strBtnRename, strtmp)
strtmp <- dtStrings["strTipRenameObject"]$value
strTipRenameObject <- ifelse(is.na(strtmp), strTipRenameObject, strtmp)
strtmp <- dtStrings["strBtnView"]$value
strBtnView <- ifelse(is.na(strtmp), strBtnView, strtmp)
strtmp <- dtStrings["strTipView"]$value
strTipView <- ifelse(is.na(strtmp), strTipView, strtmp)
strtmp <- dtStrings["strMsgNew"]$value
strMsgNew <- ifelse(is.na(strtmp), strMsgNew, strtmp)
strtmp <- dtStrings["strMsgRename"]$value
strMsgRename <- ifelse(is.na(strtmp), strMsgRename, strtmp)
strtmp <- dtStrings["strMsgSelectWorkspace"]$value
strMsgSelectWorkspace <- ifelse(is.na(strtmp), strMsgSelectWorkspace, strtmp)
strtmp <- dtStrings["strMsgNotFound"]$value
strMsgNotFound <- ifelse(is.na(strtmp), strMsgNotFound, strtmp)
strtmp <- dtStrings["strMsgTitleNotFound"]$value
strMsgTitleNotFound <- ifelse(is.na(strtmp), strMsgTitleNotFound, strtmp)
strtmp <- dtStrings["strMsgExport"]$value
strMsgExport <- ifelse(is.na(strtmp), strMsgExport, strtmp)
strtmp <- dtStrings["strMsgNoObjectSelected"]$value
strMsgNoObjectSelected <- ifelse(is.na(strtmp), strMsgNoObjectSelected, strtmp)
strtmp <- dtStrings["strMsgTitleError"]$value
strMsgTitleError <- ifelse(is.na(strtmp), strMsgTitleError, strtmp)
strtmp <- dtStrings["strMsgTypeNotSupported"]$value
strMsgTypeNotSupported <- ifelse(is.na(strtmp), strMsgTypeNotSupported, strtmp)
strtmp <- dtStrings["strMsgTitleNotSupported"]$value
strMsgTitleNotSupported <- ifelse(is.na(strtmp), strMsgTitleNotSupported, strtmp)
strtmp <- dtStrings["strMsgSelectObject"]$value
strMsgSelectObject <- ifelse(is.na(strtmp), strMsgSelectObject, strtmp)
strtmp <- dtStrings["strMsgProjectSaved"]$value
strMsgProjectSaved <- ifelse(is.na(strtmp), strMsgProjectSaved, strtmp)
strtmp <- dtStrings["strMsgDirNotFound"]$value
strMsgDirNotFound <- ifelse(is.na(strtmp), strMsgDirNotFound, strtmp)
strtmp <- dtStrings["strMsgTitleDirNotFound"]$value
strMsgTitleDirNotFound <- ifelse(is.na(strtmp), strMsgTitleDirNotFound, strtmp)
strtmp <- dtStrings["strMsgFileNameMissing"]$value
strMsgFileNameMissing <- ifelse(is.na(strtmp), strMsgFileNameMissing, strtmp)
strtmp <- dtStrings["strMsgFileNameRequired"]$value
strMsgFileNameRequired <- ifelse(is.na(strtmp), strMsgFileNameRequired, strtmp)
strtmp <- dtStrings["strMsgUseSaveAs"]$value
strMsgUseSaveAs <- ifelse(is.na(strtmp), strMsgUseSaveAs, strtmp)
strtmp <- dtStrings["strMsgPropertyNotFound"]$value
strMsgPropertyNotFound <- ifelse(is.na(strtmp), strMsgPropertyNotFound, strtmp)
strtmp <- dtStrings["strMsgSelectDirSave"]$value
strMsgSelectDirSave <- ifelse(is.na(strtmp), strMsgSelectDirSave, strtmp)
strtmp <- dtStrings["strMsgInputProject"]$value
strMsgInputProject <- ifelse(is.na(strtmp), strMsgInputProject, strtmp)
strtmp <- dtStrings["strMsgTitleSaveAs"]$value
strMsgTitleSaveAs <- ifelse(is.na(strtmp), strMsgTitleSaveAs, strtmp)
strtmp <- dtStrings["strMsgOverwrite"]$value
strMsgOverwrite <- ifelse(is.na(strtmp), strMsgOverwrite, strtmp)
strtmp <- dtStrings["strMsgTitleConfirm"]$value
strMsgTitleConfirm <- ifelse(is.na(strtmp), strMsgTitleConfirm, strtmp)
strtmp <- dtStrings["strMsgProjectNotSaved"]$value
strMsgProjectNotSaved <- ifelse(is.na(strtmp), strMsgProjectNotSaved, strtmp)
strtmp <- dtStrings["strMsgTitleInfo"]$value
strMsgTitleInfo <- ifelse(is.na(strtmp), strMsgTitleInfo, strtmp)
strtmp <- dtStrings["strFrmRworkspace"]$value
strFrmRworkspace <- ifelse(is.na(strtmp), strFrmRworkspace, strtmp)
strtmp <- dtStrings["strBtnLoad"]$value
strBtnLoad <- ifelse(is.na(strtmp), strBtnLoad, strtmp)
strtmp <- dtStrings["strDrpObject"]$value
strDrpObject <- ifelse(is.na(strtmp), strDrpObject, strtmp)
strtmp <- dtStrings["strLblViewDataset"]$value
strLblViewDataset <- ifelse(is.na(strtmp), strLblViewDataset, strtmp)
strtmp <- dtStrings["strBtnKits"]$value
strBtnKits <- ifelse(is.na(strtmp), strBtnKits, strtmp)
strtmp <- dtStrings["strLblKits"]$value
strLblKits <- ifelse(is.na(strtmp), strLblKits, strtmp)
strtmp <- dtStrings["strBtnPlotKit"]$value
strBtnPlotKit <- ifelse(is.na(strtmp), strBtnPlotKit, strtmp)
strtmp <- dtStrings["strLblPlotKit"]$value
strLblPlotKit <- ifelse(is.na(strtmp), strLblPlotKit, strtmp)
strtmp <- dtStrings["strBtnBins"]$value
strBtnBins <- ifelse(is.na(strtmp), strBtnBins, strtmp)
strtmp <- dtStrings["strLblBins"]$value
strLblBins <- ifelse(is.na(strtmp), strLblBins, strtmp)
strtmp <- dtStrings["strBtnOl"]$value
strBtnOl <- ifelse(is.na(strtmp), strBtnOl, strtmp)
strtmp <- dtStrings["strLblOl"]$value
strLblOl <- ifelse(is.na(strtmp), strLblOl, strtmp)
strtmp <- dtStrings["strBtnEdit"]$value
strBtnEdit <- ifelse(is.na(strtmp), strBtnEdit, strtmp)
strtmp <- dtStrings["strLblEdit"]$value
strLblEdit <- ifelse(is.na(strtmp), strLblEdit, strtmp)
strtmp <- dtStrings["strBtnTrim"]$value
strBtnTrim <- ifelse(is.na(strtmp), strBtnTrim, strtmp)
strtmp <- dtStrings["strLblTrim"]$value
strLblTrim <- ifelse(is.na(strtmp), strLblTrim, strtmp)
strtmp <- dtStrings["strBtnSlim"]$value
strBtnSlim <- ifelse(is.na(strtmp), strBtnSlim, strtmp)
strtmp <- dtStrings["strLblSlim"]$value
strLblSlim <- ifelse(is.na(strtmp), strLblSlim, strtmp)
strtmp <- dtStrings["strBtnFilter"]$value
strBtnFilter <- ifelse(is.na(strtmp), strBtnFilter, strtmp)
strtmp <- dtStrings["strLblFilter"]$value
strLblFilter <- ifelse(is.na(strtmp), strLblFilter, strtmp)
strtmp <- dtStrings["strBtnCrop"]$value
strBtnCrop <- ifelse(is.na(strtmp), strBtnCrop, strtmp)
strtmp <- dtStrings["strLblCrop"]$value
strLblCrop <- ifelse(is.na(strtmp), strLblCrop, strtmp)
strtmp <- dtStrings["strBtnGuess"]$value
strBtnGuess <- ifelse(is.na(strtmp), strBtnGuess, strtmp)
strtmp <- dtStrings["strLblGuess"]$value
strLblGuess <- ifelse(is.na(strtmp), strLblGuess, strtmp)
strtmp <- dtStrings["strBtnDye"]$value
strBtnDye <- ifelse(is.na(strtmp), strBtnDye, strtmp)
strtmp <- dtStrings["strLblDye"]$value
strLblDye <- ifelse(is.na(strtmp), strLblDye, strtmp)
strtmp <- dtStrings["strBtnMarker"]$value
strBtnMarker <- ifelse(is.na(strtmp), strBtnMarker, strtmp)
strtmp <- dtStrings["strLblMarker"]$value
strLblMarker <- ifelse(is.na(strtmp), strLblMarker, strtmp)
strtmp <- dtStrings["strBtnSize"]$value
strBtnSize <- ifelse(is.na(strtmp), strBtnSize, strtmp)
strtmp <- dtStrings["strLblSize"]$value
strLblSize <- ifelse(is.na(strtmp), strLblSize, strtmp)
strtmp <- dtStrings["strBtnData"]$value
strBtnData <- ifelse(is.na(strtmp), strBtnData, strtmp)
strtmp <- dtStrings["strLblData"]$value
strLblData <- ifelse(is.na(strtmp), strLblData, strtmp)
strtmp <- dtStrings["strBtnCheck"]$value
strBtnCheck <- ifelse(is.na(strtmp), strBtnCheck, strtmp)
strtmp <- dtStrings["strLblCheck"]$value
strLblCheck <- ifelse(is.na(strtmp), strLblCheck, strtmp)
strtmp <- dtStrings["strBtnCombine"]$value
strBtnCombine <- ifelse(is.na(strtmp), strBtnCombine, strtmp)
strtmp <- dtStrings["strLblCombine"]$value
strLblCombine <- ifelse(is.na(strtmp), strLblCombine, strtmp)
strtmp <- dtStrings["strBtnColumns"]$value
strBtnColumns <- ifelse(is.na(strtmp), strBtnColumns, strtmp)
strtmp <- dtStrings["strLblColumns"]$value
strLblColumns <- ifelse(is.na(strtmp), strLblColumns, strtmp)
strtmp <- dtStrings["strBtnCopies"]$value
strBtnCopies <- ifelse(is.na(strtmp), strBtnCopies, strtmp)
strtmp <- dtStrings["strLblCopies"]$value
strLblCopies <- ifelse(is.na(strtmp), strLblCopies, strtmp)
strtmp <- dtStrings["strBtnHeight"]$value
strBtnHeight <- ifelse(is.na(strtmp), strBtnHeight, strtmp)
strtmp <- dtStrings["strLblHeight"]$value
strLblHeight <- ifelse(is.na(strtmp), strLblHeight, strtmp)
strtmp <- dtStrings["strBtnEPG"]$value
strBtnEPG <- ifelse(is.na(strtmp), strBtnEPG, strtmp)
strtmp <- dtStrings["strLblEPG"]$value
strLblEPG <- ifelse(is.na(strtmp), strLblEPG, strtmp)
strtmp <- dtStrings["strBtnEPG2"]$value
strBtnEPG2 <- ifelse(is.na(strtmp), strBtnEPG2, strtmp)
strtmp <- dtStrings["strLblEPG2"]$value
strLblEPG2 <- ifelse(is.na(strtmp), strLblEPG2, strtmp)
strtmp <- dtStrings["strLblAT"]$value
strLblAT <- ifelse(is.na(strtmp), strLblAT, strtmp)
strtmp <- dtStrings["strLblAT6"]$value
strLblAT6 <- ifelse(is.na(strtmp), strLblAT6, strtmp)
strtmp <- dtStrings["strBtnPlot"]$value
strBtnPlot <- ifelse(is.na(strtmp), strBtnPlot, strtmp)
strtmp <- dtStrings["strLblPlotAT6"]$value
strLblPlotAT6 <- ifelse(is.na(strtmp), strLblPlotAT6, strtmp)
strtmp <- dtStrings["strLblStutter"]$value
strLblStutter <- ifelse(is.na(strtmp), strLblStutter, strtmp)
strtmp <- dtStrings["strLblPlotStutter"]$value
strLblPlotStutter <- ifelse(is.na(strtmp), strLblPlotStutter, strtmp)
strtmp <- dtStrings["strBtnStatistics"]$value
strBtnStatistics <- ifelse(is.na(strtmp), strBtnStatistics, strtmp)
strtmp <- dtStrings["strLblStatStutterGlobal"]$value
strLblStatStutterGlobal <- ifelse(is.na(strtmp), strLblStatStutterGlobal, strtmp)
strtmp <- dtStrings["strLblStatStutterMarker"]$value
strLblStatStutterMarker <- ifelse(is.na(strtmp), strLblStatStutterMarker, strtmp)
strtmp <- dtStrings["strLblStatStutterStutter"]$value
strLblStatStutterStutter <- ifelse(is.na(strtmp), strLblStatStutterStutter, strtmp)
strtmp <- dtStrings["strFrmHb"]$value
strFrmHb <- ifelse(is.na(strtmp), strFrmHb, strtmp)
strtmp <- dtStrings["strFrmLb"]$value
strFrmLb <- ifelse(is.na(strtmp), strFrmLb, strtmp)
strtmp <- dtStrings["strLblHb"]$value
strLblHb <- ifelse(is.na(strtmp), strLblHb, strtmp)
strtmp <- dtStrings["strLblLb"]$value
strLblLb <- ifelse(is.na(strtmp), strLblLb, strtmp)
strtmp <- dtStrings["strLblPlotBalance"]$value
strLblPlotBalance <- ifelse(is.na(strtmp), strLblPlotBalance, strtmp)
strtmp <- dtStrings["strLblStatBalanceGlobal"]$value
strLblStatBalanceGlobal <- ifelse(is.na(strtmp), strLblStatBalanceGlobal, strtmp)
strtmp <- dtStrings["strLblStatBalanceMarker"]$value
strLblStatBalanceMarker <- ifelse(is.na(strtmp), strLblStatBalanceMarker, strtmp)
strtmp <- dtStrings["strFrmCapillary"]$value
strFrmCapillary <- ifelse(is.na(strtmp), strFrmCapillary, strtmp)
strtmp <- dtStrings["strLblCapillary"]$value
strLblCapillary <- ifelse(is.na(strtmp), strLblCapillary, strtmp)
strtmp <- dtStrings["strLblPlotCapillary"]$value
strLblPlotCapillary <- ifelse(is.na(strtmp), strLblPlotCapillary, strtmp)
strtmp <- dtStrings["strLblStatCapillaryCap"]$value
strLblStatCapillaryCap <- ifelse(is.na(strtmp), strLblStatCapillaryCap, strtmp)
strtmp <- dtStrings["strLblStatCapillaryInj"]$value
strLblStatCapillaryInj <- ifelse(is.na(strtmp), strLblStatCapillaryInj, strtmp)
strtmp <- dtStrings["strLblStatCapillaryRow"]$value
strLblStatCapillaryRow <- ifelse(is.na(strtmp), strLblStatCapillaryRow, strtmp)
strtmp <- dtStrings["strLblStatCapillaryRun"]$value
strLblStatCapillaryRun <- ifelse(is.na(strtmp), strLblStatCapillaryRun, strtmp)
strtmp <- dtStrings["strLblStatCapillaryIns"]$value
strLblStatCapillaryIns <- ifelse(is.na(strtmp), strLblStatCapillaryIns, strtmp)
strtmp <- dtStrings["strFrmRatio"]$value
strFrmRatio <- ifelse(is.na(strtmp), strFrmRatio, strtmp)
strtmp <- dtStrings["strLblRatio"]$value
strLblRatio <- ifelse(is.na(strtmp), strLblRatio, strtmp)
strtmp <- dtStrings["strLblPlotRatio"]$value
strLblPlotRatio <- ifelse(is.na(strtmp), strLblPlotRatio, strtmp)
strtmp <- dtStrings["strLblConcordance"]$value
strLblConcordance <- ifelse(is.na(strtmp), strLblConcordance, strtmp)
strtmp <- dtStrings["strBtnScore"]$value
strBtnScore <- ifelse(is.na(strtmp), strBtnScore, strtmp)
strtmp <- dtStrings["strLblScore"]$value
strLblScore <- ifelse(is.na(strtmp), strLblScore, strtmp)
strtmp <- dtStrings["strLblDropout"]$value
strLblDropout <- ifelse(is.na(strtmp), strLblDropout, strtmp)
strtmp <- dtStrings["strBtnModel"]$value
strBtnModel <- ifelse(is.na(strtmp), strBtnModel, strtmp)
strtmp <- dtStrings["strLblModel"]$value
strLblModel <- ifelse(is.na(strtmp), strLblModel, strtmp)
strtmp <- dtStrings["strLblPlotDropout"]$value
strLblPlotDropout <- ifelse(is.na(strtmp), strLblPlotDropout, strtmp)
strtmp <- dtStrings["strLblMixture"]$value
strLblMixture <- ifelse(is.na(strtmp), strLblMixture, strtmp)
strtmp <- dtStrings["strFrmType"]$value
strFrmType <- ifelse(is.na(strtmp), strFrmType, strtmp)
strtmp <- dtStrings["strLblType"]$value
strLblType <- ifelse(is.na(strtmp), strLblType, strtmp)
strtmp <- dtStrings["strLblPlotType"]$value
strLblPlotType <- ifelse(is.na(strtmp), strLblPlotType, strtmp)
strtmp <- dtStrings["strFrmPeaks"]$value
strFrmPeaks <- ifelse(is.na(strtmp), strFrmPeaks, strtmp)
strtmp <- dtStrings["strLblPeaks"]$value
strLblPeaks <- ifelse(is.na(strtmp), strLblPeaks, strtmp)
strtmp <- dtStrings["strLblPlotPeaks"]$value
strLblPlotPeaks <- ifelse(is.na(strtmp), strLblPlotPeaks, strtmp)
strtmp <- dtStrings["strFrmStatistics"]$value
strFrmStatistics <- ifelse(is.na(strtmp), strFrmStatistics, strtmp)
strtmp <- dtStrings["strLblStatistics"]$value
strLblStatistics <- ifelse(is.na(strtmp), strLblStatistics, strtmp)
strtmp <- dtStrings["strFrmDistribution"]$value
strFrmDistribution <- ifelse(is.na(strtmp), strFrmDistribution, strtmp)
strtmp <- dtStrings["strLblDistribution"]$value
strLblDistribution <- ifelse(is.na(strtmp), strLblDistribution, strtmp)
strtmp <- dtStrings["strLblGroups"]$value
strLblGroups <- ifelse(is.na(strtmp), strLblGroups, strtmp)
strtmp <- dtStrings["strFrmDropin"]$value
strFrmDropin <- ifelse(is.na(strtmp), strFrmDropin, strtmp)
strtmp <- dtStrings["strLblSpikes"]$value
strLblSpikes <- ifelse(is.na(strtmp), strLblSpikes, strtmp)
strtmp <- dtStrings["strLblFilterSpikes"]$value
strLblFilterSpikes <- ifelse(is.na(strtmp), strLblFilterSpikes, strtmp)
strtmp <- dtStrings["strLblArtefacts"]$value
strLblArtefacts <- ifelse(is.na(strtmp), strLblArtefacts, strtmp)
strtmp <- dtStrings["strLblFilterArtefacts"]$value
strLblFilterArtefacts <- ifelse(is.na(strtmp), strLblFilterArtefacts, strtmp)
strtmp <- dtStrings["strLblPlotContamination"]$value
strLblPlotContamination <- ifelse(is.na(strtmp), strLblPlotContamination, strtmp)
strtmp <- dtStrings["strFrmSlope"]$value
strFrmSlope <- ifelse(is.na(strtmp), strFrmSlope, strtmp)
strtmp <- dtStrings["strLblSlope"]$value
strLblSlope <- ifelse(is.na(strtmp), strLblSlope, strtmp)
strtmp <- dtStrings["strLblPlotSlope"]$value
strLblPlotSlope <- ifelse(is.na(strtmp), strLblPlotSlope, strtmp)
strtmp <- dtStrings["strLblPrecision"]$value
strLblPrecision <- ifelse(is.na(strtmp), strLblPrecision, strtmp)
strtmp <- dtStrings["strLblStatPrecisionSize"]$value
strLblStatPrecisionSize <- ifelse(is.na(strtmp), strLblStatPrecisionSize, strtmp)
strtmp <- dtStrings["strLblStatPrecisionDataPoint"]$value
strLblStatPrecisionDataPoint <- ifelse(is.na(strtmp), strLblStatPrecisionDataPoint, strtmp)
strtmp <- dtStrings["strLblStatPrecisionHeight"]$value
strLblStatPrecisionHeight <- ifelse(is.na(strtmp), strLblStatPrecisionHeight, strtmp)
strtmp <- dtStrings["strLblPullup"]$value
strLblPullup <- ifelse(is.na(strtmp), strLblPullup, strtmp)
strtmp <- dtStrings["strLblPlotPullup"]$value
strLblPlotPullup <- ifelse(is.na(strtmp), strLblPlotPullup, strtmp)
}
# WINDOW ####################################################################
# Main window.
w <- gwindow(
title = paste(
"STR-validator", packageVersion("strvalidator"),
" - a forensic validation toolbox"
),
visible = FALSE,
name = title
)
# Vertical main group.
gv <- ggroup(
horizontal = FALSE,
use.scrollwindow = FALSE,
container = w,
expand = TRUE
)
# Help button group.
gh <- ggroup(container = gv, expand = FALSE, fill = "both")
savegui_chk <- gcheckbox(text = strChkGui, checked = TRUE, container = gh)
addHandlerChanged(savegui_chk, handler = function(h, ...) {
# Update variable.
.save_gui <<- svalue(savegui_chk)
})
addSpring(gh)
help_btn <- gbutton(text = strBtnHelp, container = gh)
addHandlerChanged(help_btn, handler = function(h, ...) {
# Open help page for function.
print(help(fnc, help_type = "html"))
})
# Main client area.
nb <- gnotebook(
closebuttons = FALSE,
dontCloseThese = NULL,
container = gv
)
# NOTEBOOK ##################################################################
# Define groups.
start_tab <- ggroup(
horizontal = FALSE,
spacing = 4,
use.scrollwindow = FALSE,
container = nb,
label = strTabWelcome,
index = 1
)
project_tab <- ggroup(
horizontal = FALSE,
spacing = 4,
use.scrollwindow = FALSE,
container = nb,
label = strTabProject,
index = 2
)
file_tab <- ggroup(
horizontal = FALSE,
spacing = 4,
use.scrollwindow = FALSE,
container = nb,
label = strTabWorkspace,
index = 3
)
drylab_tab <- ggroup(
horizontal = FALSE,
spacing = 4,
use.scrollwindow = FALSE,
container = nb,
label = strTabDryLab,
index = 4
)
tools_tab <- ggroup(
horizontal = FALSE,
spacing = 2,
use.scrollwindow = FALSE,
container = nb,
label = strTabTools,
index = 5
)
at_tab <- ggroup(
horizontal = FALSE,
spacing = 4,
use.scrollwindow = FALSE,
container = nb,
label = strTabAT,
index = 6
)
stutter_tab <- ggroup(
horizontal = FALSE,
spacing = 4,
use.scrollwindow = FALSE,
container = nb,
label = strTabStutter,
index = 7
)
balance_tab <- ggroup(
horizontal = FALSE,
spacing = 2,
use.scrollwindow = FALSE,
container = nb,
label = strTabBalance,
index = 8
)
concordance_tab <- ggroup(
horizontal = FALSE,
spacing = 4,
use.scrollwindow = FALSE,
container = nb,
label = strTabConcordance,
index = 9
)
drop_tab <- ggroup(
horizontal = FALSE,
spacing = 4,
use.scrollwindow = FALSE,
container = nb,
label = strTabDroput,
index = 10
)
mixture_tab <- ggroup(
horizontal = FALSE,
spacing = 4,
use.scrollwindow = FALSE,
container = nb,
label = strTabMixture,
index = 11
)
result_tab <- ggroup(
horizontal = FALSE,
spacing = 4,
use.scrollwindow = FALSE,
container = nb,
label = strTabResult,
index = 12
)
precision_tab <- ggroup(
horizontal = FALSE,
spacing = 4,
use.scrollwindow = FALSE,
container = nb,
label = strTabPrecision,
index = 13
)
pullup_tab <- ggroup(
horizontal = FALSE,
spacing = 4,
use.scrollwindow = FALSE,
container = nb,
label = strTabPullup,
index = 14
)
# START #####################################################################
# Vertical main group.
start_f1 <- gframe(
horizontal = FALSE,
container = start_tab,
spacing = 2,
expand = TRUE,
fill = TRUE
)
# STR TYPING KIT ------------------------------------------------------------
gtext(
text = .about_txt, width = NULL, height = NULL, font.attr = NULL,
wrap = TRUE, expand = TRUE, container = start_f1, fill = TRUE,
anchor = c(-1, 0)
)
button_group <- ggroup(container = start_f1)
webpage_btn <- gbutton(text = strBtnWebpage, container = button_group)
tooltip(webpage_btn) <- strTipWebpage
addHandlerChanged(webpage_btn, handler = function(h, ...) {
browseURL("https://sites.google.com/site/forensicapps/strvalidator")
})
youtube_btn <- gbutton(text = strBtnVideo, container = button_group)
tooltip(youtube_btn) <- strTipVideo
addHandlerChanged(youtube_btn, handler = function(h, ...) {
browseURL("https://www.youtube.com/channel/UCs7TxzK21OKvWebQygxAHHA")
})
facebook_btn <- gbutton(text = strBtnFacebook, container = button_group)
tooltip(facebook_btn) <- strTipFacebook
addHandlerChanged(facebook_btn, handler = function(h, ...) {
browseURL("https://www.facebook.com/STRvalidator")
})
community_btn <- gbutton(text = strBtnSupport, container = button_group)
tooltip(community_btn) <- strTipSupport
addHandlerChanged(community_btn, handler = function(h, ...) {
browseURL("https://www.facebook.com/groups/strvalidator/")
})
report_btn <- gbutton(text = strBtnReport, container = button_group)
tooltip(report_btn) <- strTipReport
addHandlerChanged(report_btn, handler = function(h, ...) {
browseURL("https://github.com/OskarHansson/strvalidator/issues")
})
source_btn <- gbutton(text = strBtnSource, container = button_group)
tooltip(source_btn) <- strTipSource
addHandlerChanged(source_btn, handler = function(h, ...) {
browseURL("https://github.com/OskarHansson/strvalidator")
})
cran_btn <- gbutton(text = strBtnCran, container = button_group)
tooltip(cran_btn) <- strTipCran
addHandlerChanged(cran_btn, handler = function(h, ...) {
browseURL("https://cran.r-project.org/web/packages/strvalidator/index.html")
})
start_license_btn <- gbutton(text = strBtnLicense, container = button_group, expand = FALSE)
addHandlerChanged(start_license_btn, handler = function(h, ...) {
license_txt <- paste("Copyright (C) 2013 Oskar Hansson\n\n",
"This program is free software; you can redistribute it and/or ",
"modify it under the terms of the GNU General Public License ",
"as published by the Free Software Foundation; either version 2 ",
"of the License, or (at your option) any later version.\n\n",
"This program is distributed in the hope that it will be useful, ",
"but WITHOUT ANY WARRANTY; without even the implied warranty of ",
"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ",
"GNU General Public License for more details.\n\n",
"You should have received a copy of the GNU General Public License ",
"along with this program; if not, write to the Free Software ",
"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, ",
"MA 02110-1301, USA.",
sep = ""
)
gmessage(
msg = license_txt,
title = "License",
icon = "info",
parent = w
)
})
# PROJECT MANAGER ###########################################################
# Vertical main group.
project_f1 <- ggroup(
horizontal = FALSE,
container = project_tab,
spacing = 2,
expand = FALSE
)
# FOLDER --------------------------------------------------------------------
glabel(text = strLblFolder, anchor = c(-1, 0), container = project_f1)
project_fb <- gfilebrowse(
type = "selectdir", quote = FALSE,
container = project_f1
)
addHandlerChanged(project_fb, handler = function(h, ...) {
.updateProjectList()
})
# PROJECTS ------------------------------------------------------------------
# Horizontal main group.
project_f2 <- gframe(
text = strFrmProject,
horizontal = TRUE,
spacing = 2,
container = project_f1,
expand = TRUE
)
# Button group.
project_g1 <- ggroup(
horizontal = FALSE,
spacing = 2,
container = project_f2,
expand = FALSE
)
project_open_btn <- gbutton(text = strBtnOpen, container = project_g1)
tooltip(project_open_btn) <- strTipOpen
project_add_btn <- gbutton(text = strBtnAdd, container = project_g1)
tooltip(project_add_btn) <- strTipAdd
project_delete_btn <- gbutton(text = strBtnDelete, container = project_g1)
tooltip(project_delete_btn) <- strTipDelete
addSpring(project_g1)
addHandlerChanged(project_open_btn, handler = function(h, ...) {
# Get selected projects file name.
val_name <- svalue(project_tbl)
val_id <- as.numeric(project_tbl[svalue(project_tbl, index = TRUE), "Id"])
val_prj <- .project_path_list[val_id]
val_env <- .strvalidator_env
if (debug) {
print(paste("Selected path", val_prj))
print(paste("Selected project", val_name))
print(paste("Selected index", val_id))
}
# Check if file exist.
if (length(val_prj) > 0) {
if (file.exists(val_prj)) {
# Clear environment.
remove(
list = ls(envir = val_env, all.names = TRUE),
envir = val_env, inherits = FALSE
)
# Load project to workspace.
load(file = val_prj, envir = val_env, verbose = FALSE)
# Move to workspace tab.
svalue(nb) <- match(strTabWorkspace, names(nb))
}
}
})
addHandlerChanged(project_add_btn, handler = function(h, ...) {
# Get selected projects file name.
val_name <- svalue(project_tbl)
val_id <- as.numeric(project_tbl[svalue(project_tbl, index = TRUE), "Id"])
val_prj <- .project_path_list[val_id]
val_env <- .strvalidator_env
if (debug) {
print(paste("Selected path", val_prj))
print(paste("Selected project", val_name))
print(paste("Selected index", val_id))
}
# Check if file exist.
if (length(val_prj) > 0) {
if (file.exists(val_prj)) {
# Load project to workspace.
load(file = val_prj, envir = val_env, verbose = FALSE)
message(paste("Loaded", val_prj))
}
}
})
addHandlerChanged(project_delete_btn, handler = function(h, ...) {
# Get selected projects file name.
val_name <- svalue(project_tbl)
val_id <- as.numeric(project_tbl[svalue(project_tbl, index = TRUE), "Id"])
val_prj <- .project_path_list[val_id]
if (debug) {
print(paste("Selected path", val_prj))
print(paste("Selected project", val_name))
print(paste("Selected index", val_id))
}
# Check if file exist.
if (length(val_prj) > 0) {
if (file.exists(val_prj)) {
# Delete project file and update list.
file.remove(val_prj)
message("Deleted", val_prj)
.updateProjectList()
# Clear description box.
svalue(proj_info_lbl) <- strLblProject
svalue(proj_info_txt) <- ""
}
}
})
# Projects group.
project_g2 <- ggroup(
horizontal = FALSE,
use.scrollwindow = FALSE,
container = project_f2,
expand = TRUE,
fill = TRUE
)
# Projects list.
project_tbl <- gWidgets2::gtable(
items = data.frame(
Name = strStrNoProject, Date = "",
Size = "", Id = "",
stringsAsFactors = FALSE
),
multiple = TRUE,
chosencol = 1,
expand = TRUE,
container = project_g2
)
addHandlerSelectionChanged(project_tbl, handler = function(h, ...) {
# Get selected projects file name.
val_name <- svalue(project_tbl)
val_id <- as.numeric(project_tbl[svalue(project_tbl, index = TRUE), "Id"])
val_prj <- .project_path_list[val_id]
val_obj <- .project_description_variable
val_env <- .project_tmp_env
if (debug) {
print(paste("In addHandlerClicked(project_tbl"))
print(paste("Selected path", val_prj))
print(paste("Selected project", val_name))
print(paste("Selected index", val_id))
}
# Enable possibly disabled save button upon changed selectioin.
enabled(project_save_btn) <- TRUE
# Clear environment.
remove(list = ls(envir = val_env, all.names = TRUE), envir = val_env, inherits = FALSE)
# Check if file exist.
if (length(val_prj) > 0) {
if (file.exists(val_prj)) {
# Check if description should be loaded.
if (visible(project_f3)) {
# Load project in temporary environment.
load(file = val_prj, envir = val_env, verbose = FALSE)
if (exists(x = val_obj, envir = val_env, inherits = FALSE)) {
description <- get(x = val_obj, envir = val_env, inherits = FALSE)
} else {
description <- strStrDescription
}
# Load description.
svalue(proj_info_lbl) <- paste(strLblProject, val_name)
svalue(proj_info_txt) <- description
}
}
} else {
# Reset description.
svalue(proj_info_lbl) <- strLblProject
svalue(proj_info_txt) <- strStrProjectDescription
}
})
# DESCRIPTION ---------------------------------------------------------------
# Horizontal main group.
project_f3 <- gexpandgroup(
text = strFrmDescription,
horizontal = TRUE,
container = project_f1,
expand = TRUE
)
# Default is to not show description.
visible(project_f3) <- FALSE
# Button group.
project_g3 <- ggroup(
horizontal = FALSE, spacing = 2,
container = project_f3, expand = FALSE
)
project_save_btn <- gbutton(text = strBtnSave, container = project_g3)
tooltip(project_save_btn) <- strTipSaveDescription
addHandlerChanged(project_save_btn, handler = function(h, ...) {
enabled(project_save_btn) <- FALSE
# Get selected projects file name.
val_name <- svalue(project_tbl)
val_id <- project_tbl[svalue(project_tbl, index = TRUE), "Id"]
val_id <- as.numeric(val_id)
val_prj <- .project_path_list[val_id]
val_obj <- .project_description_variable
val_env <- .project_tmp_env
val_description <- svalue(proj_info_txt)
# Check if selected project.
if (length(val_prj) > 0) {
# Save project description and write to disc.
message("Assign: ", val_obj)
assign(x = val_obj, value = val_description, envir = val_env, inherits = FALSE)
message("Save: ", val_prj)
save(file = val_prj, list = ls(envir = val_env, all.names = TRUE), envir = val_env)
} else {
message("No valid project selected!")
}
enabled(project_save_btn) <- TRUE
})
# Button group.
project_g4 <- ggroup(
horizontal = FALSE,
spacing = 2,
container = project_f3,
expand = TRUE,
fill = TRUE
)
# Project description window.
proj_info_lbl <- glabel(
text = strLblProject, anchor = c(-1, 0),
container = project_g4
)
proj_info_txt <- gtext(
text = strStrProjectDescription, height = 50, expand = TRUE,
wrap = TRUE, container = project_g4, fill = TRUE
)
# WORKSPACE #################################################################
# LOADED DATASETS -----------------------------------------------------------
workspace_f1 <- gframe(
text = strFrmProject,
markup = FALSE,
pos = 0,
horizontal = TRUE,
container = file_tab,
expand = TRUE,
fill = TRUE
)
workspace_f1g1 <- ggroup(
horizontal = FALSE,
container = workspace_f1,
expand = FALSE
)
ws_new_btn <- gbutton(text = strBtnNew, container = workspace_f1g1)
tooltip(ws_new_btn) <- strTipNewProject
ws_open_btn <- gbutton(text = strBtnOpen, container = workspace_f1g1)
tooltip(ws_open_btn) <- strTipOpenProject
ws_save_btn <- gbutton(text = strBtnSave, container = workspace_f1g1)
tooltip(ws_save_btn) <- strTipSaveProject
ws_saveas_btn <- gbutton(text = strBtnSaveAs, container = workspace_f1g1)
tooltip(ws_saveas_btn) <- strTipSaveAs
ws_import_btn <- gbutton(text = strBtnImport, container = workspace_f1g1)
tooltip(ws_import_btn) <- strTipImport
ws_export_btn <- gbutton(text = strBtnExport, container = workspace_f1g1)
tooltip(ws_export_btn) <- strTipExport
ws_add_btn <- gbutton(text = strBtnAdd, container = workspace_f1g1)
tooltip(ws_add_btn) <- strTipAdd
ws_refresh_btn <- gbutton(text = strBtnRefresh, container = workspace_f1g1)
tooltip(ws_refresh_btn) <- strTipRefresh
ws_remove_btn <- gbutton(text = strBtnDelete, container = workspace_f1g1)
tooltip(ws_remove_btn) <- strTipDeleteObject
ws_rename_btn <- gbutton(text = strBtnRename, container = workspace_f1g1)
tooltip(ws_rename_btn) <- strTipRenameObject
ws_view_btn <- gbutton(text = strBtnView, container = workspace_f1g1)
tooltip(ws_view_btn) <- strTipView
ws_loaded_tbl <- gWidgets2::gtable(
items = .object_empty_df,
multiple = TRUE,
chosencol = 1,
expand = TRUE,
container = workspace_f1
)
addHandlerChanged(ws_new_btn, handler = function(h, ...) {
blockHandlers(w)
response <- gconfirm(msg = strMsgNew)
unblockHandlers(w)
if (response) {
# Create a new environment.
.strvalidator_env <<- new.env(parent = emptyenv())
message("A new project environment was created.")
# Refresh workspace.
.refreshLoaded()
}
})
addHandlerChanged(ws_rename_btn, handler = function(h, ...) {
objectName <- svalue(ws_loaded_tbl)
if (length(objectName) == 1) {
# Get the object to save.
datanew <- get(objectName, envir = .strvalidator_env)
# Save data.
saveObject(
name = NULL, object = datanew, suggest = objectName,
parent = w, remove = objectName, env = .strvalidator_env,
debug = debug
)
.refreshLoaded()
} else {
gmessage(
msg = strMsgRename,
title = strMsgTitleError,
icon = "error",
parent = w
)
}
})
addHandlerChanged(ws_open_btn, handler = function(h, ...) {
val_env <- .strvalidator_env
blockHandlers(w)
ws_path <- gfile(
text = strMsgSelectWorkspace, type = "open",
filter = list("R files" = list(patterns = c("*.R", "*.Rdata"))),
multi = FALSE, initial.dir = .ws_last_open_dir
)
unblockHandlers(w)
if (length(ws_path) > 0) {
if (!is.na(ws_path)) {
if (file.exists(ws_path)) {
# Clear environment.
remove(
list = ls(envir = val_env, all.names = TRUE),
envir = val_env, inherits = FALSE
)
# Load new project.
load(file = ws_path, envir = .strvalidator_env)
# Refresh workspace.
.refreshLoaded()
# Load saved project settings.
.loadSavedSettings()
# Save last used directory.
.ws_last_open_dir <<- dirname(ws_path)
} else {
blockHandlers(w)
gmessage(
msg = strMsgNotFound,
title = strMsgTitleNotFound,
icon = "error",
parent = w
)
unblockHandlers(w)
}
}
}
})
addHandlerChanged(ws_add_btn, handler = function(h, ...) {
val_env <- .strvalidator_env
blockHandlers(w)
ws_path <- gfile(
text = strMsgSelectWorkspace, type = "open",
filter = list("R files" = list(patterns = c("*.R", "*.Rdata"))),
multi = FALSE, initial.dir = .ws_last_open_dir
)
unblockHandlers(w)
if (length(ws_path) > 0) {
if (!is.na(ws_path)) {
if (file.exists(ws_path)) {
# Add new project.
load(file = ws_path, envir = val_env)
.loadSavedSettings()
# Save last used directory.
.ws_last_open_dir <<- dirname(ws_path)
} else {
blockHandlers(w)
gmessage(
msg = strMsgNotFound,
title = strMsgTitleNotFound,
icon = "error",
parent = w
)
unblockHandlers(w)
}
}
}
})
addHandlerChanged(ws_import_btn, handler = function(h, ...) {
# Open GUI.
import_gui(env = .strvalidator_env, savegui = .save_gui, debug = debug, parent = w)
})
addHandlerChanged(ws_export_btn, handler = function(h, ...) {
# Get selected items.
val <- svalue(ws_loaded_tbl)
if (!any(is.null(val)) && !any(is.na(val)) && length(val) > 0) {
# List selected objects.
message("Objects selected for export: ", paste(val, collapse = ", "))
# Open GUI.
export_gui(
obj = val, env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
} else {
blockHandlers(w)
gmessage(
msg = strMsgExport,
title = strMsgNoObjectSelected, icon = "info", parent = w
)
unblockHandlers(w)
}
})
addHandlerChanged(ws_refresh_btn, handler = function(h, ...) {
.refreshLoaded()
})
addHandlerChanged(ws_view_btn, handler = function(h, ...) {
# Get selected dataset name(s).
val_obj <- svalue(ws_loaded_tbl)
if (debug) {
print(paste("IN:", match.call()[[1]]))
print("Changed, ws_view_btn")
print(val_obj)
}
if (!is.null(val_obj) && !is.na(val_obj) && length(val_obj) > 0) {
# Get data and class.
val_data <- get(val_obj, envir = .strvalidator_env)
val_class <- class(val_data)
if ("data.frame" %in% val_class) {
# Convert to DT and view.
dt <- DT::datatable(val_data,
rownames = FALSE, filter = "top",
extensions = "Buttons", options = list(dom = "Bfrtip", buttons = c("copy", "csv", "excel", "pdf", "print"))
)
print(dt)
} else if (any(c("ggplot", "plotly", "datatables") %in% val_class)) {
# View object.
print(val_data)
} else {
blockHandlers(w)
gmessage(
msg = paste(val_class, strMsgTypeNotSupported),
title = strMsgTitleNotSupported, icon = "error", parent = w
)
unblockHandlers(w)
}
} else {
blockHandlers(w)
gmessage(
msg = strMsgSelectObject,
title = strMsgNoObjectSelected, icon = "info", parent = w
)
unblockHandlers(w)
}
})
addHandlerChanged(ws_remove_btn, handler = function(h, ...) {
# Get selected dataset name(s).
val_obj <- svalue(ws_loaded_tbl)
if (length(val_obj) > 0) {
if (!is.null(val_obj) && !is.na(val_obj)) {
# Get active reference data frame.
remove(list = val_obj, envir = .strvalidator_env)
message(
"The following objects were removed: ",
paste(val_obj, collapse = ", ")
)
.refreshLoaded()
}
} else if (length(val_obj) == 0) {
blockHandlers(w)
gmessage(
msg = strMsgNoObjectSelected, title = strMsgTitleError,
icon = "error", parent = w
)
unblockHandlers(w)
} else {
message(
"Negative return value should not be possible.",
"Nothing was removed!"
)
}
})
addHandlerChanged(ws_save_btn, handler = function(h, ...) {
# Initiate flag.
ok <- TRUE
# Get project name if available.
if (exists(.ws_name_variable, envir = .strvalidator_env)) {
ws_name <- get(.ws_name_variable,
envir = .strvalidator_env,
inherits = FALSE
)
message("Last project name loaded: ", ws_name)
} else {
ok <- FALSE
}
# Get project path if available.
if (exists(.ws_path_variable, envir = .strvalidator_env)) {
ws_save_path <- get(.ws_path_variable,
envir = .strvalidator_env,
inherits = FALSE
)
message("Last project save path loaded: ", ws_save_path)
} else {
ok <- FALSE
}
if (ok) {
if (!is.na(ws_name) && !ws_name == "") {
ws_full_name <- paste(ws_save_path, .separator, ws_name, ".RData", sep = "")
if (file.exists(ws_save_path)) {
.saveSettings()
save(
file = ws_full_name,
list = ls(envir = .strvalidator_env, all.names = TRUE),
envir = .strvalidator_env
)
blockHandlers(w)
gmessage(
msg = paste(strMsgProjectSaved, ws_full_name),
title = "STR-validator",
icon = "info",
parent = w
)
unblockHandlers(w)
message("Project saved as: ", ws_full_name)
} else {
blockHandlers(w)
gmessage(
msg = strMsgDirNotFound,
title = strMsgTitleDirNotFound,
icon = "error",
parent = w
)
unblockHandlers(w)
}
} else {
blockHandlers(w)
gmessage(
msg = strMsgFileNameMissing,
title = strMsgFileNameRequired,
icon = "error",
parent = w
)
unblockHandlers(w)
}
} else {
blockHandlers(w)
gmessage(
msg = strMsgUseSaveAs,
title = strMsgPropertyNotFound,
icon = "error",
parent = w
)
unblockHandlers(w)
}
})
addHandlerChanged(ws_saveas_btn, handler = function(h, ...) {
# Initiate flag.
ok <- TRUE
# Pick save location.
blockHandlers(w)
ws_save_path <- gfile(
text = strMsgSelectDirSave,
type = "selectdir",
filter = list("R files" = list(patterns = c("*.R", "*.Rdata"))),
multi = FALSE
)
unblockHandlers(w)
# Ask for project name.
blockHandlers(w)
ws_name <- ginput(
msg = strMsgInputProject,
text = "",
title = strMsgTitleSaveAs,
icon = "info",
parent = w
)
unblockHandlers(w)
# Check if valid name.
if (!is.na(ws_name) && !ws_name == "") {
# Create complete path.
ws_full_name <- paste(ws_save_path, .separator, ws_name, ".RData", sep = "")
if (debug) {
print(ws_full_name)
}
# Check if file exist.
if (file.exists(ws_full_name)) {
# Ask if overwrite.
blockHandlers(w)
ok <- gconfirm(
msg = paste(
ws_full_name,
strMsgOverwrite
),
title = strMsgTitleConfirm, icon = "question", parent = w
)
unblockHandlers(w)
}
# Check if ok to overwrite.
if (ok) {
# Save project.
if (file.exists(ws_save_path)) {
# Save project variables in workspace.
assign(x = .ws_name_variable, value = ws_name, envir = .strvalidator_env)
assign(x = .ws_path_variable, value = ws_save_path, envir = .strvalidator_env)
# Save settings.
.saveSettings()
# Save project.
save(
file = ws_full_name,
list = ls(envir = .strvalidator_env, all.names = TRUE),
envir = .strvalidator_env
)
blockHandlers(w)
gmessage(
msg = paste(strMsgProjectSaved, ws_full_name),
title = "STR-validator",
icon = "info",
parent = w
)
unblockHandlers(w)
} else {
blockHandlers(w)
gmessage(
msg = strMsgDirNotFound,
title = strMsgTitleDirNotFound,
icon = "error",
parent = w
)
unblockHandlers(w)
}
} else {
blockHandlers(w)
gmessage(
msg = strMsgProjectNotSaved,
title = strMsgTitleInfo,
icon = "info",
parent = w
)
unblockHandlers(w)
}
} else {
blockHandlers(w)
gmessage(
msg = strMsgFileNameMissing,
title = strMsgFileNameRequired,
icon = "error",
parent = w
)
unblockHandlers(w)
}
})
# DATASETS ------------------------------------------------------------------
workspace_f2 <- gframe(
text = strFrmRworkspace,
markup = FALSE,
pos = 0,
horizontal = TRUE,
container = file_tab,
expand = FALSE
)
workspace_f2g1 <- ggroup(
horizontal = TRUE,
container = workspace_f2,
expand = TRUE,
fill = "x"
)
ws_r_refresh_btn <- gbutton(text = strBtnRefresh, container = workspace_f2g1)
ws_r_drp <- gcombobox(
items = c(
strDrpObject,
listObjects(
env = .strvalidator_env,
obj.class = .object_classes_import
)
),
selected = 1,
editable = FALSE,
container = workspace_f2g1,
ellipsize = "none",
expand = TRUE,
fill = "x"
)
# ws_r_load_btn <- gbutton(text = strBtnLoad, container = workspace_f2g1)
addHandlerChanged(ws_r_refresh_btn, handler = function(h, ...) {
.refreshWs()
})
addHandlerChanged(ws_r_drp, handler = function(h, ...) {
# addHandlerChanged(ws_r_load_btn, handler = function(h, ...) {
# Get selected dataset name.
val_name <- svalue(ws_r_drp)
if (!is.na(val_name) && !is.null(val_name)) {
# Load dataset.
saveObject(
name = val_name, object = get(val_name),
parent = w, env = .strvalidator_env, debug = debug
)
# Update list.
.refreshLoaded()
}
})
# STR TYPING KIT ------------------------------------------------------------
# DRY LAB ##################################################################
dry_grid <- glayout(container = drylab_tab, spacing = 2)
# VIEW ----------------------------------------------------------------------
dry_grid[1, 1] <- dry_view_btn <- gbutton(text = strBtnView, container = dry_grid)
dry_grid[1, 2] <- glabel(
text = strLblViewDataset,
container = dry_grid,
anchor = c(-1, 0)
)
addHandlerChanged(dry_view_btn, handler = function(h, ...) {
# Open GUI.
editData_gui(
env = .strvalidator_env, savegui = .save_gui,
edit = FALSE, debug = debug, parent = w
)
})
# MAKE KIT ------------------------------------------------------------------
dry_grid[2, 1] <- dry_kit_btn <- gbutton(text = strBtnKits, container = dry_grid)
dry_grid[2, 2] <- glabel(
text = strLblKits,
container = dry_grid,
anchor = c(-1, 0)
)
dry_grid[3, 1] <- dry_plot_kit_btn <- gbutton(
text = strBtnPlotKit,
container = dry_grid
)
dry_grid[3, 2] <- glabel(
text = strLblPlotKit,
container = dry_grid,
anchor = c(-1, 0)
)
dry_grid[4, 1] <- dry_bins_btn <- gbutton(
text = strBtnBins,
container = dry_grid
)
dry_grid[4, 2] <- glabel(
text = strLblBins,
container = dry_grid,
anchor = c(-1, 0)
)
dry_grid[5, 1] <- dry_ol_btn <- gbutton(
text = strBtnOl,
container = dry_grid
)
dry_grid[5, 2] <- glabel(
text = strLblOl,
container = dry_grid,
anchor = c(-1, 0)
)
addHandlerChanged(dry_kit_btn, handler = function(h, ...) {
# Open GUI.
makeKit_gui(env = .strvalidator_env, savegui = .save_gui, debug = debug, parent = w)
})
addHandlerChanged(dry_plot_kit_btn, handler = function(h, ...) {
# Open GUI.
plotKit_gui(env = .strvalidator_env, savegui = .save_gui, debug = debug, parent = w)
})
addHandlerChanged(dry_bins_btn, handler = function(h, ...) {
# Open GUI.
calculateOverlap_gui(env = .strvalidator_env, savegui = .save_gui, debug = debug, parent = w)
})
addHandlerChanged(dry_ol_btn, handler = function(h, ...) {
# Open GUI.
calculateOL_gui(env = .strvalidator_env, savegui = .save_gui, debug = debug, parent = w)
})
# TOOLS ####################################################################
tools_grid <- glayout(container = tools_tab, spacing = 2)
# EDIT ----------------------------------------------------------------------
tools_grid[1, 1] <- tools_view_btn <- gbutton(
text = strBtnEdit,
container = tools_grid
)
tools_grid[1, 2] <- glabel(
text = strLblEdit,
container = tools_grid,
anchor = c(-1, 0)
)
addHandlerChanged(tools_view_btn, handler = function(h, ...) {
# Open GUI.
editData_gui(
env = .strvalidator_env, savegui = .save_gui,
edit = TRUE, debug = debug, parent = w
)
})
# TRIM ----------------------------------------------------------------------
tools_grid[2, 1] <- tools_trim_btn <- gbutton(
text = strBtnTrim,
container = tools_grid
)
tools_grid[2, 2] <- glabel(
text = strLblTrim,
container = tools_grid,
anchor = c(-1, 0)
)
addHandlerChanged(tools_trim_btn, handler = function(h, ...) {
# Open GUI.
trim_gui(env = .strvalidator_env, savegui = .save_gui, debug = debug, parent = w)
})
# SLIM ----------------------------------------------------------------------
tools_grid[3, 1] <- tools_slim_btn <- gbutton(
text = strBtnSlim,
container = tools_grid
)
tools_grid[3, 2] <- glabel(
text = strLblSlim,
container = tools_grid,
anchor = c(-1, 0)
)
addHandlerChanged(tools_slim_btn, handler = function(h, ...) {
# Open GUI.
slim_gui(env = .strvalidator_env, savegui = .save_gui, debug = debug, parent = w)
})
# FILTER --------------------------------------------------------------------
tools_grid[4, 1] <- tools_filter_btn <- gbutton(
text = strBtnFilter,
container = tools_grid
)
tools_grid[4, 2] <- glabel(
text = strLblFilter,
container = tools_grid,
anchor = c(-1, 0)
)
addHandlerChanged(tools_filter_btn, handler = function(h, ...) {
filterProfile_gui(env = .strvalidator_env, savegui = .save_gui, parent = w)
})
# CROP ----------------------------------------------------------------------
tools_grid[5, 1] <- tools_crop_btn <- gbutton(
text = strBtnCrop,
container = tools_grid
)
tools_grid[5, 2] <- glabel(
text = strLblCrop,
container = tools_grid,
anchor = c(-1, 0)
)
addHandlerChanged(tools_crop_btn, handler = function(h, ...) {
# Open GUI.
cropData_gui(env = .strvalidator_env, savegui = .save_gui, debug = debug, parent = w)
})
# GUESS ---------------------------------------------------------------------
tools_grid[6, 1] <- tools_guess_btn <- gbutton(
text = strBtnGuess,
container = tools_grid
)
tools_grid[6, 2] <- glabel(
text = strLblGuess,
container = tools_grid,
anchor = c(-1, 0)
)
addHandlerChanged(tools_guess_btn, handler = function(h, ...) {
guessProfile_gui(env = .strvalidator_env, savegui = .save_gui, debug = debug, parent = w)
})
# DYE -----------------------------------------------------------------------
tools_grid[7, 1] <- tools_addDye_btn <- gbutton(
text = strBtnDye,
container = tools_grid
)
tools_grid[7, 2] <- glabel(
text = strLblDye,
container = tools_grid,
anchor = c(-1, 0)
)
addHandlerChanged(tools_addDye_btn, handler = function(h, ...) {
# Open GUI.
addDye_gui(env = .strvalidator_env, savegui = .save_gui, debug = debug, parent = w)
})
# ADD MARKER ----------------------------------------------------------------
tools_grid[8, 1] <- tools_addMarker_btn <- gbutton(
text = strBtnMarker,
container = tools_grid
)
tools_grid[8, 2] <- glabel(
text = strLblMarker,
container = tools_grid,
anchor = c(-1, 0)
)
addHandlerChanged(tools_addMarker_btn, handler = function(h, ...) {
# Open GUI.
addMarker_gui(env = .strvalidator_env, savegui = .save_gui, debug = debug, parent = w)
})
# ADD SIZE ------------------------------------------------------------------
tools_grid[9, 1] <- tools_addSize_btn <- gbutton(
text = strBtnSize,
container = tools_grid
)
tools_grid[9, 2] <- glabel(
text = strLblSize,
container = tools_grid,
anchor = c(-1, 0)
)
addHandlerChanged(tools_addSize_btn, handler = function(h, ...) {
# Open GUI.
addSize_gui(env = .strvalidator_env, savegui = .save_gui, debug = debug, parent = w)
})
# ADD DATA -------------------------------------------------------------------
tools_grid[10, 1] <- tools_addData_btn <- gbutton(
text = strBtnData,
container = tools_grid
)
tools_grid[10, 2] <- glabel(
text = strLblData,
container = tools_grid,
anchor = c(-1, 0)
)
addHandlerChanged(tools_addData_btn, handler = function(h, ...) {
# Open GUI.
addData_gui(env = .strvalidator_env, savegui = .save_gui, debug = debug, parent = w)
})
# CHECK SUBSET --------------------------------------------------------------
tools_grid[11, 1] <- tools_check_btn <- gbutton(
text = strBtnCheck,
container = tools_grid
)
tools_grid[11, 2] <- glabel(
text = strLblCheck,
container = tools_grid,
anchor = c(-1, 0)
)
addHandlerChanged(tools_check_btn, handler = function(h, ...) {
# Open GUI.
checkSubset_gui(
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# COMBINE -------------------------------------------------------------------
tools_grid[12, 1] <- tools_combine_btn <- gbutton(
text = strBtnCombine,
container = tools_grid
)
tools_grid[12, 2] <- glabel(
text = strLblCombine,
container = tools_grid,
anchor = c(-1, 0)
)
addHandlerChanged(tools_combine_btn, handler = function(h, ...) {
# Open GUI.
combine_gui(env = .strvalidator_env, debug = debug, parent = w)
})
# COLUMNS -------------------------------------------------------------------
tools_grid[13, 1] <- tools_columns_btn <- gbutton(
text = strBtnColumns,
container = tools_grid
)
tools_grid[13, 2] <- glabel(
text = strLblColumns,
container = tools_grid,
anchor = c(-1, 0)
)
addHandlerChanged(tools_columns_btn, handler = function(h, ...) {
# Open GUI.
columns_gui(env = .strvalidator_env, savegui = .save_gui, debug = debug, parent = w)
})
# CALCULATE HETEROZYGOUS ----------------------------------------------------
tools_grid[14, 1] <- tools_copies_btn <- gbutton(
text = strBtnCopies,
container = tools_grid
)
tools_grid[14, 2] <- glabel(
text = strLblCopies,
container = tools_grid,
anchor = c(-1, 0)
)
addHandlerChanged(tools_copies_btn, handler = function(h, ...) {
# Open GUI.
calculateCopies_gui(
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# GENERATE EPG --------------------------------------------------------------
tools_grid[15, 1] <- tools_epg_btn <- gbutton(
text = strBtnEPG,
container = tools_grid
)
tools_grid[15, 2] <- glabel(
text = strLblEPG,
container = tools_grid,
anchor = c(-1, 0)
)
addHandlerChanged(tools_epg_btn, handler = function(h, ...) {
# Open GUI.
generateEPG_gui(env = .strvalidator_env, savegui = .save_gui, debug = debug, parent = w)
})
# GENERATE EPG2 -------------------------------------------------------------
tools_grid[16, 1] <- tools_epg2_btn <- gbutton(
text = strBtnEPG2,
container = tools_grid
)
tools_grid[16, 2] <- glabel(
text = strLblEPG2,
container = tools_grid,
anchor = c(-1, 0)
)
addHandlerChanged(tools_epg2_btn, handler = function(h, ...) {
# Open GUI.
plotEPG2_gui(env = .strvalidator_env, savegui = .save_gui, debug = debug, parent = w)
})
# AT #######################################################################
at_grid <- glayout(container = at_tab, spacing = 2)
# VIEW ----------------------------------------------------------------------
at_grid[1, 1] <- at_view_btn <- gbutton(text = strBtnView, container = at_grid)
at_grid[1, 2] <- glabel(
text = strLblViewDataset,
container = at_grid, anchor = c(-1, 0)
)
addHandlerChanged(at_view_btn, handler = function(h, ...) {
# Open GUI.
editData_gui(
env = .strvalidator_env, savegui =
.save_gui, edit = FALSE, debug = debug, parent = w
)
})
# CALCULATE -----------------------------------------------------------------
at_grid[3, 1] <- at_calculate_btn <- gbutton(
text = strBtnCalculate,
container = at_grid
)
at_grid[3, 2] <- glabel(
text = strLblAT,
container = at_grid, anchor = c(-1, 0)
)
addHandlerChanged(at_calculate_btn, handler = function(h, ...) {
# Open GUI.
calculateAT_gui(
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# CALCULATE -----------------------------------------------------------------
at_grid[4, 1] <- at6_calculate_btn <- gbutton(
text = strBtnCalculate,
container = at_grid
)
at_grid[4, 2] <- glabel(
text = strLblAT6,
container = at_grid, anchor = c(-1, 0)
)
addHandlerChanged(at6_calculate_btn, handler = function(h, ...) {
# Open GUI.
calculateAT6_gui(
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# PLOT AT -------------------------------------------------------------------
at_grid[5, 1] <- at_plot_btn <- gbutton(text = strBtnPlot, container = at_grid)
at_grid[5, 2] <- glabel(
text = strLblPlotAT6,
container = at_grid
)
addHandlerChanged(at_plot_btn, handler = function(h, ...) {
# Open GUI.
plotAT_gui(env = .strvalidator_env, savegui = .save_gui, debug = debug, parent = w)
})
# STUTTER ##################################################################
stutter_grid <- glayout(container = stutter_tab, spacing = 2)
# VIEW ----------------------------------------------------------------------
stutter_grid[1, 1] <- stutter_view_btn <- gbutton(
text = strBtnView,
container = stutter_grid
)
stutter_grid[1, 2] <- glabel(
text = strLblViewDataset,
container = stutter_grid,
anchor = c(-1, 0)
)
addHandlerChanged(stutter_view_btn, handler = function(h, ...) {
# Open GUI.
editData_gui(
env = .strvalidator_env, savegui = .save_gui,
edit = FALSE, debug = debug, parent = w
)
})
# CALCULATE -----------------------------------------------------------------
stutter_grid[3, 1] <- stutter_calculate_btn <- gbutton(
text = strBtnCalculate,
container = stutter_grid
)
stutter_grid[3, 2] <- glabel(
text = strLblStutter,
container = stutter_grid,
anchor = c(-1, 0)
)
addHandlerChanged(stutter_calculate_btn, handler = function(h, ...) {
# Open GUI.
calculateStutter_gui(
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# PLOT STUTTER --------------------------------------------------------------
stutter_grid[4, 1] <- stutter_plot_btn <- gbutton(
text = strBtnPlot,
container = stutter_grid
)
stutter_grid[4, 2] <- glabel(
text = strLblPlotStutter,
container = stutter_grid
)
addHandlerChanged(stutter_plot_btn, handler = function(h, ...) {
# Open GUI.
plotStutter_gui(
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# SUMMARY STATISTICS GLOBAL -------------------------------------------------
stutter_grid[5, 1] <- stutter_stats_global_btn <- gbutton(
text = strBtnStatistics,
container = stutter_grid
)
stutter_grid[5, 2] <- glabel(
text = strLblStatStutterGlobal,
container = stutter_grid
)
addHandlerChanged(stutter_stats_global_btn, handler = function(h, ...) {
# Get most recent object.
tmp <- listObjects(
env = .strvalidator_env, obj.class = "data.frame",
sort = "time", decreasing = TRUE, debug = debug
)
# Open GUI.
calculateStatistics_gui(
data = tmp[1], target = c("Ratio"),
group = NULL, count = c("Allele"), quant = 0.95,
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# SUMMARY STATISTICS MARKER -------------------------------------------------
stutter_grid[6, 1] <- stutter_stats_marker_btn <- gbutton(
text = strBtnStatistics,
container = stutter_grid
)
stutter_grid[6, 2] <- glabel(
text = strLblStatStutterMarker,
container = stutter_grid
)
addHandlerChanged(stutter_stats_marker_btn, handler = function(h, ...) {
# Get most recent object.
tmp <- listObjects(
env = .strvalidator_env, obj.class = "data.frame",
sort = "time", decreasing = TRUE, debug = debug
)
# Open GUI.
calculateStatistics_gui(
data = tmp[1], target = c("Ratio"),
group = c("Marker"), count = c("Allele"), quant = 0.95,
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# SUMMARY STATISTICS STUTTER ------------------------------------------------
stutter_grid[7, 1] <- stutter_stats_stutter_btn <- gbutton(
text = strBtnStatistics,
container = stutter_grid
)
stutter_grid[7, 2] <- glabel(
text = strLblStatStutterStutter,
container = stutter_grid
)
addHandlerChanged(stutter_stats_stutter_btn, handler = function(h, ...) {
# Get most recent object.
tmp <- listObjects(
env = .strvalidator_env, obj.class = "data.frame",
sort = "time", decreasing = TRUE, debug = debug
)
# Open GUI.
calculateStatistics_gui(
data = tmp[1], target = c("Ratio"),
group = c("Marker", "Type"), count = c("Allele"), quant = 0.95,
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# BALANCE ##################################################################
balance_g1 <- glayout(container = balance_tab, spacing = 2)
# VIEW ----------------------------------------------------------------------
balance_g1[1, 1] <- balance_view_btn <- gbutton(
text = strBtnView,
container = balance_g1
)
balance_g1[1, 2] <- glabel(
text = strLblViewDataset,
container = balance_g1,
anchor = c(-1, 0)
)
addHandlerChanged(balance_view_btn, handler = function(h, ...) {
# Open GUI.
editData_gui(
env = .strvalidator_env, savegui = .save_gui,
edit = FALSE, debug = debug, parent = w
)
})
# ALLELE BALANCE ============================================================
balance_hb_frm <- gframe(
text = strFrmHb,
horizontal = FALSE, container = balance_tab
)
balance_hb <- glayout(container = balance_hb_frm, spacing = 2)
# CALCULATE -----------------------------------------------------------------
balance_hb[1, 1] <- balance_hb_calc_btn <- gbutton(
text = strBtnCalculate,
container = balance_hb
)
balance_hb[1, 2] <- glabel(
text = strLblHb,
container = balance_hb
)
addHandlerChanged(balance_hb_calc_btn, handler = function(h, ...) {
# Open GUI.
calculateHb_gui(
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# PLOT ----------------------------------------------------------------------
balance_hb[2, 1] <- balance_hb_plot_btn <- gbutton(
text = strBtnPlot,
container = balance_hb
)
balance_hb[2, 2] <- glabel(
text = strLblPlotBalance,
container = balance_hb
)
addHandlerChanged(balance_hb_plot_btn, handler = function(h, ...) {
# Open GUI.
plotBalance_gui(
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# SUMMARY STATISTICS GLOBAL -------------------------------------------------
balance_hb[3, 1] <- balance_stats_global_btn <- gbutton(
text = strBtnStatistics,
container = balance_hb
)
balance_hb[3, 2] <- glabel(
text = strLblStatBalanceGlobal,
container = balance_hb
)
addHandlerChanged(balance_stats_global_btn, handler = function(h, ...) {
# Get most recent object.
tmp <- listObjects(
env = .strvalidator_env, obj.class = "data.frame",
sort = "time", decreasing = TRUE, debug = debug
)
# Open GUI.
calculateStatistics_gui(
data = tmp[1], target = c("Hb"),
group = NULL, count = NULL, quant = 0.05,
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# SUMMARY STATISTICS MARKER -------------------------------------------------
balance_hb[4, 1] <- balance_stats_marker_btn <- gbutton(
text = strBtnStatistics,
container = balance_hb
)
balance_hb[4, 2] <- glabel(
text = strLblStatBalanceMarker,
container = balance_hb
)
addHandlerChanged(balance_stats_marker_btn, handler = function(h, ...) {
# Get most recent object.
tmp <- listObjects(
env = .strvalidator_env, obj.class = "data.frame",
sort = "time", decreasing = TRUE, debug = debug
)
# Open GUI.
calculateStatistics_gui(
data = tmp[1], target = c("Hb"),
group = c("Marker"), count = NULL, quant = 0.05,
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# PROFILE BALANCE ===========================================================
balance_lb_frm <- gframe(
text = strFrmLb,
horizontal = FALSE, container = balance_tab
)
balance_lb <- glayout(container = balance_lb_frm, spacing = 2)
# CALCULATE -----------------------------------------------------------------
balance_lb[1, 1] <- balance_lb_calc_btn <- gbutton(
text = strBtnCalculate,
container = balance_lb
)
balance_lb[1, 2] <- glabel(
text = strLblLb,
container = balance_lb
)
addHandlerChanged(balance_lb_calc_btn, handler = function(h, ...) {
# Open GUI.
calculateLb_gui(
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# PLOT ----------------------------------------------------------------------
balance_lb[2, 1] <- balance_lb_plot_btn <- gbutton(
text = strBtnPlot,
container = balance_lb
)
balance_lb[2, 2] <- glabel(
text = strLblPlotBalance,
container = balance_lb
)
addHandlerChanged(balance_lb_plot_btn, handler = function(h, ...) {
# Open GUI.
plotBalance_gui(
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# SUMMARY STATISTICS GLOBAL -------------------------------------------------
balance_lb[3, 1] <- balance_stats_global_btn <- gbutton(
text = strBtnStatistics,
container = balance_lb
)
balance_lb[3, 2] <- glabel(
text = strLblStatBalanceGlobal,
container = balance_lb
)
addHandlerChanged(balance_stats_global_btn, handler = function(h, ...) {
# Get most recent object.
tmp <- listObjects(
env = .strvalidator_env, obj.class = "data.frame",
sort = "time", decreasing = TRUE, debug = debug
)
# Open GUI.
calculateStatistics_gui(
data = tmp[1], target = c("Lb"),
group = NULL, count = NULL, quant = 0.05,
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# SUMMARY STATISTICS MARKER -------------------------------------------------
balance_lb[4, 1] <- balance_stats_marker_btn <- gbutton(
text = strBtnStatistics,
container = balance_lb
)
balance_lb[4, 2] <- glabel(
text = strLblStatBalanceMarker,
container = balance_lb
)
addHandlerChanged(balance_stats_marker_btn, handler = function(h, ...) {
# Get most recent object.
tmp <- listObjects(
env = .strvalidator_env, obj.class = "data.frame",
sort = "time", decreasing = TRUE, debug = debug
)
# Open GUI.
calculateStatistics_gui(
data = tmp[1], target = c("Lb"),
group = c("Marker"), count = NULL, quant = 0.05,
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# CAPILLARY BALANCE =========================================================
balance_f3 <- gframe(
text = strFrmCapillary,
horizontal = FALSE, container = balance_tab
)
balance_g3 <- glayout(container = balance_f3, spacing = 2)
# CALCULATE -----------------------------------------------------------------
balance_g3[1, 1] <- balance_g3_calc_btn <- gbutton(
text = strBtnCalculate,
container = balance_g3
)
balance_g3[1, 2] <- glabel(
text = strLblCapillary,
container = balance_g3
)
addHandlerChanged(balance_g3_calc_btn, handler = function(h, ...) {
# Open GUI.
calculateCapillary_gui(
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# PLOT ----------------------------------------------------------------------
balance_g3[2, 1] <- balance_g3_plot_btn <- gbutton(
text = strBtnPlot,
container = balance_g3
)
balance_g3[2, 2] <- glabel(
text = strLblPlotCapillary,
container = balance_g3
)
addHandlerChanged(balance_g3_plot_btn, handler = function(h, ...) {
# Open GUI.
plotCapillary_gui(
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# SUMMARY STATISTICS CAPILLARY ----------------------------------------------
balance_g3[3, 1] <- balance_g3_stats_cap_btn <- gbutton(
text = strBtnStatistics,
container = balance_g3
)
balance_g3[3, 2] <- glabel(
text = strLblStatCapillaryCap,
container = balance_g3
)
addHandlerChanged(balance_g3_stats_cap_btn, handler = function(h, ...) {
# Get most recent object.
tmp <- listObjects(
env = .strvalidator_env, obj.class = "data.frame",
sort = "time", decreasing = TRUE, debug = debug
)
# Open GUI.
calculateStatistics_gui(
data = tmp[1], target = c("Mean.Height"),
group = c("Capillary"), count = NULL, quant = 0.75,
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# SUMMARY STATISTICS INJECTION ----------------------------------------------
balance_g3[1, 3] <- balance_g3_stats_inj_btn <- gbutton(
text = strBtnStatistics,
container = balance_g3
)
balance_g3[1, 4] <- glabel(
text = strLblStatCapillaryInj,
container = balance_g3
)
addHandlerChanged(balance_g3_stats_inj_btn, handler = function(h, ...) {
# Get most recent object.
tmp <- listObjects(
env = .strvalidator_env, obj.class = "data.frame",
sort = "time", decreasing = TRUE, debug = debug
)
# Open GUI.
calculateStatistics_gui(
data = tmp[1], target = c("Mean.Height"),
group = c("Injection"), count = NULL, quant = 0.75,
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# SUMMARY STATISTICS ROW ----------------------------------------------------
balance_g3[2, 3] <- balance_g3_stats_row_btn <- gbutton(
text = strBtnStatistics,
container = balance_g3
)
balance_g3[2, 4] <- glabel(
text = strLblStatCapillaryRow,
container = balance_g3
)
addHandlerChanged(balance_g3_stats_row_btn, handler = function(h, ...) {
# Get most recent object.
tmp <- listObjects(
env = .strvalidator_env, obj.class = "data.frame",
sort = "time", decreasing = TRUE, debug = debug
)
# Open GUI.
calculateStatistics_gui(
data = tmp[1], target = c("Mean.Height"),
group = c("Well"), count = NULL, quant = 0.75,
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# SUMMARY STATISTICS RUN ----------------------------------------------------
balance_g3[3, 3] <- balance_g3_stats_run_btn <- gbutton(
text = strBtnStatistics,
container = balance_g3
)
balance_g3[3, 4] <- glabel(
text = strLblStatCapillaryRun,
container = balance_g3
)
addHandlerChanged(balance_g3_stats_run_btn, handler = function(h, ...) {
# Get most recent object.
tmp <- listObjects(
env = .strvalidator_env, obj.class = "data.frame",
sort = "time", decreasing = TRUE, debug = debug
)
# Open GUI.
calculateStatistics_gui(
data = tmp[1], target = c("Mean.Height"),
group = c("Run"), count = NULL, quant = 0.75,
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# SUMMARY STATISTICS INSTRUMENT ---------------------------------------------
balance_g3[4, 3] <- balance_g3_stats_ins_btn <- gbutton(
text = strBtnStatistics,
container = balance_g3
)
balance_g3[4, 4] <- glabel(
text = strLblStatCapillaryIns,
container = balance_g3
)
addHandlerChanged(balance_g3_stats_ins_btn, handler = function(h, ...) {
# Get most recent object.
tmp <- listObjects(
env = .strvalidator_env, obj.class = "data.frame",
sort = "time", decreasing = TRUE, debug = debug
)
# Open GUI.
calculateStatistics_gui(
data = tmp[1], target = c("Mean.Height"),
group = c("Instrument"), count = NULL, quant = 0.75,
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# MARKER RATIO ==============================================================
balance_f4 <- gframe(
text = strFrmRatio,
horizontal = FALSE, container = balance_tab
)
balance_g4 <- glayout(container = balance_f4, spacing = 2)
# CALCULATE -----------------------------------------------------------------
balance_g4[1, 1] <- balance_g4_calc_btn <- gbutton(
text = strBtnCalculate,
container = balance_g4
)
balance_g4[1, 2] <- glabel(
text = strLblRatio,
container = balance_g4
)
addHandlerChanged(balance_g4_calc_btn, handler = function(h, ...) {
# Open GUI.
calculateRatio_gui(
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# PLOT ----------------------------------------------------------------------
balance_g4[2, 1] <- balance_g4_plot_btn <- gbutton(
text = strBtnPlot,
container = balance_g4
)
balance_g4[2, 2] <- glabel(
text = strLblPlotRatio,
container = balance_g4
)
addHandlerChanged(balance_g4_plot_btn, handler = function(h, ...) {
# Open GUI.
plotRatio_gui(
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# CONCORDANCE ##############################################################
conc_grid <- glayout(container = concordance_tab, spacing = 2)
# VIEW ----------------------------------------------------------------------
conc_grid[1, 1] <- conc_view_btn <- gbutton(
text = strBtnView,
container = conc_grid
)
conc_grid[1, 2] <- glabel(
text = strLblViewDataset,
container = conc_grid,
anchor = c(-1, 0)
)
addHandlerChanged(conc_view_btn, handler = function(h, ...) {
# Open GUI.
editData_gui(
env = .strvalidator_env, savegui = .save_gui,
edit = FALSE, debug = debug, parent = w
)
})
# CALCULATE -----------------------------------------------------------------
conc_grid[2, 1] <- conc_calculate_btn <- gbutton(
text = strBtnCalculate,
container = conc_grid
)
conc_grid[2, 2] <- glabel(
text = strLblConcordance,
container = conc_grid,
anchor = c(-1, 0)
)
addHandlerChanged(conc_calculate_btn, handler = function(h, ...) {
# Open GUI.
calculateConcordance_gui(
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# DROPOUT ##################################################################
drop_grid <- glayout(container = drop_tab, spacing = 2)
# VIEW ----------------------------------------------------------------------
drop_grid[1, 1] <- drop_view_btn <- gbutton(
text = strBtnView,
container = drop_grid
)
drop_grid[1, 2] <- glabel(
text = strLblViewDataset,
container = drop_grid,
anchor = c(-1, 0)
)
addHandlerChanged(drop_view_btn, handler = function(h, ...) {
# Open GUI.
editData_gui(
env = .strvalidator_env, savegui = .save_gui,
edit = FALSE, debug = debug, parent = w
)
})
# SCORE -----------------------------------------------------------------.---
drop_grid[2, 1] <- drop_score_btn <- gbutton(
text = strBtnScore,
container = drop_grid
)
drop_grid[2, 2] <- glabel(
text = strLblScore,
container = drop_grid,
anchor = c(-1, 0)
)
addHandlerChanged(drop_score_btn, handler = function(h, ...) {
# Open GUI.
calculateDropout_gui(
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# CALCULATE ------------------------------------------------------------------
drop_grid[3, 1] <- drop_calculate_btn <- gbutton(
text = strBtnCalculate,
container = drop_grid
)
drop_grid[3, 2] <- glabel(
text = strLblDropout,
container = drop_grid,
anchor = c(-1, 0)
)
addHandlerChanged(drop_calculate_btn, handler = function(h, ...) {
# Open GUI.
calculateAllT_gui(
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# LOGISTIC REGRESSION -------------------------------------------------------
drop_grid[4, 1] <- drop_model_btn <- gbutton(
text = strBtnModel,
container = drop_grid
)
drop_grid[4, 2] <- glabel(
text = strLblModel,
container = drop_grid
)
addHandlerChanged(drop_model_btn, handler = function(h, ...) {
# Open GUI.
modelDropout_gui(
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# PLOT DROPOUT --------------------------------------------------------------
drop_grid[5, 1] <- drop_plot_btn <- gbutton(
text = strBtnPlot,
container = drop_grid
)
drop_grid[5, 2] <- glabel(
text = strLblPlotDropout,
container = drop_grid
)
addHandlerChanged(drop_plot_btn, handler = function(h, ...) {
# Open GUI.
plotDropout_gui(
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# SUMMARY TABLE -------------------------------------------------------------
# MIXTURE ##################################################################
mix_grid <- glayout(container = mixture_tab, spacing = 2)
# VIEW ----------------------------------------------------------------------
mix_grid[1, 1] <- mix_view_btn <- gbutton(
text = strBtnView,
container = mix_grid
)
mix_grid[1, 2] <- glabel(
text = strLblViewDataset,
container = mix_grid,
anchor = c(-1, 0)
)
addHandlerChanged(mix_view_btn, handler = function(h, ...) {
# Open GUI.
editData_gui(
env = .strvalidator_env, savegui = .save_gui,
edit = FALSE, debug = debug, parent = w
)
})
# CALCULATE -----------------------------------------------------------------
mix_grid[2, 1] <- mix_calculate_btn <- gbutton(
text = strBtnCalculate,
container = mix_grid
)
mix_grid[2, 2] <- glabel(
text = strLblMixture,
container = mix_grid,
anchor = c(-1, 0)
)
addHandlerChanged(mix_calculate_btn, handler = function(h, ...) {
# Open GUI.
calculateMixture_gui(
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# PLOT MIXTURE --------------------------------------------------------------
# SUMMARY TABLE -------------------------------------------------------------
# RESULT ###################################################################
result_grid <- glayout(container = result_tab, spacing = 2)
# VIEW ----------------------------------------------------------------------
result_grid[1, 1] <- result_view_btn <- gbutton(
text = strBtnView,
container = result_grid
)
result_grid[1, 2] <- glabel(
text = strLblViewDataset,
container = result_grid,
anchor = c(-1, 0)
)
addHandlerChanged(result_view_btn, handler = function(h, ...) {
# Open GUI.
editData_gui(
env = .strvalidator_env, savegui = .save_gui,
edit = FALSE, debug = debug, parent = w
)
})
# RESULT TYPE ===============================================================
result_f1 <- gframe(
text = strFrmType,
horizontal = FALSE, container = result_tab
)
result_g1 <- glayout(container = result_f1, spacing = 2)
# CALCULATE -----------------------------------------------------------------
result_g1[1, 1] <- result_g1_calc_btn <- gbutton(
text = strBtnCalculate,
container = result_g1
)
result_g1[1, 2] <- glabel(
text = strLblType,
container = result_g1,
anchor = c(-1, 0)
)
addHandlerChanged(result_g1_calc_btn, handler = function(h, ...) {
# Open GUI.
calculateResultType_gui(
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# PLOT RESULT TYPE ----------------------------------------------------------
result_g1[2, 1] <- result_g1_plot_btn <- gbutton(
text = strBtnPlot,
container = result_g1
)
result_g1[2, 2] <- glabel(
text = strLblPlotType,
container = result_g1
)
addHandlerChanged(result_g1_plot_btn, handler = function(h, ...) {
# Open GUI.
plotResultType_gui(
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# PEAKS =====================================================================
result_f2 <- gframe(
text = strFrmPeaks,
horizontal = FALSE, container = result_tab
)
result_g2 <- glayout(container = result_f2, spacing = 2)
# CALCULATE -----------------------------------------------------------------
result_g2[1, 1] <- result_g2_calc_btn <- gbutton(
text = strBtnCalculate,
container = result_g2
)
result_g2[1, 2] <- glabel(
text = strLblPeaks,
container = result_g2,
anchor = c(-1, 0)
)
addHandlerChanged(result_g2_calc_btn, handler = function(h, ...) {
# Open GUI.
calculatePeaks_gui(
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# PLOT PEAKS ----------------------------------------------------------------
result_g2[2, 1] <- result_g2_plot_btn <- gbutton(
text = strBtnPlot,
container = result_g2
)
result_g2[2, 2] <- glabel(
text = strLblPlotPeaks,
container = result_g2
)
addHandlerChanged(result_g2_plot_btn, handler = function(h, ...) {
# Open GUI.
plotPeaks_gui(
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# SUMMARY STATISTICS ========================================================
result_f3 <- gframe(
text = strFrmStatistics,
horizontal = FALSE, container = result_tab
)
result_g3 <- glayout(container = result_f3, spacing = 2)
# CALCULATE PEAK HEIGHT -----------------------------------------------------
result_g3[1, 1] <- result_g3_height_btn <- gbutton(
text = strBtnCalculate,
container = result_g3
)
result_g3[1, 2] <- glabel(
text = strLblHeight,
container = result_g3
)
addHandlerChanged(result_g3_height_btn, handler = function(h, ...) {
# Open GUI.
calculateHeight_gui(
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# SUMMARY STATISTICS --------------------------------------------------------
result_g3[1, 3] <- result_g3_stats_btn <- gbutton(
text = strBtnStatistics,
container = result_g3
)
result_g3[1, 4] <- glabel(
text = strLblStatistics,
container = result_g3
)
addHandlerChanged(result_g3_stats_btn, handler = function(h, ...) {
# Open GUI.
calculateStatistics_gui(
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# DISTRIBUTIONS =============================================================
result_f4 <- gframe(
text = strFrmDistribution,
horizontal = FALSE, container = result_tab
)
result_g4 <- glayout(container = result_f4, spacing = 2)
# PLOT PEAKS ----------------------------------------------------------------
result_g4[1, 1] <- result_g4_plot_btn <- gbutton(
text = strBtnPlot,
container = result_g4
)
result_g4[1, 2] <- glabel(
text = strLblDistribution,
container = result_g4
)
addHandlerChanged(result_g4_plot_btn, handler = function(h, ...) {
# Open GUI.
plotDistribution_gui(
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# PLOT GROUPS ---------------------------------------------------------------
result_g4[1, 3] <- result_g4_group_btn <- gbutton(
text = strBtnPlot,
container = result_g4
)
result_g4[1, 4] <- glabel(
text = strLblGroups,
container = result_g4
)
addHandlerChanged(result_g4_group_btn, handler = function(h, ...) {
# Open GUI.
plotGroups_gui(
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# DROPIN ====================================================================
result_f5 <- gframe(
text = strFrmDropin,
horizontal = FALSE, container = result_tab
)
result_g5 <- glayout(container = result_f5, spacing = 2)
# CALCULATE -----------------------------------------------------------------
result_g5[1, 1] <- result_g5_calc_btn <- gbutton(
text = strBtnCalculate,
container = result_g5
)
result_g5[1, 2] <- glabel(
text = strLblSpikes,
container = result_g5,
anchor = c(-1, 0)
)
addHandlerChanged(result_g5_calc_btn, handler = function(h, ...) {
# Open GUI.
calculateSpike_gui(
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# FILTER PEAKS --------------------------------------------------------------
result_g5[1, 3] <- result_g5_filter_btn <- gbutton(
text = strBtnFilter,
container = result_g5
)
result_g5[1, 4] <- glabel(
text = strLblFilterSpikes,
container = result_g5
)
addHandlerChanged(result_g5_filter_btn, handler = function(h, ...) {
# Open GUI.
removeSpike_gui(
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# CALCULATE ALLELE ----------------------------------------------------------
result_g5[2, 1] <- result_g5_allele_btn <- gbutton(
text = strBtnCalculate,
container = result_g5
)
result_g5[2, 2] <- glabel(
text = strLblArtefacts,
container = result_g5
)
addHandlerChanged(result_g5_allele_btn, handler = function(h, ...) {
# Open GUI.
calculateAllele_gui(
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# REMOVE ARTEFACTS ----------------------------------------------------------
result_g5[2, 3] <- result_g5_artefact_btn <- gbutton(
text = strBtnFilter,
container = result_g5
)
result_g5[2, 4] <- glabel(
text = strLblFilterArtefacts,
container = result_g5
)
addHandlerChanged(result_g5_artefact_btn, handler = function(h, ...) {
# Open GUI.
removeArtefact_gui(
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# PLOT CONTAMINATION --------------------------------------------------------
result_g5[3, 1] <- result_g5_cont_btn <- gbutton(
text = strBtnPlot,
container = result_g5
)
result_g5[3, 2] <- glabel(
text = strLblPlotContamination,
container = result_g5
)
addHandlerChanged(result_g5_cont_btn, handler = function(h, ...) {
# Open GUI.
plotContamination_gui(
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# SLOPE =====================================================================
result_f6 <- gframe(
text = strFrmSlope,
horizontal = FALSE, container = result_tab
)
result_g6 <- glayout(container = result_f6, spacing = 2)
# CALCULATE -----------------------------------------------------------------
result_g6[1, 1] <- result_g6_calc_btn <- gbutton(
text = strBtnCalculate,
container = result_g6
)
result_g6[1, 2] <- glabel(
text = strLblSlope,
container = result_g6,
anchor = c(-1, 0)
)
addHandlerChanged(result_g6_calc_btn, handler = function(h, ...) {
# Open GUI.
calculateSlope_gui(
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# PLOT ----------------------------------------------------------------------
result_g6[2, 1] <- result_g6_plot_btn <- gbutton(
text = strBtnPlot,
container = result_g6
)
result_g6[2, 2] <- glabel(
text = strLblPlotSlope,
container = result_g6
)
addHandlerChanged(result_g6_plot_btn, handler = function(h, ...) {
# Open GUI.
plotSlope_gui(
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# PRECISION ################################################################
precision_grid <- glayout(container = precision_tab, spacing = 2)
# VIEW ----------------------------------------------------------------------
precision_grid[1, 1] <- precision_view_btn <- gbutton(
text = strBtnView,
container = precision_grid
)
precision_grid[1, 2] <- glabel(
text = strLblViewDataset,
container = precision_grid,
anchor = c(-1, 0)
)
addHandlerChanged(precision_view_btn, handler = function(h, ...) {
# Open GUI.
editData_gui(
env = .strvalidator_env, savegui = .save_gui,
edit = FALSE, debug = debug, parent = w
)
})
# FILTER DATA ---------------------------------------------------------------
precision_grid[2, 1] <- precision_filter_btn <- gbutton(
text = strBtnFilter,
container = precision_grid
)
precision_grid[2, 2] <- glabel(
text = strLblFilter,
container = precision_grid,
anchor = c(-1, 0)
)
addHandlerChanged(precision_filter_btn, handler = function(h, ...) {
# Open GUI.
filterProfile_gui(
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# PLOT RESULT TYPE ----------------------------------------------------------
precision_grid[3, 1] <- precision_plot_btn <- gbutton(
text = strBtnPlot,
container = precision_grid
)
precision_grid[3, 2] <- glabel(
text = strLblPrecision,
container = precision_grid
)
addHandlerChanged(precision_plot_btn, handler = function(h, ...) {
# Open GUI.
plotPrecision_gui(
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# SUMMARY STATISTICS SIZE ---------------------------------------------------
precision_grid[4, 1] <- precision_stats_size_btn <- gbutton(
text = strBtnStatistics,
container = precision_grid
)
precision_grid[4, 2] <- glabel(
text = strLblStatPrecisionSize,
container = precision_grid,
anchor = c(-1, 0)
)
addHandlerChanged(precision_stats_size_btn, handler = function(h, ...) {
# Get most recent object.
tmp <- listObjects(
env = .strvalidator_env, obj.class = "data.frame",
sort = "time", decreasing = TRUE, debug = debug
)
# Open GUI.
calculateStatistics_gui(
data = tmp[1], target = c("Size"),
group = c("Marker", "Allele"), count = NULL, quant = 0.50,
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# SUMMARY STATISTICS DATA.POINT ---------------------------------------------
precision_grid[5, 1] <- precision_stats_dp_btn <- gbutton(
text = strBtnStatistics,
container = precision_grid
)
precision_grid[5, 2] <- glabel(
text = strLblStatPrecisionDataPoint,
container = precision_grid,
anchor = c(-1, 0)
)
addHandlerChanged(precision_stats_dp_btn, handler = function(h, ...) {
# Get most recent object.
tmp <- listObjects(
env = .strvalidator_env, obj.class = "data.frame",
sort = "time", decreasing = TRUE, debug = debug
)
# Open GUI.
calculateStatistics_gui(
data = tmp[1], target = c("Data.Point"),
group = c("Marker", "Allele"), count = NULL, quant = 0.50,
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# SUMMARY STATISTICS HEIGHT -------------------------------------------------
precision_grid[6, 1] <- precision_stats_height_btn <- gbutton(
text = strBtnStatistics,
container = precision_grid
)
precision_grid[6, 2] <- glabel(
text = strLblStatPrecisionHeight,
container = precision_grid,
anchor = c(-1, 0)
)
addHandlerChanged(precision_stats_height_btn, handler = function(h, ...) {
# Get most recent object.
tmp <- listObjects(
env = .strvalidator_env, obj.class = "data.frame",
sort = "time", decreasing = TRUE, debug = debug
)
# Open GUI.
calculateStatistics_gui(
data = tmp[1], target = c("Height"),
group = c("Marker", "Allele"), count = NULL, quant = 0.95,
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# PULLUP ###################################################################
pull_grid <- glayout(container = pullup_tab, spacing = 2)
# VIEW ----------------------------------------------------------------------
pull_grid[1, 1] <- pull_view_btn <- gbutton(
text = strBtnView,
container = pull_grid
)
pull_grid[1, 2] <- glabel(
text = strLblViewDataset,
container = pull_grid,
anchor = c(-1, 0)
)
addHandlerChanged(pull_view_btn, handler = function(h, ...) {
# Open GUI.
editData_gui(
env = .strvalidator_env, savegui = .save_gui,
edit = FALSE, debug = debug, parent = w
)
})
# CALCULATE -----------------------------------------------------------------
pull_grid[2, 1] <- pull_calculate_btn <- gbutton(
text = strBtnCalculate,
container = pull_grid
)
pull_grid[2, 2] <- glabel(
text = strLblPullup,
container = pull_grid,
anchor = c(-1, 0)
)
addHandlerChanged(pull_calculate_btn, handler = function(h, ...) {
# Open GUI.
calculatePullup_gui(
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# PLOT PULLUP ---------------------------------------------------------------
pull_grid[3, 1] <- pull_plot_btn <- gbutton(
text = strBtnPlot,
container = pull_grid
)
pull_grid[3, 2] <- glabel(
text = strLblPlotPullup,
container = pull_grid
)
addHandlerChanged(pull_plot_btn, handler = function(h, ...) {
# Open GUI.
plotPullup_gui(
env = .strvalidator_env, savegui = .save_gui,
debug = debug, parent = w
)
})
# MAIN EVENT HANDLERS #########################################################
addHandlerChanged(nb, handler = function(h, ...) {
if (debug) {
print("NOTEBOOK CHANGED")
print(if (is.null(h$page.no)) svalue(h$obj) else h$page.no)
}
# Refresh depending on active tab.
# tab <- svalue(nb)
tab <- if (is.null(h$page.no)) svalue(h$obj) else h$page.no
tabName <- names(nb)[tab]
# Check if a tab name exist and then perform tasks.
if (length(tabName) != 0) {
if (tabName == strTabWorkspace) {
.refreshLoaded()
.refreshWs()
}
if (tabName == strTabProject) {
.updateProjectList()
}
} # End check.
})
addHandlerFocus(w, handler = function(h, ...) {
if (debug) {
print(paste("IN:", match.call()[[1]]))
print("FOCUS")
}
# Refresh depending on active tab.
tab <- svalue(nb)
tabName <- names(nb)[tab]
# Check if a tab name exist and then perform tasks.
if (length(tabName) != 0) {
if (tabName == strTabWorkspace) {
.refreshLoaded()
.refreshWs()
}
} # End check.
})
# INTERNAL FUNCTIONS ########################################################
.loadSavedSettings <- function() {
# First load save flag.
if (exists(".strvalidator_savegui", envir = .strvalidator_env, inherits = FALSE)) {
svalue(savegui_chk) <- get(".strvalidator_savegui", envir = .strvalidator_env)
}
# Then load settings if true.
if (svalue(savegui_chk)) {
if (exists(".strvalidator_project_dir", envir = .strvalidator_env, inherits = FALSE)) {
svalue(project_fb) <- get(".strvalidator_project_dir", envir = .strvalidator_env)
}
if (exists(".strvalidator_last_open_dir", envir = .strvalidator_env, inherits = FALSE)) {
.ws_last_open_dir <- get(".strvalidator_last_open_dir", envir = .strvalidator_env)
}
if (exists(".strvalidator_show_description", envir = .strvalidator_env, inherits = FALSE)) {
visible(project_f3) <- get(".strvalidator_show_description", envir = .strvalidator_env)
}
}
if (debug) {
print("Saved settings loaded!")
}
}
.saveSettings <- function() {
# Then save settings if true.
if (svalue(savegui_chk)) {
assign(x = ".strvalidator_savegui", value = svalue(savegui_chk), envir = .strvalidator_env)
assign(x = ".strvalidator_project_dir", value = svalue(project_fb), envir = .strvalidator_env)
assign(x = ".strvalidator_last_open_dir", value = .ws_last_open_dir, envir = .strvalidator_env)
assign(x = ".strvalidator_show_description", value = visible(project_f3), envir = .strvalidator_env)
} else { # or remove all saved values if false.
if (exists(".strvalidator_savegui", envir = .strvalidator_env, inherits = FALSE)) {
remove(".strvalidator_savegui", envir = .strvalidator_env)
}
if (exists(".strvalidator_project_dir", envir = .strvalidator_env, inherits = FALSE)) {
remove(".strvalidator_project_dir", envir = .strvalidator_env)
}
if (exists(".strvalidator_last_open_dir", envir = .strvalidator_env, inherits = FALSE)) {
remove(".strvalidator_last_open_dir", envir = .strvalidator_env)
}
if (exists(".strvalidator_show_description", envir = .strvalidator_env, inherits = FALSE)) {
remove(".strvalidator_show_description", envir = .strvalidator_env)
}
if (debug) {
print("Settings cleared!")
}
}
if (debug) {
print("Settings saved!")
}
}
.refreshWs <- function() {
# Get data frames in global workspace.
dfs <- listObjects(env = .GlobalEnv, obj.class = .object_classes_import)
# Get current list in dropdown.
cList <- svalue(ws_r_drp)
# Only populate dropdown if there are new objects available.
if (!is.null(dfs) && !all(dfs %in% cList)) {
blockHandler(ws_r_drp)
# Populate drop list.
ws_r_drp[] <- c(strDrpObject, dfs)
# Select first item.
svalue(ws_r_drp, index = TRUE) <- 1
unblockHandler(ws_r_drp)
}
}
.refreshLoaded <- function() {
if (debug) {
print(paste("IN:", match.call()[[1]]))
}
# Get list of objects.
dfs <- listObjects(env = .strvalidator_env, obj.class = .object_classes_view)
# Get size of objects.
dfsSize <- sapply(dfs, function(x) object.size(get(x, envir = .strvalidator_env)))
dfsSize <- unname(dfsSize)
dfsSize <- as.numeric(dfsSize)
if (!is.null(dfs)) {
# Populate table.
blockHandler(ws_loaded_tbl)
ws_loaded_tbl[, ] <- data.frame(
Object = dfs, Size = dfsSize,
stringsAsFactors = FALSE
)
unblockHandler(ws_loaded_tbl)
} else {
# No objects in environment. Load empty data.frame to clear previous list.
blockHandler(ws_loaded_tbl)
ws_loaded_tbl[, ] <- .object_empty_df
unblockHandler(ws_loaded_tbl)
}
}
.updateProjectList <- function() {
# Get project folder.
projectdir <- svalue(project_fb)
# If nothing, use working directory.
if (length(projectdir) == 0 || nchar(projectdir) == 0) {
projectdir <- getwd()
blockHandlers(project_fb)
svalue(project_fb) <- projectdir
unblockHandlers(project_fb)
message(
"Project directory set to current working directory: ",
projectdir
)
}
# Create filter for only 'RData' files.
fileFilter <- paste(".*", "\\.", "RData", sep = "")
# Get list of result files.
.project_path_list <<- list.files(
path = projectdir, pattern = fileFilter,
full.names = TRUE, recursive = FALSE,
ignore.case = TRUE, include.dirs = FALSE
)
.project_name_list <<- list.files(
path = projectdir, pattern = fileFilter,
full.names = FALSE, recursive = FALSE,
ignore.case = TRUE, include.dirs = FALSE
)
df <- file.info(.project_path_list)
# Check if any project in list.
if (length(.project_name_list) > 0) {
# Update projects list.
project_tbl[, ] <- data.frame(
Project = .project_name_list,
Date = paste(df$mtime),
Size = df$size,
Id = seq(length(.project_name_list)),
stringsAsFactors = FALSE
)
message("Updated project list with 'RData' files found in ", projectdir)
} else {
# Reset projects list.
project_tbl[, ] <- data.frame(
Name = strStrNoProject, Date = "",
Size = "", Id = "",
stringsAsFactors = FALSE
)
message("No 'RData' files found in ", projectdir)
# Reset description.
svalue(proj_info_lbl) <- strLblProject
svalue(proj_info_txt) <- strStrProjectDescription
}
}
# SHOW GUI ##################################################################
# Show GUI and first tab.
svalue(nb) <- 1
visible(w) <- TRUE
focus(w)
message("STR-validator graphical user interface loaded!")
} # END OF GUI
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.