|v tweet impact avatars profiles edge timeUnanswered container dummyData impactData | tweet := Tweet new. tweet scrapDataFromUrl: 'https://twitter.com/offrayLC/status/599196718152949760'. timeUnanswered := (Date today - tweet date) days. "Creation of dummy data" dummyData := Dictionary new. dummyData at: 'retweets' put: '5'; at: 'reach' put: '10k'. impactData := dummyData. "Impact box" impact := RTBox new color: (Color red alpha: 0.3); size: 200. impact := impact element @ RTDraggable. impact translateBy: (timeUnanswered*50)@0. "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)*50; on: avatars. container := (RTBox new color: Color transparent) element @ RTDraggable. RTNest new on: container nest: avatars. "Line" edge := RTEdge from: container to: impact. "Building the view" v := RTView new. v addAll: avatars. v add: container. v add: impact. "Dibujando los textos " impact @ (RTLabelled new text: (((dummyData at: 'retweets') asString), ' Retweets'); fontSize: 45; color: (Color black)). impact @ (RTLabelled new text: ((dummyData at: 'reach'), ' seguidores'); fontSize: 45; below). v add: (edge + (RTGradientColoredLine new colors: (Array with: (Color white alpha:0.3) with: (Color red alpha:0.9)); precision: 100; width: 20; gradientColorShape)). edge @ (RTLabelled new text: [ :value | timeUnanswered asString, ' dias en silencio']; fontSize: timeUnanswered * 2.5; color: (Color black)). v view canvas focusOnCenterScaled.