Beispiel #1
0
 private void ChangeLevel(int newLevel, SKTrackElement parent)
 {
     if (newLevel > currentLevel)
     {
         elementsPerLevel.Add(newLevel, GetChildrenForCollectionElement(parent));
     }
     currentLevel = newLevel;
     adapter.NotifyDataSetChanged();
     listView.SetSelection(0);
 }
Beispiel #2
0
        private List <object> GetChildrenForCollectionElement(SKTrackElement parent)
        {
            List <object> children = new List <object>();

            foreach (SKTrackElement childElement in parent.ChildElements)
            {
                if (childElement.Type.Equals(SKTrackElementType.Collection))
                {
                    children.Add(childElement);
                }
            }

            children.AddRange(parent.PointsOnTrackElement);
            return(children);
        }
Beispiel #3
0
            public override View GetView(int position, View convertView, ViewGroup parent)
            {
                View view = null;

                if (convertView == null)
                {
                    LayoutInflater inflater = _context.GetSystemService(Context.LayoutInflaterService) as LayoutInflater;
                    view = inflater.Inflate(Resource.Layout.layout_track_element_list_item, null);
                }
                else
                {
                    view = convertView;
                }
                Button   drawButton = view.FindViewById <Button>(Resource.Id.draw_button);
                TextView text       = view.FindViewById <TextView>(Resource.Id.label_list_item);
                object   item       = _context.elementsPerLevel[_context.currentLevel][position];

                if (item is SKTracksPoint)
                {
                    drawButton.Visibility = ViewStates.Gone;
                    view.FindViewById(Resource.Id.indicator_children_available).Visibility = ViewStates.Gone;
                    SKTracksPoint point = (SKTracksPoint)item;
                    text.Text = "POINT\n(" + point.Latitude + ", " + point.Longitude + ")";
                }
                else if (item is SKTrackElement)
                {
                    drawButton.Visibility = ViewStates.Visible;
                    view.FindViewById(Resource.Id.indicator_children_available).Visibility = ViewStates.Visible;
                    SKTrackElement trackElement = (SKTrackElement)item;
                    string         name         = trackElement.Name;
                    if (string.IsNullOrEmpty(name))
                    {
                        text.Text = trackElement.GPXElementType.ToString();
                    }
                    else
                    {
                        text.Text = name;
                    }

                    drawButton.Click += (s, e) =>
                    {
                        TrackElementsActivity.SelectedTrackElement = trackElement;
                        _context.SetResult(Result.Ok);
                        _context.Finish();
                    };
                }
                return(view);
            }