Learn R Programming

gWidgets (version 0.0-54.2)

ggenericwidget: A constructor to create widgets for evaluating functions

Description

This constructor creates a widget for collecting arguments for a function using a list to define the widget's components. When called with a function name a list is created on the fly which can be used as is, or modified as desired.

Usage

ggenericwidget(lst,  cli = NULL, container = NULL, ..., toolkit = guiToolkit())

Arguments

lst

Either a list defining the widget or a function name as a string. In the latter case, the defining list may be retrieved by the svalue method.

cli

An instance of gcommandline or NULL. If NULL, then a new command line pops up in its own window

container

Optional container to attach widget to

Currently ignored by ggenericwidget, but passed along to gedit by geditlist and geditnamedlist

toolkit

Which GUI toolkit to use

Details

This widget provides an easy way to create dialogs that collect the arguments for a function evaluation. When the OK button is clicked, the arguments are collected and passed along to the function specified via the action part of the list. When collecting the arguments, empty strings are not passed along.

The easiest usage is to simply provide a function name and have autogenerategeneric take a stab. However, in the long run it might be better to use autogenerategeneric to create an initial list, and then modify this to adjust the widget's look.

The list contains several named components

title

The title for the widget

help

What help page is called

type

Either "text" or "graphic." Currently ignored.

variableType

Describes the type of variable. Either "univariate", "univariatetable","fileurl","bivariate", "model", "lattice", "lmer" or NULL. This value is passed directly to gvariables. For non-NULL values, the widget shows an appropriate area for collecting the main variable. For the model and lattice interfaces buttons allow editing of fields by subsequent dialogs.

variableTypeExtras

An optional list with components name and value containing a name and value passed along to the constructor for the variable type. Useful to override default

assignto

If TRUE, creates box for collecting name for assigning output

action

a list with named components beginning and ending. The arguments are collected and pasted together to form a string containing the R command to execute. These get put at the beginning and end of the string. A typical pair would be something like "prop.test(" and ")".

arguments

a list with named components. In the simplest usage the names are argument names, and the components are lists with entries that create the corresponding widget. The first such component is called type and is the name of a gWidget, such as "gradio". Subsequent components are passed to this function using do.call.

The constructors geditlist and geditnamedlist can be used when the input is to be a list of values or a list of named values.

In the more complicated cases, these named components can be grouped into a list component. The name of this is then used to block the arguments. See the example.

The svalue method returns the value of the list. This can be used to retrieve the list that is created when the constructor is called with a function name.

Examples

Run this code
# NOT RUN {
	## a sample list definition
## Save some typing by defining a list to be used more than once later
TRUE.list <- list(
  type = "gradio",
  items = c("TRUE","FALSE")
  )

## define a list for producing a histogram widget	  
hist.list <- list(
  title = "hist()",
  help = "hist",
  action = list(
    beginning = "hist(",
    ending = ")"
    ),
  type = "graphic",                      # either text or graphic
  variableType = "univariate",           # single variable
  arguments = list(
    adjustments = list(
      breaks= list(
        type="gdroplist",
        items=c("\"Sturges\"","\"Scott\"","\"Friedman-Diaconis\"")
        ),
      probability = TRUE.list,
      include.lowest = TRUE.list,
      right = TRUE.list,
      shading = list(
        density = list(
            type="gedit",
            text=NULL
        ),
      angle = list(
        type="gedit",
        coerce.with="as.numeric",
        text="45"
        )
        )
      )
    )
  )

ggenericwidget(hist.list, container=TRUE)
## or to autogenerate one
ggenericwidget("boxplot.default", container=TRUE)
	
# }

Run the code above in your browser using DataLab