Hi,

I ported the Blueprint Complexity visualization (that is the tree of blueprints for several classes), and in the process I discovered a bug with nesting positioning (see the attachment).

Here is how to reproduce:
((MoosePharoImporterTask new
importerClass: SmalltalkImporter;
addClasses: RBLiteralNode withAllSubclasses;
run) allClasses entityNamed: RBLiteralNode mooseName) withSubclassHierarchyGroup viewBlueprintComplexity

Can anyone help? Alex?

Cheers,
Doru


Inline image 1

On Fri, Oct 3, 2014 at 7:02 AM, Tudor Girba <tudor@tudorgirba.com> wrote:
Ahh, I still found some problems:

1. The smaller layer will still stretch the inner nodes. This is because we use on:nest:. I tried to replace it with onResizable:nest:, but that does not resize the parent node. So, in the end, I explicitly called 
RTNest new 
centerOn: layer key elements: layer value;
makeElements: layer value draggableBy: layer key

It's not elegant, but it works. I still do not quite understand the different nesting semantics. I believe it would be better if all these various actions would be separate subclasses of RTNest.


2. The layout is not working. I do not quite understand why yet. To reproduce the problem easily, you can do:

(MoosePharoImporterTask new
importerClass: SmalltalkImporter;
addClasses: {RBProgramNode};
run) allModelClasses first viewBlueprint

you will see that in the implementation layer, some node are stacked upon each other.

Cheers,
Doru



On Fri, Oct 3, 2014 at 12:04 AM, Alexandre Bergel <alexandre.bergel@me.com> wrote:
Cool!

Alexandre


On Oct 2, 2014, at 4:37 PM, Tudor Girba <tudor@tudorgirba.com> wrote:

