コード例 #1
0
ファイル: OrgColumn.cs プロジェクト: Garreye/meticumedia
        /// <summary>
        /// Build the column based on the type.
        /// </summary>
        /// <param name="type"></param>
        /// <param name="order"></param>
        public OrgItemColumn(OrgColumnType type, int order)
        {
            // Set properties
            this.Type = type;
            this.Order = order;

            // Build header from type
            Header = new ColumnHeader();
            Header.Text = type.ToString().Replace('_', ' ');

            // Set width based on type
            switch (type)
            {
                case OrgColumnType.DateTime:
                    Header.Width = 150;
                    break;
                case OrgColumnType.Status:
                    Header.Width = 75;
                    break;
                case OrgColumnType.Show:
                    Header.Width = 200;
                    break;
                case OrgColumnType.Season:
                    Header.Width = 50;
                    break;
                case OrgColumnType.Episode:
                    Header.Width = 50;
                    break;
                case OrgColumnType.Movie:
                    Header.Width = 200;
                    break;
                case OrgColumnType.Source_Folder:
                    Header.Width = 300;
                    break;
                case OrgColumnType.Source_File:
                    Header.Width = 250;
                    break;
                case OrgColumnType.Category:
                    Header.Width = 100;
                    break;
                case OrgColumnType.Action:
                    Header.Width = 100;
                    break;
                case OrgColumnType.Destination_Folder:
                    Header.Width = 300;
                    break;
                case OrgColumnType.Destination_File:
                    Header.Width = 250;
                    break;
                case OrgColumnType.Progress:
                    Header.Width = 75;
                    break;
                case OrgColumnType.Number:
                    Header.Width = 50;
                    break;
                default:
                    throw new Exception("Unknown column type");
            }
        }
コード例 #2
0
        /// <summary>
        /// Sets up the columns of a listview for displaying OrgItem lists.
        /// </summary>
        /// <param name="setup">Setup type for selecting which column will be enabled</param>
        /// <param name="lv">The listview to setup columns for</param>
        /// <returns>Dictionary of column types and the column for that type that was set in the listview</returns>
        public static Dictionary <OrgColumnType, OrgItemColumn> SetOrgItemListColumns(OrgColumnSetup setup, ListView lv)
        {
            // Initialize columns dictionary
            Dictionary <OrgColumnType, OrgItemColumn> scanColumns = new Dictionary <OrgColumnType, OrgItemColumn>();
            int columnOrder = 0;

            // Select which columns will be enabled based on setup
            OrgColumnType columnsToAdd = OrgColumnType.Source_Folder | OrgColumnType.Source_File | OrgColumnType.Action | OrgColumnType.Destination_Folder | OrgColumnType.Destination_File;

            if (setup == OrgColumnSetup.DirectoryScan || setup == OrgColumnSetup.MissingCheck)
            {
                columnsToAdd |= OrgColumnType.Category;
            }
            if (setup == OrgColumnSetup.MissingCheck)
            {
                columnsToAdd |= OrgColumnType.Status | OrgColumnType.Show | OrgColumnType.Season | OrgColumnType.Episode;
            }
            if (setup == OrgColumnSetup.Queue)
            {
                columnsToAdd |= OrgColumnType.Progress;
            }
            if (setup == OrgColumnSetup.Log)
            {
                columnsToAdd |= OrgColumnType.DateTime;
            }
            if (setup == OrgColumnSetup.RootFolderCheck)
            {
                columnsToAdd |= OrgColumnType.Movie;
            }

            // Add the enabled columns to the listview
            lv.Columns.Clear();
            foreach (OrgColumnType type in Enum.GetValues(typeof(OrgColumnType)))
            {
                if ((type & columnsToAdd) > 0)
                {
                    scanColumns.Add(type, new OrgItemColumn(type, columnOrder++));
                    lv.Columns.Add(scanColumns[type].Header);
                }
            }

            // Return columns dictionary
            return(scanColumns);
        }
