These are a selected, updated, and organized subset of the original use cases. You can view all of the original, unaltered use cases here.
Use Case #1: Creating a Syntax Tree
Actors
- User (User)
- Syntree app (App)
Preconditions
- User has opened the application
Steps
- App: displays a single Node with label 'S'
- App: displays Node 'S' as highlighted, to indicate that it is the selected Node
- User: presses the down arrow key, to create a child node
- App: displays a new node a set distance down from the root Node 'S'
- App: sets focus to a text box (editor) which visually represents the new child Node
- User: types in the child Node’s editor, labelling it 'NP'
- User: presses enter to confirm the edit
- App: displays the child Node as just text (no text box), reading 'NP'
- App: displays Node 'NP' as highlighted, to show that it is selected
- User: presses the right arrow key, to create a sibling Node
- App: displays Node 'NP' as shifted to the left, and a new child Node to the right, forming an equilateral triangle with the root Node 'S'
- App: sets focus to a text box (editor) which visually represents the new child Node
- User: labels the new child Node 'VP' and presses enter
- App: displays Node 'VP' as highlighted, to show that it is selected
- User: presses the left arrow key to navigate back to Node 'NP'
- App: displays Node 'NP' as highlighted to show that it is selected
- User: presses the down arrow key to create a child Node
- User: draws the rest of the syntax tree, using the methods from steps 3 - 17
Use Case #2: Forcing Node Creation
Actors
- User (User)
- Syntree app (App)
Preconditions
- User has opened the application
- There is a child Node 'NP' of the root Node 'S'
- There is a child Node 'VP' of the root Node 'S'
- The child Node 'NP' is the selected Node
Steps
- User: holds the CTRL and SHIFT keys and presses the left arrow key, to force creation of a child Node
- App: rather than navigating to the existing sibling Node 'VP', displays a new Node in between the Node 'NP' and the Node 'VP'
- App: displays all three child Nodes equidistant from one another, forming an equilateral triangle shape with the root Node 'S'
- App: sets focus to the new child Node’s editor
- User: labels the new child Node 'A' and presses enter
- App: displays new child Node 'A' as highlighted to show that it is selected
Use Case #3: Deleting Nodes
Actors
- User (User)
- Syntree app (App)
Preconditions
- User has opened the application
- There is a tree with many Nodes
Steps
- User: selects a Node which has both a parent and at least one child
- App: displays this Node as selected
- User: presses either "Backspace" or "Delete" key, or clicks the small 'x' button to the top right of the Node
- App: removes the selected Node and all its descendants from the display
Use Case #4: Exporting a Tree
Actors
- User (User)
- Syntree app (App)
Preconditions
- User has opened the application
- User has created a Tree
Steps
- User: clicks "Export" button in the toolbar
- App: displays modal dialog containing:
- a list of radio inputs labeled with different file types
- a text input with content "myfile .txt"
- buttons labelled "Export" and "Cancel"
- User: clicks radio input for desired file type
- App: displays file name input as having the file type extension matching User's selection
- User: types in desired file name in text input
- User: clicks "Export" button in modal dialog
- App: downloads file to User's computer, via built-in browser functionality
Use Case #5: Uploading a Tree
Actors
- User (User)
- Syntree app (App)
Preconditions
- User has opened the application
Steps
- User: clicks "Upload" button in toolbar
- App: displays standard file dialog with file type defaulted to '.tree'
- User: selects desired '.tree' file
- User: clicks "Open" or equivalent in standard file dialog
- App: loads and displays Tree from file
Use Case #6: Creating a Movement Arrow
Actors
- User (User)
- Syntree app (App)
Preconditions
- User has opened the application
- There is a child Node 'A' of the root Node 'S'
- There is a child Node 'B' of the root Node 'S'
- The child Node 'A' is the selected Node
Steps
- App: displays Node 'A' as highlighted, to show that it is selected
- User: holds the CTRL key and clicks on Node 'B'
- App: displays a dashed arrow curving from Node 'A' to Node 'B'
- App: displays arrow as highlighted, to show that it is selected
- App: displays one red and one blue circle representing the control points of the boolean curve that is the arrow's path
- User: drags one of the control point markers
- App: updates the arrow's path to match the changing control point
Use Case #7: Toggling a Branch's Triangle Display
Actors
- User (User)
- Syntree app (App)
Preconditions
- User has opened the application
- There is a child Node 'The big blue cat' of root Node 'S'
Steps
- User: clicks the Branch between root Node 'S' and its child Node
- App: displays the clicked Branch as highlighted, to show that it is selected
- App: displays a circular button at the Branch's midpoint, containing a small vertical line icon
- User: clicks the circular button
- App: displays the Branch as a triangle, with a single point just below the root Node 'S' and two points at each upper corner of the child Node 'The big blue cat'
- App: displays the circular button as containing a small triangular icon