Hi Alex,

I've refactored it a bit and created a RPControllable as a descendant of
RTInteraction. You can see it in
http://smalltalkhub.com/#!/~peteruhnak/RoassalPrototypes/
I also moved the >>resetShape method to Roassal's RTEdge as an extension
package. But the way I reset the line remains quite daft.
There's a simple usage example in RPControllable class side and a comment.
Also there may be problems with the fact that I am basically hiding both
shapes of the controlling elements and RTMultiLine. This could be solved
with accessors, but my question is more conceptual - should the interaction
be even responsible for creating those shapes - especially RTMultiLine? But
than again RTLabelled creates Label itself too.

Anyway... off to play with the grid now.

P


On Wed, Aug 13, 2014 at 10:00 AM, Peter Uhnák <i.uh...@gmail.com> wrote:

> It's a bit longer since at the time I was trying to figure how to make it
> work at all, so it's not pretty: http://pastebin.com/5VmFC8cD
> In my adventure to reset the shape I subclassed RTEdge and added a method
> -------------
> REEdge>>resetShape
> trachelShape := shape trachelShapeFor: self.
> -------------
>
> Which wasn't enough since RTElement accepts RTEdge only, so I changed the
> assert to accept subclasses.
>
> ---------------
> RTElement>>addConnectedEdge: anEdge
> [  anEdge isKindOf: RTEdge ] assert.
> self connectedEdges add: anEdge
> --------------
>
> I will refactor it to something like InteractiveMultiLine class however
> I'm not sure if the way it's currently done is even appropriate. It feels
> weird to change all these things from outside rather than from inside. But
> maybe that's just the effect of having it all flat in a workspace. Any
> comments and criticism is more than welcome.
>
> Peter
>
>
> On Wed, Aug 13, 2014 at 2:46 AM, Alexandre Bergel <alexandre.ber...@me.com
> > wrote:
>
>> Again, sorry for the late answer.
>> How do you add a new control point? Using block? What is the code you are
>> using?
>> I just want to make sure your scenario will be covered by the tests.
>>
>> Alexandre
>> --
>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>> Alexandre Bergel  http://www.bergel.eu
>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>
>>
>>
>> On Aug 2, 2014, at 5:29 AM, Peter Uhnák <i.uh...@gmail.com> wrote:
>>
>> Hi Alex,
>>
>> is there a (simple) way to reset element's shape?
>> When I add a new control point to RTMultiLine I need the trachelShape to
>> be updated accordingly, however it is created only once and I don't see any
>> way how to reset it apart from completely removing the element from canvas
>> and recreating it.
>>
>> I tried subclassing RTEdge (and altering RTElement>>addConnectedEdge:
>> assert to isKindOf:) and setting trachelShape to nil, however that wasn't
>> enough anyway since the shape is apparently also stored also elsewhere
>> (TRCanvas I would assume).
>>
>> So do I have to remove it and re-add it or am I missing something?
>>
>> Also, is there some document(atiton) explaining how all the things
>> interact together (Roassal, Trachel, updates, redraws, ...) or is source
>> code the only thing at the moment?
>>
>> Thanks,
>> Peter
>>
>>
>> On Thu, Jul 31, 2014 at 3:22 PM, Alexandre Bergel <
>> alexandre.ber...@me.com> wrote:
>>
>>> > I am familiar with RTBezierLine (I mentioned it in the original
>>> question), but what I was wondering about was whether controllingElements:
>>> should be added to RTMultiLine (so it will be handled internally just like
>>> in BezierLine), or leave it as is and let the user handle it from outside -
>>> as demonstrated by the example I posted.
>>>
>>> Users of the API will decide :-)
>>> The way you are interacting with us is the right way. Keep asking
>>> questions and requesting for new features!
>>>
>>> Alexandre
>>>
>>> >
>>> >
>>> > On Thu, Jul 31, 2014 at 8:24 AM, stepharo <steph...@free.fr> wrote:
>>> > this is cool :)
>>> >
>>> >
>>> > On 30/7/14 20:12, Alexandre Bergel wrote:
>>> >> Hi Peter!
>>> >>
>>> >> I’ve just added the orthogonal vertical and horizontal lines in
>>> Roassal2. Here are some screenshots.
>>> >>
>>> >> <Mail Attachment.png>
>>> >> <Mail Attachment.png>
>>> >>
>>> >> These last script has been made with:
>>> >> -=-=-=-=-=-=-=-=-=-=-=-=
>>> >> | v |
>>> >> v := RTView new.
>>> >>
>>> >> v addAll: ((RTEllipse new size: 20; color: (Color red alpha: 0.3))
>>> elementsOn: (1 to: 20)).
>>> >>
>>> >> shape := RTMultiLine new.
>>> >> shape orthoVertical.
>>> >> shape color: (Color blue alpha: 0.3).
>>> >>
>>> >> RTEdge
>>> >>  buildEdgesFromObjects: (1 to: 20) from: [ :n | n // 3 ] to:
>>> #yourself using: shape inView: v.
>>> >>
>>> >> v elements @ RTDraggable @ RTPopup.
>>> >>
>>> >> RTTreeLayout on: v elements.
>>> >> v open
>>> >> -=-=-=-=-=-=-=-=-=-=-=-=
>>> >>
>>> >> Cheers,
>>> >> Alexandre
>>> >> --
>>> >> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>>> >> Alexandre Bergel  http://www.bergel.eu
>>> >> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>> >>
>>> >>
>>> >>
>>> >> On Jul 26, 2014, at 3:57 PM, Peter Uhnák <i.uh...@gmail.com> wrote:
>>> >>
>>> >>> Hi,
>>> >>>
>>> >>> is there any support for orthogonal lines in Roassal2? I've seen
>>> something similar (ROOrthoVerticalLineShape), however nothing of that sort
>>> in Roassal2. I would imagine it to behave similarly to RTBezierLine -
>>> having controllingElements to specify the corners. (While ROOrtholines did
>>> it automatically I was looking for something more manual, so it can go in
>>> both directions - thus the controllingElements).
>>> >>>
>>> >>> Second thing I wasn't able to figure out is whether it is possible
>>> to create line from element to itself. All *AttachPoint classes aren't
>>> really able to cope with that. The best result I got was from
>>> Vertical/Horizontal AttachPoints (combined with BezierLine), however I
>>> would like to be able to specify which side it would start on and end on.
>>> Ideally not just middle of sides, but arbitrary part of the shape (I
>>> imagine that might be hard for non-rectangular shapes).
>>> >>>
>>> >>> Thanks,
>>> >>> Peter
>>> >>
>>> >
>>> >
>>>
>>> --
>>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>>> Alexandre Bergel  http://www.bergel.eu
>>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>>
>>>
>>>
>>>
>>>
>>
>>
>

Reply via email to