in

The ORM Foundation

Get the facts!

Ideas for Visio stencil based on v16 (and other thoughts)

Last post 12-08-2011 9:38 by Roger Cass. 27 replies.
Page 2 of 2 (28 items) < Previous 1 2
Sort Posts: Previous Next
  • 10-13-2011 8:24 In reply to

    Re: Ideas for Visio stencil based on v16 (and other thoughts)

    Hi Roger,

    Thanks for the followup. Yes, that's exactly why I had never made the "adjustable-arity" fact type shape the frame for all the fact types on the stencil. After your message, I looked again, and I still can't see any way of de-activating connection points.

         So, as I headed off to bed last night, I was resigned that there was no solution. But by the time I crawled out of bed this morning, it had occurred to me: it should be pretty easy to do, if I simply use the same basic approach I used for the objectification.... So,

        See what you think of the interface (via context menu). I did some corner-cutting; but I feel they were pretty reasonable corners to cut. For example, if someone turns a quaternary into a quinary, they get the "adjustable n-ary" shape; and from there on, of course, they would just use its own system if they want to change arity (again). But I didn't want them to have to interact with a sub-menu like that, if they just wanted to turn a ternary into a binary or something like that. Thus, the context menus you find attached.

       The other corner cut was, I don't attempt to re-glue to the new fact type the connectors etc. that were glued to the old fact type's roles: any gluing I did (which would be very complicated to do even reasonably well, in this situation) would have at least a 50% chance of being wrong, I think, and would simply distract or mislead the user. So instead, if anything was glued to the old fact type's roles, I pop up a message to remind the user of this, and that these connectors / constraints need to be connected properly.

       Again, I'd appreciate any feedback you have time to give. As it happens, I'll be giving a demo of this Visio solution next week; so it would be nice to have a good version of this feature included by then. Many thanks,

      Best regards,

    Andy


  • 10-14-2011 11:25 In reply to

    Re: Ideas for Visio stencil based on v16 (and other thoughts)

    Or maybe, Roger, I should resist the temptation to throw a pop-up at the user.... They never got one using the "adjustable-arity" fact type shape; and why start now? So maybe try the attached version instead...

    Thanks,

    Andy


  • 10-14-2011 12:07 In reply to

    Re: Ideas for Visio stencil based on v16 (and other thoughts)

    I finally took some time to try these out. The functionality to add or remove Roles from a Fact Type is very nice. I like it. Definitely the direction I was thinking. Here are some things that struck me while I was trying out these two files.

    • The pop-up message is really annoying. I am glad you took it out in the second version :-)
    • On the other hand, the reason the pop-up is there is to tell the user that connections could have been broken. This brings up the obvious solution: don't break them :-)
    • Incrementing and decrementing the number of roles by one is reasonable, especially if the stencil contains an assortment of Fact Types with different starting numbers of Roles. I can't imagine that one would ever need to add two or more Roles frequently enough to be bothered by this.
    • If I had a choice between not having this capability, or having the capability and having to reconnect everything when changing the arity, I would probably still choose to have the functionality to change the arity.
    • You mentioned that the adjustable-arity shape does not have a pop-up. I don't think the adjustable-arity shape disconnects anything when changing the arity, either. All the connection points are available even when it is only showing a few roles. At least that's how it worked just now.

    So with that in mind, I thought about how this might work in an ideal shape. Some ideas I had were:

    • Click through until a role box is selected, then right-click. The menu would show "Add Role to left" and "Add Role to right", same for "Remove" Role. The menus would be inactive depending on which Role box was selected (cannot remove a Role to the left of the left end, for example).
    • Knowing where the new role is going to be added, or which role is going to be removed, it may be possible to predictably insert or remove connection points in a way that preserves connections, and does so in a reasonable way.
    • If clicking through to a Role box is a problem, then even having "Add[Remove] Role at left[right] end" gives some predictability to what is going to happen to the shape and its connection points.
    • Alternately, how about a pop-up dialog with the question, "Insert Role at position..." or "Remove Role at position" where position 0 means before the left end for inserts.

    Just some ideas. I really like the idea of adding and removing roles, and it works really well in these shapes. This is WAY beyond anything I have ever done with Shape Sheets!

  • 10-30-2011 2:48 In reply to

    Re: Ideas for Visio stencil based on v16 (and other thoughts)

    Hi Roger,

    Thanks for the feedback. I was away in Greece for a week, then catching up, or I would have replied sooner.

       As for clicking thru to the Roles, I've asked a few people, and this seems to be preferred, and of course NORMA works in a similar way. I will try to set it up like that. How does this sound: for binaries or bigger, you have on each role's context menu three new items:

    -- Add a role [to the left of / below] this role   --(I'd try to get this wording to adjust appropriately and automatically)

    -- Add a role [to the right of / above] this role

    -- Remove this role

    For a unary, you'd have just the first two of these.

       I'll assume for the moment that's all doable. My question now is, how do we want the connections to behave? (BTW, yes it's true, the "adjustable" f.t.s don't lose connections, whether you add or subtract roles. That's because the roles are all there, hidden or shown. But that leaves all the connection points active; which is what we're trying to avoid, by taking a different approach. Unfortunately, in this new approach we have to decide, and specify, each connection we want to be there post-adjustment :-/ This approach is doable only with VB, not with shape-sheets...)

       There are connection-points at certain positions around the role-boxes: some are the usual, mid-side points for role-connectors. There are connection-points at the corners of role-boxes, also, where two role-boxes meet. (External constraints might connect there.) And we've got rows of connection-points for internal uniqueness constraints: 4 rows for a quaternary f.t. or bigger, 3 rows for a ternary, and 1 row for a binary (0 rows for a unary. So, we lose some internal-UC-connection-points when removing roles from a quaternary or smaller.) How about this behavior:

     

    -- When adding a role, retain all the internal-U.C. connections on the roles already there. (This may, of course, cause a U.C. to span the new role when the user dis\d not intend that... but I think less often than not.)

    -- Also when adding a role, keep all connections to the existing role-boxes, except for these situations:

    ---- Connections to the corner of a role-box should not be retained when a role has been inserted between this role and the other that was sharing that corner

    ---- Connections to an "end" of the fact type must be moved, if that connection-point was eliminated by adding a role-box to that end; in this situation, the connector must be moved to the top or bottom mid-point of its role-box

     

    -- When removing a role, re-glue things to connection-points retained; don't re-glue anything that was glued to a connection-point now lost. Connections to a role-corner that was shared with a role now removed, should *not* be re-glued.

       Does this sound reasonable? Any cases that it doesn't cover? Any other suggestions for improvement?

    Many thanks,

    Andy

  • 11-12-2011 9:10 In reply to

    Re: Ideas for Visio stencil based on v16 (and other thoughts)

    Hi Roger,

     The attached "test drive" is pursuant to the hypothetical requirements I listed in the last message. Please see how well you think this fills the bill, and let me know if you find any bugs.

       However, I do hope you're using a version later than Visio 2002: a bug in that version prevents the new code from working. It does work on 2003 and later. There's no way around that bug, given the approach I'm taking here (see earlier message)...

    Many thanks,

    Andy


  • 11-14-2011 8:59 In reply to

    Re: Ideas for Visio stencil based on v16 (and other thoughts)

    I am on Visio 2010, so no problems with the bug in v2002.

    The shapes work really well. I like that the menus change depending on the orientation. Having used it now, it was a little obscure to have to select the role in order to see the menus to add and remove Roles, but I can't think of any way to make that work more intuitively. Once I got the feel for it, it was very quick and easy to add and remove Roles.

    I see how connectors connected to Roles that are removed are left hanging. That seems reasonable. Visio does not have a visual indication that connector ends are not connected until you select the connector, so that could be a source of confusion. However, I think if one is removing a Role, then it makes sense that one would also be moving or removing the connectors that were attached to the removed Role. The same observation applies to uniqueness constraints and other constraints.

    When adding a new Role to the end of a Fact Type which already has a connector, I like how the existing connector is moved from the end Connection Point to the top or bottom Connection Point (in the horizontal orientation) on that Role.

    I think it works quite well and would be a feature I would use frequently as it is right now. As usual, awesome job! Thanks for adding the new functionality.

  • 11-15-2011 8:32 In reply to

    Re: Ideas for Visio stencil based on v16 (and other thoughts)

    Hi Roger,

    Thanks -- as usual -- for your thoughtful, helpful comments. I've now added one more thing, the lack of which hopefully you didn't notice: role-level arity-change in (also) the "adjustable" fact-type shapes (complementing, not replacing, their fact-type-level menu). This addition makes the experience of this feature basically seamless. Look for v18 soon -- thanks again to your inspiring, incisive requests and feedback.

    Best regards,

    Andy

  • 11-15-2011 13:41 In reply to

    Re: Ideas for Visio stencil based on v16 (and other thoughts)

    No problem. I am blatantly selfish in my desire for the changes :) But I am also sincerely grateful that you took the time to make them.
  • 11-20-2011 2:42 In reply to

    Re: Ideas for Visio stencil based on v16 (and other thoughts)

    Dear all,

    Please note that version 18 of ORM2_Draw2 is up and available:

    http://www.ormfoundation.org/files/folders/visio_stencils/entry2862.aspx

    Cheers,

    Andy

    Filed under:
  • 11-22-2011 20:15 In reply to

    Re: Ideas for Visio stencil based on v16 (and other thoughts)

    Hi Roger,

    If you were the first to download version 18, would you please re-download? Since that download, I found and fixed a bug in the code that re-glues connections made to the (nested) entity types. My apologies for this, I thought it would be better to go ahead and fix this and re-upload as version 18, rather than make a new version right now.

    Many thanks,

    Andy

  • 11-22-2011 21:09 In reply to

    Re: Ideas for Visio stencil based on v16 (and other thoughts)

    Believe it or not, I was not the first one to down load it. I have been working on other projects and have not yet taken the time to install it--but it looks like fate smiled upon me :)
  • 12-07-2011 23:03 In reply to

    Re: Ideas for Visio stencil based on v16 (and other thoughts)

    Hi Roger,

    Well, "fate", which smiled upon you, has indeed played some funny games with version 18: I just discovered that the final version of the unary f.t. shape did not find its way into version 18, somehow. This has now precipitated version 20.

    Cheers,

    Andy

  • 12-08-2011 9:38 In reply to

    Re: Ideas for Visio stencil based on v16 (and other thoughts)

    Thanks! I'll grab that version in just a minute :)
Page 2 of 2 (28 items) < Previous 1 2
© 2008-2014 The ORM Foundation: A UK not-for-profit organisation -------------- Terms of Service