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);
        }
Example #2
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");
                }
            }