Join GitHub today
Association and generalization creation not consistent in joint.js and provides no feedback #1137
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
referenced this issue
Nov 14, 2017
referenced this issue
Nov 19, 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)
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.