addnodewindows {arvoRe}R Documentation

Usage

addnodewindows()

Examples

##---- Should be DIRECTLY executable !! ----
##-- ==>  Define data, use random,
##--    or do  help(data=index)  for the standard data sets.

## The function is currently defined as
function() {
        nodeSec <- nodoselecionado()
        if ( nodeSec[1] == " ") {
                msg <- paste("Nenhum nodo selecionado. Selecione um nodo da árvore e tente novamente.")
                tkmessageBox(message = msg, icon="warning", title = "ÁrvoRe - AVISO")
                tkfocus(tt)
        } else {
                node.number <- as.numeric(nodeSec[3])
                node.col <- as.numeric(nodeSec[2])
                position <- intersect(which((TheTree$Level == node.col)),which(TheTree$Node.N == node.number))
                node.type <- TheTree$Type[position]
                if (node.type == "T") {
                        msg <- paste(" O nodo selecionado é de tipo 'Terminal'.\n Altere o tipo do nodo e tente novamente.")
                        tkmessageBox(message = msg, icon="warning", title = "ÁrvoRe - AVISO")
                        tkfocus(tt)
                } else {
                        # A janela Tk
                        addnodeWindow <- tktoplevel()
                        title <- "ÁrvoRe - Novo Nodo"
                        tkwm.title(addnodeWindow,title)
                        
                        NomeVar <- tclVar("Novo Nodo")
                        NomeEntryWidget <- tkentry(addnodeWindow,width="20",textvariable=NomeVar)
                        tkgrid(tklabel(addnodeWindow,text="Nome do nodo"))
                        tkgrid(NomeEntryWidget)
                        
                        ProbabilidadeVar <- tclVar("0.0")
                        ProbabilityEntryWidget <- tkentry(addnodeWindow,width="20",textvariable=ProbabilidadeVar)
                        tkgrid(tklabel(addnodeWindow,text="Probabilidade"))
                        tkgrid(ProbabilityEntryWidget)
                        
                        UtilidadeVar <- tclVar("0.0")
                        UtilityEntryWidget <- tkentry(addnodeWindow,width="20",textvariable=UtilidadeVar)
                        tkgrid(tklabel(addnodeWindow,text="Custo / Payoff"))
                        tkgrid(UtilityEntryWidget)
        
                        EffectivenessVar <- tclVar("0.0")
                        EffectivenessEntryWidget <- tkentry(addnodeWindow,width="20",textvariable=EffectivenessVar)
                        tkgrid(tklabel(addnodeWindow,text="Efetividade / Payoff"))
                        tkgrid(EffectivenessEntryWidget)
                
                        NotasVar <- tclVar(" ")
                        NotesEntryWidget <- tkentry(addnodeWindow,width="20",textvariable=NotasVar)
                        tkgrid(tklabel(addnodeWindow,text="Notas"))
                        tkgrid(NotesEntryWidget)                
                        
                        tkfocus(addnodeWindow)
        
                        OnOK <- function()
                        {
                                NameVal <- tclvalue(NomeVar)
                                ProbabilidadeVal <- as.numeric( tclvalue(ProbabilidadeVar) )
                                UtilidadeVal <- as.numeric( tclvalue(UtilidadeVar) )
                                EffectivenessVal <- as.numeric( tclvalue(EffectivenessVar) )
                                NotasVal <- tclvalue(NotasVar)
                                
                                if ( (ProbabilidadeVal < 0) || (ProbabilidadeVal > 1) ) {
                                        msg <- paste("Este não é um valor de probabilidade válido '",ProbVal, "'")
                                        tkmessageBox(message=msg)
                                        tkfocus(addnodeWindow)
                                } else {
                                        NewTree <- add.node(TheTree,
                                                                        node.col = node.col,
                                                                        node.number = node.number, 
                                                                        node.name = NameVal, 
                                                                        node.prob = ProbabilidadeVal, 
                                                                        node.type = "C", 
                                                                        node.notes = NotasVal,
                                                                        node.destiny = " ",
                                                                        node.utility = UtilidadeVal,
                                                                        node.effectiveness = EffectivenessVal)
                                        safedofunction(TheTree, .EnvironmentArvoRe, .modeltypeArvore)
                                        setaddnode(NewTree, .EnvironmentArvoRe)
                                        refreshF5()
                                        tkdestroy(addnodeWindow)
                                        tkfocus(tt)
                                }
                                        
                        }
                        OK.but <-tkbutton(addnodeWindow,text="   OK   ",command=OnOK)
                        tkbind(NomeEntryWidget, "<Return>",OnOK)
                        tkbind(ProbabilidadeVar, "<Return>",OnOK)
                        tkbind(UtilityEntryWidget, "<Return>",OnOK)
                        tkbind(EffectivenessEntryWidget, "<Return>",OnOK)
                        tkbind(NotasVar, "<Return>",OnOK)
        
                        OnCancel <- function()
                        {
                                tkdestroy(addnodeWindow)
                                tkfocus(tt)
                        }
                        
                        Cancel.but <-tkbutton(addnodeWindow,text=" Cancelar ",command=OnCancel)
                        tkbind(addnodeWindow, "<Escape>",OnCancel)
        
                        tkgrid(OK.but, Cancel.but, sticky = "s", padx = 5, pady = 5)
        
                        posiciona.janela.no.mouse(addnodeWindow, 250, 230)
                        }
                }
  }

[Package arvoRe version 0.1.7 Index]