> Great!
>
> Yuppee,
> Doru
>
> On Thu, Oct 2, 2014 at 5:06 PM, Alexandre Bergel <alexandre.bergel@me.com> wrote:
> Hi!
>
> I had a bug in Trachel, which I’ve just fixed.
> I have committed Moose-RoassalPaintings
>
> Apparently the blueprint works well now. Can you double check please?
>
> Alexandre
>
>
> On Oct 2, 2014, at 11:42 AM, Tudor Girba <tudor@tudorgirba.com> wrote:
>
> > I saw that it changes the size. I also saw that it is possible to use onResizable:nest:.
> >
> > I tried this in viewBlueprintOn:, but it does not quite work:
> >       layers
> >               do: [ :layer |
> >                       RTHorizontalTreeLayout new leftGap: 20; topGap: 20; horizontalGap: 20; layered; on: layer value.
> >                       RTNest new onResizable: layer key nest: layer value. ].
> >       TRConstraint use: (layers collect: #key) first alignFromTop: (layers collect: #key).
> >       TRConstraint setAllToMaxHeight: (layers collect: #key).
> >
> >
> > Cheers,
> > Doru
> >
> >
> >
> > On Thu, Oct 2, 2014 at 4:40 PM, Tudor Girba <tudor@tudorgirba.com> wrote:
> > FAMIXType>>viewBlueprintOn:
> >
> > Doru
> >
> > On Thu, Oct 2, 2014 at 4:37 PM, Alexandre Bergel <alexandre.bergel@me.com> wrote:
> > Hi Doru,
> >
> > I can have a look at it.
> > But where? Which packages are we talking about? Where should I look in FAMIXType?
> >
> > Cheers,
> > Alexandre
> >
> >
> > On Oct 2, 2014, at 2:38 AM, Tudor Girba <tudor@tudorgirba.com> wrote:
> >
> > > Hi,
> > >
> > > I gave it a shot at reimplementing the class blueprint on top of Roassal 2. It almost works. The implementation is still found in FAMIXType and it relies directly on RTView. I did not create a builder for it.
> > >
> > > However, we still have one problem: aligning the size of the layers does not work yet. Take a look at the attached screenshots (the first is without resize and the second one is with).
> > > It looks like
> > >      TRConstraint setAllToMaxHeight:
> > > has a problem when dealing with nested nodes.
> > >
> > > There were other cumbersome things that I stumbled across in the process, but I could go around them (I will follow with other emails on those issues later). I think it starts to be pretty cool :)
> > >
> > > Alex, could you take a look?
> > >
> > >
> > >
> > > <blueprint-no-stretch.png>
> > >
> > > <blueprint-stretch.png>
> > >
> > >
> > >
> > > On Wed, Oct 1, 2014 at 2:26 PM, Alexandre Bergel <alexandre.bergel@me.com> wrote:
> > > Ok, let me know
> > >
> > > Alexandre
> > >
> > > Le 30-09-2014 à 22:12, Tudor Girba <tudor@tudorgirba.com> a écrit :
> > >
> > >> It looks quite promising. I will try to look into it. Let's synchronize over the mailing list.
> > >>
> > >> Cheers,
> > >> Doru
> > >>
> > >> On Wed, Oct 1, 2014 at 12:18 AM, Alexandre Bergel <alexandre.bergel@me.com> wrote:
> > >> Hi!
> > >>
> > >> Sorry for being late. Yesterday has been a busy day.
> > >> I have worked on:
> > >>      TRConstraint>> setAllToMaxHeight:
> > >>      TRConstraint>> setAllToMaxWidth:
> > >>      TRConstraint>> use:alignFromBottom:
> > >>      TRConstraint>> use:alignFromTop:
> > >>
> > >> Here is an example, and its screenshot:
> > >> <Screen Shot 2014-09-30 at 3.04.36 PM.png>
> > >>
> > >> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> > >> v := RTView new.
> > >> v @ RTDraggableView.
> > >> shape := RTBox new
> > >>      color: Color transparent;
> > >>      borderColor: Color black;
> > >>      size: #numberOfMethods.
> > >> es := shape elementsOn: (RTShape withAllSubclasses copyWithout: RTSVGPath).
> > >> es @ RTDraggable.
> > >>
> > >>
> > >> RTHorizontalLineLayout new gapSize:0; on: es.
> > >> v addAll: es.
> > >>
> > >> v addMenu: 'reset' callback: [
> > >>      es updateShape.
> > >>      v signalUpdate ].
> > >>
> > >>
> > >> v addMenu: 'max' callback: [
> > >>      TRConstraint setAllToMaxHeight: es.
> > >>      v signalUpdate ].
> > >>
> > >> v addMenu: 'up' callback: [
> > >>      TRConstraint use: es first alignFromTop: es.
> > >>      v signalUpdate ].
> > >>
> > >> v addMenu: 'down' callback: [
> > >>      TRConstraint use: es first alignFromBottom: es.
> > >>      v signalUpdate ].
> > >>
> > >> v.
> > >> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> > >>
> > >> Does this help?
> > >>
> > >> Cheers,
> > >> Alexandre
> > >>
> > >>
> > >> On Sep 29, 2014, at 6:33 AM, Yuriy Tymchuk <yuriy.tymchuk@me.com> wrote:
> > >>
> > >>> Then you start and I’ll help if you make it available somewhere. I’m a bit busy with university stuff…
> > >>>
> > >>> Uko
> > >>>
> > >>>> On 29 Sep 2014, at 15:18, Alexandre Bergel <alexandre.bergel@me.com> wrote:
> > >>>>
> > >>>> Hi!
> > >>>>
> > >>>> This is something I wanted to do for long. This is a simple method to add in TRConstraint I believe.
> > >>>> Uko, are you working on this? I can find a few minutes today for this
> > >>>>
> > >>>> Alexandre
> > >>>>
> > >>>> Le 28-09-2014 à 22:10, Tudor Girba <tudor@tudorgirba.com> a écrit :
> > >>>>
> > >>>>> Hi,
> > >>>>>
> > >>>>> I would need help for reimplementing the Class Blueprint. The challenge here is to get the ability to set the height of the boxes to be based on the maximum height of any of the sybling boxes.
> > >>>>>
> > >>>>> Who can help?
> > >>>>>
> > >>>>> Cheers,
> > >>>>> Doru
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>> --
> > >>>>> www.tudorgirba.com
> > >>>>>
> > >>>>> "Every thing has its own flow"
> > >>>>> _______________________________________________
> > >>>>> Moose-dev mailing list
> > >>>>> Moose-dev@iam.unibe.ch
> > >>>>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
> > >>>> _______________________________________________
> > >>>> Moose-dev mailing list
> > >>>> Moose-dev@iam.unibe.ch
> > >>>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
> > >>>
> > >>> _______________________________________________
> > >>> Moose-dev mailing list
> > >>> Moose-dev@iam.unibe.ch
> > >>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
> > >>
> > >> --
> > >> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> > >> Alexandre Bergel  http://www.bergel.eu
> > >> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
> > >>
> > >>
> > >>
> > >>
> > >> _______________________________________________
> > >> Moose-dev mailing list
> > >> Moose-dev@iam.unibe.ch
> > >> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
> > >>
> > >>
> > >>
> > >>
> > >> --
> > >> www.tudorgirba.com
> > >>
> > >> "Every thing has its own flow"
> > >> _______________________________________________
> > >> Moose-dev mailing list
> > >> Moose-dev@iam.unibe.ch
> > >> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
> > >
> > > _______________________________________________
> > > Moose-dev mailing list
> > > Moose-dev@iam.unibe.ch
> > > https://www.iam.unibe.ch/mailman/listinfo/moose-dev
> > >
> > >
> > >
> > >
> > > --
> > > www.tudorgirba.com
> > >
> > > "Every thing has its own flow"
> > > _______________________________________________
> > > Moose-dev mailing list
> > > Moose-dev@iam.unibe.ch
> > > https://www.iam.unibe.ch/mailman/listinfo/moose-dev
> >
> > --
> > _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> > Alexandre Bergel  http://www.bergel.eu
> > ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
> >
> >
> >
> >
> > _______________________________________________
> > Moose-dev mailing list
> > Moose-dev@iam.unibe.ch
> > https://www.iam.unibe.ch/mailman/listinfo/moose-dev
> >
> >
> >
> > --
> > www.tudorgirba.com
> >
> > "Every thing has its own flow"
> >
> >
> >
> > --
> > www.tudorgirba.com
> >
> > "Every thing has its own flow"
> > _______________________________________________
> > Moose-dev mailing list
> > Moose-dev@iam.unibe.ch
> > https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
>
> _______________________________________________
> Moose-dev mailing list
> Moose-dev@iam.unibe.ch
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
>
>
> --
> www.tudorgirba.com
>
> "Every thing has its own flow"
> _______________________________________________
> Moose-dev mailing list
> Moose-dev@iam.unibe.ch
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.




_______________________________________________
Moose-dev mailing list
Moose-dev@iam.unibe.ch
https://www.iam.unibe.ch/mailman/listinfo/moose-dev



--

"Every thing has its own flow"



--
www.tudorgirba.com

"Every thing has its own flow"