-
Notifications
You must be signed in to change notification settings - Fork 176
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Introducing multi-tail arrows #4861
Labels
feature request
MMPK
Scope for Pathway reactions, View-only mode, Static images, Custom buttons and Ketcher API changes
Multi-Tailed Arrow Tool
Test Cases Written
Test cases has been written for that issue
Milestone
Comments
ljubica-milovic
changed the title
Support for multi-tail arrows
Introducing multi-tail arrows
Jun 20, 2024
yauhen-karmyzau
added
MMPK
Scope for Pathway reactions, View-only mode, Static images, Custom buttons and Ketcher API changes
Multi-Tailed Arrow Tool
labels
Jul 8, 2024
9 tasks
daniil-sloboda
added a commit
that referenced
this issue
Sep 2, 2024
daniil-sloboda
added a commit
that referenced
this issue
Sep 2, 2024
rrodionov91
pushed a commit
that referenced
this issue
Sep 2, 2024
rrodionov91
pushed a commit
that referenced
this issue
Sep 2, 2024
rrodionov91
added a commit
that referenced
this issue
Sep 3, 2024
Co-authored-by: Roman Rodionov <roman_rodionov@epam.com> Co-authored-by: Alexey Girin <agirin@mail.ru>
ivanmaslow
added
the
Test Cases Written
Test cases has been written for that issue
label
Sep 4, 2024
These two features aren't done: Testing on RC was completed for tasks below, all details can be found there including updated requirements:
|
Guch1g0v
pushed a commit
that referenced
this issue
Oct 17, 2024
Co-authored-by: Roman Rodionov <roman_rodionov@epam.com> Co-authored-by: Alexey Girin <agirin@mail.ru>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
feature request
MMPK
Scope for Pathway reactions, View-only mode, Static images, Custom buttons and Ketcher API changes
Multi-Tailed Arrow Tool
Test Cases Written
Test cases has been written for that issue
Background
Multi-tail arrows are a useful tool for drawing synthesis trees. Reactants are placed at the arrow tails, and the product is placed at the arrow head.
The example is not chemically accurate:
Sub-tasks:
Part 1
Part 2
Requirements for Part 1
The multi tail arrow should be able to be added to the canvas from the arrows menu.
.....1.1. When the user hovers over the image of the arrow in the arrows menu the arrow should change color, and the text: "Multi-Tail Arrow" should be displayed.
.....1.2. When the user clicks (left click) the image of the arrow in the arrows menu the arrow should change color, and the arrows menu should close.
.....1.3. Selecting the multi tail arrow from the arrows menu and clicking on the canvas (Left click) should give the default size arrow (total height: 100px, total width: 46px, tail width: 14px, head width: 30px, radius of the corner curve: TBD) with the default configuration (horizontal upper and lower tail (2 tails), horizontal arrow head and vertical spine).
(Image for better understanding)
..........1.3.1. Bottom left point of the arrow should be the point on the canvas that the user clicked.
Highlighting the arrow is covered bellow.
.....2.1. Selecting any part of the arrow with select tools (Rectangle selection, Lasso Selection, Fragment Selection) or the arrow tools should highlight the whole arrow similar to this:
.....2.2. Hovering over any part of the arrow with select tools, arrow tools or the erase tool should highlight the whole arrow similar to this:
..........2.2.1. If the user hovers over the arrow with select or arrow tools (not erase tool), the cursor should change accordingly: hover on spine - four way arrow; hover on head or tail middle - up/down arrow; hover on left corners of tails or right corner of head - left/right arrow.
(Will be implement in scope of tails and a the head arrow)
(Image for better understanding)
When the cursor is a four way arrow (hover on spine) clicking and dragging moves the whole object.
.....3.1. During and after moving, the whole arrow should be highlighted like in 2.1.
Requirements for Part 2
.....1.4. When the user selects the multi tail arrow from the arrows menu, left clicks on the canvas (at point A) and drags (to line B) before releasing the click, the arrow should appear blue, the height of the arrow should be default, the width should be the closest distance between point A and line B (tail and head width adjusted proportionally).
(Image for better understanding)
..........1.4.1. When the cursor is released, the arrow is placed on the canvas and the color should turn back to black.
.....4.1. During and after moving, the whole arrow should be highlighted like in 2.1.
.....4.2. Dragging to the left is not limited.
.....4.3. Dragging to the right is limited to [minimum tail length>=radius of the corner curve]
.
.
.....5.1. During and after moving, the whole arrow should be highlighted like in 2.1.
.....5.2. Dragging to the right is not limited.
.....5.3. Dragging to the left is limited to [minimum head length]
.
.
.....6.1. During and after moving, the whole arrow should be highlighted like in 2.1.
.....6.2. Behavior for the upper tail is covered bellow.
..........6.2.1. The upper tail can be moved up with no limitation.
...............6.2.1.1. The spine is adjusted accordingly.
..........6.2.2. The upper tail can be moved down until one radius of the corner curve above the head or another tail
(whichever comes first).
(Image for better understanding)
...............6.2.2.1. The spine is adjusted accordingly.
...............6.2.2.2. Any dragging bellow this point results in no movement.
.....6.3. The behavior for the lower tail is identical to the behavior for the upper tail, just with reversed directions.
.....6.4. The middle tail(s) can be moved anywhere along the spine with a radius of the corner curve as the limitation on both sides. (same as for the head, see req. 7.2.)
..........6.4.1. If the user drags the tail closer than one radius of the corner curve to another tail, after releasing the cursor, the tail position is automatically adjusted to the closest position to where the user dragged the tail, that is at least one radius of the corner curve away form other tails.
(Image for better understanding)
.
.
.....7.1. During and after moving, the whole arrow should be highlighted like in 2.1.
.....7.2. The head can be moved along the spine, with one radius of the corner curve being the limitation on both sides.
(Image for better understanding)
..........7.2.1. Any movement above/bellow these lines results in no movement.
.
.
.....8.1. The cursor should be changed to standard arrow.
.....8.2. After clicking the multi-tail arrow it should be highlighted like in 2.1.
.....8.3. If the selected tail is the upper or lower tail, the option to "Remove tail" should be disabled.
.
.
.....9.1. The cursor should be changed to standard arrow.
.....9.2. After clicking the multi-tail arrow it should be highlighted like in 2.1.
.....9.3. If the space between two tails that the user clicked is less then 2 * [minimal tail distance] + tail thickness, the option to "Add tail" should be disabled.
.....9.4. If the user selects the option to "Add tail", the new tail should be added exactly in the middle between the first two tails with the biggest distance.
(Image for better understanding)
.
.
.
.
.
To be clarified (not up to date)
The text was updated successfully, but these errors were encountered: