test/data/vclamp_jpk/README: Document sample versions
[hooke.git] / doc / gui.txt
index 25c0f48d8883f198c9a8dd01f10e27218285155d..c6b8e08bf1cedff70f3e016f4fd7efa9909eb73b 100644 (file)
 The GUI interface
 *****************
 
-by Rolf Schmidt <rschmidt@alcor.concordia.ca>
+Orignially by Rolf Schmidt <rschmidt@alcor.concordia.ca>.
 
-You can dock/undock all windows except for plot tab (I would like to
-disable docking above the menubar and instead have the windows dock
-beneath the menubar)
+Run the GUI with::
 
-You can save perspectives (delete perspectives however does not work yet).
+    $ ./bin/hk.py --ui gui
 
-The 'Navigation' menubar works, the 'Main' menubar does not work yet.
+Alternatively, select `gui` in your config file (see :doc:`config`)::
 
-Closing plot tabs does not work properly, feedback on specific
-examples and error messages would be much appreciated
+    [user interfaces]
+    command line = False
+    gui = True
 
-In the 'Folders' pane you can double-click playlists (with hkp
-extension) to open them (you cannot double-click curves to open them)
+Interface
+=========
+Starting Hooke's GUI for the first time, you will see the central plot
+area with the current plot surrounded by the following windows (the `F*`
+key toggles the visibility of the panel):
 
-Commands in the 'Commands'-pane that work
+* Commands (`F5`)
+* Folders (`F6`)
+* Note (`F7`)
+* Output (`F8`)
+* Playlists (`F9`)
+* Properties (`F10`)
 
-* autopeak (only partially, everything that has to do with clicking on the plot does not work)
-* genlist
-* loadlist
-* convfilt
-* flatfilt
+.. image:: img/gui_screenshot.jpg
 