コード例 #3
0
ファイル: OrgItem.cs プロジェクト: Garreye/meticumedia
 /// <summary>
 /// Sorts a list of OrgItems based on a specific data (column) type.
 /// </summary>
 /// <param name="orgItems">List of items to be sorted</param>
 /// <param name="sortType">Column type to sort by</param>
 public static void Sort(List<OrgItem> orgItems, OrgColumnType sortType)
 {
     // Sort the Scan results (so that indices from that will still match listview after sort)
     switch (sortType)
     {
         case OrgColumnType.DateTime:
             orgItems.Sort(OrgItem.CompareByDateTime);
             break;
         case OrgColumnType.Show:
             orgItems.Sort(OrgItem.CompareByShowName);
             break;
         case OrgColumnType.Season:
             orgItems.Sort(OrgItem.CompareBySeasonNumber);
             break;
         case OrgColumnType.Episode:
             orgItems.Sort(OrgItem.CompareByEpisodeNumber);
             break;
         case OrgColumnType.Movie:
             orgItems.Sort(OrgItem.CompareByMovie);
             break;
         case OrgColumnType.Source_Folder:
             orgItems.Sort(OrgItem.CompareBySourceFolder);
             break;
         case OrgColumnType.Source_File:
             orgItems.Sort(OrgItem.CompareBySourceFile);
             break;
         case OrgColumnType.Category:
             orgItems.Sort(OrgItem.CompareByCategory);
             break;
         case OrgColumnType.Status:
             orgItems.Sort(OrgItem.CompareByStatus);
             break;
         case OrgColumnType.Action:
             orgItems.Sort(OrgItem.CompareByAction);
             break;
         case OrgColumnType.Destination_Folder:
             orgItems.Sort(OrgItem.CompareByDestinationFolder);
             break;
         case OrgColumnType.Destination_File:
             orgItems.Sort(OrgItem.CompareByDestinationFile);
             break;
         case OrgColumnType.Number:
             orgItems.Sort(OrgItem.CompareByNumber);
             break;
         default:
             throw new Exception("Unknown column type");
     }
 }
