Page Index Toggle Pages: [1] 2  Send TopicPrint
Hot Topic (More than 10 Replies) Manipulating Cascading arrows (Read 11056 times)
p.hannah
YaBB Newbies
*
Offline


I love YaBB 1G - SP1!

Posts: 38
Joined: Feb 1st, 2006
Manipulating Cascading arrows
Mar 27th, 2006 at 3:30am
Print Post  
I'm not sure this is exactly a bug, more of an annoyance in using the package.

If a cascading arrow is manipulated, specifically the situation that the user wants to make an arrow that currently goes left-down into one that goes down-left, it isn't possible.  Is there some way to allow this functionality?

The only way I can see at the moment is to grab the arrow at one of the links and in effect change a left-down arrow into a tinyleft-down-left-tinydown.  Which looks fine except that the arrow head (and tail if shown) is pointing the wrong direction.

Perhaps this would be OK if those tiny pieces are removed afterwards, leaving only the main parts...

Also, in a similar vein, it isn't possible to create a one-segment cascading arrow.  I need to be able to import a drawing from a different package that has all arrows cascading but some non-connected at one end, and they are simply a single leftward line.  I would like to be able to import these as they are and then let the user manipulate the arrow to link it to a node.

Thanks.
  
Back to top
 
IP Logged
 
Stoyo
God Member
*****
Offline


MindFusion support

Posts: 13230
Joined: Jul 20th, 2005
Re: Manipulating Cascading arrows
Reply #1 - Mar 27th, 2006 at 6:09am
Print Post  
Try setting the arrow's starting orientation. For example if you want the arrow to go down first, you should specify Orientation.Vertical. The following code illustrates this.

Code
Select All
arrow.PrpStartOrientation = MindFusion.FlowChartX.Orientation.Vertical;
arrow.UpdateFromPoints(); 



You cannot create 1-segmented cascading arrows, but you can create a 2-segmented arrow and make sure its last two points coincide. The following code creates a box and a cascading arrow that goes on the left of it:

Code
Select All
Box b = flowChart.CreateBox(20, 20, 20,20);
Arrow a = flowChart.CreateArrow(b, new PointF(10, 30));
a.SegmentCount = 2;
a.Style = ArrowStyle.Cascading; 



Stoyo
  
Back to top
 
IP Logged
 
p.hannah
YaBB Newbies
*
Offline


I love YaBB 1G - SP1!

Posts: 38
Joined: Feb 1st, 2006
Re: Manipulating Cascading arrows
Reply #2 - Mar 27th, 2006 at 7:37am
Print Post  
OK,

Is it possible to have this happen automaticaly?

I.e. if the cascading arrow is dragged so that it snaps to the right-side of a node, then the initial orientation is left, etc.
  
Back to top
 
IP Logged
 
Stoyo
God Member
*****
Offline


MindFusion support

Posts: 13230
Joined: Jul 20th, 2005
Re: Manipulating Cascading arrows
Reply #3 - Mar 27th, 2006 at 8:43am
Print Post  
Ok, we can make Dynamic + Cascading arrows change their initial orientation automatically.
  
Back to top
 
IP Logged
 
p.hannah
YaBB Newbies
*
Offline


I love YaBB 1G - SP1!

Posts: 38
Joined: Feb 1st, 2006
Re: Manipulating Cascading arrows
Reply #4 - Mar 27th, 2006 at 9:48am
Print Post  
Fantastic, thanks.
  
Back to top
 
IP Logged
 
p.hannah
YaBB Newbies
*
Offline


I love YaBB 1G - SP1!

Posts: 38
Joined: Feb 1st, 2006
Re: Manipulating Cascading arrows
Reply #5 - Mar 27th, 2006 at 10:12pm
Print Post  
Won't a 1-segment arrow emulated by a 2-segmented arrow with two last points coinciding create an arrow look like:

________________V

(i.e. the actual last segment (v.small/zero length) will actually be pointing down/up and the arrowhead/tail will show in the wrong direction.)

  
Back to top
 
IP Logged
 
Stoyo
God Member
*****
Offline


MindFusion support

Posts: 13230
Joined: Jul 20th, 2005
Re: Manipulating Cascading arrows
Reply #6 - Mar 28th, 2006 at 8:02am
Print Post  
I think the control will use the direction of the segment next to the last one if the last one has zero- length.
  
Back to top
 
IP Logged
 
p.hannah
YaBB Newbies
*
Offline


I love YaBB 1G - SP1!

Posts: 38
Joined: Feb 1st, 2006
Re: Manipulating Cascading arrows
Reply #7 - Apr 3rd, 2006 at 8:07am
Print Post  
I've been asking our alpha-test users and the biggest complaint they've got is manipulating the cascading links.

Some of the things they're coming back to us with are:

* They expect grabbing the control point of a left-down arrow and dragging it to the other corner should reverse the direction and make it a down-left arrow.

* When there are excess control points, moving two onto the same place should either make them into one or remove them altogether if appropriate (e.g. when left-down-left becomes left-.-left.)  This seems to happen sometimes when the links are _exactly_ over the top of each other, but with snap-to-grid enabled, it isn't actually possible to do that to arrows that aren't already on the grid.

I've been thinking it through and I'm not sure what the best way to handle cascading arrow manipulation, but the response I'm getting is that the current system isn't very intuitive and leaves them frustrated trying to make the arrow do what they want.

Thanks.
  
