Exemplo n.º 1
0
        //----- Mostrar el catalogo en la pagina principal-----------------------------------------
        /**Muestra el catalogo en la pagina principal en forma de posters*/

        /*public static void ShowMainCatalogPosters(TabControl tabControl)
         * {
         *   dict_container.Clear();
         * //  dict_category_current_parent.Clear();
         *   tabControl.Items.Clear();
         *   tabControl.ClipToBounds = true;
         *   CategoriasRepository repo = DBManager.CategoriasRepo;
         *   List<categoria> ListaCategorias = repo.List;
         *   if (ListaCategorias.Count > 0)
         *   {
         *       List<media_files> mediaList;
         *       TabItem page;
         *       WrapPanel container;
         *       ModernButton buttonBack;
         *       Grid grid;
         *       ScrollViewer scroll;
         *       foreach (categoria categ in ListaCategorias)
         *       {
         *           page = new TabItem();
         *           page.Header = categ.categoria1;
         *           page.Tag = categ.id;  //PAra las busquedas en la ventana proncipal del catalogo
         *
         *           mediaList = repo.ListFirstMedias(categ.media_files);
         *
         *           scroll = new ScrollViewer();
         *           scroll.VerticalScrollBarVisibility = ScrollBarVisibility.Auto;
         *           scroll.HorizontalScrollBarVisibility = ScrollBarVisibility.Disabled;
         *           container = new WrapPanel();
         *           container.Orientation = Orientation.Horizontal;
         *           scroll.Content = container;
         *           // container.ViewportWidth = scroll.ViewportWidth;
         *
         *           buttonBack = GetBackButton();
         *           buttonBack.Tag = -1; //En el tag del boton guardo el ID del padre
         *           grid = new Grid();
         *           RowDefinition r0 = new RowDefinition();
         *           r0.Height = new GridLength(35);
         *           grid.RowDefinitions.Add(r0);
         *           grid.RowDefinitions.Add(new RowDefinition());
         *           grid.Tag = categ.id;  //Para el click del boton Atras
         *
         *           container.Tag = buttonBack; //Para poder acceder a el luego
         *
         *           dict_container.Add(categ.id, container);
         *
         *           grid.Children.Add(buttonBack);
         *           Grid.SetRow(buttonBack, 0);
         *           grid.Children.Add(scroll);
         *           Grid.SetRow(scroll, 1);
         *
         *           page.Content = grid;
         *           tabControl.Items.Add(page);
         *
         *           RefreshMediaContainer(mediaList, categ.id, container);
         *       }
         *   }
         *   else
         *       ((Grid) ((Grid)tabControl.Parent).Parent).Visibility = Visibility.Hidden;
         * }
         *
         * // Realiza una busqueda para la categoria y el filtro seleccionados
         * public static void FiltrarCatalogo(TabItem page, string filtro)
         * {
         *   if (page != null)
         *   {
         *       int categId = int.Parse(page.Tag.ToString());
         *
         *       MediaFilesRepository mrepo = DBManager.MediaFilesRepo;
         *       CategoriasRepository categrepo = DBManager.CategoriasRepo;
         *
         *       List<media_files> mediaList;
         *       if (!String.IsNullOrEmpty(filtro))
         *           mediaList = mrepo.AplyFilter(categId, filtro);
         *       else
         *           mediaList = categrepo.ListFirstMedias(categId);
         *
         *       RefreshMediaContainer(mediaList, categId, dict_container[categId]);
         *   }
         * }
         *
         * private static ModernButton GetBackButton()
         * {
         *   GeometryConverter geomConvert = new GeometryConverter();
         *   Geometry iconData = (Geometry)geomConvert.ConvertFromString("F1 M 57,42L 57,34L 32.25,34L 42.25,24L 31.75,24L 17.75,38L 31.75,52L 42.25,52L 32.25,42L 57,42 Z ");
         *   ModernButton buttonBack = new ModernButton();
         *   buttonBack.EllipseDiameter = 30;
         *   buttonBack.IconHeight = 20;
         *   buttonBack.IconWidth = 20;
         *   buttonBack.ToolTip = "Atrás";
         *   buttonBack.Click += new System.Windows.RoutedEventHandler(BackFolderClick);
         *   buttonBack.IconData = iconData;
         *   buttonBack.IsEnabled = false;
         *
         *   return buttonBack;
         * }
         *
         * // Click de ir atras en el catalogo
         * private static void BackFolderClick(object sender, RoutedEventArgs e)
         * {
         *   MediaFilesRepository mediarepo = DBManager.MediaFilesRepo; // new MediaFilesRepository();
         *   int categId = int.Parse( ((Grid)(((ModernButton)sender).Parent)).Tag.ToString() );
         *   int parentId = int.Parse( ((ModernButton)sender).Tag.ToString() );
         *   media_files mediafile =  mediarepo.FindById(parentId);
         *
         *   if(mediafile != null)
         *   {
         *       ((ModernButton)sender).Tag = mediafile.parent_id;
         *       List<media_files> mediaList;
         *       CategoriasRepository repo = DBManager.CategoriasRepo;
         *       categoria categ = repo.FindById(categId);
         *
         *       if (categ != null)
         *       {
         *           if (mediafile.parent_id <= 0)
         *           {
         *               mediaList = repo.ListFirstMedias(categ.media_files);
         *               ((ModernButton)sender).IsEnabled = false;
         *           }
         *           else
         *           {
         *               mediaList = mediarepo.FindByCategoria(categId, (int)mediafile.parent_id);
         *           }
         *
         *           RefreshMediaContainer(mediaList, categId, dict_container[categId]);
         *           PHome._PHome.ClearPageSelection(false);  //false porque se crearan nuevos Posters
         *       }
         *   }
         * }
         *
         * //Carga el contenido de una carpeta MEDia File. Doble Click POster
         * public static void LoadMediaFiles(int categId, int mediaParentId)
         * {
         *   MediaFilesRepository repo = DBManager.MediaFilesRepo; // new MediaFilesRepository();
         *   List<media_files>  mediaList = repo.FindByCategoria(categId, mediaParentId);
         *   WrapPanel container = dict_container[categId];
         *   if (container != null)
         *   {
         *       ((ModernButton)container.Tag).IsEnabled = true; //Boton de ir atras
         *       ((ModernButton)container.Tag).Tag = mediaParentId;
         *
         *       RefreshMediaContainer(mediaList, categId, container);
         *       PHome._PHome.ClearPageSelection(false);  //false porque se crearan nuevos Posters
         *   }
         * }
         *
         * private static void RefreshMediaContainer(List<media_files> mediaList, int categId, WrapPanel container)
         * {
         *   container.Children.Clear();
         *   Poster poster;
         *
         *   foreach (media_files media in mediaList)
         *   {
         *       poster = new Poster(media.fichero_portada, media.titulo, media.id, media.is_folder, categId);
         *       poster.MouseEnter += PosterMouseEnter;
         *       poster.MouseLeave += PosterMouseLeave;
         *       container.Children.Add(poster);
         *   }
         * }
         *
         * private static void PosterMouseEnter(object sender, MouseEventArgs e)
         * {
         *   ((Poster)sender).ShowBorder();
         * }
         *
         * private static void PosterMouseLeave(object sender, MouseEventArgs e)
         * {
         *   ((Poster)sender).HidesBorder();
         * }
         *
         * public static WrapPanel GetHomeWrapPanel(int categId)
         * {
         *   if(dict_container != null && dict_container.Keys.Contains(categId))
         *       return dict_container[categId];
         *
         *   return null;
         * }*/

        //------- Edicion de los registros de MovieFiles en la BD------------------------------------------
        /**Carga los movie files en el tab control Para la edicion*/
        public static async Task Load_Movies_Tree(TreeView treeView, IIconItemClickHandler _iitemClickHandler, Dispatcher _dispatcher, bool foldersOnly)
        {
            // changes_timer.Stop();

            treeView.Items.Clear();
            List <categoria> ListaCategorias = await DBManager.CategoriasRepo.ListAsync;

            List <media_files> mediaList;

            if (ListaCategorias.Count > 0)
            {
                IconItem nodo;
                IconItem nodoCateg;

                await Task.Run(async() =>
                {
                    foreach (categoria categ in ListaCategorias)
                    {
                        /*_dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Background,
                         * (Action)(() => {
                         *
                         * }));*/

                        mediaList = DBManager.MediaFilesRepo.FindByCategoria(categ.id, -1, foldersOnly);

                        await _dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Background,
                                                      (Action)(() =>
                        {
                            nodoCateg = new IconItem(categ.categoria1, true, _iitemClickHandler);   //Nodo categoria padre
                            nodoCateg.Tag = categ.id;
                            treeView.Items.Add(nodoCateg);
                            foreach (media_files mf in mediaList)
                            {
                                nodo = new IconItem(mf.titulo, mf, _iitemClickHandler);
                                nodoCateg.Items.Add(nodo);    //treeView.Items.Add(nodo);

                                if (mf.is_folder)
                                {
                                    FillMovieChildrens(nodo, categ.id, mf.id, _iitemClickHandler, foldersOnly);
                                }

                                //Verificar si el MF no existe fisicamente lo notifico
                                CheckMF_Exists(mf);
                            }
                        }));
                    }
                });
            }
            else
            {
                ((Grid)treeView.Parent).Visibility = Visibility.Hidden;
            }

            //  changes_timer.Start();
        }
