R/logger.R

library(shiny)

#' A Logger reference class
#' @field filedata nom du fichier de donnée
#' @field filebehavior nom du chier des comportement
#' @export Logger
#' @exportClass Logger
#' @author sebastien geiger
Logger <- setRefClass("Logger",
                       fields = list(name = "character",
                                     filedata = "character",
                                     filebehavior = "character"),
                       methods = list(
                         initialize= function(filedata = "", filebehavior = "") {
                           filedata<<-filedata
                           name<<-filedata
                           filebehavior<<-filebehavior
                         },
                         draw = function() {
                           print(paste("t:Logger fd:",filedata))
                         }
                       )
)


#' A LoggerCats reference class
#' @export LoggerCats
#' @exportClass LoggerCats
LoggerCats <-setRefClass("LoggerCats",
                         contains = list("Logger"),
                         fields = list(nbrow = "numeric"),
                         methods = list(
                           initialize = function(filedata = "", filebehavior = "",nbrow=10) {
                             callSuper(filedata, filebehavior)
                             nbrow<<-nbrow
                           },
                           draw = function() {
                             print(paste("t:LoggerCats fd",filedata))
                           }
                         )
)

#' A LoggerUI reference class
#' @export LoggerUI
#' @exportClass LoggerUI
LoggerUI <-setRefClass("LoggerUI",
                         fields = list(loglst = "list",
                                       nbrow = "numeric"),
                         methods = list(
                           initialize = function(loglst) {
                             loglst<<-loglst
                             nbrow<<-12
                           },
                           gui = function() {
                             i=0
                             loggerchoice=list()
                             for(n in loglst) {
                               i=i+1
                               loggerchoice[[n$name]]=i
                             }
                             lnbrow=loglst[[1]]$nbrow
                             ui <- fluidPage(
                               sidebarLayout(
                                 sidebarPanel(
                                   selectInput("logger",
                                               label = "Logger:",
                                               choices = loggerchoice),
                                   sliderInput("time", "RTCtick:",
                                               min = 1,
                                               max = lnbrow,
                                               value = c(min,max)),
                                   checkboxGroupInput("checkGroup", label = "Move",
                                                      choices = list("Time mark" = 1, "Swimming horizontally" = 2, "Swimming descent" = 3,
                                                                     "Swimming ascent"=4, "Breathing"=5, "Acceleration"=6),
                                                      selected = list(1,2))
                                 ),
                                 mainPanel(
                                   fluidRow(column(3, verbatimTextOutput("value")))
                                 )  )
                             )
                             server <- function(input, output, session) {
                               observeEvent(input$logger, {
                                 lmax=loglst[[as.numeric(input$logger)]]$nbrow
                                 updateSliderInput(session, "time",min=1,max=lmax,value=c(1,lmax))
                               })
                               output$value <- renderPrint({ input$time })
                             }
                             shinyApp(ui = ui, server = server)
                           }
                           )
)

a=LoggerCats(filedata="2018", nbrow=5)
b=LoggerCats(filedata="2019", nbrow=7)
l=list(a,b)
lui=LoggerUI$new(l)
lui$gui()
sebastien45/roo documentation built on May 18, 2019, 3:39 a.m.