Connectors help needed

Michael Latta lattam at mac.com
Sat Dec 25 06:23:58 UTC 2004


On Dec 24, 2004, at 9:45 PM, Ned Konz wrote:

> On Friday 24 December 2004 7:32 pm, Michael Latta wrote:
>> This could be my code of course.  I have a subclass of
>> NCConstraintMorph.  When I move the morph it is attached to it moves 
>> as
>> expected.  When I drag it it stays where I drop it, even if that is 
>> not
>> where it is constrained to be.
>
> When you drop it, it reconnects or disconnects depending on where you 
> dropped
> it. This is how you reconnect Connectors and move labels.

Currently my shapes are staying connected to the object they were 
attached to, even if dragged outside their space.  Is there something I 
should override to make them attach/detach based on where they are 
dropped?

>
>> When I move the input object, it again
>> moves to where it should be.  Is there something I should be doing to
>> make it truly constrained to the input object?
>
> Sure. Just make it locked so it can't respond to user input.

I want the user to be able to drag the shape.  I just want it to snap 
back if left on the playfield.

>
>> I can see the value in
>> letting it be away from the input during the drag, but when I let go 
>> of
>> it in space, I want it to snap back to the input object.  When I let 
>> go
>> over another object I want it to attach to that object.  The connector
>> ends do something similar to what I want when they are dragged from 
>> one
>> object to another, but they allow themselves to be dropped in empty
>> space, which I do not want.  I will look at the connector end morph 
>> for
>> a clue.
>
> The connector end morphs don't respond to user input; all of the user 
> input is
> grabbed by the connector. Which responds to clicks near its ends as 
> requests
> to grab the end, so it disconnects the end and attaches it to the hand 
> so you
> can drop it elsewhere.

Ok.  I will look there for the connect/disconnect logic.  Thanks.

>
> So are you trying to replace the connector ends or are you trying to do
> something else with the NCConstraintMorph? It sounds like you don't 
> really
> want them grabbable.

I am trying to do Ports.  These are shapes attached to the edges of 
shapes, that then can have connections to them.  I want to be able to 
drag them to different parts of the shape edge they are on, or to the 
edge of a different shape, and have them move to that shape.  If they 
get left in free space, they should snap back.  Possibly they should 
only snap back if within some proximity, or they should provide 
feedback like connection ends do to make it clear if they are 
attaching.  I guess I need to look at the connection more for that 
logic too.

Thanks,
Michael

>
> -- 
> Ned Konz
> http://bike-nomad.com/squeak/
>




More information about the Squeak-dev mailing list