void Service_GetMapDataCompleted(StarMap result) { StarMap = result; StarMap.Initialize(); MapCanvas.Children.Clear(); // add bodies and orbits to canvas foreach (var star in StarMap.CelestialObjects.Where(o => o.CelestialObjectType == CelestialObjectType.Star)) { var starIcon = new StarIcon(star, this); MapCanvas.Children.Add(starIcon); MapCanvas.Children.Add(new OrbitIcon(starIcon, this)); ProcessSatellites(starIcon, StarMap.CelestialObjects); } MapIcons = MapCanvas.Children.OfType <IMapIcon>().Where(icon => icon.Body != null).ToDictionary(icon => icon.Body.CelestialObjectID); // add links to canvas foreach (var link in result.ObjectLinks) { var linkIcon = new LinkIcon(MapIcons[link.FirstObjectID].Body, MapIcons[link.SecondObjectID].Body, this); MapCanvas.Children.Add(linkIcon); } // add transits to canvas foreach (var transit in e.Result.Transits) { MapCanvas.Children.Add(new TransitIcon(transit, this)); } PlanetTree.ItemsSource = e.Result.CelestialObjects.Where(body => body.OrbitNestingLevel == 0); }
public TextViewHolder(View itemView, Action <MesClickEventArgs> clickListener, Action <MesClickEventArgs> longClickListener, bool showName) : base(itemView) { try { MainView = itemView; LytParent = itemView.FindViewById <LinearLayout>(Resource.Id.main); BubbleLayout = itemView.FindViewById <LinearLayout>(Resource.Id.bubble_layout); AutoLinkTextView = itemView.FindViewById <AutoLinkTextView>(Resource.Id.active); Time = itemView.FindViewById <TextView>(Resource.Id.time); Seen = itemView.FindViewById <TextView>(Resource.Id.seen); StarImage = itemView.FindViewById <ImageView>(Resource.Id.fav); StarImage.Visibility = ViewStates.Gone; StarIcon = itemView.FindViewById <LottieAnimationView>(Resource.Id.starIcon); StarIcon.Progress = 0; StarIcon.CancelAnimation(); StarIcon.Visibility = ViewStates.Gone; UserName = itemView.FindViewById <TextView>(Resource.Id.name); if (UserName != null) { UserName.Visibility = showName ? ViewStates.Visible : ViewStates.Gone; } itemView.Click += (sender, args) => clickListener(new MesClickEventArgs { View = itemView, Position = AdapterPosition, Type = TypeClick.Text }); AutoLinkTextView.LongClick += (sender, args) => longClickListener(new MesClickEventArgs { View = itemView, Position = AdapterPosition, Type = TypeClick.Text }); itemView.LongClick += (sender, args) => longClickListener(new MesClickEventArgs { View = itemView, Position = AdapterPosition, Type = TypeClick.Text }); } catch (Exception e) { Console.WriteLine(e + "Error"); } }