示例#1
0
 public ThumbnailMetaItem(IFSInfo fsInfo, ListViewItem lvItem)
 {
     FsInfo = fsInfo;
     ListViewItem = lvItem;
     LargeIcon = null;
     SmallIcon = null;
 }
示例#2
0
    public int GetFillId(bool isDeductStep = false)
    {
        FILL_COUNT++;

        if (id <= 10000 || isDeductStep)
        {
            lastFillId = GetRandomFillId();
            return(lastFillId);
        }

        for (int i = 0; i < copys.Count; i++)
        {
            CopyFillInfo copyFillInfo = copys[i];
            int          inRange      = copyFillInfo.InRange(FILL_COUNT);
            if (inRange > 0)
            {
                if (inRange == 2)
                {
                    //copys.RemoveAt (i);
                }
                return(lastFillId);
            }
        }

        if (specifics.ContainsKey(FILL_COUNT))
        {
            IFSInfo specific = specifics[FILL_COUNT];
            lastFillId = specific.GetFillId();
            return(lastFillId);
        }

        for (int i = 0; i < intervals.Count; i++)
        {
            IntervalInfo intervalInfo = intervals[i];
            int          inRange      = intervalInfo.InRange(FILL_COUNT);
            if (inRange > 0)
            {
                lastFillId = intervalInfo.GetFillId();
                if (inRange == 2)
                {
                    //intervals.RemoveAt (i);
                }
                return(lastFillId);
            }
        }

        if (defaultFill == null)
        {
            lastFillId = GetRandomFillId();
            return(lastFillId);
        }

        lastFillId = defaultFill.GetFillId();
        return(lastFillId);
    }
示例#3
0
        private static string FullPath(this IFSInfo baseInfo)
        {
            if (baseInfo.ParentDirectory == null)
            {
                return(baseInfo.Name);
            }

            if (!IsAcyclic(baseInfo))
            {
                BH.Engine.Base.Compute.RecordError("Circular directory hierarchy found.");
            }

            return(baseInfo.ToString());
        }
示例#4
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="name"></param>
        /// <param name="bitmap"></param>
        /// <param name="value"></param>
        void AddItem(IFSInfo fsInfo)
        {
            ListViewItem lvItem = new ListViewItem(fsInfo.Name, 0);
            if (fsInfo is IFileInfo)
                lvItem.SubItems.Add(((IFileInfo)fsInfo).Size.ToString()); //Size
            else
                lvItem.SubItems.Add(""); //Size
            if (fsInfo is IFileInfo)
                lvItem.SubItems.Add(((IFileInfo)fsInfo).Extension.Length > 0 ? ((IFileInfo)fsInfo).Extension + " File" : "File"); //Type
            else
                lvItem.SubItems.Add("Folder");
            lvItem.SubItems.Add(fsInfo.LastModifiedTime.ToString("G")); //Date

            AddItem(lvItem, fsInfo);
        }
示例#5
0
        /***************************************************/

        private static bool IsAcyclic(IFSInfo file, HashSet <IFSInfo> encountered)
        {
            if (file?.ParentDirectory == null)
            {
                return(true);
            }

            if (encountered.Contains(file.ParentDirectory))
            {
                return(false);
            }

            encountered.Add(file.ParentDirectory);

            return(IsAcyclic(file.ParentDirectory, encountered));
        }
示例#6
0
    public void FillTxt(string content)
    {
        if (id <= 10000)
        {
            return;
        }
        if (content != null)
        {
            string[] txtArr = content.Split('\n');

            foreach (string txt in txtArr)
            {
                string[] txts = txt.Split('|');
                switch (txts[0].ToLower())
                {
                case "d":
                    defaultFill = new IFSInfo();
                    defaultFill.FillTxt(txts[2]);
                    break;

                case "g":
                    IntervalInfo intervalInfo = new IntervalInfo();
                    intervalInfo.FillTxt(txts[1], txts[2]);
                    intervals.Add(intervalInfo);
                    break;

                case "s":
                    IFSInfo iFSInfo = new IFSInfo();
                    int     step    = Convert.ToInt32(txts[1]);
                    iFSInfo.FillTxt(txts[2]);
                    specifics.Add(step, iFSInfo);
                    break;

                case "c":
                    CopyFillInfo copyInfo = new CopyFillInfo();
                    copyInfo.FillTxt(txts[1], txts[2]);
                    copys.Add(copyInfo);
                    break;
                }
            }
        }
    }
示例#7
0
 public static bool IsAcyclic(this IFSInfo file)
 {
     return(IsAcyclic(file as dynamic, new HashSet <IFSInfo>()));
 }
示例#8
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="metaItem"></param>
        void AddItem(ListViewItem lvItem, IFSInfo fsInfo)
        {
            _listViewItemList.Add(lvItem);
            _tnvState.ListViewDict.Add(lvItem, fsInfo);

            ThumbnailMetaItem metaItem = new ThumbnailMetaItem(fsInfo, lvItem);
            _thumbnailItemList.Add(metaItem);
        }
示例#9
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="name"></param>
        /// <param name="type"></param>
        /// <param name="fsInfo"></param>
        void AddItem(string name, string type, IFSInfo fsInfo)
        {
            ListViewItem lvItem = new ListViewItem(name, 0);
            lvItem.SubItems.Add(""); //Size
            lvItem.SubItems.Add(type); //Type
            lvItem.SubItems.Add(""); //Date

            AddItem(lvItem, fsInfo);
        }