Back to top
 
IP Logged
 
Stoyo
God Member
*****
Offline


MindFusion support

Posts: 13230
Joined: Jul 20th, 2005
Re: Manipulating Cascading arrows
Reply #8 - Apr 3rd, 2006 at 12:32pm
Print Post  
The AllowSplitArrows feature also lets you merge control points. We can add a threshold property that lets you define the distance between control points at which they are merged.
  
Back to top
 
IP Logged
 
p.hannah
YaBB Newbies
*
Offline


I love YaBB 1G - SP1!

Posts: 38
Joined: Feb 1st, 2006
Re: Manipulating Cascading arrows
Reply #9 - Apr 3rd, 2006 at 12:46pm
Print Post  
That'll definitely help.
  
Back to top
 
IP Logged
 
p.hannah
YaBB Newbies
*
Offline


I love YaBB 1G - SP1!

Posts: 38
Joined: Feb 1st, 2006
Re: Manipulating Cascading arrows
Reply #10 - Apr 5th, 2006 at 1:21am
Print Post  
Stoyo,

Is it possible to be able to give my people some indication of when the threshold for combining points and the automatic orientation going to be released?

Thanks.
  
Back to top
 
IP Logged
 
p.hannah
YaBB Newbies
*
Offline


I love YaBB 1G - SP1!

Posts: 38
Joined: Feb 1st, 2006
Re: Manipulating Cascading arrows
Reply #11 - Apr 6th, 2006 at 6:59am
Print Post  
Stoyo,

I've been doing some testing and extensive discussion with out users over the last day or so.  I thought I'd just drop a quick note to point out the most common comments/issues we've had mentioned to us relating to the links:

* when the user drags a control point they expect it to do _something_, even if it's not the prettiest result.  It's difficult for a user to intuitively understand that to break the link up they need to drag from a line, they go for the control point automatically.

* The idea of coinciding control points being removed is great, but one are this doesn't seem to work well is when the end point is snapped-to, at which point the snap-to point isn't on the grid so the two end control points aren't exactly coinciding and the arrow ends up with an weird arrowhead/tail that is conspicuously wrong.

* It is true that a one-segment arrow can be faked by a two-segment arrow with two control points over each other.  There are problem with this however, in addition to the end-point snap-to issue above, that once this is done the arrow is no longer able to be manipulated from that end.  I'm assuming the internal logic is that the middle point is higher in the z-order and it can't be moved (see first point) because to do that would either break the link/s or move the end-point.

* There were many requests that it should be default behaviour that the start and end points are defined as close as possible to be 'away' from the edge of the object.  I'm not sure how this would be acheived, but playing with other packages like Visio give some idea of a workable method for handling this.

Hope that clears up the issue a bit.

Thanks for the help so far,
Paul.
  
Back to top
 
IP Logged
 
Stoyo
God Member
*****
Offline


MindFusion support

Posts: 13230
Joined: Jul 20th, 2005
Re: Manipulating Cascading arrows
Reply #12 - Apr 6th, 2006 at 3:59pm
Print Post  
Hi,

Could you elaborate on the first and last points,

* when the user drags a control point they expect it to do _something_, even if it's not the prettiest result.

do you refer to the middle point in 2-segment cscading arrows ? it's the only one I can't think of that would not do anything when dragged. If so, I guess it will be easy to add new segments there.


* There were many requests that it should be default behaviour that the start and end points are defined as close as possible to be 'away' from the edge of the object.  I'm not sure how this would be acheived, but playing with other packages like Visio give some idea of a workable method for handling this.

I don't get this Embarrassed What do you mean by having the end points away from the edges by default ?

Stoyan
  
Back to top
 
IP Logged
 
p.hannah
YaBB Newbies
*
Offline


I love YaBB 1G - SP1!

Posts: 38
Joined: Feb 1st, 2006
Re: Manipulating Cascading arrows
Reply #13 - Apr 7th, 2006 at 12:50am
Print Post  
Sorry for being a bit vague there.

Yes, the two-segment cascading is exactly the case we're dealing with, and the user expectation is that the control point will follow the mouse pointer in a drag where it now resolutely refuses to do so -- adding segments is the only choice I can think of.

I'll try to explain the last one in a bit more detail.  I would like the link to do what it can where appropriate to make sure that if a link is snapped-to the edge of an item at source and destination, that both of those first and last segments are 'awa'y from the edge of the item.  So if a user rags the start of a unconnected link and lets it snap on the bottom edge of an item, then the first segment should be automatically down.  Then if they drag the end of that same arrow and snap it to the right of another item, the link should finish with a right direction segment, even if requiring adding segments.

I hope that last makes sense.  To be honest I'm still trying to work out how the best way to handle these situations -- and no package I've tried seems to do this perfectly (there probably isn't an ideal method) but Visio seems to handle things in a reasonably effective way, so much so that almost every comment I've gotten back is 'could we make it work just like visio does it...'

Thanks again,
Paul.
  
Back to top
 
IP Logged
 
Stoyo
God Member
*****
Offline


MindFusion support

Posts: 13230
Joined: Jul 20th, 2005
Re: Manipulating Cascading arrows
Reply #14 - Apr 7th, 2006 at 9:34am
Print Post  
Ok, thanks for the explanation. The developers expect they will implement these improvements next week.

Stoyan
  
Back to top
 
IP Logged
 
Page Index Toggle Pages: [1] 2 
Send TopicPrint