[rkward-cvs] SF.net SVN: rkward:[3314] branches/jss_dec_10/FINAL_JSS_TEX/example_plugin. tex
kapatp at users.sourceforge.net
kapatp at users.sourceforge.net
Fri Dec 24 07:11:14 UTC 2010
Revision: 3314
http://rkward.svn.sourceforge.net/rkward/?rev=3314&view=rev
Author: kapatp
Date: 2010-12-24 07:11:13 +0000 (Fri, 24 Dec 2010)
Log Message:
-----------
Proof read Section 6
Modified Paths:
--------------
branches/jss_dec_10/FINAL_JSS_TEX/example_plugin.tex
Modified: branches/jss_dec_10/FINAL_JSS_TEX/example_plugin.tex
===================================================================
--- branches/jss_dec_10/FINAL_JSS_TEX/example_plugin.tex 2010-12-24 06:32:29 UTC (rev 3313)
+++ branches/jss_dec_10/FINAL_JSS_TEX/example_plugin.tex 2010-12-24 07:11:13 UTC (rev 3314)
@@ -1,30 +1,33 @@
+% !TEX root = RKWard_paper.tex
\section{Extending RKWard - an example of creating a plugin}
\label{sec:example_plugin}
-As detailed in Section~\ref{sec:technical_plugins}, plugins in RKWard are
+As discussed in Section~\ref{sec:technical_plugins}, plugins in RKWard are
defined by four separate files (Figure~\ref{fig:plugin_structure}). To give an impression of the technique,
-this appendix shows (portions of) the relevant files for a plugin that provides
+this section shows (portions of) the relevant files for a plugin that provides
a simple dialog for a t-test. For brevity, the help-file is omitted.
\subsection{Defining the menu hierarchy}
\label{sec:defining_menu_hierarchy}
-A so called ``.pluginmap'' file declares each plugin, and - if appropriate - defines where it should
+A so called ``.pluginmap'' file declares each plugin, and, if appropriate, defines where it should
be placed in the menu hierarchy. Usually each .pluginmap-file declares many plugins. In this example
-we only show one.
+we only show one, namely,
%% TF: Well, I don't think this is really a feature to advertize. We don't actually support this,
%% and any changes would be overwritten by the next update.
%Since the files are editable with a text editor it is possible for the user to adjust
%the menus as desired.
-In this example we describe the definition entry for a two variable t-test (see Figure~\ref{fig:ttest-gui-example}).
-The pluginmap (\code{<!DOCTYPE rkpluginmap>}) gives a unique identifier ("id"), the location of the GUI description ("file") and the label. The menu
-is defined in a hierarchical structure (see code example below). Moreover the position within the menu can be defined.
-This might be required if menus should not be ordered in alphabetical order.
+the definition entry for a two variable t-test (see Figure~\ref{fig:ttest-gui-example}).
+The pluginmap (\code{<!DOCTYPE rkpluginmap>}) gives a unique identifier (``id"), the location of the GUI description (``file"), and the window title (``label''). The menu
+is defined in a hierarchical structure (see code example below; long lines are broken at ``$\ldots~\ldots$''). Moreover, the position within the menu can be explicitly defined.
+This might be required if the menu entries are to be ordered non-alphabetically.
+\begin{footnotesize}
\begin{Code}
<!DOCTYPE rkpluginmap>
<document base_prefix="" namespace="rkward">
<components>
- <component type="standard" id="t_test_two_vars" file="analysis/t_test_two_vars.xml" label="Two Variable t-test" />
+ <component type="standard" id="t_test_two_vars" file="analysis/t_test_two_vars.xml" ...
+ ... label="Two Variable t-test" />
</components>
<hierarchy>
@@ -41,6 +44,7 @@
</hierarchy>
</document>
\end{Code}
+\end{footnotesize}
\begin{figure}[htp]
\centering
@@ -53,17 +57,18 @@
\subsection {Defining the dialog UI}
\label{sec:defining_dialog_ui}
The main \proglang{XML} file of each plugin defines the layout and behavior of the GUI, and references the
-\proglang{ECMAScript} file that is used for generating \proglang{R} code from UI settings, and the help file (not included in this article).
+\proglang{ECMAScript} file that is used for generating \proglang{R} code from UI settings and the help file (not included in this paper).
-GUI behavior can also be scripted in \proglang{ECMAScript}. In this example, the logic is defined in \proglang{XML} (the ``Assume equal variances'' checkbox
+Some GUI behavior can also be scripted in \proglang{ECMAScript}. In this example, the logic is defined in \proglang{XML} (the ``Assume equal variances'' checkbox
is only enabled for paired sample tests).
-The \proglang{XML} defines the t-test plugin (\code{<!DOCTYPE rkplugin>}) to be organized in two tabs (Figure~\ref{fig:t_test}A) asking for the variables
+The \proglang{XML} file defines the t-test plugin (\code{<!DOCTYPE rkplugin>}) to be organized in two tabs (Figure~\ref{fig:t_test}A) asking for the variables
to analyze in the first tab and optionally in the second tab for specific settings like the confidence level (default 0.95). Note that this \proglang{XML} file
also invokes the \proglang{XML} help file. Two variables can be selected (\code{<varslot .../>}). These are set to be ``required'', i.e.
the ``Submit'' button will remain disabled until the user has made a valid selection for both.
+\begin{footnotesize}
\begin{Code}
<!DOCTYPE rkplugin>
<document>
@@ -109,12 +114,15 @@
</dialog>
</document>
\end{Code}
+\end{footnotesize}
\subsection{Generating R code from UI settings}
\label{sec:generating_r_code_from_ui_settings}
A simple \proglang{ECMAScript} script is used to generate \proglang{R} code from UI settings (using \code{echo()} commands).
-Generated code for each plugin is divded into three sections ``Preprocess'', ``Calculate'', and ``Printout'', although each
+Generated code for each plugin is divded into three sections: ``Preprocess'', ``Calculate'', and ``Printout'', although each
may be empty.
+
+\begin{footnotesize}
\begin{Code}
// globals
var x;
@@ -170,11 +178,13 @@
echo ('))\n');
}
\end{Code}
+\end{footnotesize}
-The corresponding code readable for the user is \proglang{R} code.\code{rk.header} and \code{rk.results}
+The generated code readable by the user is the following \proglang{R} code. Here, \code{rk.header} and \code{rk.results}
are RKWard functions provided by the package \pkg{rkward}. In case the package is installed the code below
can be run from any \proglang{R} engine.
+\begin{footnotesize}
\begin{Code}
local({
## Prepare
@@ -197,3 +207,4 @@
})
\end{Code}
+\end{footnotesize}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the rkward-tracker
mailing list