예제 #1
0
        UIImageView getimagefrombytes(float x, float y, float width, float height, byte[] bytes)
        {
            var image = new UIImageView(new RectangleF(x, y, width, height));
            var img   = MLConstants.BytesToUIImage(bytes);

            if (img != null)
            {
                image.Image = img;
            }
            image.Layer.CornerRadius = image.Frame.Size.Width / 2;
            image.Layer.BorderWidth  = 0.0f;
            image.Layer.BorderColor  = UIColor.White.CGColor;
            image.ClipsToBounds      = true;
            image.SetNeedsDisplay();
            return(image);
        }
예제 #2
0
 void addNewElements(int idx)
 {
     for (int i = idx; i < _learningObjectsList.Count; i++)
     {
         lo_names.Add(_learningObjectsList [i].lo.name);
         var img = new UIImageView(new CGRect(CWidth * i, 0, CWidth, CHeight));
         img.ContentMode = UIViewContentMode.ScaleToFill;
         //img.Image = UIImage.FromFile ("MLResources/default_img.png");
         if (_learningObjectsList [i].cover_bytes != null)
         {
             img.Image = MLConstants.BytesToUIImage(_learningObjectsList [i].cover_bytes);
         }
         _learningObjectsList [i].PropertyChanged += (sender, e) => {
             img.Image = MLConstants.BytesToUIImage(
                 (sender as MLearning.Core.ViewModels.MainViewModel.lo_by_circle_wrapper).cover_bytes);
         };
         _scroll.Add(img);
         lo_label.Text       = lo_names [0].ToUpper();
         _scroll.ContentSize = new CGSize(CWidth * _learningObjectsList.Count, CHeight);
     }
 }
예제 #3
0
        void loadLOsInCircle(int index)
        {
            var vm = ViewModel as LOViewModel;

            if (vm.LOsInCircle != null)
            {
                for (int i = index; i < vm.LOsInCircle.Count; i++)
                {
                    ChapterDataSource newchapter = new ChapterDataSource();
                    newchapter.Title         = vm.LOsInCircle[i].lo.title;
                    newchapter.Author        = vm.LOsInCircle[i].lo.name + "\n" + vm.LOsInCircle[i].lo.lastname;
                    newchapter.Description   = vm.LOsInCircle[i].lo.description;
                    newchapter.ChapterColor  = MLConstants.getUIColor(i % 6, 255);
                    newchapter.TemporalColor = MLConstants.getUIColor(0, 255);
                    // newchapter.BackgroundImage =
                    if (vm.LOsInCircle[i].background_bytes != null)
                    {
                        newchapter.BackgroundImage = MLConstants.BytesToUIImage(vm.LOsInCircle[i].background_bytes);
                    }

                    vm.LOsInCircle[i].PropertyChanged += (s1, e1) =>
                    {
                        if (e1.PropertyName == "background_bytes")
                        {
                            newchapter.BackgroundImage = MLConstants.BytesToUIImage(
                                (s1 as MLearning.Core.ViewModels.LOViewModel.lo_by_circle_wrapper).background_bytes);
                        }
                        //newchapter.BackgroundImage = MLConstants.BytesToUIImage(vm.LOsInCircle[i].background_bytes);
                    };

                    //loading the stacks
                    if (vm.LOsInCircle[i].stack.IsLoaded)
                    {
                        var s_list = vm.LOsInCircle[i].stack.StacksList;
                        for (int j = 0; j < s_list.Count; j++)
                        {
                            SectionDataSource stack = new SectionDataSource();

                            stack.Name = s_list[j].TagName;
                            for (int k = 0; k < s_list[j].PagesList.Count; k++)
                            {
                                var page = new PageDataSource();
                                page.Name        = s_list[j].PagesList[k].page.title;
                                page.Description = s_list[j].PagesList[k].page.description;
                                page.BorderColor = MLConstants.getUIColor(k % 6, 255);

                                /*********************
                                 * if (s_list[j].PagesList[k].cover_bytes != null)
                                 *      page.ImageContent = Constants.ByteArrayToImageConverter.Convert(s_list[j].PagesList[k].cover_bytes);
                                 * s_list[j].PagesList[k].PropertyChanged += (s2, e2) =>
                                 * {
                                 *      if (e2.PropertyName == "cover_bytes")
                                 *              page.ImageContent = Constants.ByteArrayToImageConverter.Convert((s2 as MLearning.Core.ViewModels.LOViewModel.page_wrapper).cover_bytes);//s_list[j].PagesList[k].cover_bytes);
                                 * }; ****************/
                                stack.Pages.Add(page);
                            }
                            newchapter.Sections.Add(stack);
                        }
                    }
                    else
                    {
                        vm.LOsInCircle[i].stack.PropertyChanged += (s3, e3) =>
                        {
                            var s_list = vm.LOsInCircle[i].stack.StacksList;
                            for (int j = 0; j < s_list.Count; j++)
                            {
                                SectionDataSource stack = new SectionDataSource();

                                stack.Name = s_list[j].TagName;
                                for (int k = 0; k < s_list[j].PagesList.Count; k++)
                                {
                                    PageDataSource page = new PageDataSource();
                                    page.Name        = s_list[j].PagesList[k].page.title;
                                    page.Description = s_list[j].PagesList[k].page.description;
                                    page.BorderColor = MLConstants.getUIColor(k % 6, 255);

                                    /*******************
                                     * if (s_list[j].PagesList[k].cover_bytes != null)
                                     *      page.ImageContent = Constants.ByteArrayToImageConverter.Convert(s_list[j].PagesList[k].cover_bytes);
                                     * s_list[j].PagesList[k].PropertyChanged += (s2, e2) =>
                                     * {
                                     *      if (e2.PropertyName == "cover_bytes")
                                     *              page.ImageContent = Constants.ByteArrayToImageConverter.Convert(s_list[j].PagesList[k].cover_bytes);
                                     * };*********************/
                                    stack.Pages.Add(page);
                                }
                                newchapter.Sections.Add(stack);
                            }
                        };
                    }
                    booksource.Chapters.Add(newchapter);
                }
                //menu.SelectElement(vm.LOCurrentIndex);
                booksource.TemporalColor = MLConstants.getUIColor(vm.LOCurrentIndex, 255);
                readerView.booksource    = booksource;
                readerView.InitIndexReader();
                //_backgroundscroll.Source = booksource;
                //_menucontroller.SEtColor(booksource.Chapters[vm.LOCurrentIndex].ChapterColor);
            }
        }
