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

Association and generalization creation not consistent in joint.js and provides no feedback #1137

Open
TimLethbridge opened this Issue Nov 14, 2017 · 2 comments

Comments

Projects
2 participants
@TimLethbridge
Member

TimLethbridge commented Nov 14, 2017

In joint.js, to create an association, you are supposed to click on the Association command label, and then on each of the classes. It is similar for generalizations, However there are some problems:

a) If a class has a state diagram, the link to go to the state diagram has priority, so you can't create an association between such classes.In fact, you can't even move them!

b) There is no feedback. When you click on 'association' or 'generalization' or 'delete' nothing apparently happens. The user needs to know they are in a mode where they have click on one of these commands and something is about to happen. In editable class diagrams (control-e), the diagram goes light grey as feedback, and then after clicking on the first class, an arc is drawn from that class to the cursor until the second class is selected (or a class is deleted). Note that there is feedback when creating a class (a class appears near the cursor, although not exactly at it).

c) It does not always work at all. This is hard to reproduce, sometimes clicking even on the icon seems to have no effect. If I can figure out how to reproduce this I will add a comment to the issue.

See also issue #1136

This issue is spun off from issue #600

@runqingz

This comment has been minimized.

Show comment
Hide comment
@runqingz

runqingz Nov 22, 2017

Contributor

@TimLethbridge As we discussed, the "addAssociation" mode in joint.js now behaves in a way such that when you click on blank space on the graph, nothing happens; however this is the same behaviour as the default editable graph option. (You are only expected to quit "addAssociation" or "addGeneralization" by clicking the option button again or actually add something)

Contributor

runqingz commented Nov 22, 2017

@TimLethbridge As we discussed, the "addAssociation" mode in joint.js now behaves in a way such that when you click on blank space on the graph, nothing happens; however this is the same behaviour as the default editable graph option. (You are only expected to quit "addAssociation" or "addGeneralization" by clicking the option button again or actually add something)

@TimLethbridge

This comment has been minimized.

Show comment
Hide comment
@TimLethbridge

TimLethbridge Nov 23, 2017

Member

OK. I see that if you click on 'Association' then click on a class, then click in a blank space, nothing happens. This is fine. But note the following usability issues:

a) if I click on 'Association' then click n a class and 'hold down' moving the cursor to the other class, it moves the class instead. In the old system it also creates an association.

b) Also it would be better if a 'rubber band' was displayed, like in the old system, to give extra feedback. If this can't be done, then at least a custom cursor would be good, as the only feedback that we are in association mode (or generalization mode) is the background of the button.

c) If I click on a class, the joint.js system goes into 'delete mode' with little x's appearing. This is fine as long as it does not interfere with other things. But if I am in the middle of adding an association, it also continues to set the class in and out of delete mode. Those delete mode should not be activatable when in 'association' or 'generalization' mode, and should be deactivated by entering those modes.

d) If there is already an association between class A and B, and I create another, it sits right on top of the first association and hence is invisible. It should be separated from it. Also a generalization will sit on top of an association and vice versa, by default.

f) I notice the 'delete' is greyed out. Can't this be made to bring up the red x's?

g) If I click on 'class', the position of the class is not right under the cursor. In fact the whole diagram is offset from the position of the original editable diagrams.

There are other issues, but those are the ones to start with.

Member

TimLethbridge commented Nov 23, 2017

OK. I see that if you click on 'Association' then click on a class, then click in a blank space, nothing happens. This is fine. But note the following usability issues:

a) if I click on 'Association' then click n a class and 'hold down' moving the cursor to the other class, it moves the class instead. In the old system it also creates an association.

b) Also it would be better if a 'rubber band' was displayed, like in the old system, to give extra feedback. If this can't be done, then at least a custom cursor would be good, as the only feedback that we are in association mode (or generalization mode) is the background of the button.

c) If I click on a class, the joint.js system goes into 'delete mode' with little x's appearing. This is fine as long as it does not interfere with other things. But if I am in the middle of adding an association, it also continues to set the class in and out of delete mode. Those delete mode should not be activatable when in 'association' or 'generalization' mode, and should be deactivated by entering those modes.

d) If there is already an association between class A and B, and I create another, it sits right on top of the first association and hence is invisible. It should be separated from it. Also a generalization will sit on top of an association and vice versa, by default.

f) I notice the 'delete' is greyed out. Can't this be made to bring up the red x's?

g) If I click on 'class', the position of the class is not right under the cursor. In fact the whole diagram is offset from the position of the original editable diagrams.

There are other issues, but those are the ones to start with.

@TimLethbridge TimLethbridge added this to the April 2018 for release 1.28 milestone Dec 8, 2017

@TimLethbridge TimLethbridge added this to To do in joint.js Jan 14, 2018

@TimLethbridge TimLethbridge modified the milestones: April 2018 for release 1.28, July 2018 for release 1.29 Feb 14, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment