Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

error: There is already an input handler for type: htable #22

Open
cloudarch opened this issue May 11, 2015 · 0 comments
Open

error: There is already an input handler for type: htable #22

cloudarch opened this issue May 11, 2015 · 0 comments

Comments

@cloudarch
Copy link

Hi ,

I am hitting the error below when I try to run the example-1 app from my local.

Error : .onLoad failed in loadNamespace() for 'shinyTable', details:
call: shiny::registerInputHandler("htable", function(val, shinysession,
error: There is already an input handler for type: htable
Error : package or namespace load failed for ‘shinyTable’

Below is the source code.

ibrary(shiny)
library(shinyTable)

' Define UI for application that demonstrates a simple Handsontable

' @author Jeff Allen \email{jeff@@trestletech.com}

shinyUI(pageWithSidebar(

Application title

headerPanel("Simple Shiny Table!"),

sidebarPanel(
#sliderInput("slider", "Number of rows:", 1, 26, 5),
#HTML("


"),
helpText(HTML("A simple table with validation. The first column must be a number and if it's >= 100, it will be assigned the value of 99. Other columns can be anything.
Additionally, the second column has server-side styling applied and will highlight as 'invalid' any value >= 100, and will 'warn' on values >= 50.

Created using <a href = "http://github.com/trestletech/shinyTable\">shinyTable."))
),

Show the simple table

mainPanel(
htable("tbl", colHeaders="provided")
)
))

library(shiny)
library(shinyTable)

' Define server logic required to generate simple table

' @author Jeff Allen \email{jeff@@trestletech.com}

shinyServer(function(input, output, session) {
cachedTbl <- NULL

validate <- function(tbl){
updateTableStyle(session, "tbl", "valid",
which(as.numeric(tbl$num2) < 50), 2)
updateTableStyle(session, "tbl", "warning",
which(as.numeric(tbl$num2) >= 50 &
as.numeric(tbl$num2) < 100), 2)
updateTableStyle(session, "tbl", "invalid",
which(as.numeric(tbl$num2) >= 100), 2)
}

output$tbl <- renderHtable({
if (is.null(input$tbl)){
rows <- 5
# Seed the element with some data initially
tbl <- data.frame(list(num1=1:rows,
num2=(1:rows)*20,
letter=LETTERS[1:(rows)]))
rownames(tbl) <- LETTERS[2:(rows+1)]
validate(tbl)

  cachedTbl <<- tbl      
  return(tbl)
} else{
  # Updates from client. The server has been made aware and can do some
  # validation or updates here, then send back the revised table. In this
  # case, we'll filter any number >= 100 in the first column.
  tbl <- input$tbl

  # Any non-numeric data should be replaced with the cached data.
  tbl[is.na(as.integer(as.character(tbl[,1]))),1] <- 
    as.character(cachedTbl[is.na(as.integer(as.character(tbl[,1]))),1])

  validate(tbl)

  tbl[as.integer(as.character(tbl[,1])) >= 100,1] <- 99
  cachedTbl <<- tbl
  return(tbl)
}

})
})

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant