#' Open the Zooplankton Counter
#'
#' Opens up the Zooplankton counting tool
#' @param data A vector of names
#' @param shortcuts A vector of characters representing the shortcut keys used to add to a species' count. For example, c("Z", "X", "C"...). Has a default setting if none is specified.
#' @return A Zooplankton Counter instance
#' @export
ZoopCounter <- function(data, shortcuts = NULL){
# Pre-checks
if (isFALSE(interactive())){
stop("No human user was detected")
}
if (length(data) > 30){
stop("Maximum length of data is 30")
}
if (typeof(data) != "character"){
stop("Please specify a column or vector of species names when defining the data argument")
}
if (!requireNamespace("gWidgets2tcltk", quietly = TRUE)) {
stop(
"Package \"gWidgets2tcltk\" must be installed",
call. = FALSE
)
}
if (is.null(shortcuts)){
keys <- c("Q","W", "E", "R", "T", "Y", "U", "I", "O", "P", "A", "S", "D", "F", "G", "H", "J", "K", "L", "Z", "X", "C", "V", "B", "N", "M", "1", "2", "3", "4", "5")
} else if (typeof(shortcuts) == "character" & length(shortcuts) >= length(data)){
keys <- shortcuts
} else {
stop("shortcuts must be a vector of character strings, greater in length than data")
}
# Creating Master Window and container
w <- gWidgets2::gwindow("Zooplankton Counter", visible = FALSE, width = 1500, height = 700)
gmaster <- gWidgets2::ggroup(cont=w, horizontal=FALSE, use.scrollwindow = TRUE)
# Keyboard focus widget
gKeyFocus <- gWidgets2::gbutton("Click to enable shortcuts", container = gmaster, handler = function(h,...){
gWidgets2::svalue(gKeyFocus)<- "Shortcuts are enabled"
gWidgets2::font(gKeyFocus) <- c(weight = "light", color = "green")
})
gKeyFocusHandle <- gWidgets2::addHandlerBlur(gKeyFocus, handler = function(h,...){
gWidgets2::focus(gKeyFocus) <- TRUE # The Keyboard handler requires focus to accept inputs from the keyboard. This line ensures the shortcut enable button remains in focus even after other buttons are pressed.
})
gWidgets2::font(gKeyFocus) <- c(weight = "bold", color = "red")
# Creating species containers
##### Note: The need for species specific containers is a result of gWidgets2 not playing nice with loops that create objects dynamically for each species. Only count for the final species could be tracked and edited. Therefore, this seemingly redundant code is required.
## Row 1 ##
row1 <- gWidgets2::ggroup(container = gmaster, horizontal = TRUE)
### Species 1 ###
if (isFALSE(is.na(data[1]))){
gSpec1 <- gWidgets2::ggroup(cont=row1, horizontal=FALSE)
Spec1Name <- gWidgets2::glabel(data[1], container=gSpec1, editable = FALSE)
# Counter
gCount1 <- gWidgets2::ggroup(cont=gSpec1, horizontal=TRUE)
count1 <- 0
Spec1sub <- gWidgets2::gbutton("-", cont=gCount1, handler = function(h,...){
count1 <- as.numeric(gWidgets2::svalue(lCount1)) - 1
gWidgets2::svalue(lCount1) <- count1
})
lCount1 <- gWidgets2::glabel(count1, container=gCount1, editable = TRUE)
Spec1add <- gWidgets2::gbutton("+", cont=gCount1, handler = function(h,...){
count1 <- as.numeric(gWidgets2::svalue(lCount1)) + 1
gWidgets2::svalue(lCount1) <- count1
})
# Keyboard Shortcut
gKeyShrt1 <- gWidgets2::ggroup(cont = gSpec1, horizontal = TRUE)
lKeyShrt1 <- gWidgets2::glabel("Shortcut Key:", cont = gKeyShrt1)
lKeyPress1 <- gWidgets2::glabel(keys[1], container = gKeyShrt1, editable = TRUE)
gWidgets2::addHandlerKeystroke(gKeyFocus, handler = function(h,...){
if (h$key == tolower(gWidgets2::svalue(lKeyPress1))){
count1 <- as.numeric(gWidgets2::svalue(lCount1)) + 1
gWidgets2::svalue(lCount1) <- count1
}
})
gWidgets2::gseparator(cont=row1, horizontal = FALSE)
}
### End Species 1 ###
### Species 2 ###
if (isFALSE(is.na(data[2]))){
gSpec2 <- gWidgets2::ggroup(cont=row1, horizontal=FALSE)
Spec2Name <- gWidgets2::glabel(data[2], container=gSpec2, editable = FALSE)
# Counter
gCount2 <- gWidgets2::ggroup(cont=gSpec2, horizontal=TRUE)
count2 <- 0
Spec2sub <- gWidgets2::gbutton("-", cont=gCount2, handler = function(h,...){
count2 <- as.numeric(gWidgets2::svalue(lCount2)) - 1
gWidgets2::svalue(lCount2) <- count2
})
lCount2 <- gWidgets2::glabel(count2, container=gCount2, editable = TRUE)
Spec2add <- gWidgets2::gbutton("+", cont=gCount2, handler = function(h,...){
count2 <- as.numeric(gWidgets2::svalue(lCount2)) + 1
gWidgets2::svalue(lCount2) <- count2
})
# Keyboard Shortcut
gKeyShrt2 <- gWidgets2::ggroup(cont = gSpec2, horizontal = TRUE)
lKeyShrt2 <- gWidgets2::glabel("Shortcut Key:", cont = gKeyShrt2)
lKeyPress2 <- gWidgets2::glabel(keys[2], container = gKeyShrt2, editable = TRUE)
gWidgets2::addHandlerKeystroke(gKeyFocus, handler = function(h,...){
if (h$key == tolower(gWidgets2::svalue(lKeyPress2))){
count2 <- as.numeric(gWidgets2::svalue(lCount2)) + 1
gWidgets2::svalue(lCount2) <- count2
}
})
gWidgets2::gseparator(cont=row1, horizontal = FALSE)
}
### End Species 2 ###
### Species 3 ###
if (isFALSE(is.na(data[3]))){
gSpec3 <- gWidgets2::ggroup(cont=row1, horizontal=FALSE)
Spec3Name <- gWidgets2::glabel(data[3], container=gSpec3, editable = FALSE)
# Counter
gCount3 <- gWidgets2::ggroup(cont=gSpec3, horizontal=TRUE)
count3 <- 0
Spec3sub <- gWidgets2::gbutton("-", cont=gCount3, handler = function(h,...){
count3 <- as.numeric(gWidgets2::svalue(lCount3)) - 1
gWidgets2::svalue(lCount3) <- count3
})
lCount3 <- gWidgets2::glabel(count3, container=gCount3, editable = TRUE)
Spec3add <- gWidgets2::gbutton("+", cont=gCount3, handler = function(h,...){
count3 <- as.numeric(gWidgets2::svalue(lCount3)) + 1
gWidgets2::svalue(lCount3) <- count3
})
# Keyboard Shortcut
gKeyShrt3 <- gWidgets2::ggroup(cont = gSpec3, horizontal = TRUE)
lKeyShrt3 <- gWidgets2::glabel("Shortcut Key:", cont = gKeyShrt3)
lKeyPress3 <- gWidgets2::glabel(keys[3], container = gKeyShrt3, editable = TRUE)
gWidgets2::addHandlerKeystroke(gKeyFocus, handler = function(h,...){
if (h$key == tolower(gWidgets2::svalue(lKeyPress3))){
count3 <- as.numeric(gWidgets2::svalue(lCount3)) + 1
gWidgets2::svalue(lCount3) <- count3
}
})
gWidgets2::gseparator(cont=row1, horizontal = FALSE)
}
### End Species 3 ###
### Species 4 ###
if (isFALSE(is.na(data[4]))){
gSpec4 <- gWidgets2::ggroup(cont=row1, horizontal=FALSE)
Spec4Name <- gWidgets2::glabel(data[4], container=gSpec4, editable = FALSE)
# Counter
gCount4 <- gWidgets2::ggroup(cont=gSpec4, horizontal=TRUE)
count4 <- 0
Spec4sub <- gWidgets2::gbutton("-", cont=gCount4, handler = function(h,...){
count4 <- as.numeric(gWidgets2::svalue(lCount4)) - 1
gWidgets2::svalue(lCount4) <- count4
})
lCount4 <- gWidgets2::glabel(count4, container=gCount4, editable = TRUE)
Spec4add <- gWidgets2::gbutton("+", cont=gCount4, handler = function(h,...){
count4 <- as.numeric(gWidgets2::svalue(lCount4)) + 1
gWidgets2::svalue(lCount4) <- count4
})
# Keyboard Shortcut
gKeyShrt4 <- gWidgets2::ggroup(cont = gSpec4, horizontal = TRUE)
lKeyShrt4 <- gWidgets2::glabel("Shortcut Key:", cont = gKeyShrt4)
lKeyPress4 <- gWidgets2::glabel(keys[4], container = gKeyShrt4, editable = TRUE)
gWidgets2::addHandlerKeystroke(gKeyFocus, handler = function(h,...){
if (h$key == tolower(gWidgets2::svalue(lKeyPress4))){
count4 <- as.numeric(gWidgets2::svalue(lCount4)) + 1
gWidgets2::svalue(lCount4) <- count4
}
})
gWidgets2::gseparator(cont=row1, horizontal = FALSE)
}
### End Species 4 ###
### Species 5 ###
if (isFALSE(is.na(data[5]))){
gSpec5 <- gWidgets2::ggroup(cont=row1, horizontal=FALSE)
Spec5Name <- gWidgets2::glabel(data[5], container=gSpec5, editable = FALSE)
# Counter
gCount5 <- gWidgets2::ggroup(cont=gSpec5, horizontal=TRUE)
count5 <- 0
Spec5sub <- gWidgets2::gbutton("-", cont=gCount5, handler = function(h,...){
count5 <- as.numeric(gWidgets2::svalue(lCount5)) - 1
gWidgets2::svalue(lCount5) <- count5
})
lCount5 <- gWidgets2::glabel(count5, container=gCount5, editable = TRUE)
Spec5add <- gWidgets2::gbutton("+", cont=gCount5, handler = function(h,...){
count5 <- as.numeric(gWidgets2::svalue(lCount5)) + 1
gWidgets2::svalue(lCount5) <- count5
})
# Keyboard Shortcut
gKeyShrt5 <- gWidgets2::ggroup(cont = gSpec5, horizontal = TRUE)
lKeyShrt5 <- gWidgets2::glabel("Shortcut Key:", cont = gKeyShrt5)
lKeyPress5 <- gWidgets2::glabel(keys[5], container = gKeyShrt5, editable = TRUE)
gWidgets2::addHandlerKeystroke(gKeyFocus, handler = function(h,...){
if (h$key == tolower(gWidgets2::svalue(lKeyPress5))){
count5 <- as.numeric(gWidgets2::svalue(lCount5)) + 1
gWidgets2::svalue(lCount5) <- count5
}
})
gWidgets2::gseparator(cont=row1, horizontal = FALSE)
}
### End Species 5 ###
### Species 6 ###
if (isFALSE(is.na(data[6]))){
gSpec6 <- gWidgets2::ggroup(cont=row1, horizontal=FALSE)
Spec6Name <- gWidgets2::glabel(data[6], container=gSpec6, editable = FALSE)
# Counter
gCount6 <- gWidgets2::ggroup(cont=gSpec6, horizontal=TRUE)
count6 <- 0
Spec6sub <- gWidgets2::gbutton("-", cont=gCount6, handler = function(h,...){
count6 <- as.numeric(gWidgets2::svalue(lCount6)) - 1
gWidgets2::svalue(lCount6) <- count6
})
lCount6 <- gWidgets2::glabel(count6, container=gCount6, editable = TRUE)
Spec6add <- gWidgets2::gbutton("+", cont=gCount6, handler = function(h,...){
count6 <- as.numeric(gWidgets2::svalue(lCount6)) + 1
gWidgets2::svalue(lCount6) <- count6
})
# Keyboard Shortcut
gKeyShrt6 <- gWidgets2::ggroup(cont = gSpec6, horizontal = TRUE)
lKeyShrt6 <- gWidgets2::glabel("Shortcut Key:", cont = gKeyShrt6)
lKeyPress6 <- gWidgets2::glabel(keys[6], container = gKeyShrt6, editable = TRUE)
gWidgets2::addHandlerKeystroke(gKeyFocus, handler = function(h,...){
if (h$key == tolower(gWidgets2::svalue(lKeyPress6))){
count6 <- as.numeric(gWidgets2::svalue(lCount6)) + 1
gWidgets2::svalue(lCount6) <- count6
}
})
}
### End Species 6 ###
## Row 2 ##
if (length(data) >= 6){
gWidgets2::gseparator(cont=gmaster)
}
row2 <- gWidgets2::ggroup(container = gmaster, horizontal = TRUE)
### Species 7 ###
if (isFALSE(is.na(data[7]))){
gSpec7 <- gWidgets2::ggroup(cont=row2, horizontal=FALSE)
Spec7Name <- gWidgets2::glabel(data[7], container=gSpec7, editable = FALSE)
# Counter
gCount7 <- gWidgets2::ggroup(cont=gSpec7, horizontal=TRUE)
count7 <- 0
Spec7sub <- gWidgets2::gbutton("-", cont=gCount7, handler = function(h,...){
count7 <- as.numeric(gWidgets2::svalue(lCount7)) - 1
gWidgets2::svalue(lCount7) <- count7
})
lCount7 <- gWidgets2::glabel(count7, container=gCount7, editable = TRUE)
Spec7add <- gWidgets2::gbutton("+", cont=gCount7, handler = function(h,...){
count7 <- as.numeric(gWidgets2::svalue(lCount7)) + 1
gWidgets2::svalue(lCount7) <- count7
})
# Keyboard Shortcut
gKeyShrt7 <- gWidgets2::ggroup(cont = gSpec7, horizontal = TRUE)
lKeyShrt7 <- gWidgets2::glabel("Shortcut Key:", cont = gKeyShrt7)
lKeyPress7 <- gWidgets2::glabel(keys[7], container = gKeyShrt7, editable = TRUE)
gWidgets2::addHandlerKeystroke(gKeyFocus, handler = function(h,...){
if (h$key == tolower(gWidgets2::svalue(lKeyPress7))){
count7 <- as.numeric(gWidgets2::svalue(lCount7)) + 1
gWidgets2::svalue(lCount7) <- count7
}
})
gWidgets2::gseparator(cont=row2, horizontal = FALSE)
}
### End Species 7 ###
### Species 8 ###
if (isFALSE(is.na(data[8]))){
gSpec8 <- gWidgets2::ggroup(cont=row2, horizontal=FALSE)
Spec8Name <- gWidgets2::glabel(data[8], container=gSpec8, editable = FALSE)
# Counter
gCount8 <- gWidgets2::ggroup(cont=gSpec8, horizontal=TRUE)
count8 <- 0
Spec8sub <- gWidgets2::gbutton("-", cont=gCount8, handler = function(h,...){
count8 <- as.numeric(gWidgets2::svalue(lCount8)) - 1
gWidgets2::svalue(lCount8) <- count8
})
lCount8 <- gWidgets2::glabel(count8, container=gCount8, editable = TRUE)
Spec8add <- gWidgets2::gbutton("+", cont=gCount8, handler = function(h,...){
count8 <- as.numeric(gWidgets2::svalue(lCount8)) + 1
gWidgets2::svalue(lCount8) <- count8
})
# Keyboard Shortcut
gKeyShrt8 <- gWidgets2::ggroup(cont = gSpec8, horizontal = TRUE)
lKeyShrt8 <- gWidgets2::glabel("Shortcut Key:", cont = gKeyShrt8)
lKeyPress8 <- gWidgets2::glabel(keys[8], container = gKeyShrt8, editable = TRUE)
gWidgets2::addHandlerKeystroke(gKeyFocus, handler = function(h,...){
if (h$key == tolower(gWidgets2::svalue(lKeyPress8))){
count8 <- as.numeric(gWidgets2::svalue(lCount8)) + 1
gWidgets2::svalue(lCount8) <- count8
}
})
gWidgets2::gseparator(cont=row2, horizontal = FALSE)
}
### End Species 8 ###
### Species 9 ###
if (isFALSE(is.na(data[9]))){
gSpec9 <- gWidgets2::ggroup(cont=row2, horizontal=FALSE)
Spec9Name <- gWidgets2::glabel(data[9], container=gSpec9, editable = FALSE)
# Counter
gCount9 <- gWidgets2::ggroup(cont=gSpec9, horizontal=TRUE)
count9 <- 0
Spec9sub <- gWidgets2::gbutton("-", cont=gCount9, handler = function(h,...){
count9 <- as.numeric(gWidgets2::svalue(lCount9)) - 1
gWidgets2::svalue(lCount9) <- count9
})
lCount9 <- gWidgets2::glabel(count9, container=gCount9, editable = TRUE)
Spec9add <- gWidgets2::gbutton("+", cont=gCount9, handler = function(h,...){
count9 <- as.numeric(gWidgets2::svalue(lCount9)) + 1
gWidgets2::svalue(lCount9) <- count9
})
# Keyboard Shortcut
gKeyShrt9 <- gWidgets2::ggroup(cont = gSpec9, horizontal = TRUE)
lKeyShrt9 <- gWidgets2::glabel("Shortcut Key:", cont = gKeyShrt9)
lKeyPress9 <- gWidgets2::glabel(keys[9], container = gKeyShrt9, editable = TRUE)
gWidgets2::addHandlerKeystroke(gKeyFocus, handler = function(h,...){
if (h$key == tolower(gWidgets2::svalue(lKeyPress9))){
count9 <- as.numeric(gWidgets2::svalue(lCount9)) + 1
gWidgets2::svalue(lCount9) <- count9
}
})
gWidgets2::gseparator(cont=row2, horizontal = FALSE)
}
### End Species 9 ###
### Species 10 ###
if (isFALSE(is.na(data[10]))){
gSpec10 <- gWidgets2::ggroup(cont=row2, horizontal=FALSE)
Spec10Name <- gWidgets2::glabel(data[10], container=gSpec10, editable = FALSE)
# Counter
gCount10 <- gWidgets2::ggroup(cont=gSpec10, horizontal=TRUE)
count10 <- 0
Spec10sub <- gWidgets2::gbutton("-", cont=gCount10, handler = function(h,...){
count10 <- as.numeric(gWidgets2::svalue(lCount10)) - 1
gWidgets2::svalue(lCount10) <- count10
})
lCount10 <- gWidgets2::glabel(count10, container=gCount10, editable = TRUE)
Spec10add <- gWidgets2::gbutton("+", cont=gCount10, handler = function(h,...){
count10 <- as.numeric(gWidgets2::svalue(lCount10)) + 1
gWidgets2::svalue(lCount10) <- count10
})
# Keyboard Shortcut
gKeyShrt10 <- gWidgets2::ggroup(cont = gSpec10, horizontal = TRUE)
lKeyShrt10 <- gWidgets2::glabel("Shortcut Key:", cont = gKeyShrt10)
lKeyPress10 <- gWidgets2::glabel(keys[10], container = gKeyShrt10, editable = TRUE)
gWidgets2::addHandlerKeystroke(gKeyFocus, handler = function(h,...){
if (h$key == tolower(gWidgets2::svalue(lKeyPress10))){
count10 <- as.numeric(gWidgets2::svalue(lCount10)) + 1
gWidgets2::svalue(lCount10) <- count10
}
})
gWidgets2::gseparator(cont=row2, horizontal = FALSE)
}
### End Species 10 ###
### Species 11 ###
if (isFALSE(is.na(data[11]))){
gSpec11 <- gWidgets2::ggroup(cont=row2, horizontal=FALSE)
Spec11Name <- gWidgets2::glabel(data[11], container=gSpec11, editable = FALSE)
# Counter
gCount11 <- gWidgets2::ggroup(cont=gSpec11, horizontal=TRUE)
count11 <- 0
Spec11sub <- gWidgets2::gbutton("-", cont=gCount11, handler = function(h,...){
count11 <- as.numeric(gWidgets2::svalue(lCount11)) - 1
gWidgets2::svalue(lCount11) <- count11
})
lCount11 <- gWidgets2::glabel(count11, container=gCount11, editable = TRUE)
Spec11add <- gWidgets2::gbutton("+", cont=gCount11, handler = function(h,...){
count11 <- as.numeric(gWidgets2::svalue(lCount11)) + 1
gWidgets2::svalue(lCount11) <- count11
})
# Keyboard Shortcut
gKeyShrt11 <- gWidgets2::ggroup(cont = gSpec11, horizontal = TRUE)
lKeyShrt11 <- gWidgets2::glabel("Shortcut Key:", cont = gKeyShrt11)
lKeyPress11 <- gWidgets2::glabel(keys[11], container = gKeyShrt11, editable = TRUE)
gWidgets2::addHandlerKeystroke(gKeyFocus, handler = function(h,...){
if (h$key == tolower(gWidgets2::svalue(lKeyPress11))){
count11 <- as.numeric(gWidgets2::svalue(lCount11)) + 1
gWidgets2::svalue(lCount11) <- count11
}
})
gWidgets2::gseparator(cont=row2, horizontal = FALSE)
}
### End Species 11 ###
### Species 12 ###
if (isFALSE(is.na(data[12]))){
gSpec12 <- gWidgets2::ggroup(cont=row2, horizontal=FALSE)
Spec12Name <- gWidgets2::glabel(data[12], container=gSpec12, editable = FALSE)
# Counter
gCount12 <- gWidgets2::ggroup(cont=gSpec12, horizontal=TRUE)
count12 <- 0
Spec12sub <- gWidgets2::gbutton("-", cont=gCount12, handler = function(h,...){
count12 <- as.numeric(gWidgets2::svalue(lCount12)) - 1
gWidgets2::svalue(lCount12) <- count12
})
lCount12 <- gWidgets2::glabel(count12, container=gCount12, editable = TRUE)
Spec12add <- gWidgets2::gbutton("+", cont=gCount12, handler = function(h,...){
count12 <- as.numeric(gWidgets2::svalue(lCount12)) + 1
gWidgets2::svalue(lCount12) <- count12
})
# Keyboard Shortcut
gKeyShrt12 <- gWidgets2::ggroup(cont = gSpec12, horizontal = TRUE)
lKeyShrt12 <- gWidgets2::glabel("Shortcut Key:", cont = gKeyShrt12)
lKeyPress12 <- gWidgets2::glabel(keys[12], container = gKeyShrt12, editable = TRUE)
gWidgets2::addHandlerKeystroke(gKeyFocus, handler = function(h,...){
if (h$key == tolower(gWidgets2::svalue(lKeyPress12))){
count12 <- as.numeric(gWidgets2::svalue(lCount12)) + 1
gWidgets2::svalue(lCount12) <- count12
}
})
}
### End Species 12 ###
## Row 3 ##
if (length(data) >= 12){
gWidgets2::gseparator(cont=gmaster)
}
row3 <- gWidgets2::ggroup(container = gmaster, horizontal = TRUE)
### Species 13 ###
if (isFALSE(is.na(data[13]))){
gSpec13 <- gWidgets2::ggroup(cont=row3, horizontal=FALSE)
Spec13Name <- gWidgets2::glabel(data[13], container=gSpec13, editable = FALSE)
# Counter
gCount13 <- gWidgets2::ggroup(cont=gSpec13, horizontal=TRUE)
count13 <- 0
Spec13sub <- gWidgets2::gbutton("-", cont=gCount13, handler = function(h,...){
count13 <- as.numeric(gWidgets2::svalue(lCount13)) - 1
gWidgets2::svalue(lCount13) <- count13
})
lCount13 <- gWidgets2::glabel(count13, container=gCount13, editable = TRUE)
Spec13add <- gWidgets2::gbutton("+", cont=gCount13, handler = function(h,...){
count13 <- as.numeric(gWidgets2::svalue(lCount13)) + 1
gWidgets2::svalue(lCount13) <- count13
})
# Keyboard Shortcut
gKeyShrt13 <- gWidgets2::ggroup(cont = gSpec13, horizontal = TRUE)
lKeyShrt13 <- gWidgets2::glabel("Shortcut Key:", cont = gKeyShrt13)
lKeyPress13 <- gWidgets2::glabel(keys[13], container = gKeyShrt13, editable = TRUE)
gWidgets2::addHandlerKeystroke(gKeyFocus, handler = function(h,...){
if (h$key == tolower(gWidgets2::svalue(lKeyPress13))){
count13 <- as.numeric(gWidgets2::svalue(lCount13)) + 1
gWidgets2::svalue(lCount13) <- count13
}
})
gWidgets2::gseparator(cont=row3, horizontal = FALSE)
}
### End Species 13 ###
### Species 14 ###
if (isFALSE(is.na(data[14]))){
gSpec14 <- gWidgets2::ggroup(cont=row3, horizontal=FALSE)
Spec14Name <- gWidgets2::glabel(data[14], container=gSpec14, editable = FALSE)
# Counter
gCount14 <- gWidgets2::ggroup(cont=gSpec14, horizontal=TRUE)
count14 <- 0
Spec14sub <- gWidgets2::gbutton("-", cont=gCount14, handler = function(h,...){
count14 <- as.numeric(gWidgets2::svalue(lCount14)) - 1
gWidgets2::svalue(lCount14) <- count14
})
lCount14 <- gWidgets2::glabel(count14, container=gCount14, editable = TRUE)
Spec14add <- gWidgets2::gbutton("+", cont=gCount14, handler = function(h,...){
count14 <- as.numeric(gWidgets2::svalue(lCount14)) + 1
gWidgets2::svalue(lCount14) <- count14
})
# Keyboard Shortcut
gKeyShrt14 <- gWidgets2::ggroup(cont = gSpec14, horizontal = TRUE)
lKeyShrt14 <- gWidgets2::glabel("Shortcut Key:", cont = gKeyShrt14)
lKeyPress14 <- gWidgets2::glabel(keys[14], container = gKeyShrt14, editable = TRUE)
gWidgets2::addHandlerKeystroke(gKeyFocus, handler = function(h,...){
if (h$key == tolower(gWidgets2::svalue(lKeyPress14))){
count14 <- as.numeric(gWidgets2::svalue(lCount14)) + 1
gWidgets2::svalue(lCount14) <- count14
}
})
gWidgets2::gseparator(cont=row3, horizontal = FALSE)
}
### End Species 14 ###
### Species 15 ###
if (isFALSE(is.na(data[15]))){
gSpec15 <- gWidgets2::ggroup(cont=row3, horizontal=FALSE)
Spec15Name <- gWidgets2::glabel(data[15], container=gSpec15, editable = FALSE)
# Counter
gCount15 <- gWidgets2::ggroup(cont=gSpec15, horizontal=TRUE)
count15 <- 0
Spec15sub <- gWidgets2::gbutton("-", cont=gCount15, handler = function(h,...){
count15 <- as.numeric(gWidgets2::svalue(lCount15)) - 1
gWidgets2::svalue(lCount15) <- count15
})
lCount15 <- gWidgets2::glabel(count15, container=gCount15, editable = TRUE)
Spec15add <- gWidgets2::gbutton("+", cont=gCount15, handler = function(h,...){
count15 <- as.numeric(gWidgets2::svalue(lCount15)) + 1
gWidgets2::svalue(lCount15) <- count15
})
# Keyboard Shortcut
gKeyShrt15 <- gWidgets2::ggroup(cont = gSpec15, horizontal = TRUE)
lKeyShrt15 <- gWidgets2::glabel("Shortcut Key:", cont = gKeyShrt15)
lKeyPress15 <- gWidgets2::glabel(keys[15], container = gKeyShrt15, editable = TRUE)
gWidgets2::addHandlerKeystroke(gKeyFocus, handler = function(h,...){
if (h$key == tolower(gWidgets2::svalue(lKeyPress15))){
count15 <- as.numeric(gWidgets2::svalue(lCount15)) + 1
gWidgets2::svalue(lCount15) <- count15
}
})
gWidgets2::gseparator(cont=row3, horizontal = FALSE)
}
### End Species 15 ###
### Species 16 ###
if (isFALSE(is.na(data[16]))){
gSpec16 <- gWidgets2::ggroup(cont=row3, horizontal=FALSE)
Spec16Name <- gWidgets2::glabel(data[16], container=gSpec16, editable = FALSE)
# Counter
gCount16 <- gWidgets2::ggroup(cont=gSpec16, horizontal=TRUE)
count16 <- 0
Spec16sub <- gWidgets2::gbutton("-", cont=gCount16, handler = function(h,...){
count16 <- as.numeric(gWidgets2::svalue(lCount16)) - 1
gWidgets2::svalue(lCount16) <- count16
})
lCount16 <- gWidgets2::glabel(count16, container=gCount16, editable = TRUE)
Spec16add <- gWidgets2::gbutton("+", cont=gCount16, handler = function(h,...){
count16 <- as.numeric(gWidgets2::svalue(lCount16)) + 1
gWidgets2::svalue(lCount16) <- count16
})
# Keyboard Shortcut
gKeyShrt16 <- gWidgets2::ggroup(cont = gSpec16, horizontal = TRUE)
lKeyShrt16 <- gWidgets2::glabel("Shortcut Key:", cont = gKeyShrt16)
lKeyPress16 <- gWidgets2::glabel(keys[16], container = gKeyShrt16, editable = TRUE)
gWidgets2::addHandlerKeystroke(gKeyFocus, handler = function(h,...){
if (h$key == tolower(gWidgets2::svalue(lKeyPress16))){
count16 <- as.numeric(gWidgets2::svalue(lCount16)) + 1
gWidgets2::svalue(lCount16) <- count16
}
})
gWidgets2::gseparator(cont=row3, horizontal = FALSE)
}
### End Species 16 ###
### Species 17 ###
if (isFALSE(is.na(data[17]))){
gSpec17 <- gWidgets2::ggroup(cont=row3, horizontal=FALSE)
Spec17Name <- gWidgets2::glabel(data[17], container=gSpec17, editable = FALSE)
# Counter
gCount17 <- gWidgets2::ggroup(cont=gSpec17, horizontal=TRUE)
count17 <- 0
Spec17sub <- gWidgets2::gbutton("-", cont=gCount17, handler = function(h,...){
count17 <- as.numeric(gWidgets2::svalue(lCount17)) - 1
gWidgets2::svalue(lCount17) <- count17
})
lCount17 <- gWidgets2::glabel(count17, container=gCount17, editable = TRUE)
Spec17add <- gWidgets2::gbutton("+", cont=gCount17, handler = function(h,...){
count17 <- as.numeric(gWidgets2::svalue(lCount17)) + 1
gWidgets2::svalue(lCount17) <- count17
})
# Keyboard Shortcut
gKeyShrt17 <- gWidgets2::ggroup(cont = gSpec17, horizontal = TRUE)
lKeyShrt17 <- gWidgets2::glabel("Shortcut Key:", cont = gKeyShrt17)
lKeyPress17 <- gWidgets2::glabel(keys[17], container = gKeyShrt17, editable = TRUE)
gWidgets2::addHandlerKeystroke(gKeyFocus, handler = function(h,...){
if (h$key == tolower(gWidgets2::svalue(lKeyPress17))){
count17 <- as.numeric(gWidgets2::svalue(lCount17)) + 1
gWidgets2::svalue(lCount17) <- count17
}
})
gWidgets2::gseparator(cont=row3, horizontal = FALSE)
}
### End Species 17 ###
### Species 18 ###
if (isFALSE(is.na(data[18]))){
gSpec18 <- gWidgets2::ggroup(cont=row3, horizontal=FALSE)
Spec18Name <- gWidgets2::glabel(data[18], container=gSpec18, editable = FALSE)
# Counter
gCount18 <- gWidgets2::ggroup(cont=gSpec18, horizontal=TRUE)
count18 <- 0
Spec18sub <- gWidgets2::gbutton("-", cont=gCount18, handler = function(h,...){
count18 <- as.numeric(gWidgets2::svalue(lCount18)) - 1
gWidgets2::svalue(lCount18) <- count18
})
lCount18 <- gWidgets2::glabel(count18, container=gCount18, editable = TRUE)
Spec18add <- gWidgets2::gbutton("+", cont=gCount18, handler = function(h,...){
count18 <- as.numeric(gWidgets2::svalue(lCount18)) + 1
gWidgets2::svalue(lCount18) <- count18
})
# Keyboard Shortcut
gKeyShrt18 <- gWidgets2::ggroup(cont = gSpec18, horizontal = TRUE)
lKeyShrt18 <- gWidgets2::glabel("Shortcut Key:", cont = gKeyShrt18)
lKeyPress18 <- gWidgets2::glabel(keys[18], container = gKeyShrt18, editable = TRUE)
gWidgets2::addHandlerKeystroke(gKeyFocus, handler = function(h,...){
if (h$key == tolower(gWidgets2::svalue(lKeyPress18))){
count18 <- as.numeric(gWidgets2::svalue(lCount18)) + 1
gWidgets2::svalue(lCount18) <- count18
}
})
}
### End Species 18 ###
## Row 4 ##
if (length(data) >= 18){
gWidgets2::gseparator(cont=gmaster)
}
row4 <- gWidgets2::ggroup(container = gmaster, horizontal = TRUE)
### Species 19 ###
if (isFALSE(is.na(data[19]))){
gSpec19 <- gWidgets2::ggroup(cont=row4, horizontal=FALSE)
Spec19Name <- gWidgets2::glabel(data[19], container=gSpec19, editable = FALSE)
# Counter
gCount19 <- gWidgets2::ggroup(cont=gSpec19, horizontal=TRUE)
count19 <- 0
Spec19sub <- gWidgets2::gbutton("-", cont=gCount19, handler = function(h,...){
count19 <- as.numeric(gWidgets2::svalue(lCount19)) - 1
gWidgets2::svalue(lCount19) <- count19
})
lCount19 <- gWidgets2::glabel(count19, container=gCount19, editable = TRUE)
Spec19add <- gWidgets2::gbutton("+", cont=gCount19, handler = function(h,...){
count19 <- as.numeric(gWidgets2::svalue(lCount19)) + 1
gWidgets2::svalue(lCount19) <- count19
})
# Keyboard Shortcut
gKeyShrt19 <- gWidgets2::ggroup(cont = gSpec19, horizontal = TRUE)
lKeyShrt19 <- gWidgets2::glabel("Shortcut Key:", cont = gKeyShrt19)
lKeyPress19 <- gWidgets2::glabel(keys[19], container = gKeyShrt19, editable = TRUE)
gWidgets2::addHandlerKeystroke(gKeyFocus, handler = function(h,...){
if (h$key == tolower(gWidgets2::svalue(lKeyPress19))){
count19 <- as.numeric(gWidgets2::svalue(lCount19)) + 1
gWidgets2::svalue(lCount19) <- count19
}
})
gWidgets2::gseparator(cont=row4, horizontal = FALSE)
}
### End Species 19 ###
### Species 20 ###
if (isFALSE(is.na(data[20]))){
gSpec20 <- gWidgets2::ggroup(cont=row4, horizontal=FALSE)
Spec20Name <- gWidgets2::glabel(data[20], container=gSpec20, editable = FALSE)
# Counter
gCount20 <- gWidgets2::ggroup(cont=gSpec20, horizontal=TRUE)
count20 <- 0
Spec20sub <- gWidgets2::gbutton("-", cont=gCount20, handler = function(h,...){
count20 <- as.numeric(gWidgets2::svalue(lCount20)) - 1
gWidgets2::svalue(lCount20) <- count20
})
lCount20 <- gWidgets2::glabel(count20, container=gCount20, editable = TRUE)
Spec20add <- gWidgets2::gbutton("+", cont=gCount20, handler = function(h,...){
count20 <- as.numeric(gWidgets2::svalue(lCount20)) + 1
gWidgets2::svalue(lCount20) <- count20
})
# Keyboard Shortcut
gKeyShrt20 <- gWidgets2::ggroup(cont = gSpec20, horizontal = TRUE)
lKeyShrt20 <- gWidgets2::glabel("Shortcut Key:", cont = gKeyShrt20)
lKeyPress20 <- gWidgets2::glabel(keys[20], container = gKeyShrt20, editable = TRUE)
gWidgets2::addHandlerKeystroke(gKeyFocus, handler = function(h,...){
if (h$key == tolower(gWidgets2::svalue(lKeyPress20))){
count20 <- as.numeric(gWidgets2::svalue(lCount20)) + 1
gWidgets2::svalue(lCount20) <- count20
}
})
gWidgets2::gseparator(cont=row4, horizontal = FALSE)
}
### End Species 20 ###
### Species 21 ###
if (isFALSE(is.na(data[21]))){
gSpec21 <- gWidgets2::ggroup(cont=row4, horizontal=FALSE)
Spec21Name <- gWidgets2::glabel(data[21], container=gSpec21, editable = FALSE)
# Counter
gCount21 <- gWidgets2::ggroup(cont=gSpec21, horizontal=TRUE)
count21 <- 0
Spec21sub <- gWidgets2::gbutton("-", cont=gCount21, handler = function(h,...){
count21 <- as.numeric(gWidgets2::svalue(lCount21)) - 1
gWidgets2::svalue(lCount21) <- count21
})
lCount21 <- gWidgets2::glabel(count21, container=gCount21, editable = TRUE)
Spec21add <- gWidgets2::gbutton("+", cont=gCount21, handler = function(h,...){
count21 <- as.numeric(gWidgets2::svalue(lCount21)) + 1
gWidgets2::svalue(lCount21) <- count21
})
# Keyboard Shortcut
gKeyShrt21 <- gWidgets2::ggroup(cont = gSpec21, horizontal = TRUE)
lKeyShrt21 <- gWidgets2::glabel("Shortcut Key:", cont = gKeyShrt21)
lKeyPress21 <- gWidgets2::glabel(keys[21], container = gKeyShrt21, editable = TRUE)
gWidgets2::addHandlerKeystroke(gKeyFocus, handler = function(h,...){
if (h$key == tolower(gWidgets2::svalue(lKeyPress21))){
count21 <- as.numeric(gWidgets2::svalue(lCount21)) + 1
gWidgets2::svalue(lCount21) <- count21
}
})
gWidgets2::gseparator(cont=row4, horizontal = FALSE)
}
### End Species 21 ###
### Species 22 ###
if (isFALSE(is.na(data[22]))){
gSpec22 <- gWidgets2::ggroup(cont=row4, horizontal=FALSE)
Spec22Name <- gWidgets2::glabel(data[22], container=gSpec22, editable = FALSE)
# Counter
gCount22 <- gWidgets2::ggroup(cont=gSpec22, horizontal=TRUE)
count22 <- 0
Spec22sub <- gWidgets2::gbutton("-", cont=gCount22, handler = function(h,...){
count22 <- as.numeric(gWidgets2::svalue(lCount22)) - 1
gWidgets2::svalue(lCount22) <- count22
})
lCount22 <- gWidgets2::glabel(count22, container=gCount22, editable = TRUE)
Spec22add <- gWidgets2::gbutton("+", cont=gCount22, handler = function(h,...){
count22 <- as.numeric(gWidgets2::svalue(lCount22)) + 1
gWidgets2::svalue(lCount22) <- count22
})
# Keyboard Shortcut
gKeyShrt22 <- gWidgets2::ggroup(cont = gSpec22, horizontal = TRUE)
lKeyShrt22 <- gWidgets2::glabel("Shortcut Key:", cont = gKeyShrt22)
lKeyPress22 <- gWidgets2::glabel(keys[22], container = gKeyShrt22, editable = TRUE)
gWidgets2::addHandlerKeystroke(gKeyFocus, handler = function(h,...){
if (h$key == tolower(gWidgets2::svalue(lKeyPress22))){
count22 <- as.numeric(gWidgets2::svalue(lCount22)) + 1
gWidgets2::svalue(lCount22) <- count22
}
})
gWidgets2::gseparator(cont=row4, horizontal = FALSE)
}
### End Species 22 ###
### Species 23 ###
if (isFALSE(is.na(data[23]))){
gSpec23 <- gWidgets2::ggroup(cont=row4, horizontal=FALSE)
Spec23Name <- gWidgets2::glabel(data[23], container=gSpec23, editable = FALSE)
# Counter
gCount23 <- gWidgets2::ggroup(cont=gSpec23, horizontal=TRUE)
count23 <- 0
Spec23sub <- gWidgets2::gbutton("-", cont=gCount23, handler = function(h,...){
count23 <- as.numeric(gWidgets2::svalue(lCount23)) - 1
gWidgets2::svalue(lCount23) <- count23
})
lCount23 <- gWidgets2::glabel(count23, container=gCount23, editable = TRUE)
Spec23add <- gWidgets2::gbutton("+", cont=gCount23, handler = function(h,...){
count23 <- as.numeric(gWidgets2::svalue(lCount23)) + 1
gWidgets2::svalue(lCount23) <- count23
})
# Keyboard Shortcut
gKeyShrt23 <- gWidgets2::ggroup(cont = gSpec23, horizontal = TRUE)
lKeyShrt23 <- gWidgets2::glabel("Shortcut Key:", cont = gKeyShrt23)
lKeyPress23 <- gWidgets2::glabel(keys[23], container = gKeyShrt23, editable = TRUE)
gWidgets2::addHandlerKeystroke(gKeyFocus, handler = function(h,...){
if (h$key == tolower(gWidgets2::svalue(lKeyPress23))){
count23 <- as.numeric(gWidgets2::svalue(lCount23)) + 1
gWidgets2::svalue(lCount23) <- count23
}
})
gWidgets2::gseparator(cont=row4, horizontal = FALSE)
}
### End Species 23 ###
### Species 24 ###
if (isFALSE(is.na(data[24]))){
gSpec24 <- gWidgets2::ggroup(cont=row4, horizontal=FALSE)
Spec24Name <- gWidgets2::glabel(data[24], container=gSpec24, editable = FALSE)
# Counter
gCount24 <- gWidgets2::ggroup(cont=gSpec24, horizontal=TRUE)
count24 <- 0
Spec24sub <- gWidgets2::gbutton("-", cont=gCount24, handler = function(h,...){
count24 <- as.numeric(gWidgets2::svalue(lCount24)) - 1
gWidgets2::svalue(lCount24) <- count24
})
lCount24 <- gWidgets2::glabel(count24, container=gCount24, editable = TRUE)
Spec24add <- gWidgets2::gbutton("+", cont=gCount24, handler = function(h,...){
count24 <- as.numeric(gWidgets2::svalue(lCount24)) + 1
gWidgets2::svalue(lCount24) <- count24
})
# Keyboard Shortcut
gKeyShrt24 <- gWidgets2::ggroup(cont = gSpec24, horizontal = TRUE)
lKeyShrt24 <- gWidgets2::glabel("Shortcut Key:", cont = gKeyShrt24)
lKeyPress24 <- gWidgets2::glabel(keys[24], container = gKeyShrt24, editable = TRUE)
gWidgets2::addHandlerKeystroke(gKeyFocus, handler = function(h,...){
if (h$key == tolower(gWidgets2::svalue(lKeyPress24))){
count24 <- as.numeric(gWidgets2::svalue(lCount24)) + 1
gWidgets2::svalue(lCount24) <- count24
}
})
}
### End Species 24 ###
## Row 5 ##
if (length(data) >= 24){
gWidgets2::gseparator(cont=gmaster)
}
row5 <- gWidgets2::ggroup(container = gmaster, horizontal = TRUE)
### Species 25 ###
if (isFALSE(is.na(data[25]))){
gSpec25 <- gWidgets2::ggroup(cont=row5, horizontal=FALSE)
Spec25Name <- gWidgets2::glabel(data[25], container=gSpec25, editable = FALSE)
# Counter
gCount25 <- gWidgets2::ggroup(cont=gSpec25, horizontal=TRUE)
count25 <- 0
Spec25sub <- gWidgets2::gbutton("-", cont=gCount25, handler = function(h,...){
count25 <- as.numeric(gWidgets2::svalue(lCount25)) - 1
gWidgets2::svalue(lCount25) <- count25
})
lCount25 <- gWidgets2::glabel(count25, container=gCount25, editable = TRUE)
Spec25add <- gWidgets2::gbutton("+", cont=gCount25, handler = function(h,...){
count25 <- as.numeric(gWidgets2::svalue(lCount25)) + 1
gWidgets2::svalue(lCount25) <- count25
})
# Keyboard Shortcut
gKeyShrt25 <- gWidgets2::ggroup(cont = gSpec25, horizontal = TRUE)
lKeyShrt25 <- gWidgets2::glabel("Shortcut Key:", cont = gKeyShrt25)
lKeyPress25 <- gWidgets2::glabel(keys[25], container = gKeyShrt25, editable = TRUE)
gWidgets2::addHandlerKeystroke(gKeyFocus, handler = function(h,...){
if (h$key == tolower(gWidgets2::svalue(lKeyPress25))){
count25 <- as.numeric(gWidgets2::svalue(lCount25)) + 1
gWidgets2::svalue(lCount25) <- count25
}
})
gWidgets2::gseparator(cont=row5, horizontal = FALSE)
}
### End Species 25 ###
### Species 26 ###
if (isFALSE(is.na(data[26]))){
gSpec26 <- gWidgets2::ggroup(cont=row5, horizontal=FALSE)
Spec26Name <- gWidgets2::glabel(data[26], container=gSpec26, editable = FALSE)
# Counter
gCount26 <- gWidgets2::ggroup(cont=gSpec26, horizontal=TRUE)
count26 <- 0
Spec26sub <- gWidgets2::gbutton("-", cont=gCount26, handler = function(h,...){
count26 <- as.numeric(gWidgets2::svalue(lCount26)) - 1
gWidgets2::svalue(lCount26) <- count26
})
lCount26 <- gWidgets2::glabel(count26, container=gCount26, editable = TRUE)
Spec26add <- gWidgets2::gbutton("+", cont=gCount26, handler = function(h,...){
count26 <- as.numeric(gWidgets2::svalue(lCount26)) + 1
gWidgets2::svalue(lCount26) <- count26
})
# Keyboard Shortcut
gKeyShrt26 <- gWidgets2::ggroup(cont = gSpec26, horizontal = TRUE)
lKeyShrt26 <- gWidgets2::glabel("Shortcut Key:", cont = gKeyShrt26)
lKeyPress26 <- gWidgets2::glabel(keys[26], container = gKeyShrt26, editable = TRUE)
gWidgets2::addHandlerKeystroke(gKeyFocus, handler = function(h,...){
if (h$key == tolower(gWidgets2::svalue(lKeyPress26))){
count26 <- as.numeric(gWidgets2::svalue(lCount26)) + 1
gWidgets2::svalue(lCount26) <- count26
}
})
gWidgets2::gseparator(cont=row5, horizontal = FALSE)
}
### End Species 26 ###
### Species 27 ###
if (isFALSE(is.na(data[27]))){
gSpec27 <- gWidgets2::ggroup(cont=row5, horizontal=FALSE)
Spec27Name <- gWidgets2::glabel(data[27], container=gSpec27, editable = FALSE)
# Counter
gCount27 <- gWidgets2::ggroup(cont=gSpec27, horizontal=TRUE)
count27 <- 0
Spec27sub <- gWidgets2::gbutton("-", cont=gCount27, handler = function(h,...){
count27 <- as.numeric(gWidgets2::svalue(lCount27)) - 1
gWidgets2::svalue(lCount27) <- count27
})
lCount27 <- gWidgets2::glabel(count27, container=gCount27, editable = TRUE)
Spec27add <- gWidgets2::gbutton("+", cont=gCount27, handler = function(h,...){
count27 <- as.numeric(gWidgets2::svalue(lCount27)) + 1
gWidgets2::svalue(lCount27) <- count27
})
# Keyboard Shortcut
gKeyShrt27 <- gWidgets2::ggroup(cont = gSpec27, horizontal = TRUE)
lKeyShrt27 <- gWidgets2::glabel("Shortcut Key:", cont = gKeyShrt27)
lKeyPress27 <- gWidgets2::glabel(keys[27], container = gKeyShrt27, editable = TRUE)
gWidgets2::addHandlerKeystroke(gKeyFocus, handler = function(h,...){
if (h$key == tolower(gWidgets2::svalue(lKeyPress27))){
count27 <- as.numeric(gWidgets2::svalue(lCount27)) + 1
gWidgets2::svalue(lCount27) <- count27
}
})
gWidgets2::gseparator(cont=row5, horizontal = FALSE)
}
### End Species 27 ###
### Species 28 ###
if (isFALSE(is.na(data[28]))){
gSpec28 <- gWidgets2::ggroup(cont=row5, horizontal=FALSE)
Spec28Name <- gWidgets2::glabel(data[28], container=gSpec28, editable = FALSE)
# Counter
gCount28 <- gWidgets2::ggroup(cont=gSpec28, horizontal=TRUE)
count28 <- 0
Spec28sub <- gWidgets2::gbutton("-", cont=gCount28, handler = function(h,...){
count28 <- as.numeric(gWidgets2::svalue(lCount28)) - 1
gWidgets2::svalue(lCount28) <- count28
})
lCount28 <- gWidgets2::glabel(count28, container=gCount28, editable = TRUE)
Spec28add <- gWidgets2::gbutton("+", cont=gCount28, handler = function(h,...){
count28 <- as.numeric(gWidgets2::svalue(lCount28)) + 1
gWidgets2::svalue(lCount28) <- count28
})
# Keyboard Shortcut
gKeyShrt28 <- gWidgets2::ggroup(cont = gSpec28, horizontal = TRUE)
lKeyShrt28 <- gWidgets2::glabel("Shortcut Key:", cont = gKeyShrt28)
lKeyPress28 <- gWidgets2::glabel(keys[28], container = gKeyShrt28, editable = TRUE)
gWidgets2::addHandlerKeystroke(gKeyFocus, handler = function(h,...){
if (h$key == tolower(gWidgets2::svalue(lKeyPress28))){
count28 <- as.numeric(gWidgets2::svalue(lCount28)) + 1
gWidgets2::svalue(lCount28) <- count28
}
})
gWidgets2::gseparator(cont=row5, horizontal = FALSE)
}
### End Species 28 ###
### Species 29 ###
if (isFALSE(is.na(data[29]))){
gSpec29 <- gWidgets2::ggroup(cont=row5, horizontal=FALSE)
Spec29Name <- gWidgets2::glabel(data[29], container=gSpec29, editable = FALSE)
# Counter
gCount29 <- gWidgets2::ggroup(cont=gSpec29, horizontal=TRUE)
count29 <- 0
Spec29sub <- gWidgets2::gbutton("-", cont=gCount29, handler = function(h,...){
count29 <- as.numeric(gWidgets2::svalue(lCount29)) - 1
gWidgets2::svalue(lCount29) <- count29
})
lCount29 <- gWidgets2::glabel(count29, container=gCount29, editable = TRUE)
Spec29add <- gWidgets2::gbutton("+", cont=gCount29, handler = function(h,...){
count29 <- as.numeric(gWidgets2::svalue(lCount29)) + 1
gWidgets2::svalue(lCount29) <- count29
})
# Keyboard Shortcut
gKeyShrt29 <- gWidgets2::ggroup(cont = gSpec29, horizontal = TRUE)
lKeyShrt29 <- gWidgets2::glabel("Shortcut Key:", cont = gKeyShrt29)
lKeyPress29 <- gWidgets2::glabel(keys[29], container = gKeyShrt29, editable = TRUE)
gWidgets2::addHandlerKeystroke(gKeyFocus, handler = function(h,...){
if (h$key == tolower(gWidgets2::svalue(lKeyPress29))){
count29 <- as.numeric(gWidgets2::svalue(lCount29)) + 1
gWidgets2::svalue(lCount29) <- count29
}
})
gWidgets2::gseparator(cont=row5, horizontal = FALSE)
}
### End Species 29 ###
### Species 30 ###
if (isFALSE(is.na(data[30]))){
gSpec30 <- gWidgets2::ggroup(cont=row5, horizontal=FALSE)
Spec30Name <- gWidgets2::glabel(data[30], container=gSpec30, editable = FALSE)
# Counter
gCount30 <- gWidgets2::ggroup(cont=gSpec30, horizontal=TRUE)
count30 <- 0
Spec30sub <- gWidgets2::gbutton("-", cont=gCount30, handler = function(h,...){
count30 <- as.numeric(gWidgets2::svalue(lCount30)) - 1
gWidgets2::svalue(lCount30) <- count30
})
lCount30 <- gWidgets2::glabel(count30, container=gCount30, editable = TRUE)
Spec30add <- gWidgets2::gbutton("+", cont=gCount30, handler = function(h,...){
count30 <- as.numeric(gWidgets2::svalue(lCount30)) + 1
gWidgets2::svalue(lCount30) <- count30
})
# Keyboard Shortcut
gKeyShrt30 <- gWidgets2::ggroup(cont = gSpec30, horizontal = TRUE)
lKeyShrt30 <- gWidgets2::glabel("Shortcut Key:", cont = gKeyShrt30)
lKeyPress30 <- gWidgets2::glabel(keys[30], container = gKeyShrt30, editable = TRUE)
gWidgets2::addHandlerKeystroke(gKeyFocus, handler = function(h,...){
if (h$key == tolower(gWidgets2::svalue(lKeyPress30))){
count30 <- as.numeric(gWidgets2::svalue(lCount30)) + 1
gWidgets2::svalue(lCount30) <- count30
}
})
}
### End Species 30 ###
# Export Button
exportbutton <- gWidgets2::gbutton("Export to CSV", cont=gmaster, handler = function(h,...){
Count <- c()
for (i in 1:length(data)){
Count <- append(Count, gWidgets2::svalue(get(paste0("lCount", i))))
}
df <- cbind(Species = data, Count = Count)
filepath <- gWidgets2::gfile(text = "Select filepath", type = "save", initial.filename = paste0("Zooplankton Counts ", Sys.Date(), ".csv"))
if (stringr::str_sub(filepath,-4,-1) != ".csv"){
filepath <- paste0(filepath, ".csv")
}
utils::write.csv(df, file.path(filepath), row.names = FALSE)
})
# Making the window visible - RUN LAST!
gWidgets2::visible(w) <- TRUE
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.