X-Git-Url: http://git.tremily.us/?p=hooke.git;a=blobdiff_plain;f=doc%2Fgui.txt;h=c6b8e08bf1cedff70f3e016f4fd7efa9909eb73b;hp=25c0f48d8883f198c9a8dd01f10e27218285155d;hb=HEAD;hpb=7762de28cee60f98882d72db0c2ae2c6009ac465 diff --git a/doc/gui.txt b/doc/gui.txt index 25c0f48..c6b8e08 100644 --- a/doc/gui.txt +++ b/doc/gui.txt @@ -2,31 +2,196 @@ The GUI interface ***************** -by Rolf Schmidt +Orignially by Rolf Schmidt . -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.