DOCUMENTATION
SYNOPSIS
PERL PROGRAM NAME: L_SU.pl
AUTHOR: Juan Lorenzo
DATE: June 22 2017
DESCRIPTION
BASED ON:
Version 0.1 April 18 2017 SeismicUnixPlTk.pl
Added a simple configuration file readable
flow
and writable using Config::Simple (CPAN)
Version 0.2
incorporate more object oriented classes
Update: Simple (ASCII) local configuration
file is Project_Variables.config
V 0.2.0 Jan 12 2018: removed all Config::Simple dependencies
V 0.3.0 May 14, 2018: refactored into L_SU.pm and L_SU.pl
0
Fall 2018
V 0.3.1 makes Run = Save and Run
Moves SaveAs to L_SU Menu and removes Save button
V 0.3.2 has 4 flow panels
V 0.3.3 has dragNdrop deactivated to stabilize version
V 0.3.4 has classifies sunix programs using tabbed notebooks Sept. 12, 2018
V0.3.7 removed all ticks from strings in GUIS using control module
From now on users can write words with gaps and commas and L_SU will accept these
value and formulate the correct Seismic Unix sytnax.
V 0.3.8 Standardized format with PerlTidy, tidyviewer .perltidyrc Aug., 2019
V 0.3.9 Introduce Moose attributes to record real-time GUI history
V 0.4.5 Include PDL packages to handle interactive modeling and reading fortran-generated
files
V 0.5.0 new color_listbox class handles occupancy and vacancies among the listboxes March 2021
USE
NOTES = $j\n"); $symbols[$j] = '$to'; =head4 Examples
SEISMIC UNIX NOTES
CHANGES and their DATES
Notes from bash
Instantiation
Import Special Variables
Declare private variables
flow_listbox_color_w -listbox, input by user selection
sunix_listbox -choice of listed sunix modules in a listbox
flow_types: 'user_built flow' and 'pre_built_superflow'
29 off, 4 off, 1 off
Define private variables
Default Tk settings{
Create scoped hash
43 off
Set gui_history conditions for debugging
L_SU Window contains
a top menu frame
a middle menu titles frame
and a
bottom work_frame
font is made to be arial normal 14
border width is defaulted too
gui focus automatically changes to
where mouse is located
Define
fonts to use in the menu
load images Button bitmaps and pixmaps XXX_cartoon image is used to delete a seismic unix program from the flow
top menu frame Contains: (1) top menus for superflows and (2) icons for (a) wiping plots
help goes to superflow bindings
Top menu frame icon wipe background plots enable from the start
Top title reminders for Selected flow and Superflow names
give user superflow names
$who[$this] = $top_menu_bar->focusCurrent; print(" who is @who\n"); my $a =$top_menu_bar->bind(); print(" bind is @$a\n"); my $class = ref $top_menu_bar; print "Button \\$top_menu_bar is an instance of class '$class'.\n" . "This class has bindings for these events:\n\n"; print join("\n", $top_menu_bar->bind($class) ), "\n";
side menu frame
contains side menus
1. for files
side menu frame contains side menus 2. for action
top_titles frame above the work frame contains Titles only
button that moves items (program names) UP in a flow (color grey, pink, green or blue); up within a listbox
button that moves items (program names) DOWN in a flow (color grey, pink, green or blue);
down within a listbox
Listbox widgets tied to button action for easier management
work frame has menu items to its left contains a sunix_frame at its top, a parameters_pane (with names value buttons and values) in the middle left and four listboxes contained in a module-sequences frame on the middle right and a message text area across the whole bottom
sunix_frame The sunix_frame itself contains five stories sub-frames called sunix_frame_I through and sunix_frame_V (levels 1 through 5)
Notebooks within sunix_frame_V (top row)
Notebooks within sunix_frame_IV (top row)
Notebooks within sunix_frame_III (top row)
Notebooks within sunix_frame_II (top row )
Notebooks within sunix_frame_I (bottom row )
Notebooks within sunix_frame_I (bottom row )
tied listbox widgets
to a tool_array
for easier management
This binding occurs inside L_SU.pm and NOT
within the current program
parameter_titles label
immediteley above the parameters frame
both of which are contained in the work frame
contains Titles only
parameters frame
Parameters from
Tools and Su Modules
input frame
Contains, left-to-right:
a parameter_names_frame
a stack of radio buttons
and a values_frame
Choose whether to ignore/deactivate or apply
the parameter-value pairs later on
To solicit and modify
possibly existing
parameter value input
N.B. widths are controlled within label_box.pm and value_box.pm
message area
to notify user of important events
workflow_control_frame
on far right of work frame
contains scrolled flow listboxes
workflow_control_frame
two vertically stacked frames
each holding two 'Fs
workflow_control_frame
Includes flow names
tied flow listbox widgets
to a tool_array
for easier management
Packing Frame widget contianed within L_SU menu frame
sub _L_SU_bindings For help in pre-built superflows and for help in user-built listbox flows
color not needed but $self is needed
sub _L_SU_bindings_shell
for any plot(s) in the background
sub _L_SU_sunix_bindings used for sunix_listbox help (MB3) sunix_select (MB1) method='sunix_select' color='neutral'
sub _L_SU_flow_bindings used for: sunix_listbox help (MB3) flow-item selection ('flow_select') (MB1)
Main L_SU, user_built_flows color_flow, flow_select
N.B. flow_select is activated both here and independently within gui_history by set_button
sub _L_SU_flow_bindings_any_color
for any colored flow
use to delete an item from a flow
'delete_from_flow_button'
used to move up and down a list of flow items
'flow_item_up_arrow_button'
'flow_item_down_arrow_button'
sub _L_SU_superflow_bindings Redirect user selections to L_SU.pm for the case of: Help for superflows (mouse-button 3 bindings)
sub _L_SU Invoke a method in L_SU from a button click in L_SU save_button run_button FileDialog_button with one of 3 possible values: 'Flow', 'Data' or 'SaveAs'
sub _L_SU_add2flows
e.g., can call add2flow_button
sub _L_SU_superflows
Select pre-built streams or Tools
sub _set_prog_group
3 POD Errors
The following errors were encountered while parsing the POD:
- Around line 387:
=pod directives shouldn't be over one line long! Ignoring all 5 lines of content
- Around line 413:
=pod directives shouldn't be over one line long! Ignoring all 6 lines of content
- Around line 1512:
=pod directives shouldn't be over one line long! Ignoring all 6 lines of content