/**

@anchor DPGUIs
@page LEVEL2 Data Products GUIs

There are two main GUIs for viewing Trick logged data: 

@li @ref TrickDP "6.4.1 Trick DP" 
@li @ref TrickQP "6.4.2 Trick QP" 

These two applications work together and allow the user to plot and tabularize Trick data. 

@li @ref ViewingData "6.4.3 Viewing Data"

This section gives various examples of viewing Trick logged data using @ref TrickDP "Trick DP" and @ref TrickQP "Trick QP".

@see @ref DataProducts "Data Products"


@anchor TrickDP
@section LEVEL3 Trick DP - Data Products Application

The trick_dp (data products) is designed to make use of data product specification files (DP_ files). DP_ specification
files are input files which tell data products how and what to display in plots and tables. If time is taken to create the DP_
specification files, this tool shows its power in perusing large sets of data. The “Help” menu option on the GUI also gives
detailed information on its use. To launch the program:

@li <b>UNIX Prompt></b> trick_dp&


@section LEVEL4 Trick DP GUI

<center><b>%Trick DP</b></center>
@image html images/data_products/trick_dp.jpg
@image rtf images/data_products/trick_dp.jpg

The graphical user interface of trick_dp contains the menu bar, toolbar and five display areas 
as shown in the above image. The interface is explained with further details in the following sections:

@li @ref DPMenuBar "6.4.1.1.1 Menu bar"
@li @ref DPToolbar "6.4.1.1.2 Toolbar"
@li @ref DPDisplayAreas "6.4.1.1.3 Display areas"


@anchor DPMenuBar
@section LEVEL5 Menu bar 

This table shows all of the menus along with their menu items and functionalities related to the trick_dp menu bar:

<center>
<b>%Trick DP - Menus</b> 
<table>
<tr><th>Menu & Menu items</th><th>Functionality</th></tr>
<tr>
<td><b>Session</b> @image html images/data_products/trick_dp_session_menu.jpg
@image rtf images/data_products/trick_dp_session_menu.jpg </td>
<td>
@li <b>New...</b>
    - Starts a new session.
@li <b>Open...</b>
    - Brings up the Open File dialog box to let the user to open a session file.
@li <b>Save...</b>
    - Brings up the Save File dialog box to let the user to save the current session to a file.
@li <b>Refresh...</b>
    - Refreshes the @ref SimsRunsTreeArea "Sims/Runs Tree".
@li <b>Look and Feel</b>
    - Changes the Look and Feel for the GUI.
@li <b>Show Exit Confirmation Prompt</b>
    - Toggles whether to show the Confirm Exit dialog box before exiting the GUI.
@li <b>Exit</b>
    - Exits the GUI. If Show Exit Confirmation Prompt is checked, Confirm Exit dialog box would be displayed. Otherwise, exits immediately.
</td>
</tr>
<tr>
<td><b>Sims/Runs</b> @image html images/data_products/trick_dp_simrun_menu.jpg
@image rtf images/data_products/trick_dp_simrun_menu.jpg </td>
<td>
@li <b>Import Sim Dir...</b>
    - Imports a SIM_ dir that will be added to the @ref SimsRunsTreeArea "Sims/Runs Tree" area.
@li <b>Add Run Dir...</b>
    - Adds the selected RUN_ dir to the @ref RunSelectionsArea "Run Selections" area.
</td>
</tr>
<tr>
<td><b>Data Product</b> @image html images/data_products/trick_dp_dataproduct_menu.jpg
@image rtf images/data_products/trick_dp_dataproduct_menu.jpg</td>
<td>
@li <b>Add DP...</b>
    - Adds the selected DP_ file to the @ref DPSelectionsArea "DP Selections" area.
@li <b>Edit DP...</b>
    - Edits the selected DP_ file by opening up the @ref TrickQP "Quickplot Application".
@li <b>Filter...</b>
    - Filters the displayed @ref DPTreeArea "DP Tree" so that is shows only DP_ files that contain the specified characters.
</td>
</tr>
<tr>
<td><b>Settings</b> @image html images/data_products/trick_dp_settings_menu.jpg
@image rtf images/data_products/trick_dp_settings_menu.jpg</td>
<td>
@li <b>Device</b>
    - This option sets where the plot should go to. 3 available options are:
        - Terminal (by default)
        - Printer
        - File
@li <b>Plot Utility</b>
    - This option sets which plotting utility to use. 2 available options:
        - Fermi
        - Gnuplot
</td>
</tr>
<tr>
<td><b>Actions</b> @image html images/data_products/trick_dp_actions_menu.jpg
@image rtf images/data_products/trick_dp_actions_menu.jpg</td>
<td>
@li <b>Single Plot...</b>
    - Displays the data products independently for all data sets specified.
@li <b>Comparison Plot...</b>
    - Displays the data from all data sets in the same display.
@li <b>Error Plot...</b>
    - Subtracts the nth data set data from the first data set data and presents the result for data set 2 through n in the same display.
@li <b>Contrast Plot...</b>
    - Displays a comparison plot and a delta plot on the same page.
@li <b>Table...</b>
    - Displays selected variable data in a table.
@li <b>Table Error...</b>
    - TBD.
@li <b>GNUplot Postscript Single Plot...</b>
    - TBD.
@li <b>GNUplot Postscript Comparison Plot...</b>
    - TBD.
@li <b>GNUplot Postscript Error Plot...</b>
    - TBD.
@li <b>Quickplot</b>
    - Launches the @ref TrickQP "Quickplot" application.
@li <b>Create PDF Booklet...</b>
    - Allows users to view, merge, or create a PDF file for the selected postscript file(s).
    
</td>
</tr>
<tr>
<td><b>Help</b> @image html images/data_products/trick_dp_help_menu.jpg
@image rtf images/data_products/trick_dp_help_menu.jpg
<td>
@li <b>Help Contents</b>
    - Brings up on-line help.
@li <b>About...</b>
    - Shows the information about this application.
</td>
</tr>
</table>
</center>
<br>
<br>

@anchor DPToolbar
@section LEVEL5 Toolbar
@image html images/data_products/trick_dp_toolbar.jpg
@image rtf images/data_products/trick_dp_toolbar.jpg
These icon buttons eables easier access to those commonly used functions. The functionality of each button is the same as 
the menu item that shares the same icon. A tooltip of the button will be displayed if moving the mouse pointer over any 
of these buttons.


@anchor DPDisplayAreas
@section LEVEL5 Display areas

There are 5 display areas that are @ref SimsRunsTreeArea "Sims/Runs Tree" (upper left), @ref DPTreeArea "DP Tree" (upper right), 
@ref RunSelectionsArea "Run Selections" (middle left), @ref DPSelectionsArea "DP Selections" (middle right) and the bottom is 
a message display area. 

Please note that all sim directories start with <b>SIM_</b>, all run directories starts with <b>RUN_</b> or <b>MONTE_RUN_</b>, and
all data product files start with <b>DP_</b> and are placed in <b>DP_Product</b> directory within a <b>SIM_</b> directory. 
<br>
<br>

@anchor SimsRunsTreeArea
@section LEVEL6 Sims/Runs Tree
Launching trick_dp in a directory that contains SIM_ directories will cause those SIM_ directories to be displayed 
in this area as shown below. If no SIM_ directories exist in the launch directory, trick_dp will display SIMs from 
$TRICK_USER_HOME by default. If $TRICK_USER_HOME is not defined, SIMs from $HOME will be displayed. If this is not 
the first time to run trick_dp on this machine, all previously imported SIMs will be displayed also. 

SIMs initially appear unexpanded in the @ref SimsRunsTreeArea "Sims/Runs Tree". Double clicking a SIM_ node or 
single clicking the node icon on the left will show runs contained in that SIM_. Runs in black contain data and 
in grey contain no data. 

<center><b>%Trick DP - Sims/Runs Tree</b></center>
@image html images/data_products/trick_dp_simrun_area.jpg
@image rtf images/data_products/trick_dp_simrun_area.jpg

@section LEVEL7 Sims/Runs Tree Popup Menus
Right clicking on a tree node at any level from the @ref SimsRunsTreeArea "Sims/Runs Tree" as shown above causes a corresponding popup menu displayed.
<br>

<center>
<b>%Trick DP - Sims/Runs Tree Popup Menus</b>
<table>
<tr><th>Popup Menu</th><th>Description</th></tr>
<tr>
<td>@image html images/data_products/trick_dp_simrun_popup1.jpg
@image rtf images/data_products/trick_dp_simrun_popup1.jpg</td>
<td>
@li <b>Refresh</b>
    - Refreshes the highlighted directory.
@li <b>Opentree</b>
    - Expands the highlighted directory.
@li <b>Closetree</b>
    - Collapses the highlighted directory.
@li <b>Remove</b>
    - Removes the highlighted directory from the tree. It does not physically remove the directory from your file system.
</td>
</tr>

<tr>
<td>@image html images/data_products/trick_dp_simrun_popup2.jpg
@image rtf images/data_products/trick_dp_simrun_popup2.jpg</td>
<td>
@li @anchor SimAddRuns <b>Add run(s)</b>
    - Adds all RUN_ directories that contains data in all highlighted SIM_ directories to the @ref RunSelectionsArea "Run Selections" area.
@li @anchor ReadDPList <b>Read DP List</b>
    - Adds all DP_ files in that SIM_ directory to the @ref DPTreeArea "DP Tree" area if any of RUN_ directories in that 
      SIM_ directory contains data. 
@li <b>Refresh</b>
    - Refreshes the highlighted directory.
@li <b>Opentree</b>
    - Expands the highlighted directory.
@li <b>Closetree</b>
    - Collapses the highlighted directory.
@li <b>Remove</b>
    - Removes the selected directory from the tree. It does not physically remove the directory from your file system.
</td>
</tr>

<tr>
<td>@image html images/data_products/trick_dp_simrun_popup3.jpg
@image rtf images/data_products/trick_dp_simrun_popup3.jpg</td>
<td>
@li @anchor RunAddRuns <b>Add run(s)</b>
    - Adds all highlighted RUN_ directories that contains data to the @ref RunSelectionsArea "Run Selections" area.
@li <b>Quickplot...</b>
    - Launches the @ref TrickQP "Quickplot" application.
@li <b>Run Sim</b>
    - Runs the sim from each sim directory using the input.py from the corresponding highlighted RUN_ directory.
</td>
</tr>
</table>
</center>


@anchor DPTreeArea
@section LEVEL6 DP Tree

DP_ files in DP_Product of SIM_ directories are displayed here in a tree structure. Double clicking a SIM_ node 
or single clicking the node icon on the left of a SIM_ node from the @ref SimsRunsTreeArea "Sims/Runs Tree" will make all DP_ files 
displayed here automatically. You also can add all DP_ files in a desired SIM_ directory by right clicking it
from @ref SimsRunsTreeArea "Sims/Runs Tree" and selecting @ref ReadDPList "Read DP List" from the popup menu list.

<center><b>%Trick DP - DP Tree</b></center>
@image html images/data_products/trick_dp_dptree_area.jpg
@image rtf images/data_products/trick_dp_dptree_area.jpg

@section LEVEL7 DP Tree Popup Menus
Right clicking on a tree node at any level from the @ref DPTreeArea "DP Tree" as shown above causes a corresponding popup menu displayed.

<center>
<b>%Trick DP - DP Tree Popup Menus</b>
<table>
<tr><th>Popup Menu</th><th>Description</th></tr>
<tr>
<td>@image html images/data_products/trick_dp_tree_popup1.jpg
@image rtf images/data_products/trick_dp_tree_popup1.jpg</td>
<td>
@li <b>Add DPs</b>
    - Adds all DP_ files in the highlighted directories to the @ref DPSelectionsArea "DP Selections".
@li <b>Refresh</b>
    - Refreshes all highlighted directories.
@li <b>Remove</b>
    - Removes the highlighted directory from the tree. It does not physically remove the directory from your file system.
</td>
</tr>

<tr>
<td>@image html images/data_products/trick_dp_tree_popup2.jpg
@image rtf images/data_products/trick_dp_tree_popup2.jpg</td>
<td>
@li <b>Add DPs</b>
    - Adds all DP_ files in the highlighted directories to the @ref DPSelectionsArea "DP Selections".
@li <b>Refresh</b>
    - Refreshes all highlighted directories.
@li <b>Remove</b>
    - Removes the highlighted directory from the tree. It does not physically remove the directory from your file system.
</td>
</tr>

<tr>
<td>@image html images/data_products/trick_dp_tree_popup3.jpg
@image rtf images/data_products/trick_dp_tree_popup3.jpg</td>
<td>
@li <b>Add DPs</b>
    - Adds all DP_ files in the highlighted directories to the @ref DPSelectionsArea "DP Selections".
@li <b>Refresh</b>
    - Refreshes all highlighted directories.
</td>
</tr>

<tr>
<td>@image html images/data_products/trick_dp_tree_popup4.jpg
@image rtf images/data_products/trick_dp_tree_popup4.jpg</td>
<td>
@li <b>Add DPs</b>
    - Adds all highlighted DP_ files to the @ref DPSelectionsArea "DP Selections".
@li <b>Edit DP...</b>
    - Opens the selected DP_ file with @ref TrickQP "Quickplot" application for editing.
</td>
</tr>
</table>
</center>


@anchor RunSelectionsArea
@section LEVEL6 Run Selections
All selected RUN_ directories for retriving data from for plotting are listed here. You can select a RUN_ or RUN_(s) by:
@li Double clicking a RUN_ directory in black from @ref SimsRunsTreeArea "Sims/Runs Tree"
@li Right clicking on highlighted RUN_ directories and selecting @ref RunAddRuns "Add Runs"
@li Right clicking on highlighted SIM_ directories and selecting @ref SimAddRuns "Add Runs"  
<center><b>%Trick DP - Run Selections</b></center>
@image html images/data_products/trick_dp_runselections_area.jpg
@image rtf images/data_products/trick_dp_runselections_area.jpg

@section LEVEL7 Run Selections Popup Menus
Right clicking on a RUN_ from the list brings up a popup menu.
<br>

<center>
<b>%Trick DP - Run Selections Popup Menus</b>
<table>
<tr><th>Popup Menu</th><th>Description</th></tr>
<tr>
<td>@image html images/data_products/trick_run_selections_popup1.jpg
@image rtf images/data_products/trick_run_selections_popup1.jpg</td>
<td>
@li <b>Remove</b>
    - Removes all of highlighted RUN_ from the list.
@li <b>Remove All</b>
    - Removes all RUN_ directories from the list.
@li <b>Quickplot...</b>
    - Launches @ref TrickQP "Quickplot" application for the selected RUN_(s).
@li <b>Configure Time Name...</b>
    - Brings up the following input dialog to let users to configure the RUN_'s time name.
    - By default, RUN_'s time name is @c sys.exec.out.time
    @image html images/data_products/trick_run_selections_input_timename.jpg
    @image rtf images/data_products/trick_run_selections_input_timename.jpg
</td>
</tr>

</table>
</center>


@anchor DPSelectionsArea
@section LEVEL6 DP Selections
All selected DP_ files that tell data products how and what to display in plots and tables are listed here.  
<center><b>%Trick DP - DP Selections</b></center>
@image html images/data_products/trick_dp_dpselections_area.jpg
@image rtf images/data_products/trick_dp_dpselections_area.jpg
<br>
<br>

@section LEVEL7 DP Selections Popup Menus
Right clicking on a DP_ file from the list brings up a popup menu.
<br>

<center>
<b>%Trick DP - DP Selections Popup Menus</b>
<table>
<tr><th>Popup Menu</th><th>Description</th></tr>
<tr>
<td>@image html images/data_products/trick_dp_selections_popup1.jpg
@image rtf images/data_products/trick_dp_selections_popup1.jpg</td>
<td>
@li <b>Edit DP...</b>
    - Opens the selected DP_ file with @ref TrickQP "Quickplot" application for editing.
@li <b>Remove</b>
    - Removes all of highlighted DP_ files from the list.
@li <b>Remove All</b>
    - Removes all DP_ files from the list.
</td>
</tr>

</table>
</center>


@anchor MessageArea
@section LEVEL6 Message Display
This display redirects all screen printout to here to let users know what it is been doing or what has gone wrong.
<center><b>%Trick DP - Message Display</b></center>
@image html images/data_products/trick_dp_msg_area.jpg
@image rtf images/data_products/trick_dp_msg_area.jpg
<br>
<br>

@anchor TrickQP
@section LEVEL3 Trick QP - Quickplot Application

@see @ref DPGUIs "Data Products GUIs"

The trick_qp is designed for a quick peek at data in a particular RUN. It is also designed to create the DP specification
files that the trick_dp uses. Quickplot usage can be abused. It is best to take time to make a DP specification file using
Quickplot, then use the trick_dp for plotting. To launch the quickplot program:

@li <b>UNIX Prompt></b> trick_dp&

Select a RUN_ directory (or multiple RUN_ directories if comparing data sets).
Click the blue lightning bolt icon to launch Quickplot.

OR

@li <b>UNIX Prompt></b> trick_qp RUN_<name> &


@section LEVEL4 Trick QP GUI
<center><b>%Trick QP</b></center>
@image html images/data_products/trick_qp.jpg
@image rtf images/data_products/trick_qp.jpg

Similar to Trick DP, the graphical user interface of Trick QP also contains the menu bar, toolbar and five display areas 
as shown in the above image. The interface is explained with further details in the following sections:

@li @ref QPMenuBar "6.4.2.1.1 Menu bar"
@li @ref QPToolbar "6.4.2.1.2 Toolbar"
@li @ref QPDisplayAreas "6.4.2.1.3 Display areas"


@anchor QPMenuBar
@section LEVEL5 Menu bar 

This table shows all of the menus along with their menu items and functionalities related to the @ref TrickQP "Trick QP" menu bar:

<center>
<b>%Trick QP - Menus</b> 
<table>
<tr><th>Menu & Menu items</th><th>Functionality</th></tr>
<tr>
<td><b>File</b> @image html images/data_products/trick_qp_file_menu.jpg
@image rtf images/data_products/trick_qp_file_menu.jpg</td>
<td>
@li <b>New DP...</b>
    - Starts a new DP_ file.
@li <b>Open DP...</b>
    - Brings up the Open File dialog box to let the user to open a DP_ file.
@li <b>Refresh...</b>
    - Refreshes all variables in "Vars" area.
@li <b>Save...</b>
    - Saves to the currently opened DP_ file if available, otherwise, users can sepecify a file to save to.
@li <b>Save As...</b>
    - Brings up the Save File dialog box to let the use to save to a specified DP_ file.
@li <b>Look and Feel</b>
    - Changes the Look and Feel for the GUI.
@li <b>Show Exit Confirmation Prompt</b>
    - Toggles whether to show the Confirm Exit dialog box before exiting the GUI.
@li <b>Exit</b>
    - Exits the GUI. If Show Exit Confirmation Prompt is checked, Confirm Exit dialog box would be displayed. Otherwise, exits immediately.
</td>
</tr>
<tr>
<td><b>Vars</b> @image html images/data_products/trick_qp_vars_menu.jpg
@image rtf images/data_products/trick_qp_vars_menu.jpg</td>
<td>
@li <b>Add Var</b>
    - Adds the @ref VarsArea "Vars" highlighted variables to @ref DPContentArea "DP Content" on the right. 
        - If nothing is highlighted or if "Plots" is highlighted:
            - One plot per page for each selected variable will be created.
        - If "Tables" is highlighted:
            - One table with each variable representing one column will be created.
        - If "Programs" is highlighted :
            - Nothing will happen.
        - If any sub node of "Plots", "Tables", or "Programs" is highlighted:
            - Variables will be added to the corresponding node if possible.
@li <b>Expand Var</b>
    - Expands the @ref VarsArea "Vars" highlighted variables.
@li <b>Contract Var</b>
    - Collaps the @ref VarsArea "Vars" highlighted variables.
@li <b>Change Units...</b>
    - Prompts for changing highlighted variables (first one if multiple variables selected) units. 
</td>
</tr>
<tr>
<td><b>Runs</b> @image html images/data_products/trick_qp_runs_menu.jpg
@image rtf images/data_products/trick_qp_runs_menu.jpg</td>
<td>
@li <b>Add Run...</b>
    - Adds the highlighted RUN_ directory to "Runs" area.
@li <b>Remove Run</b>
    - Removes all highlighted RUN_ directories from "Runs" area.
</td>
</tr>
<tr>
<td><b>Plots</b> @image html images/data_products/trick_qp_plots_menu.jpg
@image rtf images/data_products/trick_qp_plots_menu.jpg</td>
<td>
@li <b>New Page</b>
    - Adds an empty new page.
@li <b>Remove All Pages</b>
    - Removes all currently shown pages.
@li <b>New Plot</b>
    - Adds a new empty plot to the currently selected page. 
@li <b>New Curve</b>
    - Adds a new empty curve to the currently selected plot.
@li <b>New Varcase</b>
    - Adds a new varcase to the currently selected curve.
</td>
</tr>
<tr>
<td><b>Tables</b> @image html images/data_products/trick_qp_tables_menu.jpg
@image rtf images/data_products/trick_qp_tables_menu.jpg</td>
<td>
@li <b>New Table</b>
    - Adds a new empty table.
@li <b>Remove All Tables</b>
    - Removes all tables.
@li <b>New Column</b>
    - Adds a new empty column to the currently selected table.
</td>
</tr>
<tr>
<td><b>Programs</b> @image html images/data_products/trick_qp_programs_menu.jpg
@image rtf images/data_products/trick_qp_programs_menu.jpg</td>
<td>
@li <b>New Program</b>
    - Adds a new empty program.
    - See @ref DPExternalPrograms "External Programs" for more details about a program.
@li <b>Remove All Programs</b>
    - Removes all programs.
@li <b>New Output...</b>
    - Adds a new output for the currently selected program.
</td>
</tr>
<tr>
<td><b>Settings</b> @image html images/data_products/trick_qp_settings_menu.jpg
@image rtf images/data_products/trick_qp_settings_menu.jpg</td>
<td>
@li <b>Plot Utility</b>
    - Selects either Fermi or Gnuplot for plotting.
</td>
</tr>
<tr>
<td><b>Actions</b> @image html images/data_products/trick_qp_actions_menu.jpg
@image rtf images/data_products/trick_qp_actions_menu.jpg</td>
<td>
@li <b>Single Plot...</b>
    - Displays the data products independently for all data sets specified.
@li <b>Comparison Plot...</b>
    - Displays the data from all data sets in the same display.
@li <b>Error Plot...</b>
    - Subtracts the nth data set data from the first data set data and presents the result for data set 2 through n in the same display.
@li <b>Contrast Plot...</b>
    - Displays a comparison plot and a delta plot on the same page.
@li <b>Table...</b>
    - Displays selected variable data in a table.
@li <b>Table Error...</b>
    - TBD.    
</td>
</tr>
<tr>
<td><b>Help</b> @image html images/data_products/trick_qp_help_menu.jpg
@image rtf images/data_products/trick_qp_help_menu.jpg</td>
<td>
@li <b>Help Contents</b>
    - Brings up on-line help.
@li <b>About...</b>
    - Shows the information about this application.
</td>
</tr>
</table>
</center>


@anchor QPToolbar
@section LEVEL5 Toolbar
@image html images/data_products/trick_qp_toolbar.jpg
@image rtf images/data_products/trick_qp_toolbar.jpg
These icon buttons eables easier access to those commonly used functions. The functionality of each button is the same as 
the menu item that shares the same icon. A tooltip of the button will be displayed if moving the mouse pointer over any 
of these buttons.


@anchor QPDisplayAreas
@section LEVEL5 Display areas

There are 5 display areas that are @ref VarsArea "Vars" (upper left), @ref DPContentArea "DP Content" (upper right), 
@ref QPRunsArea "Runs" (middle left), @ref PropertyNotebookArea "Property Notebook" (middle right) and the bottom is 
a message display area. 
 

@anchor VarsArea
@section LEVEL6 Vars
All variables that are found in Trick log data files from the selected RUN_ directories are listed here. If variables shown in red, means that they
do not exist in every RUN_ directory.

<center><b>%Trick QP - Vars</b></center>
@image html images/data_products/trick_qp_vars_area.jpg
@image rtf images/data_products/trick_qp_vars_area.jpg

@section LEVEL7 Vars Popup Menus
Right clicking on a variable from the @ref VarsArea "Vars" as shown above causes a corresponding popup menu displayed. This menu is actually
the same as Vars menu.
<br>

<center>
<b>%Trick QP - Vars Popup Menus</b>
<table>
<tr><th>Popup Menu</th><th>Description</th></tr>
<tr>
<td>@image html images/data_products/trick_qp_vars_popup1.jpg
@image rtf images/data_products/trick_qp_vars_popup1.jpg</td>
<td>
@li <b>Add Var</b>
    - Adds the @ref VarsArea "Vars" highlighted variables to @ref DPContentArea "DP Content" on the right.
        - If nothing is highlighted or if "Plots" is highlighted:
            - One plot per page for each selected variable will be created.
        - If "Tables" is highlighted:
            - One table with each variable representing one column will be created.
        - If "Programs" is highlighted :
            - Nothing will happen.
        - If any sub node of "Plots", "Tables", or "Programs" is highlighted:
            - Variables will be added to the corresponding node if possible.
@li <b>Expand Var</b>
    - Expands the @ref VarsArea "Vars" highlighted variables.
@li <b>Contract Var</b>
    - Collaps the @ref VarsArea "Vars" highlighted variables.
@li <b>Change Units...</b>
    - Prompts for changing highlighted variables (first one if multiple variables selected) units. 
</td>
</tr>

</table>
</center>


@anchor DPContentArea
@section LEVEL6 DP Content
DP Content area presents the content of a DP_ file graphically.

<center><b>%Trick QP - DP Content</b></center>
@image html images/data_products/trick_qp_dpcontent_area.jpg
@image rtf images/data_products/trick_qp_dpcontent_area.jpg
<br>

@section LEVEL7 DP Content Popup Menus
Right clicking on a tree node at any level from the @ref DPContentArea "DP Content" as shown above causes a corresponding popup menu displayed.


<center>
<b>%Trick QP - DP Content Popup Menus</b>
<table>
<tr><th>Popup Menu</th><th>Description</th></tr>
<tr>
<td>@image html images/data_products/trick_qp_dpcontent_popup1.jpg
@image rtf images/data_products/trick_qp_dpcontent_popup1.jpg</td>
<td>
@li <b>New Page</b>
    - Creates a new page node.
@li <b>Remove All Pages</b>
    - Removes all pages.
</td>
</tr>

<tr>
<td>@image html images/data_products/trick_qp_dpcontent_popup2.jpg
@image rtf images/data_products/trick_qp_dpcontent_popup2.jpg</td>
<td>
@li <b>New Plot</b>
    - Creates a new plot node for the page.
@li <b>Remove</b>
    - Removes this page.
</td>
</tr>

<tr>
<td>@image html images/data_products/trick_qp_dpcontent_popup3.jpg
@image rtf images/data_products/trick_qp_dpcontent_popup3.jpg</td>
<td>
@li <b>New Curve</b>
    - Creates a new curve node for the plot.
@li <b>Remove</b>
    - Removes this plot.
</td>
</tr>

<tr>
<td>@image html images/data_products/trick_qp_dpcontent_popup4.jpg
@image rtf images/data_products/trick_qp_dpcontent_popup4.jpg</td>
<td>
@li <b>Add Var</b>
    - Adds the highlighted variable from @ref VarsArea "Vars" to this curve.
        - If more than one variables are highlighted, error window will be shown.
        - Only one variable can be added to a curve and by default, the X variable is sys.exec.out.time.
        - A variable from @ref VarsArea "Vars" can be dragged over sys.exec.out.time to replace it.
        - Also, a variable from @ref VarsArea "Vars" can be added to a curve by dragging it over the curve node.
@li <b>Remove</b>
    - Removes this curve.
@li <b>New Varcase</b>
    - Adds a new varcase node.
        - If there are already variables added for this curve, new varcase node can not be added.
</td>
</tr>

<tr>
<td>@image html images/data_products/trick_qp_dpcontent_popup5.jpg
@image rtf images/data_products/trick_qp_dpcontent_popup5.jpg</td>
<td>
@li <b>Remove</b>
    - Removes this variable.
        - X variable can not be removed.
        - X variable can be replaced.
        - Y variable can be removed.
        - Y variable can not be replaced. You need to simply remove the Y variable, and then add a new variable.
</td>
</tr>

<tr>
<td>@image html images/data_products/trick_qp_dpcontent_popup6.jpg
@image rtf images/data_products/trick_qp_dpcontent_popup6.jpg</td>
<td>
@li <b>Add Var</b>
    - Adds the highlighted variable from @ref VarsArea "Vars" to the varcase.
        - If more than one variables are highlighted, error window will be shown.
        - Only one variable can be added to a varcase and by default, the X variable is sys.exec.out.time.
        - A variable from @ref VarsArea "Vars" can be dragged over sys.exec.out.time to replace it.
        - Also, a variable from @ref VarsArea "Vars" can be added to a varcase by dragging it over the varcase node.
@li <b>Remove</b>
    - Removes this variable.
        - X variable can not be removed.
        - X variable can be replaced.
        - Y variable can be removed.
        - Y variable can not be replaced. You need to simply remove the Y variable, and then add a new variable.
</td>
</tr>

<tr>
<td>@image html images/data_products/trick_qp_dpcontent_popup7.jpg
@image rtf images/data_products/trick_qp_dpcontent_popup7.jpg</td>
<td>
@li <b>New Table</b>
    - Creates a new table without any columns.
@li <b>Remove All Tables</b>
    - Removes all tables.
</td>
</tr>

<tr>
<td>@image html images/data_products/trick_qp_dpcontent_popup8.jpg
@image rtf images/data_products/trick_qp_dpcontent_popup8.jpg</td>
<td>
@li <b>Add Var</b>
    - Adds highlighted variables from @ref VarsArea "Vars" to this table. Each variable represents a column.
@li <b>Remove</b>
    - Removes this table.
</td>
</tr>

<tr>
<td>@image html images/data_products/trick_qp_dpcontent_popup9.jpg
@image rtf images/data_products/trick_qp_dpcontent_popup9.jpg</td>
<td>
@li <b>Remove</b>
    - Removes this column.
</td>
</tr>

<tr>
<td>@image html images/data_products/trick_qp_dpcontent_popup10.jpg
@image rtf images/data_products/trick_qp_dpcontent_popup10.jpg</td>
<td>
@li <b>Remove</b>
    - Removes the this hightlighted variable.
    - Also removes the column which it belongs to as each column has only on variable associated with it.
</td>
</tr>

<tr>
<td>@image html images/data_products/trick_qp_dpcontent_popup11.jpg
@image rtf images/data_products/trick_qp_dpcontent_popup11.jpg</td>
<td>
@li <b>New Program</b>
    - Adds a new PROGRAM.
    - See @ref DPExternalPrograms "External Programs" for more details about a program.
@li <b>Remove All Programs</b>
    - Removes all programs. Currently only one program is supported.
</td>
</tr>

<tr>
<td>@image html images/data_products/trick_qp_dpcontent_popup12.jpg
@image rtf images/data_products/trick_qp_dpcontent_popup12.jpg</td>
<td>
@li <b>Remove</b>
    - Removes the program.
</td>
</tr>

<tr>
<td>@image html images/data_products/trick_qp_dpcontent_popup13.jpg
@image rtf images/data_products/trick_qp_dpcontent_popup13.jpg</td>
<td>
@li <b>Add Var</b>
    - Adds highlighted variables from @ref VarsArea "Vars" to Input.
</td>
</tr>

<tr>
<td>@image html images/data_products/trick_qp_dpcontent_popup14.jpg
@image rtf images/data_products/trick_qp_dpcontent_popup14.jpg</td>
<td>
@li <b>Remove</b>
    - Removes the highlighted variable.
</td>
</tr>

<tr>
<td>@image html images/data_products/trick_qp_dpcontent_popup15.jpg
@image rtf images/data_products/trick_qp_dpcontent_popup15.jpg</td>
<td>
@li <b>New Output</b>
    - Brings up a window for users to enter the output name for the program.
    @image html images/data_products/trick_qp_dpcontent_popup16.jpg
    @image rtf images/data_products/trick_qp_dpcontent_popup16.jpg
    - Accepts the entered name by clicking Ok and the output name will be added to @ref VarsArea "Vars" in red such as "out" as shown .
    @image html images/data_products/trick_qp_dpcontent_popup17.jpg
    @image rtf images/data_products/trick_qp_dpcontent_popup17.jpg
</td>
</tr>

</table>
</center>


@anchor QPRunsArea
@section LEVEL6 Runs
All selected RUN_ directories for retriving data from for plotting are listed here. 
<center><b>%Trick QP - Run Selections</b></center>
@image html images/data_products/trick_qp_runs_area.jpg
@image rtf images/data_products/trick_qp_runs_area.jpg
<br>
<br>

@section LEVEL7 Runs Popup Menus
Right clicking on a RUN_ from the list brings up a corresponding popup menu.

<center>
<b>%Trick QP - Runs Popup Menus</b>
<table>
<tr><th>Popup Menu</th><th>Description</th></tr>
<tr>
<td>@image html images/data_products/trick_qp_runs_popup1.jpg
@image rtf images/data_products/trick_qp_runs_popup1.jpg</td>
<td>
@li <b>Remove</b>
    - Removes all of highlighted RUN_ from the list.
@li <b>Configure Time Name...</b>
    - Brings up the following input dialog to let users to configure the RUN_'s time name.
    - By default, RUN_'s time name is @c sys.exec.out.time
    @image html images/data_products/trick_run_selections_input_timename.jpg
    @image rtf images/data_products/trick_run_selections_input_timename.jpg
</td>
</tr>

</table>
</center>


@anchor PropertyNotebookArea
@section LEVEL6 Property Notebook
All editable data entries for the selected node from @ref DPContentArea "DP Content" are displayed here. 
You are required to click <b>Apply Change</b> button to save all the changes made. 
Otherwise, all changes will be lost if browsing a different node and come back to it.
<center><b>%Trick QP - Property Notebeook</b></center>
@image html images/data_products/trick_qp_notebook_area.jpg
@image rtf images/data_products/trick_qp_notebook_area.jpg

@anchor MessageArea
@section LEVEL6 Message Display
This display redirects all screen printout to here to let users know what it is been doing or what has gone wrong.
<center><b>%Trick QP - Message Display</b></center>
@image html images/data_products/trick_qp_msg_area.jpg
@image rtf images/data_products/trick_qp_msg_area.jpg
<br>
<br>

@see @ref TrickDP "Trick DP"


@anchor ViewingData
@section LEVEL3 Viewing Data
In this section, <b>SIM_cannon_analytic</b> that comes with Trick distribution and is located at $TRICK_HOME/trick_sims will be used. 
Assuming you already have had corresponding data recorded by executing the related sim. The data from a single run will be viewed 
using @ref TrickDP "Trick DP" together with @ref TrickQP "Trick QP". When plotting, single plotting is used. Please see Trick Tutorial 
for more examples that also have comparison or error plotting with multiple runs. You certainly can perform similar exercises using your own sim.


@anchor TrickQPPlotting
@section LEVEL4 Plotting With Trick DP & Trick QP
 
Begin by launching @ref TrickDP "Trick DP".
@li <b>UNIX Prompt></b> cd <path_to_sim_cannon_analytic>/SIM_cannon_analytic
@li <b>UNIX Prompt></b> trick_dp &

@section LEVEL5 Plotting Time -vs- Postion
-# Double click the pathname containing your sim directory if it is not expanded yet (or single click the symbol next to the name)
-# Double click the @c SIM_cannon_analytic name in the @ref SimsRunsTreeArea "Sims/Runs Tree". This will reveal the @c RUN_test directory.
-# Double click the @c RUN_test name or right click the @c RUN_test followed by selecting "Add run(s)". 
   This will bring @c RUN_test into the @ref RunSelectionsArea "RUN Selections" below.
-# Click the blue lightning button in the tool bar to launch Quickplot application (@ref TrickQP "Trick QP"). The @ref TrickQP "Trick QP" GUI will pop up.
-# In @ref TrickQP "Trick QP", right click @c dyn.cannon.pos[0-1] and select "Expand Var" if the interested variable is one of the element in an array 
   which is not expanded yet.
-# Double click the @c dyn.cannon.pos[0] variable in the left pane. This sets up to create one page with one plot (time -vs- pos[0]).
    - Make sure nothing is highlighted or "Plots" is highlighted on the right in @ref DPContentArea "DP Content"
    - If "Tables" is highlighted, it sets up to create a table with one column instead.
    - The X variable is @c sys.exec.out.time by default and the Y variable is dyn.cannon.pos[0].
    - Later, you will learn how to replace the X (@c sys.exec.out.time) with a different variable.
-# Now click the @c dyn.cannon.pos[1] variable and drag it to the pane on the right. Drop it on the line with "Page" (see the white-n-black window looking icon). 
   This will result in one page containing two plots.
-# In @ref TrickQP "Trick QP", click the plain white sheet icon located on the toolbar. A single window with two plots should pop up:
@image html images/data_products/plot2.jpg
@image rtf images/data_products/plot2.jpg
-# If you want to specify the number of plots horizontally and vertically on a page, click "Page" node and edit its Horizontal Cells and Vertical Cells 
   propterties from @ref PropertyNotebookArea "Proptery Notebook" (use the scroll bar or change the GUI window size if necessary). Change Horizontal Cells 
   from 0 to 2 and Vertical Cells from 0 to 1 and click "Apply Change" button on the top of @ref PropertyNotebookArea "Proptery Notebook". 
   If click the plain white sheet icon located on the toolbar, a single window with two plots side by side should pop up:
    - "Apply Change" needs to be selected to save the changes made to the @ref PropertyNotebookArea "Proptery Notebook".

@image html images/data_products/plot1.jpg 
@image rtf images/data_products/plot1.jpg 

@section LEVEL5 Plotting XPosition -vs- YPosition
Now, let's change the default X variable from @c sys.exec.out.time to a different variable.
-# Assuming the @ref TrickQP "Trick QP" application is still up, click the "New" plot icon located on the far left of the toolbar.
   Click "Ok" when asked if you want to start over. This will clear the plots from the @ref DPContentArea "DP Content".
-# Double-click @c dyn.cannon.pos[1].
-# Drag-n-drop the @c dyn.cannon.pos[0] variable over the @c sys.exec.out.time variable in the Plot located in the @ref DPContentArea "DP Content". 
   You will be asked to confirm the replacement. Click "Ok".
    - Now, the X variable is @c dyn.cannon.pos[0] and the Y variable is @c dyn.cannon.pos[1].
-# To see the plot, click the white sheet icon on the toolbar.
@image html images/data_products/plot3.jpg 
@image rtf images/data_products/plot3.jpg 


@anchor CreatingDPProductFile
@section LEVEL4 Creating DP Product File
The information needed for the plot created earlier can be saved off to a file using @ref TrickQP "Trick QP" and can be reused by both
@ref TrickDP "Trick DP" and @ref TrickQP "Trick QP". This example shows how to save XPosition -vs- YPosition plotting stated earlier 
to a file named as @c DP_cannon_xy.
-# With the @ref TrickQP "Trick QP" GUI still up and the x -vs- y position still chosen, click the dyn.cannon.pos[1]
variable located in the pane on the right. The dyn.cannon.pos[1] variable should be highlighted in dark blue.
The “Y Var" notebook page should be visible in the lower right pane.
-# In the "Y Var" notebook page, select "Symbol Style->Circle" from the drop-down menu.
-# In the "Y Var" notebook page, select "Symbol Size->Tiny" from the drop-down menu.
-# Click the “Apply Change” button (you may need to scroll up/down to see all the fields/button).
-# Save this information by clicking the menu option "File->Save As". Click “New Folder”
button to create the DP_Product folder if necessary.
Choose the directory button SIM_cannon_analytic/DP_Product". Enter file name as "DP_cannon_xy".
    - A file called @c DP_cannon_xy.xml is saved as it is in XML format.
-# Close the quick plot GUI, but keep trick_dp up and running.


@anchor TrickDPPlotting
@section LEVEL4 Plotting with only Trick DP using a DP_ file
Now that @c DP_cannon_xy has been saved, the data can be viewed with @ref TrickDP "Trick DP".
-# Assuming the @ref TrickDP "Trick DP" is still up and running from the previous steps, Click “Session->Refresh...”
and double click SIM_cannon_analytic to reveal DP_cannon_xy.xml in the top right pane.
    - If the @ref TrickDP "Trick DP" is not up, go to the sim directory and launch it as:
        - <b>UNIX Prompt></b> trick_dp &
-# Make sure that Sims/Runs->SIM_cannon_analytic/RUN_test has been selected.
    - You can tell by checking to see if it is listed in @ref RunSelectionsArea "Run Selections".
-# Choose the @c DP_cannon_xy.xml in the top right pane by double clicking it or right click followed by selecting "Add DPs".
    - This will bring the DP_cannon_xy.xml into the DP selections pane.
-# To see the trajectory again, click the plain white single sheet icon on the toolbar.
Zoom in by holding the middle mouse button and drag across a section of the plot. Then release the
mouse button. Notice that there is a tiny circle on each x-y point recorded.
@image html images/data_products/plot4.jpg
@image rtf images/data_products/plot4.jpg


@anchor TrickDPPlotting
@section LEVEL4 Plotting with only Trick QP
-# Go to the @c SIM_ directory we have worked on earlier and launch @ref TrickQP "Trick QP" as:
    - <b>UNIX Prompt></b> trick_qp RUN_test &
    - Once @ref TrickQP "Trick QP" is up, you should notice that:
        - "<path_to_sim_cannon_analytic>/SIM_cannon_analytic/RUN_test" is listed in @ref QPRunsArea "Runs".
        - All logged variables found from "<path_to_sim_cannon_analytic>/SIM_cannon_analytic/RUN_test" are listed in @ref VarsArea "Vars".
        - You can add more runs by clicking "Runs->Add Run..." if needed.
-# Select variables from @ref VarsArea "Vars" for plotting as exercises done earlier.
-# Or click "File->Open DP..." or click the open file icon on the toolbar. 
    - Select a DP_ file such as @c DP_cannon_xy.xml and click "Ok".
        - If intertested file is not listed, make sure you are in the right directory.
        - The selected DP_ file is presented graphically in @DPContentArea "DP Content"
-# To see the trajectory again, click the plain white single sheet on the toolbar.


@anchor CreatingDPSessionFile
@section LEVEL4 Creating DP Session File

-# Launch @ref TrickDP "Trick DP" as:
    - <b>UNIX Prompt></b> trick_dp &
-# Select RUN_ directories from @ref SimsRunsTreeArea "Sims/Runs Tree" and add them to @ref RunSelectionsArea "Run Selections".
-# Select DP_ files from @ref DPTreeArea "DP Tree" and add them to @ref DPSelectionsArea "DP Selections".
-# Click "Session->Save..." or click save icon on the toolbar to save the current session to a DP session file.
    - By default, the session file is saved in your SIM_ directory.
    - A file with xml extension is saved as the session file is in XML format.


@anchor PlottingWithCommand
@section LEVEL4 Plotting from the Command Line
Once you a DP session file created, you can view the data the way as you specified using "fxplot" or "gxplot" command.
- Go to the SIM_ directory you have your session file saved.
    - <b>UNIX Prompt></b> fxplot <session_file>
    - Or
    - <b>UNIX Prompt></b> gxplot <session_file>
- You should see plots as you specified in the file.


@anchor UsingTables
@section LEVEL4 Using Tables

@section LEVEL5 Using Tables Exercise A
-# Go to the SIM_cannon_analytic directory and launch @ref TrickQP "Trick QP" as:
    - <b>UNIX Prompt></b> trick_qp RUN_test &
    - Only using @ref TrickQP "Trick QP" to simply the example. In some cases, you'll still need to start "trick_dp" and then "trick_qp".
-# Click "Tables" shown under @ref DPContentArea "DP Content". The "Tables" node should be highlighted in blue.
    - Make sure "Tables" node is selected.
-# Double click dyn.cannon.pos[0-1] or right click it followed by selecting "Add Var".
    - A "Table" node is created under "Tables".
    - This table has 3 columns: sys.exec.out.time (added by default), dyn.cannon.pos[0], and dyn.cannon.pos[1].
-# Click the table icon on the toolbar or click "Actions->Table..." to view the data in a table.
    - You can save the current tabular data in a text file through the "Save" button on the left top corner.

@image html images/data_products/plot5.jpg
@image rtf images/data_products/plot5.jpg

@section LEVEL5 Using Tables Exercise B
-# Go to the SIM_cannon_analytic directory and launch @ref TrickQP "Trick QP" as:
    - <b>UNIX Prompt></b> trick_qp RUN_test &
-# Click "Tables->New Table" or right click "Tables" under @ref DPContentArea "DP Content" followed by selecting "New Table".
    - Now you see a new "Table" node is created under "Tables".
-# Click the newly created "Table" node. It should be highlighted in blue.
-# Right click dyn.cannon.pos[0-1] and then select "Expand Var".
-# Click dyn.cannon.pos[0] and then "Shift"+click dyn.cannon.pos[1]. These 2 variables should be highlighed in blue.
-# Right click the highlighted variables and then select "Add Var"
    - Now 2 columns are inserted to the currently selected "Table": dyn.cannon.pos[0] and dyn.cannon.pos[1].
-# Click the table icon on the toolbar or click "Actions->Table..." to view the data in a table.
@image html images/data_products/plot6.jpg
@image rtf images/data_products/plot6.jpg


@anchor UsingExternalProgram
@section LEVEL4 Using External Program
The external program $TRICK_HOME/trick_source/data_products/Apps/ExternalPrograms/dp_substract.c that comes with Trick distribution will
be used in this section. This program takes 2 double inputs and returns the subtraction of these 2 inputs. Assuming the program is alreay
built and the corresponding shared object is available for use.
@see @ref DPExternalPrograms


-# Go to the SIM_cannon_analytic directory and launch @ref TrickQP "Trick QP" as:
    - <b>UNIX Prompt></b> trick_qp RUN_test &
-# Click "Programs->New Program" or right click "Programs" under @ref DPContentArea "DP Content" followed by selecting "New Program".
    - Now you see a new "PROGRAM" node with "Input" and "Output" is created under "Programs".
    - Please note that only one program at a time is currently supported.
-# Click "PROGRAM" and click "Browse..." from @ref PropertyNotebookArea "Property Notebook" to select the shared object for the program.
    - In this case, select the file dp_subtract.so that is located at "$TRICK_HOME/trick_source/data_products/Apps/ExternalPrograms/object_Linux_4.4_x86_64/".
-# Click "Apply Change". The name of "PROGRAM" is now changed to the full path of the shared object.
-# Click "Input" so it is highlighted in blue.
-# Double click dyn.cannon.pos[0-1]. Both dyn.cannon.pos[0] and dyn.cannon.pos[1] are inserted under "Input".
-# Right click Output and then select "New Output...". Enter a name for the output as prompted such as "out" and then click "Ok".
    - Now you should see "out" in red shown in @ref VarsArea "Vars" list.
-# Drag "out" to "Plots" under @ref DPContentArea "DP Content". A page with one plot with one curve is created. 
    - The X variable is @c sys.exec.out.time.
    - The Y variable is @c out which is the subtraction of @c dyn.cannon.pos[0] and @c dyn.cannon.pos[1].
-# Click the plain white single sheet icon on the toolbar to see the plot.

@image html images/data_products/plot7.jpg
@image rtf images/data_products/plot7.jpg



@see @ref DataProducts "Data Products"
*/
