jverzani / gwidgetswww2 Goto Github PK
View Code? Open in Web Editor NEWgWidgets API for web programming
gWidgets API for web programming
saying:
Error in cur_port > 0 :
comparison (6) is possible only for atomic and list types
I could track the problem to this code fragment
env <- environment(tools::startDynamicHelp)
cur_port <- get("httpdPort", env)
in
https://github.com/jverzani/gWidgetsWWW2/blob/master/R/load.R#L32-33
This returns in R 3.1.2
> cur_port
[1] 0
and in R 3.2.0
> cur_port
function (new)
{
if (!missing(new))
port <<- new
else port
}
<bytecode: 0x...>
<environment: 0x...>
@jranke -- I'm really looking forward to your work here. Curious what kind of speed improvements come out of it.
It would be great to have a stripped down version of ExtJS in the package. Maybe the themes in
inst/base/javascript/ext-4-2.1/resources
inst/base/javascript/ext-4-2.1/resources/themes/images
and the different builds in
inst/base/javascript/ext-4-2.1/builds
could be reduced?
Reincluding ext.js gives a NOTE due to path lengths exceeding 100 bytes... As it is a NOTE this may not prevent publication on CRAN.
The WARNINGS are about code documentation mismatches and usage sections, I wonder if they are produced during the Roxygen runs?
Here is the check log (took out most of the path length warnings)
...
removed about 5000 lines
...
gWidgetsWWW2/inst/base/javascript/ext-4-2.1/packages/ext-theme-neptune/build/resources/images/loadmask
gWidgetsWWW2/inst/base/javascript/ext-4-2.1/packages/ext-theme-neptune/build/resources/images/panel-header
gWidgetsWWW2/inst/base/javascript/ext-4-2.1/packages/ext-theme-neptune/build/resources/images/tab-bar
gWidgetsWWW2/inst/base/javascript/ext-4-2.1/packages/ext-theme-neptune/build/resources/images/toolbar
gWidgetsWWW2/inst/base/javascript/ext-4-2.1/packages/ext-theme-neptune/build/resources/images/util/splitter
gWidgetsWWW2/inst/base/javascript/ext-4-2.1/packages/ext-theme-neptune/build/resources/images/window-header
gWidgetsWWW2/inst/base/javascript/ext-4-2.1/packages/ext-theme-neptune/resources/images/util/splitter
gWidgetsWWW2/inst/base/javascript/ext-4-2.1/resources/ext-theme-access/images/grid-row-editor-buttons
gWidgetsWWW2/inst/base/javascript/ext-4-2.1/resources/ext-theme-classic-sandbox/images/grid-row-editor-buttons
gWidgetsWWW2/inst/base/javascript/ext-4-2.1/resources/ext-theme-classic/images/grid-row-editor-buttons
gWidgetsWWW2/inst/base/javascript/ext-4-2.1/resources/ext-theme-neptune/images/grid-row-editor-buttons
Tarballs are only required to store paths of up to 100 bytes and cannot
store those of more than 256 bytes, with restrictions including to 100
bytes for the final component.
See section ‘Package structure’ in the ‘Writing R Extensions’ manual.
:::
about the use of this operator.Codoc mismatches from documentation object 'editable<-':
editable<-
Code: function(x, ..., value)
Docs: function(x, ..., value, value)
editable<-.GComponent
Code: function(x, ..., value)
Docs: function(x, ..., value, value)
Codoc mismatches from documentation object 'enabled<-':
enabled<-
Code: function(x, value)
Docs: function(x, value, value)
enabled<-.GComponent
Code: function(x, value)
Docs: function(x, value, value)
Codoc mismatches from documentation object 'focus<-':
focus<-
Code: function(x, value)
Docs: function(x, value, value)
focus<-.default
Code: function(x, value)
Docs: function(x, value, value)
Codoc mismatches from documentation object 'font<-':
font<-
Code: function(x, value)
Docs: function(x, value, value)
font<-.GComponent
Code: function(x, value)
Docs: function(x, value, value)
Codoc mismatches from documentation object 'names<-.GComponent':
names<-.GComponent
Code: function(x, value)
Docs: function(x, value, value)
Codoc mismatches from documentation object 'size<-':
size<-
Code: function(x, ..., value)
Docs: function(x, ..., value, value)
size<-.GComponent
Code: function(x, ..., value)
Docs: function(x, ..., value, value)
Codoc mismatches from documentation object 'svalue<-':
svalue.GComponent
Code: function(x, index = NULL, drop = NULL, ...)
Docs: function(x, index = NULL, ..., value)
Argument names in code not in docs:
drop
Argument names in docs not in code:
value
Mismatches in argument names:
Position: 3 Code: drop Docs: ...
Position: 4 Code: ... Docs: value
svalue<-
Code: function(x, index = NULL, ..., value)
Docs: function(x, index = NULL, ..., value, value)
Codoc mismatches from documentation object 'tag<-':
tag<-
Code: function(x, key, value)
Docs: function(x, key, value, value)
tag<-.GComponent
Code: function(x, key, value)
Docs: function(x, key, value, value)
Codoc mismatches from documentation object 'tooltip<-':
tooltip<-
Code: function(x, value)
Docs: function(x, value, value)
tooltip<-.default
Code: function(x, value)
Docs: function(x, value, value)
Codoc mismatches from documentation object 'visible<-':
visible<-
Code: function(x, value)
Docs: function(x, value, value)
visible<-.GComponent
Code: function(x, value)
Docs: function(x, value, value)
Undocumented arguments in documentation object 'Authenticator-class'
‘...’
Objects in \usage without \alias in documentation object 'Authenticator-class':
‘Authenticator’
Undocumented arguments in documentation object 'ExtArgs-class'
‘...’
Objects in \usage without \alias in documentation object 'ExtArgs-class':
‘ExtArgs’
Undocumented arguments in documentation object 'GContainer'
‘...’
Undocumented arguments in documentation object 'GDialog'
‘...’
Undocumented arguments in documentation object 'GGoogleMapsObject'
‘...’
Undocumented arguments in documentation object 'GGoogleMapsPolygon'
‘...’
Undocumented arguments in documentation object 'GWidgetArrayProxy'
‘...’
Undocumented arguments in documentation object 'GWidgetArrayStore'
‘...’
Undocumented arguments in documentation object 'GWidgetHTMLProxy'
‘...’
Undocumented arguments in documentation object 'GWidgetProxy'
‘...’
Undocumented arguments in documentation object 'GWidgetStore'
‘...’
Undocumented arguments in documentation object 'GWidgetText'
‘...’
Undocumented arguments in documentation object 'GWidgetsTopLevel-class'
‘...’
Objects in \usage without \alias in documentation object 'GWidgetsTopLevel-class':
‘GWidgetsTopLevel’
Undocumented arguments in documentation object 'JsonRPCObject-class'
‘...’
Objects in \usage without \alias in documentation object 'JsonRPCObject-class':
‘JsonRPCObject’
Undocumented arguments in documentation object 'JsonRPCServer-class'
‘...’
Objects in \usage without \alias in documentation object 'JsonRPCServer-class':
‘JsonRPCServer’
Undocumented arguments in documentation object 'gWidgetsWWW2-package'
‘...’
Undocumented arguments in documentation object 'GAction'
‘...’
Undocumented arguments in documentation object 'GGroup'
‘...’
Undocumented arguments in documentation object 'gmenu-class'
‘...’
Objects in \usage without \alias in documentation object 'gmenu-class':
‘GMenu’
Undocumented arguments in documentation object 'gstatusbar-class'
‘...’
Objects in \usage without \alias in documentation object 'gstatusbar-class':
‘GStatusbar’
Undocumented arguments in documentation object 'gsvg-class'
‘...’
Objects in \usage without \alias in documentation object 'gsvg-class':
‘GSvg’
Objects in \usage without \alias in documentation object 'svalue<-':
‘svalue.GComponent’
Bad \usage lines found in documentation object 'svalue<-':
<- value
Functions with \usage entries need to have the appropriate \alias
entries, and all their arguments documented.
The \usage entries must correspond to syntactically valid R code.
See the chapter ‘Writing R documentation files’ in the ‘Writing R
Extensions’ manual.
As soon as a percent sign followed by more than two characters are entered into gedit, following a percent sign, I get the following error (R console output):
Transport process
Transport processt
Transport processte
Transport processtes
Transport processtest
Transport processtest
Transport processtest %
Transport processtest %l
Transport processtest %ll
Transport processtest %lll
Error in rawToChar(out) : Zeichenkette 'test \0l' enthält nul Zeichen
Zusätzlich: Warnmeldungen:
1: In utils:::URLdecode(value) :
Werte außerhalb des Bereichs als 0 behandelt in Umwandlung nach raw
2: In utils:::URLdecode(value) :
Werte außerhalb des Bereichs als 0 behandelt in Umwandlung nach raw
3: In utils:::URLdecode(value) :
Werte außerhalb des Bereichs als 0 behandelt in Umwandlung nach raw
4: In utils:::URLdecode(value) :
Werte außerhalb des Bereichs als 0 behandelt in Umwandlung nach raw
It seems that %xx is interpreted as an URL encoded character.
ex_filter, ex_tic_tac_toe, ex_tkdensity. Not sure if it is possible to convert tic tac toe (which is really cool I think) to gsvg.
On Windows, editable text fields are rendered black when using Firefox 31.0. I do not understand what changed - I just updated gWidgetsWWW2, devtools and RCurl. Possibly Firefox updated itself, it is pretty quite about this nowadays.
Here is what I get e.g. in a demo using comboboxes
Here is the result with Chrome 36.0.1985.143 m
Firefox 31.0 on Linux is not affected.
Maybe Ext.js needs an update?
I would like to update the status bar or a GLabel within a handler function - is there a way to do this?
w <- gwindow()
gg <- ggroup(cont = w, horizontal = FALSE)
changing_label <- glabel("Not running", cont = gg)
gbutton("Run", handler = function(h, ...) {
svalue(changing_label) <- "Running"
cat("\nRunning")
Sys.sleep(3)
cat("\nNot running")
svalue(changing_label) <- "Not running"
}, cont = gg)
I also tried to implement a GProgressBar which would be even nicer...
I tried to see if the roxygen2 4.0.1 would produce documentation that gives fewer problems in R CMD check. However, it fails:
roxygen2::roxygenise()
Loading required package: Rook
Loading required package: tools
Loading required package: brew
Loading required package: RJSONIO
Loading required package: memoise
Loading required package: whisker
Loading required package: digest
Error in .walkClassGraph(classDef, "subclasses", where) :
the 'subClass' list for class “envRefClass”, includes an undefined class “JsonRPCObject”
...
...
Maybe I have done something stupid, as I am not used to working with roxygen?
I think it would be nice to be able to use gWidgetsWWW2 without internet connection, which is currently required to load ext.js from the content delivery network (CDN). Another point is that reincluding ext.js in the package would decrease the risk of including hacked code (remember what recently happened to the PHP web server).
I did not find a way to pass startup arguments to the GUI R script, which would be very nice.
Not working for all browsers/OS. See issue #2
Editing a row can be finished by pressing the "update" button or by pressing the Enter key. The selection stays with the edited row. I think it would be great if editing the next row would be started when Enter is pressed again, so the user does not need the mouse for selecting the next row.
Hi John,
I like gWidgetsWWW2 and I think it serves my purpose better than shiny. Not the least feature of gWidgetsWWW2 is the data frame widget. I think it is very powerful.
However, the handler that I pass to the gdf() function, or add later using addChangeHandler() is not doing anything, so I have to use an extra button to update the internal data structures of my GUI app after a change to the data frame.
Is this intended behaviour? I would like to have the handler triggered after changing a row...
Cheers,
Johannes
P.S.: Here is a test case
w <- gwindow("gdf test")
testdata <- data.frame(i = 1:3, row = paste("Row", 1:3))
gdf(testdata, width = 500, height = 250, name = "Test data frame with handler",
handler = function(h, ...) galert("test", parent = w),
cont = w)
Maybe some basic security could be built into gWidgetsWWW2?
Test script:
w <- gwindow()
g <- ggroup(cont = w, horizontal = FALSE)
line_1 <- ggroup(cont = g, horizontal = TRUE)
glabel("Test label", cont = line_1)
e <- gedit("Test gedit, default width of 25", cont = line_1)
glabel("Second test label", cont = line_1)
line_2 <- ggroup(cont = g, horizontal = TRUE)
glabel("Test label", cont = line_2)
e <- gedit("Test gedit, increased width of 50", width = 50, cont = line_2)
glabel("Second test label", cont = line_2)
Result:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.