R/ui.R

header = shinydashboard::dashboardHeader(title = "Feature Selection")

sideBar = shinydashboard::dashboardSidebar(
  shiny::uiOutput("datasetFilter"),
  shiny::uiOutput("methodFilter"),
  shiny::uiOutput("classiferFilter"),

  shiny::actionButton(
    inputId = "submit_loc",
    label = "Apply",
    icon = shiny::icon("filter")
  )
)

body = shinydashboard::dashboardBody(
  shiny::tags$head(shiny::tags$script('
                                var dimension = [0, 0];
                                $(document).on("shiny:connected", function(e) {
                                    dimension[0] = window.innerWidth;
                                    dimension[1] = window.innerHeight;
                                    Shiny.onInputChange("dimension", dimension);
                                });
                                $(window).resize(function(e) {
                                    dimension[0] = window.innerWidth;
                                    dimension[1] = window.innerHeight;
                                    Shiny.onInputChange("dimension", dimension);
                                });
                            ')),


  shiny::fluidRow(
    # content on the right side
    shiny::column(width = 12,
      # hint which is shown when no dataset and no method is selected
      shiny::conditionalPanel(
        condition = "!input.datasetsSelected | !input.methodsSelected | !input.classifiersSelected",
        shinydashboard::box(
          title = "Hint", status = "primary", width = 12, collapsible = T,
          "Choose at least one data set, one method and one classifier in the filter box on the left"
        )
      ),

      # actualy dashboard
      shiny::conditionalPanel(
        condition = "input.datasetsSelected && input.methodsSelected && input.classifiersSelected",
        shinydashboard::box(
          title = shiny::div("Method Scatter Plot", shiny::uiOutput("downloadbtn_method_scatter")), status = "primary", width = 12, collapsible = T,
          shiny::column(width = 12, shiny::plotOutput("method_scatter_plot", height = "auto"))
        ),
        shinydashboard::box(
          title = shiny::div("Iteration", shiny::uiOutput("downloadbtn_iteration_line")), status = "primary", width = 12, collapsible = T,
          shiny::column(width = 12, shiny::plotOutput("iteration_line_graph", height = "auto"))
        ),
        shinydashboard::box(
          title = shiny::div("Accuracy Difference (Plot)", shiny::uiOutput("downloadbtn_acc_diff_plot")), status = "primary", width = 12, collapsible = T,
          # column(width = 12, uiOutput('acc_diff_ui'), height = "auto")
          plotly::plotlyOutput("acc_diff_plot", height = "auto")
        ),
        shinydashboard::box(
          title = shiny::div("Runtime", shiny::uiOutput("downloadbtn_runtime_bar")), status = "primary", width = 12, collapsible = T,
          # column(width = 12, uiOutput('acc_diff_ui'), height = "auto")
          plotly::plotlyOutput("plot_runtime", height = "auto")
        ),
        shinydashboard::box(
          title = "Accuracy Difference (Table)", status = "primary", width = 12, collapsible = T, collapsed = T,
          shiny::column(width = 12, DT::dataTableOutput("acc_diff_table"))
        ),
        shinydashboard::box(
          title = "Results", status = "primary", width = 12, collapsible = T,
          shiny::column(width = 12, DT::dataTableOutput("table_results"))
        ),
        shinydashboard::box(
          title = "Latex-Export", status = "primary", width = 12, collapsible = T, collapsed = T,
          shiny::htmlOutput("table_results_latex")
        ),
        shinydashboard::box(
          title = "Feature Frequency (Table)", status = "primary", width = 12, collapsible = T,
          # column(width = 12, uiOutput('acc_diff_ui'), height = "auto")

          shiny::column(width = 12, DT::dataTableOutput("table_selected_features"))
        ),
        shinydashboard::box(
          title = shiny::div("Feature Frequency (Bar)", shiny::uiOutput('downloadbtn_feat_freq_bar')),
          status = "primary",
          width = 12,
          collapsible = T,
          collapsed = T,

          shiny::column(width = 12, plotly::plotlyOutput("feature_freq_plot", height = "auto"))
        ),
        shinydashboard::box(
          title = "test", status = "primary", width = 12, collapsible = T,
          # column(width = 12, uiOutput('acc_diff_ui'), height = "auto")

          shiny::plotOutput("pixel_plot")
        )
      )
    )
  )
)

ui = shinydashboard::dashboardPage(
  header,
  sideBar,
  body
)
creil94/FeatureSelectionDashboard documentation built on Nov. 4, 2019, 9:17 a.m.