コード例 #4
0
ファイル: OrgListItem.cs プロジェクト: Garreye/meticumedia
        /// <summary>
        /// Sorts a list of items based on a specific data (column) type.
        /// </summary>
        /// <param name="orgItems">List of items to be sorted</param>
        /// <param name="sortType">Column type to sort by</param>
        public static void Sort(List<OrgListItem> orgItems, OrgColumnType sortType, bool ascending)
        {
            OrgItem.AscendingSort = ascending;

            // Sort the Scan results (so that indices from that will still match listview after sort)
            switch (sortType)
            {
                case OrgColumnType.DateTime:
                    orgItems.Sort(
                        delegate(OrgListItem p1, OrgListItem p2)
                        {
                            return OrgItem.CompareByDateTime(p1.OrgItem, p2.OrgItem);
                        }
                    );
                    break;
                case OrgColumnType.Show:
                    orgItems.Sort(
                        delegate(OrgListItem p1, OrgListItem p2)
                        {
                            return OrgItem.CompareByShowName(p1.OrgItem, p2.OrgItem);
                        }
                    );
                    break;
                case OrgColumnType.Season:
                    orgItems.Sort(
                        delegate(OrgListItem p1, OrgListItem p2)
                        {
                            return OrgItem.CompareBySeasonNumber(p1.OrgItem, p2.OrgItem);
                        }
                    );
                    break;
                case OrgColumnType.Episode:
                    orgItems.Sort(
                        delegate(OrgListItem p1, OrgListItem p2)
                        {
                            return OrgItem.CompareByEpisodeNumber(p1.OrgItem, p2.OrgItem);
                        }
                    );
                    break;
                case OrgColumnType.Movie:
                    orgItems.Sort(
                        delegate(OrgListItem p1, OrgListItem p2)
                        {
                            return OrgItem.CompareByMovie(p1.OrgItem, p2.OrgItem);
                        }
                    );
                    break;
                case OrgColumnType.Source_Folder:
                    orgItems.Sort(
                        delegate(OrgListItem p1, OrgListItem p2)
                        {
                            return OrgItem.CompareBySourceFolder(p1.OrgItem, p2.OrgItem);
                        }
                    );
                    break;
                case OrgColumnType.Source_File:
                    orgItems.Sort(
                        delegate(OrgListItem p1, OrgListItem p2)
                        {
                            return OrgItem.CompareBySourceFile(p1.OrgItem, p2.OrgItem);
                        }
                    );
                    break;
                case OrgColumnType.Category:
                    orgItems.Sort(
                        delegate(OrgListItem p1, OrgListItem p2)
                        {
                            return OrgItem.CompareByCategory(p1.OrgItem, p2.OrgItem);
                        }
                    );
                    break;
                case OrgColumnType.Status:
                    orgItems.Sort(
                        delegate(OrgListItem p1, OrgListItem p2)
                        {
                            return OrgItem.CompareByStatus(p1.OrgItem, p2.OrgItem);
                        }
                    );
                    break;
                case OrgColumnType.Action:
                    orgItems.Sort(
                        delegate(OrgListItem p1, OrgListItem p2)
                        {
                            return OrgItem.CompareByAction(p1.OrgItem, p2.OrgItem);
                        }
                    );
                    break;
                case OrgColumnType.Destination_Folder:
                    orgItems.Sort(
                        delegate(OrgListItem p1, OrgListItem p2)
                        {
                            return OrgItem.CompareByDestinationFolder(p1.OrgItem, p2.OrgItem);
                        }
                    );
                    break;
                case OrgColumnType.Destination_File:
                    orgItems.Sort(
                        delegate(OrgListItem p1, OrgListItem p2)
                        {
                            return OrgItem.CompareByDestinationFile(p1.OrgItem, p2.OrgItem);
                        }
                    );
                    break;
                case OrgColumnType.Number:
                    orgItems.Sort(
                        delegate(OrgListItem p1, OrgListItem p2)
                        {
                            return OrgItem.CompareByNumber(p1.OrgItem, p2.OrgItem);
                        }
                    );
                    break;
                default:
                    throw new Exception("Unknown column type");
            }
        }
