# cpGUI()
# cpGUI(object = raw1)
# cpGUI(object = prof)
qsetClass("cpGUI", Qt$QWidget, function(parent = NULL, object = NULL) {
super(parent)
## figure out which stage is active
## default is load sample
## for chromatoplots objects get stage using pipeline from commandr
## TODO implement for xcms
nextstage <- 1
if(!is.null(object) && attr(class(object), 'package') == 'chromatoplots'){
lastact <- length (pipeline(object)@.Data)
stages <- c('LoadSample', 'GenProfile')
nextstage <- which(!is.na(pmatch(stages, strsplit(class(pipeline(object)@.Data[[lastact]])[1],
"Proto")[[1]][2] ) )) + 1
}
this$loadbutton <- Qt$QPushButton("&Load Sample")
if(nextstage != 1){
qsetStyleSheet("color: grey", widget = this$loadbutton)
# loadbutton$setEnabled(FALSE)
}
this$genProfbutton <- Qt$QPushButton("&Generate Profile")
if(nextstage != 2){
qsetStyleSheet("color: grey", widget = this$genProfbutton)
# genProfbutton$setEnabled(FALSE)
}
this$rembasebutton <- Qt$QPushButton("&Remove Baseline")
if(nextstage != 3){
qsetStyleSheet("color: grey", widget = this$rembasebutton)
# rembasebutton$setEnabled(FALSE)
}
this$fpeakbutton <- Qt$QPushButton("&Find Peaks")
if(nextstage != 4 ){
qsetStyleSheet("color: grey", widget = this$fpeakbutton)
# fpeakbutton$setEnabled(FALSE)
}
qconnect(loadbutton, "clicked", lsample, object)
qconnect(genProfbutton, 'clicked', genprof)
qconnect(rembasebutton, 'clicked', rmbase)
# qconnect(fpeakbutton, 'clicked', NULL)
buttonLayout1 <- Qt$QVBoxLayout()
buttonLayout1$addWidget(loadbutton)
buttonLayout1$addWidget(genProfbutton)
buttonLayout1$addWidget(rembasebutton)
buttonLayout1$addWidget(fpeakbutton)
mywidget <- Qt$QPushButton("&Find Peaks")
buttonLayout2 <- Qt$QVBoxLayout()
buttonLayout2$addWidget(mywidget)
mainLayout <- Qt$QGridLayout()
mainLayout$addLayout(buttonLayout1, 1, 2, alignment = 1)
#mainLayout$addLayout(buttonLayout2, 1, 2, alignment = Qt$Qt$AlignTop)
setLayout(mainLayout)
setWindowTitle('ChromatoplotsGUI')
this$setGeometry(Qt$QRect(0,0,250,50))
qsetStyleSheet("background-color: lightGrey; min-height: 140px; max-width: 145px; ",
widget = this$loadbutton)
qsetStyleSheet("background-color: lightGrey; min-height: 140px; max-width: 145px; ",
widget = this$genProfbutton)
qsetStyleSheet("background-color: lightGrey; min-height: 140px; max-width: 145px; ",
widget = this$rembasebutton)
qsetStyleSheet("background-color: lightGrey; min-height: 140px; max-width: 145px; ",
widget = this$fpeakbutton)})
qsetMethod("lsample", cpGUI, function(object = NULL) {
# this$loadbutton$setEnabled(FALSE)
qsetStyleSheet("color: red", widget = this$loadbutton)
this$setGeometry(Qt$QRect(0,0, 500, 50))
qsetStyleSheet("color: black", widget = this$genProfbutton)
# args <- getClass(class(object))@slots
# args <- unlist(args[! names(args) %in% c('env', 'pipeline')])
})
qsetMethod('genprof', cpGUI, function(){
qsetStyleSheet("color: grey", widget = this$genProfbutton)
qsetStyleSheet("color: black", widget = this$rembasebutton)
# this$genProfbutton$setEnabled(FALSE)
# this$rembasebutton$setEnabled(TRUE)
})
qsetMethod('rmbase', cpGUI, function(){
qsetStyleSheet("color: grey", widget = this$rembasebutton)
qsetStyleSheet("color: black", widget = this$fpeakbutton)
# this$rembasebutton$setEnabled(FALSE)
# this$fpeakbutton$setEnabled(TRUE)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.