예제 #1
0
        private void InitGrid()
        {
            var students = Attendance.StudentsOfGrade(ClassName);

            InfoStack.Children.Clear();
            InitTeachers();

            //Students
            for (int i = 0; i < students.Count; i++)
            {
                var stream = Attendance.GetStudentPhoto(students[i].Key);

                CircleImage profilePicture = new CircleImage
                {
                    Source = ImageSource.FromStream(() =>
                    {
                        return(stream);
                    }),
                    HeightRequest = 50,
                    WidthRequest  = 50
                };

                if (stream == null)
                {
                    profilePicture = new CircleImage {
                        Source = "blankprofile.png", HeightRequest = 50, WidthRequest = 50
                    };
                }

                profilePicture.HorizontalOptions = LayoutOptions.Center;
                profilePicture.VerticalOptions   = LayoutOptions.Center;

                Label nameLabel = new Label()
                {
                    Text  = students[i].Value,
                    Style = Resources["detailTablet"] as Style
                };
                string birthday = Attendance.GetStudentInfo(students[i].Key)[(int)HymnsAttendance.StudentInfo.BIRTHDAY];

                Label birthdayLabel = new Label()
                {
                    //Text = num.Length == 0 ? "" : "(" + num.Substring(0, 3) + ")-" + num.Substring(3, 3) + "-" + num.Substring(6),
                    Text  = birthday,
                    Style = Resources["detailTablet"] as Style
                };

                int days = Attendance.GetDatesForYear(students[i].Key);

                float  weeks   = DateTime.Now.DayOfYear / 7.0f;
                string percent = ((int)(100 * days / weeks)).ToString() + "%";

                Label attend = new Label()
                {
                    Text  = percent,
                    Style = Resources["detailTablet"] as Style
                };

                SwipeItem editSwipeItem = new SwipeItem
                {
                    Text             = "EDIT",
                    BackgroundColor  = Color.Red,
                    CommandParameter = new Label()
                    {
                        Text = students[i].Key + ";" + students[i].Value, IsVisible = false
                    }
                };
                editSwipeItem.Invoked += SwipeItem_Clicked;

                SwipeItem infoSwipeItem = new SwipeItem
                {
                    Text             = "INFO",
                    BackgroundColor  = Color.Green,
                    CommandParameter = new Label()
                    {
                        Text = students[i].Key + ";" + students[i].Value, IsVisible = false
                    }
                };
                infoSwipeItem.Invoked += InfoSwipeItem_Clicked;

                Grid grid = new Grid()
                {
                    ColumnDefinitions = new ColumnDefinitionCollection()
                    {
                        new ColumnDefinition()
                        {
                            Width = new GridLength(2, GridUnitType.Star)
                        },
                        new ColumnDefinition()
                        {
                            Width = new GridLength(4, GridUnitType.Star)
                        },
                        new ColumnDefinition()
                        {
                            Width = new GridLength(2, GridUnitType.Star)
                        },
                        new ColumnDefinition()
                        {
                            Width = new GridLength(2, GridUnitType.Star)
                        }
                    },
                    RowDefinitions = new RowDefinitionCollection()
                    {
                        new RowDefinition()
                        {
                            Height = new GridLength(70, GridUnitType.Absolute)
                        }
                    },
                    BackgroundColor = Color.White
                };

                grid.Children.Add(profilePicture, 0, 0);
                grid.Children.Add(nameLabel, 1, 0);
                grid.Children.Add(birthdayLabel, 2, 0);
                grid.Children.Add(attend, 3, 0);

                List <SwipeItem> swipeItems = new List <SwipeItem>()
                {
                    editSwipeItem, infoSwipeItem
                };

                SwipeView swipeView = new SwipeView
                {
                    RightItems = new SwipeItems(swipeItems),
                    Content    = grid
                };
                InfoStack.Children.Add(swipeView);
                InfoStack.Children.Add(new BoxView
                {
                    Color             = Color.LightGray,
                    BackgroundColor   = Color.LightGray,
                    HeightRequest     = 0.5,
                    HorizontalOptions = LayoutOptions.FillAndExpand,
                    VerticalOptions   = LayoutOptions.Center
                });
            }
        }