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()
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.