-When you open or generate a playlist, Hooke seems to hang. This is
-actually not the case, just wait. Hooke loads all the curves into
-memory and applies all the plotmanipulators. In the future, there will
-be a progressbar to indicate the progress.
+Initially, the window will be rather small in order to work with small
+screen resolutions.  Adjust the size and position to your liking.
+
+Underneath the menus at thte top of the window there is a navigation
+toolbar to switch from one curve to another (next/previous).
+
+Plot area
+=========
+
+The plot area displays the current curve.  You can select the data
+column to use as the x axis using the dropdown menu in the plot
+navigation bar (under the plot, not to be confused with the navigation
+bar under the menus).  You can select the columns to plot by clicking
+the `y column(s)` button and checking interesting columns.  We suggest
+you stick to columns with a single unit, and not try and dispay, for
+example, both meters and newtons on the same y axis.
+
+You can move about the plot using its navigation toolbar.  See the
+`Matplotlib manual`_ for details.
+
+.. _Matplotlib manual:
+  http://matplotlib.sourceforge.net/users/navigation_toolbar.html
+
+You can measure distances and forces directly in the plot.  If you
+want to know the coordinates of a single point, left click on it.  The
+index and coordinates of the nearest data point will be displayed in
+the status bar along with the x and y coordinates of your click.
+
+To find the distance between two points, just issue the command
+``delta``.  You will be asked to click two points.  When you click a
+point, a blue dot should appear.  When you click the second point, the
+distances will appear in the output panel.  Hooke automatically
+adjusts the position of the clicked point to the nearest point in the
+graph, so you will be always measuring distances and forces between
+points in the graph.
+
+.. todo:: Implement blue dots and click handler.
+
+Folders
+=======
+Here you can navigate your file system and double click on a saved
+playlist to open it.  You can change the initial folder by modifying
+`workdir` in the `preferences` (core plugin).
+
+.. todo:: Implement folders panel.
+
+Playlists
+=========
+You can manage several playlists in this window.  As the GUI is rather
+flexible, it is possible to display the curves from different
+playlists side by side to compare them (relatively handy when
+comparing different fit parameters).  You can double-click a file in
+the playlist to display it in the plot area.  Deleting entire playlists
+or single files can be accomplished by right-clicking and selecting
+`Delete`.
+
+.. todo:: Do we need side-by-side comparison?  How did this work in
+  the old GUI?
+
+Commands
+========
+All available commands are listed under their corresponding plugin.
+In order to see a plugin and its commands, you have to edit
+:file:`hooke.conf` and enable th plugin in the plugins section.
+Selecting a plugin or command will display the associated properties
+in the `Properties`_ window.  You can edit the properties and click
+`Execute` to run the selected command.  If you do not need to modify
+any properties, you can also double-click a command to run it.
+
+Mousing over a plugin or command in the `Commands`_ window will
+display the associated help in a tooltip.  The help for the plugin
+should give a general description of the plugin.  The help for a
+command should describe the properties available for this command and
+suggest reasonable default values if possible.  Feel free to point out
+missing help content.
+
+Properties
+==========
+The properties for the command selected in the `Commands`_ window are
+displayed here.  Edit the properties to your satisfaction (some need to
+be confirmed by hitting enter, this seems to be a problem in
+wxPropertyGrid) and click the `Execute` button to run the selected
+command.  Floating point values are limited to a certain number of
+decimals (limitation of wxPropertyGrid?) so be careful when using
+floating point values.
+
+.. todo:: Document new, non-PropGrid
+  :mod:`~hooke.ui.gui.panel.propertyeditor`.
+
+Output
+======
+The Output window serves as a log where pertinent information is
+displayed.  The output is generally the same as what you would see if
+you were running the commands from the command line.
+
+Note
+====
+A note can be added to every curve: enter your note and click `Update
+note`.  With the `note filter playlist` command (`playlist` plugin)
+you can copy all the curves with a note into a new playlist.
+
+General remarks
+===============
+Read :doc:`hacking` for an overview of how Hooke works internally and
+:doc:`config` for more information about configuring Hooke.
+
+Ignore the text on the `Welcome` tab.  This tab is more like a proof of
+principle and will contain a short how-to in the future (once the
+howto is written).
+
+Hooke's GUI will remember the size and position of the main window
+(stored in the config file, see :doc:`config`).  You can arrange the
+panels any which way you like and save this arrangement as a
+perspective.
+
+.. image:: img/gui_perspective.jpg
+
+Hooke will always start with the last used perspective and you can
+switch from one perspective to another by selecting a perspective from
+the perspectives menu.  After deleting a perspective, the radio
+indicator in the perspectives menu disappears (known bug in
+wxPython).  This is only a visual problem and does not affect anything
+else.
+
+In order to pan the plot, zoom in and out and export the plot of your
+force curves, use the plot toolbar under the plot.  A more detailed
+description is available on the `Matplotlib website`_
+
+.. _Matplotlib website:
+  http://matplotlib.sourceforge.net/users/navigation_toolbar.html
+
+Some plugins and commands
+=========================
+
+* overlay (export): exports all retraction curves in a playlist on the
+  same scale.  This is achieved by determining the maximum x window and
+  adding x(max) and x(min) to all curves that are shorter than the
+  maximum x window.  Make sure to filter your playlist before running
+  this command!
+
+.. todo:: Implement overlay.
+
+Basic analysis and autopeak
+===========================
+
+.. todo:: Implement autopeak.  Bring in autopeak tutorial from the wiki?
+
+Please follow the steps in the :doc:`tutorial`.  Instead of typing in
+the command at the command-line, select it in the `Commands`_ window,
+set your properties in the `Properties`_ window and click on
+`Execute` back in the `Commands`_ window.
+
+The :doc:`autopeak` tutorial is also applicable.  You need to setup the
+type of fit you want to use: in the Properties of the autopeak command
+(autopeak plugin) select `WLC`, `FJC` or `FJC_PEG` from the dropdown
+list for the `polymer model` argument of `polymer fit`.
+
+Fast curve reviewing and saving
+===============================
+.. todo:: Update curve review tutorial section.
+
+When automatic routines are not good enough to filter your data, use
+``review`` command to cycle through your playlist presenting ten
+curves in the same graph.  You can then enter the numbers of the
+interesting curves and automatically save a copy of them into another
+directory.