|v tweet impact avatars profiles edge timeUnanswered container dummyData titule | dummyData := Dictionary new. dummyData at: 'retweets' put: 5; at: 'reach' put: '20k'. tweet := Tweet new. tweet scrapDataFromUrl: 'https://twitter.com/offrayLC/status/599196718152949760'. timeUnanswered := (Date today - tweet date) days. "Impact box" impact := RTBox new color: (Color red); size: 200. impact := impact element @ RTDraggable. impact translateBy: (timeUnanswered*50)@0. "The Tweet" titule := RTBox new color: (Color transparent); size: 200. titule := titule element @ RTDraggable. titule translateBy: (timeUnanswered*25)@300. "Create profiles collecting information for all users mentioned in the tweet" profiles := OrderedCollection new. tweet mentions do: [:eachMention | profiles add: (TwitterProfile new scrapDataFromProfile: eachMention)]. "Avatars ========= Use the profiles to create a collection of avatar images which are draggable elements on a view" avatars := OrderedCollection new. profiles do: [:eachProfile | avatars add: (RTBitmap new form: eachProfile avatar) element @ RTDraggable ]. RTCircleLayout new initialRadius: (avatars size)*70; on: avatars. container := (RTBox new color: Color transparent) element @ RTDraggable. RTNest new on: container nest: avatars. "Line" edge := RTEdge from: container to: impact. "Adding objects to the view, except avatars" v := RTView new. v add: impact. v add: (edge + (RTGradientColoredLine new colors: (Array with: (Color white alpha:0.3) with: (Color red alpha:0.9)); precision: 100; width: 20; gradientColorShape)). "Adding labels" edge @ (RTLabelled new text: [ :value | timeUnanswered asString, ' dias en silencio']; fontSize: timeUnanswered * 2.5; color: Color black ). impact @ (RTLabelled new text: (((dummyData at: 'retweets') asString), ' Retweets'); fontSize: timeUnanswered * 2; color: Color gray). impact @ (RTLabelled new text: ((dummyData at: 'reach'), ' seguidores'); fontSize: timeUnanswered * 2; color: Color gray; below). "Adding avatars and its labels" v addAll: avatars. v add: container. 1 to: (avatars size) do: [:i | (avatars at: i) @ (RTLabelled new text: (('@',(tweet mentions at: i))); fontSize: 35; color: (Color black))]. v add: titule. titule @ (RTLabelled new text: ((tweet message text)); fontSize: 35; color: Color black; below; offsetOnEdge: 1 ). "Showing the canvas" v view canvas focusOnCenterScaled. v @ RTDraggableView.