@@ -110,7 +110,7 @@ mkGlobals <- setRefClass("globals",
110110 specLvl = " list" ,dClsLvl = " list" ,htClsLvl = " list" ,treeLvl = " list" ,tbsFinal = " list" ,
111111 selRuns = " character" , selUuids = " character" ,selAllVars = " logical" ,
112112 explorePass = " numeric" ,lastNewPrj = " character" ,prjFilesOnly = " logical" ,
113- tableMessage = " logical" ,exploring = " logical" ))
113+ tableMessage = " logical" ,exploring = " logical" , RepsDesign = ' logical ' ))
114114
115115isLocal <- function () Sys.getenv(' SHINY_PORT' ) == " "
116116
@@ -146,7 +146,7 @@ zipList <- list(
146146 " Output data base for for all runs" = " outdb" ,
147147 " Keyword file for current run" = " key" ,
148148 " FVS output file for current run" = " out" ,
149- " SVS output files for current run" = " subdir" ,
149+ " Visualize output files for current run" = " subdir" ,
150150 " Input data base FVS_Data.db" = " FVS_Data" ,
151151 " Spatial data (SpatialData.RData)" = " SpatialData" )
152152selZip <- unlist(zipList [1 : 4 ])
@@ -3987,8 +3987,28 @@ cat ("changeind=",globals$changeind,"\n")
39873987cat(" Nulling uiRunPlot at Save and Run\n " )
39883988 output $ uiRunPlot <- output $ uiErrorScan <- renderUI(NULL )
39893989 globals $ currentQuickPlot = character (0 )
3990- # timeing checks.
3990+ # timing checks.
39913991 thisYr = as.numeric(format(Sys.time(), " %Y" ))
3992+ # First check to see if required start year, end year, or cycle length fields are blank.
3993+ if (input $ startyr == " " ) {
3994+ session $ sendCustomMessage(type = " infomessage" ,
3995+ message = paste0(" The common starting year is blank." ))
3996+ updateTabsetPanel(session = session ,inputId = " rightPan" ,selected = " Time" )
3997+ return ()
3998+ }
3999+ if (input $ endyr == " " ) {
4000+ session $ sendCustomMessage(type = " infomessage" ,
4001+ message = paste0(" The common ending year is blank." ))
4002+ updateTabsetPanel(session = session ,inputId = " rightPan" ,selected = " Time" )
4003+ return ()
4004+ }
4005+ if (input $ cyclelen == " " ) {
4006+ session $ sendCustomMessage(type = " infomessage" ,
4007+ message = paste0(" The growth and reporting interval is blank." ))
4008+ updateTabsetPanel(session = session ,inputId = " rightPan" ,selected = " Time" )
4009+ return ()
4010+ }
4011+ # other start year checks
39924012 for (i in 1 : length(globals $ fvsRun $ stands )){
39934013 if (((input $ startyr != " " && ((as.numeric(input $ startyr )) > (thisYr + 50 ))) ||
39944014 ((input $ startyr != " " ) && nchar(input $ startyr ) > 4 ))){
@@ -4005,14 +4025,8 @@ cat("Nulling uiRunPlot at Save and Run\n")
40054025 updateTabsetPanel(session = session ,inputId = " rightPan" ,selected = " Time" )
40064026 return ()
40074027 }
4008- if (input $ startyr == " " ) {
4009- session $ sendCustomMessage(type = " infomessage" ,
4010- message = paste0(" The common starting year is blank." ))
4011- updateTabsetPanel(session = session ,inputId = " rightPan" ,selected = " Time" )
4012- return ()
4013- }
40144028 }
4015- # End year checks
4029+ # other end year checks
40164030 for (i in 1 : length(globals $ fvsRun $ stands )){
40174031 if (((input $ endyr != " " && ((as.numeric(input $ endyr )) >
40184032 (as.numeric(input $ cyclelen ) * 40 + as.numeric(input $ startyr )))) ||
@@ -4031,14 +4045,8 @@ cat("Nulling uiRunPlot at Save and Run\n")
40314045 updateTabsetPanel(session = session ,inputId = " rightPan" ,selected = " Time" )
40324046 return ()
40334047 }
4034- if (input $ endyr == " " ) {
4035- session $ sendCustomMessage(type = " infomessage" ,
4036- message = paste0(" The common ending year is blank." ))
4037- updateTabsetPanel(session = session ,inputId = " rightPan" ,selected = " Time" )
4038- return ()
4039- }
40404048 }
4041- # Cycle length checks
4049+ # other cycle length check
40424050 if (((input $ cyclelen != " " && ((as.numeric(input $ cyclelen )) > 50 ))) ||
40434051 ((input $ cyclelen != " " ) && nchar(input $ cyclelen ) > 4 )){
40444052 session $ sendCustomMessage(type = " infomessage" ,
@@ -4047,12 +4055,6 @@ cat("Nulling uiRunPlot at Save and Run\n")
40474055 updateTabsetPanel(session = session ,inputId = " rightPan" ,selected = " Time" )
40484056 return ()
40494057 }
4050- if (input $ cyclelen == " " ) {
4051- session $ sendCustomMessage(type = " infomessage" ,
4052- message = paste0(" The growth interval is blank." ))
4053- updateTabsetPanel(session = session ,inputId = " rightPan" ,selected = " Time" )
4054- return ()
4055- }
40564058 baseCycles = seq(as.numeric(globals $ fvsRun $ startyr ),as.numeric(globals $ fvsRun $ endyr ),
40574059 as.numeric(globals $ fvsRun $ cyclelen ))
40584060 cycleat = scan(text = gsub(" ;" ," " ,gsub(" ," ," " ,globals $ fvsRun $ cycleat )),
@@ -4077,7 +4079,7 @@ cat("Nulling uiRunPlot at Save and Run\n")
40774079 }
40784080 }
40794081 }
4080- }
4082+ }
40814083 progress <- shiny :: Progress $ new(session ,min = 1 ,
40824084 max = length(globals $ fvsRun $ stands )+ 10 )
40834085 progress $ set(message = " Run preparation: " ,
@@ -4173,6 +4175,9 @@ cat ("No climate attributes data found.\n")
41734175 progress $ close()
41744176cat (" exiting, stop fvschild\n " )
41754177 try(stopCluster(fvschild ))
4178+ Sys.sleep(0.3 )
4179+ unlink(paste0(globals $ fvsRun $ uuid ," .db" ))
4180+ unlink(paste0(globals $ fvsRun $ uuid ," _genrpt.txt" ))
41764181 })
41774182 clusterEvalQ(fvschild ,library(rFVS ))
41784183 cmd = paste0(" clusterEvalQ(fvschild,fvsLoad('" ,
@@ -8116,7 +8121,7 @@ cat ("in customRunOps runScript: ",input$runScript,"\n")
81168121 fn = paste0(" customRun_" ,globals $ fvsRun $ runScript ," .R" )
81178122 if (! file.exists(fn )) fn = system.file(" extdata" , fn , package = if (devVersion ) " fvsOLdev" else " fvsOL" )
81188123 if (! file.exists(fn )) return ()
8119- rtn = try(source(fn ))
8124+ rtn = try(source(fn , local = TRUE ))
81208125 if (class(rtn ) == " try-error" ) return ()
81218126 uiF = try(eval(parse(text = paste0(sub(" fvsRun" ," ui" ,globals $ fvsRun $ runScript )))))
81228127 if (class(uiF ) != " function" ) return ()
0 commit comments