ChangeLog for package rkwarddev

changes in version 0.06-2 (2013-04-04)
changed:
  - 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
added:
  - 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
fixed:
  - 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

changes in version 0.06-1 (2012-11-08)
changed:
  - rk.plugin.skeleton(): "tests" will now ignore "overwrite" and not replace
    existing testsuite files
fixed:
  - 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

changes in version 0.05-8 (2012-09-30)
added:
  - 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()
changed:
  - rk.paste.JS.graph() also takes objects of class "rk.plot.opts"
  - rk.XML.embed() now supresses the label if "button=FALSE"

changes in version 0.05-7 (2012-09-29)
added:
  - new function rk.paste.JS.graph() to simplify JS code generation for plots

changes in version 0.05-6 (2012-05-10)
added:
  - rk.XML.wizard() and rk.XML.dialog() can now set the "recommended"
    attribute

changes in version 0.05-5 (2012-04-19)
added:
  - 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
changed:
  - if files are being skipped by rk.plugin.skeleton(), the corresponding
    warning will now include the 'create' actions that these files belong to
fixed:
  - rk.paste.JS() pastes rk.comment() objects correctly again

changes in version 0.05-4 (2012-04-06)
fixed:
  - rk.XML.frame() didn't generate attributes due to a typo

changes in version 0.05-3 (2012-03-18)
  - 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()

changes in version 0.05-2 (2012-03-10)
  - 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

changes in version 0.05-1 (2012-01-04)
  - 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()

changes in version 0.05-0 (2011-12-14)
  - "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

changes in version 0.04-13 (2011-12-12)
  - set default value of checked checkboxes to "true" in rk.XML.cbox()
  - rk.XML.connect() now correctly supports 'governor="<ID>.<modifier>.not"'

changes in version 0.04-12 (2011-12-11)
  - added function tf() for even quicker JavaScript code generation from
    checkboxes
  - fixed issue with "about" not being an XML node in rk.plugin.skeleton()

changes in version 0.04-11 (2011-12-10)
  - ite() now supports full recursion also for the "thenjs" option.
  - fixed superfluous first newline in rk.JS.vars()

changes in version 0.04-10 (2011-12-05)
  - when using rk.comment() for logic scripting, its contents will
    automatically be placed inside a <script> node now

changes in version 0.04-9 (2011-12-03)
  - left over stuff from JS printout() function is now added to doPrintout()

changes in version 0.04-8 (2011-11-10)
  - 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

changes in version 0.04-7 (2011-11-08)
  - added long description support to rk.XML.about(), used for the
    DESCRIPTION file

changes in version 0.04-6 (2011-10-31)
  - 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()

changes in version 0.04-5 (2011-10-28)
  - 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.

changes in version 0.04-4 (2011-10-26)
  - 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()

changes in version 0.04-3 (2011-10-22)
  - 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()

changes in version 0.04-2 (2011-10-21)
  - 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

changes in version 0.04-1 (2011-10-20)
  - 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

changes in version 0.04-0 (2011-10-19)
  - 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()

changes in version 0.03-7 (2011-10-18)
  - 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)

changes in version 0.03-6 (2011-10-13)
  - 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()

changes in version 0.03-5 (2011-10-11)
  - 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

changes in version 0.03-4 (2011-10-10)
  - 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...)

changes in version 0.03-3 (2011-10-09)
  - 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.

changes in version 0.03-2 (2011-10-09)
  - fixed skeleton GUI pluginmap not being found

changes in version 0.03-1 (2011-10-08)
  - 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

changes in version 0.03-0 (2011-10-07)
  - 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)

changes in version 0.02-5 (2011-10-06)
  - 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

changes in version 0.02-4 (2011-10-03)
  - 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)

changes in version 0.02-3 (2011-09-30)
  - 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

changes in version 0.02-2 (2011-09-29)
  - added "load" and "show" options to rk.plugin.skeleton() to call
    rk.load.pluginmaps() and the plugin itself
  - added function rk.build.plugin()

changes in version 0.02-1 (2011-09-28)
  - 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

changes in version 0.02-0 (2011-09-27)
  - 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()

changes in version 0.01-5 (2011-09-25)
  - 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

changes in version 0.01-4 (2011-09-22)
  - 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

changes in version 0.01-3 (2011-09-16)
  - 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()

changes in version 0.01-2 (2011-09-15)
  - reworked rk.XML.about() to use person class objects for authors, and need
    less info to produce usable output

changes in version 0.01-1 (2011-09-05)
  - 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

changes in version 0.01-0 (2011-08-30)
  - 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

