/// <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); } }
/// <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; }