예제 #4
0
        void LoadPagesDataSource()
        {
            var vm = ViewModel as LOViewModel;

            //var styles = new StyleConstants();
            if (vm.LOsInCircle == null)
            {
                return;
            }

            for (int i = 0; i < vm.LOsInCircle.Count; i++)
            {
                var s_list = vm.LOsInCircle[i].stack.StacksList;
                for (int j = 0; j < s_list.Count; j++)
                {
                    List <LOPageSource> list_lo = new List <LOPageSource> ();
                    for (int k = 0; k < s_list[j].PagesList.Count; k++)
                    {
                        LOPageSource page    = new LOPageSource();
                        var          content = s_list[j].PagesList[k].content;

                        page.Cover      = MLConstants.BytesToUIImage(s_list[j].PagesList[k].cover_bytes);
                        page.PageIndex  = k;
                        page.StackIndex = j;
                        page.LOIndex    = i;
                        var slides = s_list[j].PagesList[k].content.lopage.loslide;
                        page.Slides = new List <LOSlideSource>();
                        for (int m = 0; m < slides.Count; m++)
                        {
                            LOSlideSource slidesource = new LOSlideSource();
                            slidesource.Style = new LOSlideStyle()
                            {
                                TitleColor = MLConstants.getUIColor(slides [m].lotype, 255)
                            };                                                                                                                                  //[slides[m].lotype];
                            slidesource.Type = slides[m].lotype;
                            if (slides[m].lotitle != null)
                            {
                                slidesource.Title = slides[m].lotitle;
                            }
                            if (slides[m].loparagraph != null)
                            {
                                slidesource.Paragraph = slides[m].loparagraph;
                            }
                            if (slides[m].loimage != null)
                            {
                                slidesource.ImageUrl = slides[m].loimage;
                            }
                            if (slides[m].lotext != null)
                            {
                                slidesource.Paragraph = slides[m].lotext;
                            }
                            if (slides[m].loauthor != null)
                            {
                                slidesource.Author = slides[m].loauthor;
                            }
                            if (slides[m].lovideo != null)
                            {
                                slidesource.VideoUrl = slides[m].lovideo;
                            }

                            if (slides[m].loitemize != null)
                            {
                                slidesource.Itemize = new ObservableCollection <LOItemSource>();
                                var items = slides[m].loitemize.loitem;
                                for (int n = 0; n < items.Count; n++)
                                {
                                    LOItemSource item = new LOItemSource();
                                    if (items[n].loimage != null)
                                    {
                                        item.ImageUrl = items[n].loimage;
                                    }
                                    if (items[n].lotext != null)
                                    {
                                        item.Text = items[n].lotext;
                                    }
                                    slidesource.Itemize.Add(item);
                                }
                            }
                            page.Slides.Add(slidesource);
                        }
                        //pages
                        list_lo.Add(page);
                    }
                    pagelistsource.Add(list_lo);
                }
            }

            //readerView.InitContentReader (0);

            //add pages
            //_readerview.Source = pagelistsource;
            //Canvas.SetZIndex(_readerview, 10);
        }