Exemplo n.º 2
0
        }                               //Para prevenir que cuando se de click se ejecute el click de los padres

        public IconItem(string header, media_files mf, IIconItemClickHandler clickHandler)
        {
            this.mediaId = mf.id;

            l         = new Label();
            l.Content = header;
            l.Margin  = new Thickness(5);

            Image img = new Image();

            img.Height = 22;
            img.Width  = 22;
            BitmapImage bmi;

            if (mf.is_folder)
            {
                bmi = new BitmapImage(new Uri("pack://application:,,,/Resources/folder.ico"));
            }
            else
            {
                bmi = new BitmapImage(new Uri("pack://application:,,,/Resources/cinema.png"));
            }

            img.Source = bmi;

            StackPanel sp = new StackPanel();

            sp.Orientation = Orientation.Horizontal;
            sp.Children.Add(img);
            sp.Children.Add(l);
            // sp.MouseLeftButtonUp += CheckItem_MouseLeftButtonUp;

            this.Header             = sp;
            this.MouseLeftButtonUp += CheckItem_MouseLeftButtonUp;
            this.StandBy            = false;
            this.clickHandler       = clickHandler;

            setFileExists(mf.FileExists());
        }
Exemplo n.º 3
0
        /**Verifica si el MovieFile tiene hijos y los inserta en el TreeItem*/
        public static async void FillMovieChildrens(IconItem nodo, int categId, int mediaPArentId, IIconItemClickHandler _iitemClickHandler, bool foldersOnly)
        {
            MediaFilesRepository mediaRepo = DBManager.MediaFilesRepo; // new MediaFilesRepository();
            List <media_files>   mediaList = await mediaRepo.FindByCategoriaAsync(categId, mediaPArentId, foldersOnly);

            if (mediaList.Count > 0)
            {
                IconItem child;
                foreach (media_files mf in mediaList)
                {
                    child = new IconItem(mf.titulo, mf, _iitemClickHandler);
                    nodo.Items.Add(child);
                    if (mf.is_folder)
                    {
                        FillMovieChildrens(child, categId, mf.id, _iitemClickHandler, foldersOnly);
                    }

                    //Verificar si el MF no existe fisicamente lo notifico
                    CheckMF_Exists(mf);
                }
            }
        }