Presentation is loading. Please wait.

Presentation is loading. Please wait.

JSL File manager Brady Brady and Don Mccormack, JMP.

Similar presentations


Presentation on theme: "JSL File manager Brady Brady and Don Mccormack, JMP."— Presentation transcript:

1 JSL File manager Brady Brady and Don Mccormack, JMP

2 Motivation Why build this thing? Most file management relies on organizing work in operating system directories. This approach is suboptimal because: Over time, directory organization may grow unpredictably making it difficult to change, rename, move, merge, or split directories. Deeply nested directories make it difficult to know what’s in them. All you may know is the file name and type unless you open the file (e.g., very little metadata is available). Cross-referencing is typically achieved by keeping multiple copies or by using alias. Neither of these methods works well What’s the most recent copy? Where are they all? Aliases break when the original file is moved (PC) or can be as much as 100X larger than the original file (Mac).

3 Create a JSL Add-In that:
Motivation The Solution Create a JSL Add-In that: Works for multiple file types. Is easy to maintain. Displays important metadata for any file through an interactive searchable interface. Lets the user add/change metadata and add files. Requires a minimal amount of user set-up.

4 File Metadata “View” tab selected File parameters, scanned in from files: Number of rows, columns, scripts, etc. Scripts Scripted platforms Path Controlled, “fixed-vocabulary” fields: Changed via cascading drop-downs Free text fields: Changed via text edit boxes

5 File Metadata “EDIT” tab selected File parameters, scanned in from files: Number of rows, columns, scripts, etc. Scripts Scripted platforms Path Free text fields: Changed via text edit boxes Controlled, “fixed-vocabulary” fields: Changed via cascading drop-downs

6 AutoRun Avoidance Disabling “On Open” Scripts in Datatables Get current preference, then set to suppress “On Open” scripts in datatables: Use << On Close () to restore original preference when main window closes:

7 Displaying scripts: use Load Text File ( ) + put into Script Box:
Autorun Avoidance Circumventing “//!” In .jsl files Displaying scripts: use Load Text File ( ) + put into Script Box:

8 Updating Metadata: if present, leave !// at top:
Autorun Avoidance Circumventing “//!” In .jsl files Updating Metadata: if present, leave !// at top:

9 File Metadata Loading / Saving Changes are written directly to the File Properties data table and the file itself; no need for a subsequent re-scans unless data is changed. Source file (.jmp, .jrn or .jsl) is opened as hidden, then modified with new metadata entries and saved off. Data tables use a table variable Journal uses a textbox within a hidden outline box Scripts use a commented section

10 For each metadata property (i.e., Industry, Topics, etc.):
File Metadata Loading / Saving For each metadata property (i.e., Industry, Topics, etc.): Property name is between <<NameBeg>> and <<NameEnd>> delimiters Property value is between <<TextBeg>> and <<TextEnd>> delimiters

11 File Metadata Loading / saving

12 Finding Scripts Within Files
Text tools used Character functions Contains ( ) Char ( ) Insert Into ( ) Length ( ) Substitute ( ) / Substitute Into ( ) Substr ( ) Uppercase ( ) Journal Messages jrn << Get Journal Data Table Messages dt << get Table Script Name ( ) dt << get Table Property ( )

13 Finding Scripts Within Files
Within a datatable, scripts are stored as table properties. Within a journal, scripts reside in Button Boxes.

14 Finding Platforms Within Scripts
Fit Model and DOE require special processing

15 Platforms / Personalities
Fit model personalities and Doe Platforms

16 Summarizing Multiple Responses
Goal: extend Summary platform functionality to work with Multiple Responses.

17 Summarizing Multiple Responses
(Before)

18 Summarizing Multiple Responses
(After)

19 cOmplex Row Selection You can use a Local Data Filter, with or without an associated platform, to avoid querying with complicated WHERE clauses:

20 Using Hidden Output

21 Using Hidden Output

22 Modifying The Current row selection
When you construct a WHERE clause interactively, the Select Rows dialog gives 3 options for dealing with currently selected rows: Clear them (Start over) Extend from them (logical OR) Select from them (logical AND) JSL will not support these options until V12.

23 Modifying The Current row selection
You can achieve the same results by combining row selection messages in various ways: << Select Where ( logical expression ) Clears present selection, then selects rows meeting the condition. << Get Rows Where ( logical expression ) Returns a vector of the row numbers of the rows meeting the condition. << Clear Select Deselects all rows. << Select Rows ( vector of row numbers ) Selects rows whose row numbers the vector contains, without clearing the present selection.

24 Modifying The Current row selection
JSL equivalents for the ‘Select’ Dialog’s options

25 Manipulating journals
Use display tree messages to: Close and de-select all outline boxes Highlight desired button boxes and open ancestors Messages used: << select << deselect << top parent << close << get button name << parent << class name

26 Manipulating Journals
“zipping up” a journal

27 Manipulating Journals
Finding and Surfacing buried scripts First, select all buttons containing the desired scripts:

28 Manipulating Journals
Finding and Surfacing buried scripts Next, move up parent by parent, opening each, until you reach the top:

29 Cascading menus Data table houses the hierarchy Built using a series of associative arrays: Read 2 columns from a table The first holds choices for one drop-down menu The second holds choices for its “child” menu When a selection is made, update any descendant drop-downs

30 Cascading menus Tools used Associative Arrays Associative Array ( ) << get values << get keys Data table messages dt << select where dt << get rows where column << set selected Display box messages ComboBox << get ComboBox << set items TextBox << set text


Download ppt "JSL File manager Brady Brady and Don Mccormack, JMP."

Similar presentations


Ads by Google