PBStalk-class: S4: Present Talk Classes

talk-classR Documentation

S4: Present Talk Classes

Description

The function presentTalk is a tool that facilitates lectures and workshops in R. It allows the presenter to show code snippets alongside their execution, making use of R's graphical capabilities.

For presentTalk to work, six S4 class objects are created:

talk root element that constitutes a talk;
section branch element that defines a section within a talk;
text leaf element that specifies text to be printed on the R console;
file leaf element that specifies files to be opened by the OS;
code leaf element that specifies R code to be executed;
break leaf element that specifies where to allow a break in the talk.

The leaf elements, also termed primitive elements, occur in isolation and cannot contain other elements. Therefore, only two levels of nesting are supported: sections within a talk and primitives within a section.
See Appendix B in the PBSmodelling User's Guide for more information.

Details

This function uses a convenience function called xmlGetAttr (from the package XML) that retrieves the value of a named attribute in an XML node.

The function presentTalk translates the XML code into a list structure called .presentTalk below the global object .PBSmod. The GUI is represented as a list structure called presentwin under .PBSmod, as for all GUI objects in PBSmodelling.

Slots Available

talk
name character string giving the name of the talk (required)
sections list list of sections within the talk
files list list of files within the talk
section
name character string giving the name of the section (required)
items list list of the four primitive (leaf-element) S4 classes
button logical should GUI have a button that selects section?
col integer column in lower section of GUI to place button
section_id integer specify if section does not immediately follow a talk
text
text character text to display on the R console
"break" logical break the presentation after displaying the text specified?
file
name character string giving the name in the GUI for a group of files to open (required)
filename character individual file names associated with the group name in the GUI
"break" logical break the presentation after opening the group of files?
button logical should GUI add a button that opens this group of files?
col integer column in lower section of GUI to place button
code
show logical show the code snippet in the R console?
print logical print the results of running the R code?
code character the actual chunk of R code
"break" character string describing where to introduce breaks in the code segment
eval logical evaluate the R code?
break
.xData NULL allows a break in the talk for user interaction on the R console.

Creating S4 Objects

Objects can be created by calls of the form:

new("talk", name=name)
new("section",
  name     = node$attributes["name"],
  button   = as.logical(xmlGetAttr(node,"button",FALSE)),
  col      = as.integer(xmlGetAttr(node,"col",2)))
new("text", 
  text     = xmlValue(node),
  "break"  = as.logical(xmlGetAttr(node,"break",TRUE)))
new("file",
  name     = xmlGetAttr(node,"name",""), 
  "break"  = as.logical(xmlGetAttr(node,"break",TRUE)),
  filename = xmlValue(node),
  button   = as.logical(xmlGetAttr(node,"button",FALSE)),
  col      = as.integer(xmlGetAttr(node,"col",3)))
new("code",
  show     = as.logical(xmlGetAttr(node,"show",TRUE)), 
  print    = as.logical(xmlGetAttr(node,"print",TRUE)), 
  code     = xmlValue(node), 
  "break"  = tolower(xmlGetAttr(node,"break","print")))
new("break") 

Author(s)

Alex Couture-Beil, Software Engineer
Earthly Technologies, Victoria BC

Maintainer: Rowan Haigh, Program Head – Offshore Rockfish
Pacific Biological Station (PBS), Fisheries & Oceans Canada (DFO), Nanaimo BC
locus opus: Offsite, Vancouver BC
Last modified Rd: 2023-10-18

See Also

presentTalk for presenting a talk in R.

xmlGetAttr for retrieving the value of a named attribute in an XML node.

setClass for creating a class definition.

PBSoptions-class for a complicated S4 class implementation.


PBSmodelling documentation built on Nov. 9, 2023, 5:07 p.m.