| v tweet timeUnanswered diameter silenceCircle silenceCircle2 silenceCircle3 dummyData dummyData2 dummyData3 impactData impactData2 impactData3 avatars profiles edge edge2 edge3 container | tweet := Tweet new. tweet scrapDataFromUrl: 'https://twitter.com/offrayLC/status/599196718152949760'. timeUnanswered := (Date today - tweet date) days. "Create profiles collecting information for all users mentioned in the tweet" profiles := OrderedCollection new. tweet mentions do: [:eachMention | profiles add: (TwitterProfile new scrapDataFromProfile: eachMention)]. "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. "Creation of dummy data" dummyData := Dictionary new. dummyData at: 'retweeters' put: '5'; at: 'reach' put: '10k'. impactData := dummyData. dummyData2 := Dictionary new. dummyData2 at: 'retweeters' put: '7'; at: 'reach' put: '40k'. impactData2 := dummyData2. dummyData3 := Dictionary new. dummyData3 at: 'retweeters' put: '9'; at: 'reach' put: '80k'. impactData3 := dummyData3. "Creating the view and adding elements to it" v := RTView new. diameter := 75 "+ (timeUnanswered*10)". silenceCircle := Tweet new labeledCircleSized: diameter upperLabel: (impactData at: 'retweeters') bottomLabel: (impactData at: 'reach') inView: v. silenceCircle @ RTDraggable. avatars do: [:avatar | v add: avatar]. silenceCircle translateBy: 500@0. diameter := 80 "+ (timeUnanswered*10)". silenceCircle2 := Tweet new labeledCircleSized: diameter upperLabel: (impactData at: 'retweeters') bottomLabel: (impactData2 at: 'reach') inView: v. silenceCircle2 @ RTDraggable. avatars do: [:avatar | v add: avatar]. silenceCircle2 translateBy: 600@0. diameter := 80 "+ (timeUnanswered*10)". silenceCircle3 := Tweet new labeledCircleSized: diameter upperLabel: (impactData at: 'retweeters') bottomLabel: (impactData3 at: 'reach') inView: v. silenceCircle3 @ RTDraggable. avatars do: [:avatar | v add: avatar]. silenceCircle3 translateBy: 600@0. edge := RTEdge from:(avatars at: 1) to: silenceCircle. v add: (edge + (RTGradientColoredLine new colors: (Array with: (Color blue alpha:0.3) with: (Color red alpha:0.9)); precision: 100; gradientColorShape)). edge2 := RTEdge from:(avatars at: 1) to: silenceCircle2. v add: (edge2 + (RTGradientColoredLine new colors: (Array with: (Color blue alpha:0.3) with: (Color red alpha:0.9)); precision: 100; gradientColorShape)). edge3 := RTEdge from:(avatars at: 1) to: silenceCircle3. v add: (edge3 + (RTGradientColoredLine new colors: (Array with: (Color blue alpha:0.3) with: (Color red alpha:0.9)); precision: 100; gradientColorShape)). v addAll: avatars. v add: container. v view canvas focusOnCenterScaled.