示例#1
0
        /// <summary>
        /// Обработчик события нажатия "Редактировать задачу" из контекстного меню.
        /// </summary>
        /// <remarks>Копирует TaskUI и NetPoint и отображает форму с подпиской на сохранение.</remarks>
        /// <param name="sender">Объект события</param>
        /// <param name="e">Аргумент события</param>
        private void EditTask(object sender, EventArgs e)
        {
            TaskUI sen = (TaskUI)sender;

            editnow = sen;
            editnow.Task.PointType = sen.Task.PointType;
            NetPoint task = sen.Task;
            EditTask edit = new EditTask(task);

            edit.SavingChanges += EditPoint;
            edit.FormClosing   += uxPlay;
            this.Enabled        = false;
            edit.Show();
            StartPaintTrace();
        }
示例#2
0
 /// <summary>
 /// Обработчик нажатия мышью по TaskUI
 /// </summary>
 /// <param name="sender">Объект события</param>
 /// <param name="e">Аргумент события</param>
 private void ClickPoint(object sender, MouseEventArgs e)
 {
     if (status == MapStat.none)
     {
         editnow         = (TaskUI)sender;
         mousecorrection = e.Location;
         drag            = true;
         if (e.Button == MouseButtons.Right)
         {
             foreach (ToolStripItem ts in contextPainter.Items)
             {
                 ts.Enabled = false;
             }
             contextPainter.Items[2].Enabled = true;
             contextPainter.Items[1].Enabled = true;
             contextPainter.Items[3].Enabled = true;
             if (editnow.Task.Connections.Count > 0)
             {
                 contextPainter.Items[5].Enabled = true;
             }
             if (points.Count > 1)
             {
                 contextPainter.Items[4].Enabled = true;
             }
             if (points.Count > 0)
             {
                 contextPainter.Items[6].Enabled = true;
             }
             contextPainter.Show(Cursor.Position);
         }
     }
     if (status == MapStat.delete)
     {
         editnow = (TaskUI)sender;
         Cursor  = Cursors.Arrow;
         status  = MapStat.none;
         List <NetPoint> np = Tasks;
         np.Remove(editnow.Task);
         Tasks = np;
         way   = null;
         TasksPanel.Controls.Remove(editnow);
         List <NetPoint> update = new List <NetPoint>();
         foreach (NetPoint nep in Tasks)
         {
             NetPoint updated = nep;
             if (updated.Connections.Contains(editnow.Task))
             {
                 updated.Connections.Remove(editnow.Task);
             }
             update.Add(updated);
         }
         Tasks = update;
         StartPaintTrace();
     }
     if (status == MapStat.edit)
     {
         Cursor = Cursors.Default;
         status = MapStat.none;
         TaskUI sen = (TaskUI)sender;
         editnow = sen;
         editnow.Task.PointType = sen.Task.PointType;
         NetPoint task = sen.Task;
         EditTask edit = new EditTask(task);
         edit.SavingChanges += EditPoint;
         edit.FormClosing   += uxPlay;
         this.Enabled        = false;
         edit.Show();
         StartPaintTrace();
     }
     if (status == MapStat.linking)
     {
         if (editnow == null && ALink == null)
         {
             ALink = (TaskUI)sender;
             MessageBox.Show("Выберите задачу, с которой необходимо образовать связь", "Подсказка", MessageBoxButtons.OK, MessageBoxIcon.Information);
             return;
         }
         else if (editnow == null && ALink != null)
         {
             editnow = (TaskUI)sender;
         }
         way = null;
         NetPoint linked = ((TaskUI)sender).Task;
         if (((TaskUI)sender) != ALink)
         {
             ALink.Task.Connections.Add(linked);
         }
         else if (ALink.Task.Connections.Contains(linked))
         {
             ALink.Task.Connections.Remove(linked);
             ALink.Task.Connections.Add(linked);
             MessageBox.Show("С данной задачей уже установлена связь", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
         }
         Cursor = Cursors.Default;
         status = MapStat.none;
         UpdateTable();
         StartPaintTrace();
     }
     if (status == MapStat.unlinking)
     {
         if (ALink == null && editnow == null)
         {
             ALink = (TaskUI)sender;
             MessageBox.Show("Выберите задачу, с которой необходимо разорвать связь", "Подсказка", MessageBoxButtons.OK, MessageBoxIcon.Information);
             return;
         }
         else if (ALink != null && editnow == null)
         {
             editnow = (TaskUI)sender;
         }
         way = null;
         NetPoint unlink = ((TaskUI)sender).Task;
         if (((TaskUI)sender) != ALink && ALink.Task.Connections.Contains(unlink))
         {
             ALink.Task.Connections.Remove(unlink);
             List <NetPoint> nplist = new List <NetPoint>();
             foreach (NetPoint np in points)
             {
                 nplist.Add(np);
                 if (np.ID == ALink.Task.ID)
                 {
                     nplist.Add(ALink.Task);
                     break;
                 }
             }
         }
         else
         {
             MessageBox.Show("С данным объектом не установлена связь", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
         }
         Cursor = Cursors.Default;
         status = MapStat.none;
         UpdateTable();
         StartPaintTrace();
     }
 }