NEWS {rkwarddev} | R Documentation |
the "show"
feature in rk.plugin.skeleton()
was broken due to changes in
the namespace defaults
scanning plugin XML code for JS and help related content didn't work as
expected in rk.plugin.component()
rk.rkh.scan()
now also recognises <optioncolumn> and <matrix> nodes
a logical bug prevented rk.plugin.component()
to run with default values
for XML
internal function paste.JS.options()
, used by rk.JS.options()
, was only
working correctly for the "then"
part if ite()
statements in arrays; now
also produces usable code for an "else"
part, if available
new functions rk.XML.valueselector()
, rk.XML.valueslot()
and the
combining rk.XML.values()
to define <valueselector> and <valueslot> nodes,
similar to rk.XML.varselector()
, rk.XML.varslot()
and rk.XML.vars()
new function rk.XML.select()
to define <select> nodes
new functions rk.set.rkh.prompter()
and rk.get.rkh.prompter()
to make it
easier to generate help files (later...)
rk.rkh.scan()
(and automatically rk.plugin.skeleton()
and
rk.plugin.component()
) are now capable of fetching text set with rk.set.rkh.prompter()
and use it to generate help files
all functions scanned by rk.rkh.scan()
for setting nodes in .rkh files
have gained two additional arguments, "help"
and "component"
, to register
the text to be used via rk.set.rkh.prompter()
new function rk.XML.option()
to allow setting and accessing IDs for
single options as well
new function rk.JS.optionset()
and object class "rk.JS.oset"
to generate
for loops over <optionset> columns
updated the plugin skeleton example script; e.g., it now uses the new .rkh file generating features
rk.XML.radio()
and rk.XML.dropdown()
now also accept objects made with
rk.XML.option()
in their respective list of options
renamed all class definition files due to include problems with
roxygenize()
allow non-maintainers to omit email addresses in <about> nodes
new functions rk.set.language()
, rk.get.language()
and i18n()
to
facilitate static internationalisation of plugins; makes use of a new internal
environment .rkdev.env
new parameter "lang"
in functions rk.rkh.doc()
, rk.XML.plugin()
,
rk.XML.pluginmap()
and rk.plugin.skeleton()
for internationalisation. if used, the
attributes "lang"
and "xml:lang" will be set in the <document> root of
the generated files, respectively
new parameter "localized"
in rk.XML.require()
for internationalisation
the document id in rk.XML.pluginmap()
can now be set manually
abbreviation of labels now limits valid characters to [0-9A-Za-z]
in rk.XML.pluginmap()
, "components"
and "hierarchy"
may be set to NULL if
"require"
is used accordingly
fixed outdated example code for rk.plugin.component()
new function rk.uniqueIDs()
checks for duplicate IDs
rk.JS.array()
can now be told to quote values
rk.plugin.component()
and rk.rkh.doc()
do now interpret the "hints"
argument to prevent the generation of optional XML nodes.
rk.plugin.component()
now automatically calls rk.uniqueIDs()
and stops if
IDs are not unique
the structure of <about> nodes will change in RKWard 0.6.1, <dependencies> will become a direct child of <document> or <component>, which explains several changes in this release. this is not really critical, because this information wasn't evaluated by RKWard until now anyway
for consistency, from now on <component> is never an empty node
rk.XML.pluginmap()
, rk.XML.plugin()
and rk.plugin.skeleton()
will now
move <dependencies> from <about> to a top level child node of plugin maps,
with a warning
from rk.plugin.component()
and rk.XML.plugin()
, the "pluginmap"
argument
was replaced by the more general "include"
, which can now also process a
vector of file names
the object class rk.JS.var gained a new slot "getter"
to set a default JS
function to query variable values. it defaults to "getValue"
to ensure
compatibility with earlier releases. consequently, rk.JS.vars()
and
rk.paste.JS()
have a new "getter"
argument to set or overwrite this value.
another new argument, "guess.getter"
, can be used to turn on automatic guessing
which getter function might be most appropriate. this was also added to
rk.plugin.component()
and rk.plugin.skeleton()
.
updated the skeleton_dialog.R demo file and recreated the plugin code
JavaScript functions like rk.JS.scan()
and id()
learned how to treat
<optionset>, <optioncolumn> and <matrix>
internally paste(..., sep=""
) was replaced with paste0(...), in a way
that ensures compatibility with R < 2.15
new function rk.XML.switch()
new function rk.XML.optiondisplay()
new function rk.XML.optionset()
new function rk.XML.matrix()
new function rk.XML.dependencies()
new function rk.XML.dependency_check()
new function join()
to simplify ".join()
" for JavaScript arrays
added options "dependencies"
, "namespace"
and "priority"
to
rk.XML.pluginmap()
added option "dependencies"
to rk.XML.component()
added "map"
to rk.XML.require()
the new class rk.JS.echo allows having objects in an echo()
statement
without quoting it
new combined modifiers "visible.not"
, "visible.numeric"
, "enabled.not"
,
"enabled.numeric"
, "state.not"
and "state.numeric"
are now supported
modifiers have been added for <optionset> and <matrix>, and <switch> can have any modifier
added some missing parameter in the docs for rk.paste.JS.graph()
fixed a bug in the modifier checks; this unveiled a bug in how
rk.JS.scan()
dealt with <frame> nodes, which was also fixed
fixed a duplicate entry in this ChangeLog for version 0.04-6
rk.plugin.skeleton()
now correctly works with more than one author
pluginmap files are no longer included into plugin XML files automatically
rk.plugin.skeleton()
: "tests"
will now ignore "overwrite"
and not replace
existing testsuite files
dots will now be removed from pluginmap IDs
modifiers of "external"
XML nodes will not be checked, since it can be
all kinds of stuff
new function rk.plotOptions()
and class "rk.plot.opts"
to simplify code
generation for plots; this also caused changes in the internal workflow,
especially for child.node()
and rk.paste.JS()
rk.paste.JS.graph()
also takes objects of class "rk.plot.opts"
rk.XML.embed()
now supresses the label if "button=FALSE"
new function rk.paste.JS.graph()
to simplify JS code generation for plots
rk.XML.wizard()
and rk.XML.dialog()
can now set the "recommended"
attribute
rk.plugin.skeleton()
can now also generate initial ChangeLog files (but
won't overwrite existing ones)
added a LICENSE file to the sources
sources were initially debianized by roxyPackage
if files are being skipped by rk.plugin.skeleton()
, the corresponding
warning will now include the 'create' actions that these files belong to
rk.paste.JS()
pastes rk.comment()
objects correctly again
rk.XML.frame()
didn't generate attributes due to a typo
fixed: rk.XML.text()
now preserves XML tags in the text value
internally, functions now call XiMpLe::XMLNode()
and XiMpLe::XMLTree()
constructors instead of new()
, and pasteXMLNode()
and pasteXMLTree()
were
globally renamed into pasteXML()
internally, replaced object@node with slot(object, "node"
)
internally, moved checks for valid child and parent nodes to an internal
functions, valid.child()
and valid.parent()
added missing dependency to package methods
fixed docs in rk.XML.plugin()
, rk.XML.saveobj()
and rk.plugin.skeleton()
fixed bug in rk.XML.snippets()
re-formatted the ChangeLog so roxyPackage can translate it into a NEWS.Rd file
removed superfluous "level=1" arguments from automatic "rk.header()
"s in
rk.JS.doc()
added wrapper function rk.XML.checkbox()
for rk.XML.cbox()
changed rk.JS.saveobj()
to use ".GlobalEnv$" instead of "assign()
" in the
resulting code
added option to toggle the addition of empty "else {}" statements in
rk.JS.ite objects to rk.paste.JS()
"result.header"
now doesn't add quotes by itself in rk.JS.doc()
, so you
can have R objects pasted. previous scripts need to be adapted accordingly!
the headers can also be deactivated by setting to FALSE or ""
fixed show method for objects of class rk.JS.var with more than one variable object
added support for global variables to rk.JS.doc()
and
rk.plugin.component()
, and therefore also rk.plugin.skeleton()
"variables"
and "globals"
in rk.JS.doc()
can now also be given as objects
of class rk.JS.var
worked on the vignette
set default value of checked checkboxes to "true"
in rk.XML.cbox()
rk.XML.connect()
now correctly supports 'governor="<ID>.<modifier>.not"'
added function tf()
for even quicker JavaScript code generation from
checkboxes
fixed issue with "about"
not being an XML node in rk.plugin.skeleton()
ite()
now supports full recursion also for the "thenjs"
option.
fixed superfluous first newline in rk.JS.vars()
when using rk.comment()
for logic scripting, its contents will
automatically be placed inside a <script> node now
left over stuff from JS printout()
function is now added to doPrintout()
R 2.14 creates source archives which are incompatible with earlier versions. attempt to deal with this by adding empty R directory and NAMESPACE file
added long description support to rk.XML.about()
, used for the
DESCRIPTION file
added <frame> to the tags which are scanned by rk.JS.scan()
, they're
considered only if checkable
improved output of rk.JS.var class objects by rk.paste.JS()
set dependency of rkward to >= 0.5.6 to work around a glitch in rkward's package versioning. this can cause errors on real 0.5.6 installations because they lack functions introduced in 0.5.7 (to add & load a plugin automatically), but shouldn't really break anything
added support to turn off modifier checks to rk.XML.set()
added option "load.silencer"
to rk.JS.doc()
, to easily add a switch to
turn off package load messages in output.
fixed bug in check for valid modifiers (used to warn when mixed lists with/without modifiers were given)
fixed bug in rk.XML.convert()
(false output if provided with list without
modifiers)
added option "check.modifiers"
to rk.JS.vars()
added support for definint doPrintout()
JS functions to rk.JS.doc()
,
rk.plugin.skeleton()
and rk.plugin.component()
added function rk.comment()
to add comments to the generated code. it's a
<!– comment –> node by default, but will be turned into // comment by
rk.paste.JS()
and <![CDATA[ comment ]]> for logic sections automatically
added option "gen.info"
to all file producing functions, to add a comment
note that the file was generated and changes should be made to the script
rather than the code directly
fixed missing "id.name"
option in rk.XML.embed()
fixed automatic menu hierarchy generation for lists of legth 1 in
rk.XML.pluginmap()
removed the superfluous "name"
option from rk.plugin.skeleton()
and
rk.plugin.component()
; names are now always provided by "about"
, either as an
<about> node or just the name.
result headers now start at level 1 by default in rk.JS.doc()
added option "suggest.required"
to rk.plugin.skeleton()
to add package
requirements as suggestions, not dependencies
updated skeleton GUI dialog
added "about"
option to rk.XML.plugin()
to overrule pluginmap defaults
added rk.plugin.component()
, i.e. modularized the component generation,
to allow for more than one component in rk.plugin.skeleton()
, which
subsequently gained the new option "components"
improved dependency support, rk.plugin.skeleton()
writes dependencies
from <about> to DESCRIPTION now
fixed dependency definition in rk.XML.about()
fixed "verion"
typo in rk.XML.about()
the dot "."
is now also allowed in file names
for accurcy and consistency with the docs, the "properties"
option
changed to "modifiers"
in rk.JS.vars()
added further property modifiers to the internal validation
added class rk.JS.var, including show method
added support for class rk.JS.var in rk.paste.JS()
an id()
rk.JS.vars()
now returns a list of class rk.JS.var
added support for all valid modifiers to rk.XML.convert()
and
rk.XML.connect()
added "checkable"
and "checked"
options to rk.XML.frame()
set rk.paste.JS()
default level to 2
fixed bug in rk.JS.array()
(superfluous "=" in generated code)
lifted rkward package dependecies to 0.5.7 (needed for
rk.load.pluginmaps()
)
rk.XML.menu()
and rk.plugin.skeleton()
can now recursively generate
deeper menu structures if you provide it with a list
fixed bug in autogeneration of IDs in rk.XML.input()
and rk.XML.saveobj()
rk.XML.tabbook()
can now autogenerate IDs without a label
fixed bug in autogeneration of IDs in rk.XML.spinbox()
shortened syntax of rk.XML.tabbook()
tabs are now simply a named list
added functions rk.XML.code()
and rk.XML.help()
fixed bug in internal function check.ID()
(produced false entry nodes
under certain circumstances)
fixed bug in rk.XML.pluginmap()
for automatic component IDs
fixed bug in rk.plugin.skeleton()
for cases where XML file exists and is
not overwritten, but JS/help files need to be generated
cleaned up rk.XML.pluginmap()
and rk.XML.plugin()
hint code
changed "nodes"
option to "..."
also in rk.XML.menu()
added beginnings of a vignette (to be continued...)
replaced most of the "nodes"
and "children"
options with "..."
in
functions rk.rkh.related()
, rk.rkh.settings()
, rk.XML.col()
, rk.XML.components()
,
rk.XML.context()
, rk.XML.dialog()
, rk.XML.frame()
, rk.XML.hierarchy()
,
rk.XML.logic()
, rk.XML.page()
, rk.XML.row()
, rk.XML.snippet()
,
rk.XML.snippets()
and rk.XML.wizard()
. therefore, you don't need to list()
objects any
more.
any function which generates an ID now has an automation mechanism for it, which is also the default.
fixed skeleton GUI pluginmap not being found
added new shortcut function qp()
– "quote + plus" – for id()
added option to create arrays with rk.JS.options()
enhanced class rk.JS.opt
rk.paste.JS()
now adds some comments to the generated code
fixed wrong default value for "required"
in rk.XML.browser()
added demo script
added skeleton GUI, was generated by the demo script
redesigned options for rk.plugin.skeleton()
again, to make them more
intuitive and flexible at the same time. unfortunately, this breaks backwards
compatibility again.
rk.plugin.skeleton()
and rk.XML.pluginmap()
now only accept
rk.XML.about()
made objects for "about"
rk.plugin.skeleton()
uses internal function XML2person()
to create nicer
Authors@R entries in DESCRIPTION
fixed bug in id()
(now generates JS variable names, not XML IDs)
added functions rk.rkh.caption()
, rk.rkh.link()
, rk.rkh.related()
,
rk.rkh.section()
, rk.rkh.setting()
, rk.rkh.settings()
, rk.rkh.summary()
,
rk.rkh.technical()
, rk.rkh.title()
and rk.rkh.usage()
rk.rkh.doc()
now only accepts nodes of the above functions as input (and
gained support for title and sections)
rk.rkh.scan()
now also looks for captions
added full help page support to rk.plugin.skeleton()
added support for properties to rk.JS.vars()
added function rk.JS.saveobj()
to generate JS code for saveobject nodes.
added function rk.JS.options()
to generate code for JS variables holding
multiple options
added class rk.JS.opt and a show method for it (use rk.paste.JS()
on that)
id()
and echo()
now also replace objects of classes rk.JS.opt and
rk.JS.arr with their relevant ID
linked "Introduction to Writing Plugins for RKWard" locally to the manual pages
some experimental JavaScript generator tools added, might very well be
changed soon again: - added functions rk.JS.vars()
, echo()
, id()
, ite()
and
rk.paste.JS()
to help generate JavaScript code - added classes rk.JS.ite,
rk.JS.arr and show methods for them - function rk.JS.array()
now returns
an object of class rk.JS.arr (use rk.paste.JS()
on that)
added functions rk.XML.attribute()
, rk.XML.component()
,
rk.XML.components()
, rk.XML.context()
, rk.XML.entry()
, rk.XML.hierarchy()
, rk.XML.menu()
and rk.XML.require()
rk.plugin.skeleton()
and rk.XML.pluginmap()
now use the new functions,
which makes them much more flexible
added option "menu"
to rk.plugin.skeleton()
added options "require"
, "x11.context"
, "import.context"
and "hints"
to
rk.XML.pluginmap()
removed now superfluous option "plugin.dir"
from rk.XML.pluginmap()
tuned rk.plugin.skeleton()
to only skip file writing if they exist
added "load"
and "show"
options to rk.plugin.skeleton()
to call
rk.load.pluginmaps()
and the plugin itself
added function rk.build.plugin()
added functions rk.XML.insert()
, rk.XML.include()
, rk.XML.embed()
,
rk.XML.preview()
, rk.XML.snippet()
, and rk.XML.snippets()
added support for snippets section to rk.XML.plugin()
and
rk.plugin.skeleton()
included formula node into rk.XML.vars()
wrapper
rk.XML.varslot()
now automatically sets "multi=TRUE" if "min"
, "max"
or
"any"
are set
redesigned options for rk.XML.plugin()
and rk.plugin.skeleton()
for more
consistency. unfortunately, this breaks backwards compatibility!
added functions rk.XML.varselector()
, rk.XML.copy()
, rk.XML.dialog()
,
rk.XML.page()
and rk.XML.wizard()
added type checks to rk.XML.spinbox()
added "id.name"
and "label"
to various functions
updated rk.XML.formula()
added functions rk.XML.formula()
, rk.XML.convert()
, rk.XML.connect()
,
rk.XML.logic()
, rk.XML.set()
and rk.XML.external()
added possibility to add custom XML code to the logic section with
rk.XML.plugin()
and rk.plugin.skeleton()
fixed id setting in rk.XML.browser()
simplified rk.plugin.skeleton()
and rk.XML.pluginmap()
by making "about"
entirely optional
fixed wrong doc link and one wrong object name in rk.plugin.skeleton()
fixed attribute typo in rk.XML.vars()
fixed issue with auto-generated IDs (now using "_"
instead of "."
)
added wizard code options to rk.XML.plugin()
and rk.plugin.skeleton()
added "edit"
and "create"
options to rk.plugin.skeleton()
added function rk.XML.varslot()
added possibility to add custom XML nodes to the varslot in rk.XML.vars()
added possibility to paste ready-to-use JavaScript code directly to the
preprocess()
, calculate()
and printout()
functions, respectively
added rk.XML.spinbox()
and missing options to rk.XML.browser()
and
rk.XML.saveobj()
corrected browser default type in rk.XML.browser()
added wizard option to rk.plugin.skeleton()
reworked rk.XML.about()
to use person class objects for authors, and need
less info to produce usable output
added rk.JS.scan()
, rk.JS.doc()
, rk.JS.array()
, rk.rkh.scan()
and
rk.rkh.doc()
added rk.XML.browser()
, rk.XML.input()
, rk.XML.saveobj()
,
rk.XML.stretch()
and rk.XML.text()
added rk.testsuite.doc()
shortened package name from "rkwardplugdev"
to "rkwarddev"
merged code into RKWard's svn tree
forked rk.* functions from XiMpLe package into this one
added functions rk.XML.cbox()
, rk.XML.row()
, rk.XML.col()
,
rk.XML.frame()
, rk.XML.radio()
and rk.XML.vars()
rewrote the ID handling
added docs
initial release via reaktanz.de