Exemplo n.º 1
0
 /// <summary>
 /// Заполняет поля на форме значениями. Берёт данные из полей таймлайнера.
 /// </summary>
 public void fillDataFromTask(TimelinerTask Task)
 {
     CompletionTextBox.Text = Task.User1;
     UnitsComboBox.Text = Task.User2;
     maxCompletionTextBox.Text = Task.User3;
     if (string.IsNullOrEmpty(maxCompletionTextBox.Text))
         checkMaxCompletionAndUnits();
 }
        public inputForm(TimelinerTask Task, string ID, UIform parent)
        {
            this.Task = Task;
            this.UniqueID = ID;
            this.thisParent = parent;
            InitializeComponent();

            Dictionary<string,string> data = Core.Self.filesDB.Select(ID);
            if (data != null)
            {
                this.textBox1.Text = data["Value"];
            }
        }
Exemplo n.º 3
0
 bool hasDataAttached(TimelinerTask task)
 {
     if (string.IsNullOrEmpty(task.User1))
         return false;
     else
         return true;
 }
Exemplo n.º 4
0
        /// <summary>
        /// Пересчитывает данные из БД и сохраняет в таск.
        /// </summary>
        public void CalculateTaskSummaryProgress(TimelinerTask Task)
        {
            if (Task.Selection.HasSelectionSources)
            {
                ModelItemCollection items = Task.Selection.GetSelectedItems(nDoc);
                List<double> values = new List<double>();
                foreach (ModelItem item in items.DescendantsAndSelf)
                {
                    string UniqueID = Core.Self.GetElementUniqueID(item);
                    Dictionary<string, string> qResult = Core.Self.filesDB.Select(UniqueID);
                    if (qResult != null)
                    {
                        double value = qResult["Value"].ToDouble();
                        double maxValue = qResult["MaxValue"].ToDouble();
                        if (maxValue != 0)
                        {
                            values.Add(value / maxValue);
                        }
                    }
                }

                //среднее арифметическое
                if (values.Count > 0)
                {
                    double Sum = 0;
                    foreach (double val in values)
                    {
                        Sum += val;
                    }
                    double percent = Sum * 100 / values.Count;
                    string result = percent.ToString("G", System.Globalization.CultureInfo.CurrentCulture);
                    this.WriteCompletionToTask(timeliner.TaskCreateIndexPath(Task), result, "%", null, percent);
                }
            }
        }
Exemplo n.º 5
0
 /// <summary>
 /// Рекурсивный обход дерева тасков и сбор всех тасков в один массив.
 /// </summary>
 void getChildren(TimelinerTask rootTask)
 {
     foreach (TimelinerTask child in rootTask.Children)
     {
         Collection<int> index = timeliner.TaskCreateIndexPath(child);
         TaskContainer Task = new TaskContainer(child.DisplayName, index);
         this.tasks.Add(Task);
         getChildren(Task);
     }
 }
Exemplo n.º 6
0
 /// <summary>
 /// Подсвечивает ноду дерева в зависимости от того, назначен ли таску набор и введены ли данные.
 /// </summary>
 public void setNodeFontAndColor(TreeNode node, TimelinerTask task)
 {
     if (!task.Selection.IsClear)
     {
         node.BackColor = System.Drawing.Color.Green;
         if(hasDataAttached(task))
         {
             node.NodeFont = new Font(TreeView.DefaultFont, FontStyle.Bold | FontStyle.Underline);
         }
     }
     else if(hasDataAttached(task))
     {
         node.ForeColor = System.Drawing.Color.SkyBlue;
         node.NodeFont = new Font(TreeView.DefaultFont, FontStyle.Bold | FontStyle.Underline);
     }
 }
Exemplo n.º 7
0
        /// <summary>
        /// Показывает на модели только выборку элементов, остальное прячет.
        /// </summary>
        /// <param name="task">Таск, выборка которого отображается на модели.</param>
        public void HideAllExceptTaskSelection(TimelinerTask task, TextBox textbox = null)
        {
            try
            {
                if (!task.Selection.IsClear)
                {
                    #region Способ из мануала, работает медленно и неправильно
                    //ModelItemCollection hidden = new ModelItemCollection();
                    //ModelItemCollection visible = new ModelItemCollection();
                    //ModelItemCollection taskItems = task.Selection.GetSelectedItems(nDoc);

                    //foreach (ModelItem item in taskItems)
                    //{
                    //if (item.AncestorsAndSelf != null)
                    //    visible.AddRange(item.AncestorsAndSelf);
                    //if (item.Descendants != null)
                    //    visible.AddRange(item.Descendants);
                    //}

                    ////mark as invisible all the siblings of the visible items as well as the visible items
                    //foreach (ModelItem toShow in visible)
                    //{
                    //    if (toShow.Parent != null)
                    //    {
                    //        hidden.AddRange(toShow.Parent.Children);
                    //    }
                    //}

                    ////remove the visible items from the collection
                    //foreach (ModelItem toShow in visible)
                    //{
                    //    hidden.Remove(toShow);
                    //}

                    ////hide the remaining items
                    //nDoc.Models.SetHidden(hidden, true);
                    #endregion

                    MakeAllModelItemsVisible();
                    ModelItemCollection taskItems = task.Selection.GetSelectedItems(nDoc);
                    taskItems.Invert(nDoc);

                    //nDoc.Models.OverridePermanentTransparency(nDoc.CurrentSelection.SelectedItems, 1);
                    nDoc.Models.SetHidden(taskItems, true);
                    //nDoc.Models.OverridePermanentTransparency(task.Selection.GetSelectedItems(nDoc), 0);
                }
                else
                {
                    MakeAllModelItemsVisible();
                    if(textbox != null)
                        textbox.Text += " /не назначена выбрка/";
                }
            }
            catch (Exception Ex)
            {
                MessageBox.Show(Ex.Message);
            }
        }
Exemplo n.º 8
0
 /// <summary>
 /// Поиск имени набора, прикреплённого к таску.
 /// </summary>
 /// <param name="Task">Таск, к которому привязан искомый набор</param>
 /// <returns>Имя списка выбора, который выбирает указанный селекшн</returns>
 public string FindSelectionSetName(TimelinerTask Task)
 {
     if (Task.Selection.HasSelectionSources)
     {
         SelectionSource sSource = Task.Selection.SelectionSources[0];
         SavedItem sSet = nDoc.SelectionSets.ResolveSelectionSource(sSource);
         return sSet.DisplayName;
     }
     return null;
 }
Exemplo n.º 9
0
 /// <summary>
 /// Удаляет из базы все данные об элементах, присвоенных таску.
 /// </summary>
 /// <param name="Task"></param>
 public void ClearTaskItemsFromDB(TimelinerTask Task)
 {
     if (Task.Selection.HasSelectionSources)
     {
         ModelItemCollection items = Task.Selection.GetSelectedItems(nDoc);
         foreach (ModelItem item in items)
         {
             string UniqueID = Core.Self.GetElementUniqueID(item);
             this.filesDB.Remove(UniqueID);
         }
     }
 }