コード例 #5
0
        /// <summary>
        /// Sorts a list of items based on a specific data (column) type.
        /// </summary>
        /// <param name="orgItems">List of items to be sorted</param>
        /// <param name="sortType">Column type to sort by</param>
        public static void Sort(List <OrgListItem> orgItems, OrgColumnType sortType, bool ascending)
        {
            OrgItem.AscendingSort = ascending;

            // Sort the Scan results (so that indices from that will still match listview after sort)
            switch (sortType)
            {
            case OrgColumnType.DateTime:
                orgItems.Sort(
                    delegate(OrgListItem p1, OrgListItem p2)
                {
                    return(OrgItem.CompareByDateTime(p1.OrgItem, p2.OrgItem));
                }
                    );
                break;

            case OrgColumnType.Show:
                orgItems.Sort(
                    delegate(OrgListItem p1, OrgListItem p2)
                {
                    return(OrgItem.CompareByShowName(p1.OrgItem, p2.OrgItem));
                }
                    );
                break;

            case OrgColumnType.Season:
                orgItems.Sort(
                    delegate(OrgListItem p1, OrgListItem p2)
                {
                    return(OrgItem.CompareBySeasonNumber(p1.OrgItem, p2.OrgItem));
                }
                    );
                break;

            case OrgColumnType.Episode:
                orgItems.Sort(
                    delegate(OrgListItem p1, OrgListItem p2)
                {
                    return(OrgItem.CompareByEpisodeNumber(p1.OrgItem, p2.OrgItem));
                }
                    );
                break;

            case OrgColumnType.Movie:
                orgItems.Sort(
                    delegate(OrgListItem p1, OrgListItem p2)
                {
                    return(OrgItem.CompareByMovie(p1.OrgItem, p2.OrgItem));
                }
                    );
                break;

            case OrgColumnType.Source_Folder:
                orgItems.Sort(
                    delegate(OrgListItem p1, OrgListItem p2)
                {
                    return(OrgItem.CompareBySourceFolder(p1.OrgItem, p2.OrgItem));
                }
                    );
                break;

            case OrgColumnType.Source_File:
                orgItems.Sort(
                    delegate(OrgListItem p1, OrgListItem p2)
                {
                    return(OrgItem.CompareBySourceFile(p1.OrgItem, p2.OrgItem));
                }
                    );
                break;

            case OrgColumnType.Category:
                orgItems.Sort(
                    delegate(OrgListItem p1, OrgListItem p2)
                {
                    return(OrgItem.CompareByCategory(p1.OrgItem, p2.OrgItem));
                }
                    );
                break;

            case OrgColumnType.Status:
                orgItems.Sort(
                    delegate(OrgListItem p1, OrgListItem p2)
                {
                    return(OrgItem.CompareByStatus(p1.OrgItem, p2.OrgItem));
                }
                    );
                break;

            case OrgColumnType.Action:
                orgItems.Sort(
                    delegate(OrgListItem p1, OrgListItem p2)
                {
                    return(OrgItem.CompareByAction(p1.OrgItem, p2.OrgItem));
                }
                    );
                break;

            case OrgColumnType.Destination_Folder:
                orgItems.Sort(
                    delegate(OrgListItem p1, OrgListItem p2)
                {
                    return(OrgItem.CompareByDestinationFolder(p1.OrgItem, p2.OrgItem));
                }
                    );
                break;

            case OrgColumnType.Destination_File:
                orgItems.Sort(
                    delegate(OrgListItem p1, OrgListItem p2)
                {
                    return(OrgItem.CompareByDestinationFile(p1.OrgItem, p2.OrgItem));
                }
                    );
                break;

            case OrgColumnType.Number:
                orgItems.Sort(
                    delegate(OrgListItem p1, OrgListItem p2)
                {
                    return(OrgItem.CompareByNumber(p1.OrgItem, p2.OrgItem));
                }
                    );
                break;

            default:
                throw new Exception("Unknown column type");
            }
        }
コード例 #6
0
        /// <summary>
        /// Build the column based on the type.
        /// </summary>
        /// <param name="type"></param>
        /// <param name="order"></param>
        public OrgItemColumn(OrgColumnType type, int order)
        {
            // Set properties
            this.Type  = type;
            this.Order = order;

            // Build header from type
            Header      = new ColumnHeader();
            Header.Text = type.ToString().Replace('_', ' ');

            // Set width based on type
            switch (type)
            {
            case OrgColumnType.DateTime:
                Header.Width = 150;
                break;

            case OrgColumnType.Status:
                Header.Width = 75;
                break;

            case OrgColumnType.Show:
                Header.Width = 200;
                break;

            case OrgColumnType.Season:
                Header.Width = 50;
                break;

            case OrgColumnType.Episode:
                Header.Width = 50;
                break;

            case OrgColumnType.Movie:
                Header.Width = 200;
                break;

            case OrgColumnType.Source_Folder:
                Header.Width = 300;
                break;

            case OrgColumnType.Source_File:
                Header.Width = 250;
                break;

            case OrgColumnType.Category:
                Header.Width = 100;
                break;

            case OrgColumnType.Action:
                Header.Width = 100;
                break;

            case OrgColumnType.Destination_Folder:
                Header.Width = 300;
                break;

            case OrgColumnType.Destination_File:
                Header.Width = 250;
                break;

            case OrgColumnType.Progress:
                Header.Width = 75;
                break;

            case OrgColumnType.Number:
                Header.Width = 50;
                break;

            default:
                throw new Exception("Unknown column type");
            }
        }