Пример #1
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="item">Item</param>
 /// <param name="parent">Parent</param>
 public LogIntervalWrapper(LogDirectoryWrapper parent, ILogInterval interval, ILogData data) :
     this(interval)
 {
     this.parent = parent;
     parent.items.Add(this);
     this.data = data;
 }
Пример #2
0
        void ShowIntervalTable(ILogDirectory dir, bool isFile)
        {
            Dictionary <string, ILogData> d = new Dictionary <string, ILogData>();

            foreach (object o in current.Children)
            {
                if (o is ILogData)
                {
                    ILogData ld = o as ILogData;
                    d[ld.Name] = ld;
                }
            }
            List <string> lt = new List <string>(d.Keys);

            lt.Sort();
            bool isRoot = IsRoot;

            dataGridViewIntervals.Rows.Clear();
            foreach (string key in lt)
            {
                DataGridViewRow row  = new DataGridViewRow();
                ILogData        data = d[key];
                ILogInterval    i    = data as ILogInterval;
                row.Tag = d[key];
                row.CreateCells(dataGridViewIntervals,
                                new object[] { data.Name, data.Comment, i.Begin, i.End, data.FileName });
                dataGridViewIntervals.Rows.Add(row);
            }
            toolStripLabelDrag.Visible    = false;
            newToolStripButton.Visible    = !isRoot;
            dataGridViewFiles.Visible     = false;
            dataGridViewIntervals.Visible = true;
        }
Пример #3
0
        void AddInterval(ILogData data)
        {
            TreeNode s = selected;

            if (s == null)
            {
                return;
            }
            ILogDirectory d = s.Tag as ILogDirectory;

            if ((d == null) | (data == null))
            {
                return;
            }
            try
            {
                List <string> l = d.GetDirectoryNames();
                for (int i = 1; ; i++)
                {
                    string n = "New interval" + i;
                    if (!l.Contains(n))
                    {
                        ILogInterval ld = d.CreateIntrerval(data, n, "", 0, (uint)data.Length);
                        ShowIntervalTable(d, false);
                        return;
                    }
                }
            }
            catch (Exception exception)
            {
                exception.ShowError();
            }
        }
Пример #4
0
        private void dataGridViewIntervals_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
            DataGridViewRow row  = dataGridViewIntervals.Rows[e.RowIndex];
            ILogData        d    = row.Tag as ILogData;
            int             ri   = e.ColumnIndex;
            string          text = row.Cells[ri].Value + "";

            if (ri == 1)
            {
                if (d.Comment.Equals(text))
                {
                    return;
                }
                d.Comment = text;
                return;
            }
            if (ri == 0)
            {
                if (d.Name.Equals(text))
                {
                    return;
                }
                ILogDirectory dir  = d.Parent as ILogDirectory;
                List <string> l    = dir.GetDirectoryNames();
                string        name = d.Name;
                l.Remove(name);
                if (l.Contains(text))
                {
                    MessageBox.Show(this, "Name already exist");
                    row.Cells[ri].Value = name;
                    return;
                }
                d.Name = text;
                return;
            }
            ILogInterval interval = d as ILogInterval;

            try
            {
                uint number = uint.Parse(text);
                if (number == 1)
                {
                    number = 0;
                }
                if (ri == 2)
                {
                    interval.Begin = number;
                }
                if (ri == 3)
                {
                    interval.End = number;
                }
            }
            catch (Exception exception)
            {
                exception.ShowError();
            }
        }
Пример #5
0
        /// <summary>
        /// Creates a tree
        /// </summary>
        /// <param name="data">Database interface</param>
        /// <returns>roots of trees</returns>
        static ILogDirectory[] CreateTree(this IDatabaseInterface data)
        {
            Dictionary <object, IParentSet> dictionary  = new Dictionary <object, IParentSet>();
            IEnumerable <object>            list        = data.Elements;
            List <ILogDirectory>            directories = new List <ILogDirectory>();

            foreach (object o in list)
            {
                ILogItem   item = data[o];
                IParentSet ps   = null;
                if (item is ILogInterval)
                {
                    ps = new LogIntervalWrapper(item as ILogInterval);
                }
                else if (item is ILogData)
                {
                    ps = new LogItemWrapper(item as ILogData);
                }
                else
                {
                    ps = new LogDirectoryWrapper(item);
                }
                dictionary[o] = ps;
            }
            foreach (IParentSet ps in dictionary.Values)
            {
                ILogItem it = (ps as ILogItem);
                object   o  = it.ParentId;
                if (!o.Equals(it.Id))
                {
                    if (dictionary.ContainsKey(o))
                    {
                        ps.Parent = dictionary[o] as ILogItem;
                    }
                }
                if (it is ILogInterval)
                {
                    ILogInterval interval = it as ILogInterval;
                    ILogData     d        = dictionary[interval.DataId] as ILogData;
                    (interval as LogIntervalWrapper).DataSet = d;
                }
            }
            List <ILogDirectory> l = new List <ILogDirectory>();

            foreach (IParentSet ps in dictionary.Values)
            {
                if (ps is ILogDirectory)
                {
                    ILogDirectory item = (ps as ILogDirectory);
                    if (item.Parent == null)
                    {
                        l.Add(item);
                    }
                }
            }
            return(l.ToArray());
        }
Пример #6
0
        /// <summary>
        /// Creates data
        /// </summary>
        /// <param name="directory">Directory</param>
        /// <param name="data">Data</param>
        /// <param name="name"></param>
        /// <param name="fileName">File name</param>
        /// <param name="comment">Comment</param>
        /// <returns>The data</returns>
        public static ILogInterval CreateIntrerval(this ILogDirectory directory,
                                                   ILogData data, string name, string comment, uint begin, uint end)
        {
            IDatabaseInterface d = StaticExtensionEventLogDatabase.data;

            if (directory.GetDirectoryNames().Contains(name))
            {
                throw new Exception(name + " already exists");
            }
            ILogInterval interval = d.CreateInterval(directory.Id, name, comment, data, begin, end);

            return(new LogIntervalWrapper(directory as LogDirectoryWrapper, interval, data));
        }
Пример #7
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="item">Item</param>
 public LogIntervalWrapper(ILogInterval item)
 {
     interval  = item;
     this.item = item as ILogData;
     StaticExtensionEventLogDatabase.items[(item as ILogItem).Id] = this;
 }