r-rudra/tidycells

Planned activities for 0.3

Opened this issue · 4 comments

These are the planned activity for 0.3.0
These are in progress in nightly
Few of these may be dropped (as all of these are experimental)

  • Complete Heuristic maturation phase 1 : complete #5
  • Introduce grammar
  • %<^% kind of symbols for NNE etc.
  • Add shinytest prototype as described in #13
  • Compatibility of cell traceback with external operations (like {unpivotr} etc)
  • Multi routes tests
  • Optional packages availability based test
  • Mark cell-analysis for remodelling into a state (maybe in later version)
  • {DT} based table plots - check #16
  • reveal.js – Presentation for various topics
  • {pkgdown} tweaks [like all tables to DT etc]
  • Explore Github Actions as guided in this. Also check #18
  • Fix all issues tagged as bug like ( #20 )

Also, follow a release routine for stability in the release process.

Here are a few references for

{DT} based table plots

  • There is an option to select cells in native DataTable (see this link)
  • There is an option in DT that works with shiny only (sample of development code given below)
  • Most likely native DataTable option is not going to work in DT and Shiny (Here are references for that)
require(tidycells)
require(DT)

xl <- tidyxl::xlsx_cells("inst/extdata/marks.xlsx")
fmt <-tidyxl::xlsx_formats("inst/extdata/marks.xlsx")

cd <- as_cell_df(xl)

cdd <- as.data.frame(cd)

require(shiny)

std_opts <- list(
  pageLength = 10,
  keys = TRUE,
  sDom = '<"top">lrt<"bottom">pB',
  deferRender = TRUE,
  #scrollX = TRUE,
  scrollX= 400,
  scrollY = 500,
  scroller = TRUE,
  scrollCollapse = TRUE,
  ordering = FALSE,
  fixedColumns = TRUE,
  fixedHeader = TRUE
)


runGadget(shinyApp(
  ui = fluidPage(DTOutput("dt")),
  server = function(input, output){
    output$dt <- renderDT({
      datatable(cdd,
                escape = FALSE,
                rownames = TRUE,
                style = "bootstrap",
                fillContainer = FALSE,
                class = "cell-border stripe",
                extensions = c("KeyTable", "Scroller","FixedHeader"),
                selection = list(target = 'cell'),
                #editable = TRUE,
                options = std_opts)
    })
  }
))

I'll test it and keep a watch on the same.

Just tested this feature as mentioned here it is still not well connected to shiny. Hence going ahead with DT option. Maybe in later versions of DT this feature will be implemented.

(Here is the comment on this from DT developer)

DT has its own implementation of row/column/cell selections in Shiny, which is very different from the Select extension. In particular, the Select extension is unlikely to work in the server-side processing mode. On the other hand, DT’s implementation does not allow multiple selections via the Shift/Ctrl keys at the moment.

It [DT and Shiny with Select Extension] seems doable. However, this should be kept as an optional feature.