changeset 8:7db5a949ba24

入力に意味が無い場合にチェックボックスを表示しないようにする
author uncorrelated zombie <uncorrelated@yahoo.co.jp>
date Sun, 30 Oct 2022 11:54:06 +0900
parents 9535740da224
children 6796c62e3a12
files ShinyEB.R
diffstat 1 files changed, 15 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/ShinyEB.R	Fri Oct 28 00:44:26 2022 +0900
+++ b/ShinyEB.R	Sun Oct 30 11:54:06 2022 +0900
@@ -20,7 +20,15 @@
                 value = 0.3),
             checkboxInput("isIP", "Initial Point", TRUE),
             checkboxInput("isIC_I", "Indiffrent Curves pass through the Initial Point", TRUE),
-            checkboxInput("isCore", "Core (this works only if the indiffrent curves above were plotted)", TRUE),
+            # チェックボックスありとなしの見えないタブを作る
+            tabsetPanel(
+                id = "tab4core",
+                type = "hidden",
+                tabPanel("true",
+                    checkboxInput("isCore", "Core", TRUE)
+                ),
+                tabPanel("false")
+            ),
             checkboxInput("isIC_E", "Indiffrent Curves pass through the Equilibrium", TRUE),
             checkboxInput("isSHP", "Separating Hyperplane", TRUE),
             checkboxInput("isCC", "Contract Curve", TRUE)
@@ -33,8 +41,13 @@
 )
 
 server <- function(input, output) {
+    # input$isIC_Iが変更されたら、見えないタブを切り替える
+    observeEvent(input$isIC_I, {
+        updateTabsetPanel(inputId = "tab4core", selected = ifelse(input$isIC_I, "true", "false"))
+    })
+
     output$distPlot <- renderPlot({
-        # inputにはwithが使えない
+        # inputはReactiveValuesクラスで$で参照できる変数を陽に持たないため、withやattachが使えない
         drawEdgeworthBox(input$A, input$B, CC=input$isCC, SHP=input$isSHP, IC_I=input$isIC_I,
             IC_E=input$isIC_E, CORE=input$isCore, IP=input$isIP)
     }, width=500, height=500)