Hi Hannes!

Here is a first shoot paired-programmed with Juraj using Roassal:

-=-=-=-=-=-=-=-=-=-=-=-=
b := RTTimeLine new.

b addEntry: (RTTimeLineEntry new identifier: #WP1; start: 0; end: 5).
b addEntry: (RTTimeLineEntry new identifier: #WP2; start: 5; end: 8).
b addEntry: (RTTimeLineEntry new identifier: #WP3; start: 7; end: 10).

b axisX numberOfLabels: 5.
b
-=-=-=-=-=-=-=-=-=-=-=-=


Here some slightly more elaborated example:

-=-=-=-=-=-=-=-=-=-=-=-=
“One color per entry"
| b d |
b := RTTimeLine new.
b addEntry: (RTTimeLineEntry new identifier: #c1; start: 0; end: 5).
b addEntry: (RTTimeLineEntry new identifier: #c1; start: 6; end: 8).

b addEntry: (RTTimeLineEntry new identifier: #c2; start: 0; end: 5).
b addEntry: (RTTimeLineEntry new identifier: #c2; start: 8; end: 10).

b addEntry: (RTTimeLineEntry new identifier: #c3; start: 0; end: 10).

b addEntry: (RTTimeLineEntry new identifier: #c4; start: 5; end: 10).

b addEntry: (RTTimeLineEntry new identifier: #c5; start: 5; end: 8).

d := RTVerticalTickLineDecorator new.
d shape line color: Color white.
b addDecorator: d.
b axisX 
numberOfLabels: 5;
labelRotation: -45;
labelConversion: [ :v | Date year: 2015 day: v ]. 

b shape color: (RTMultiLinearColorForIdentity new objects: b entries).
b
-=-=-=-=-=-=-=-=-=-=-=-=


One color per timeline


-=-=-=-=-=-=-=-=-=-=-=-=
| b |
b := RTTimeLine new.
b addEntry: (RTTimeLineEntry new identifier: #c1; start: 0; end: 5).
b addEntry: (RTTimeLineEntry new identifier: #c1; start: 6; end: 8).

b addEntry: (RTTimeLineEntry new identifier: #c2; start: 0; end: 5).
b addEntry: (RTTimeLineEntry new identifier: #c2; start: 8; end: 10).

b addEntry: (RTTimeLineEntry new identifier: #c3; start: 0; end: 10).

b addEntry: (RTTimeLineEntry new identifier: #c4; start: 5; end: 10).

b addEntry: (RTTimeLineEntry new identifier: #c5; start: 5; end: 8).

d := RTVerticalTickLineDecorator new.
d shape line color: Color white.
b addDecorator: d.
b axisX 
numberOfLabels: 5;
labelRotation: -45;
labelConversion: [ :v | Date year: 2015 day: v ]. 

b shape color: (RTMultiLinearColorForIdentity new command: #identifier; objects: #(c1 c2 c3 c4 c5)).
b
-=-=-=-=-=-=-=-=-=-=-=-=

Age of some classes:
-=-=-=-=-=-=-=-=-=-=-=-=
| b |
b := RTTimeLine new.
b extent: 500 @ 500.
((RTShape withAllSubclasses sortedAs: #ageInDaysRounded) select: #hasMethods)
do: [ :cls | 
e := RTTimeLineEntry new.
e identifier: cls.
e start: cls computeYoungestMethod ageInDays.
e end: cls computeOldestMethod ageInDays.
b addEntry: e ].
b
-=-=-=-=-=-=-=-=-=-=-=-=


All these examples are in the Roassal time line example menu.

This is still an early version. Let us know how it goes!
https://www.facebook.com/ObjectProfile/posts/840542572699008

Cheers,
Alexandre

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



On May 7, 2015, at 4:25 PM, H. Hirzel <hannes.hirzel@gmail.com> wrote:

Hello

Has somebody done a GANTT chart?

      GanttChartMorph openOn: aCollectionOfActivities

?

Activities have
- id
- description
- start date
- end date
?

Regards

Hannes