Пример #1
0
 /// <summary>
 /// Создание дуги
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void DdLinkCreated(object sender, LinkEventArgs e)
 {
     try
     {
         var formLink = new ComboBoxForm();
         formLink.RefreshValue(SemanticWeb.Web().GetAllowedArcNames(((Node)e.Link.Origin.Tag).ID));
         formLink.ShowDialog();
         Messages.Add("Создание дуги " + e.Link.Text + " от " + e.Link.Origin.Text + " к " + e.Link.Destination.Text);
         if (formLink.DialogResult == true)
         {
             e.Link.Text = formLink.ReturnValue().ToString();
             SemanticWeb.Web().AddArc(((Node)e.Link.Origin.Tag).ID, e.Link.Text, ((Node)e.Link.Destination.Tag).ID);
             e.Link.Tag = true;
             Messages.Add("Создание дуги завершилось: " + e.Link.Text + " от " + e.Link.Origin.Text + " к " + e.Link.Destination.Text);
         }
         else
         {
             DD.Links.Remove(e.Link);
             Messages.Add("Создание дуги отменено: " + " от " + e.Link.Origin.Text + " к " + e.Link.Destination.Text);
         }
     }
     catch (ArgumentException e1)
     {
         MessageBox.Show(e1.Message);
         /*произошла ошибка вставки, удаляем дугу из графа*/
         e.Link.Tag = false;
         DD.Links.Remove(e.Link);
         Messages.Add("Создание дуги отменено: " + " от " + e.Link.Origin.Text + " к " + e.Link.Destination.Text);
     }
 }
Пример #2
0
        /// <summary>
        /// Изменение имени дуги
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void DdLinkTextEditing(object sender, LinkValidationEventArgs e)
        {
            if (!CanEdit)
            {
                e.Cancel = true;
                return;
            }
            Messages.Add("Изменение типа дуги: " + e.Link.Text + " от " + e.Link.Origin.Text + " к " + e.Link.Destination.Text);
            var formLink = new ComboBoxForm();
            var listarc  = SemanticWeb.Web().GetAllowedArcNames(((Node)e.Link.Origin.Tag).ID);

            formLink.RefreshValue(listarc);
            formLink.ShowDialog();
            try
            {
                if (formLink.DialogResult == true)
                {
                    string newT = formLink.ReturnValue().ToString(); //новое имя вершины выбранное из комбобоксика
                    SemanticWeb.Web().ChangeArcName(((Node)e.Link.Origin.Tag).ID, e.Link.Text, newT, ((Node)e.Destination.Tag).ID);
                    e.Link.Text = newT;
                    Messages.Add("Изменение дуги завершилось: " + e.Link.Text + " от " + e.Link.Origin.Text + " к " + e.Link.Destination.Text);
                }
                else
                {
                    Messages.Add("Отмена изменения типа дуги: " + e.Link.Text + " от " + e.Link.Origin.Text + " к " + e.Link.Destination.Text);
                    e.Cancel = true;
                }
            }
            catch (ArgumentException e1)
            {
                Messages.Add("Отмена изменения типа дуги с ошибкой: " + e.Link.Text + " от " + e.Link.Origin.Text + " к " + e.Link.Destination.Text);
                MessageBox.Show(e1.Message);
                e.Cancel = true;
            }
            formLink.Close();
            e.Cancel = true;
        }