private void Graph_GeneratingPopup(object sender, GeneratingPopupEventArgs e) { if (AllowGraphEditing) { foreach (NodeTypeEntry nte in NodeTypes) { TextBlock txb = new TextBlock() { Text = string.Format("Insert {0}", nte.Name), Tag = nte }; txb.MouseLeftButtonUp += (sender2, e2) => { m_MenuSelectedNodeType = (sender2 as TextBlock).Tag as NodeTypeEntry; DNode node = Graph.AddNodeAtLocation(e.MousePos, true); m_MenuSelectedNodeType = null; Graph.ClosePopup(); Graph.BeginContentEdit(node); }; e.ListBox.Items.Add(txb); } } else { e.ListBox.Items.RemoveAt(2); e.ListBox.Items.RemoveAt(1); } if (!AllowLabelEditing) { e.ListBox.Items.RemoveAt(0); } }
public void AddNodeType(NodeTypeEntry nte) { _NodeTypes.Add(nte); NodeTypeComboBox.ItemsSource = NodeTypes.Select(x => x); // If I use NodeTypes directly, it crashes. No idea why. Looks like a bug in Silverlight. NodeTypeComboBox.SelectedIndex = 0; if (AllowGraphEditing && UseComboInsertion) { NodeTypeComboBox.Visibility = Visibility.Visible; } }
void Graph_NodeInsertedByUser(object sender, EventArgs e) { if (NodeTypeComboBox.SelectedItem == null || m_AddingFromMenu) { return; } NodeTypeEntry nte = (NodeTypeEntry)NodeTypeComboBox.SelectedItem; DNode dn = sender as DNode; ApplyNodeTypeToInsertedNode(nte, dn); }
private void Graph_NodeInsertingByUser(object sender, EventArgs e) { if (NodeTypeComboBox.SelectedItem == null && m_MenuSelectedNodeType == null) { return; } NodeTypeEntry nte = m_MenuSelectedNodeType ?? (NodeTypeEntry)NodeTypeComboBox.SelectedItem; DNode dn = sender as DNode; ApplyNodeTypeToInsertedNode(nte, dn); }
void ApplyNodeTypeToInsertedNode(NodeTypeEntry nte, DNode node) { node.DrawingNode.Attr.Shape = nte.Shape; if (nte.XRadius != 0) { node.DrawingNode.Attr.XRadius = nte.XRadius; } if (nte.YRadius != 0) { node.DrawingNode.Attr.YRadius = nte.YRadius; } node.Tag = nte.Tag; Graph.ResizeNodeToLabel(node); }
void Graph_GeneratingPopup(object sender, GeneratingPopupEventArgs e) { foreach (NodeTypeEntry nte in NodeTypes) { TextBlock txb = new TextBlock() { Text = string.Format("Insert {0}", nte.Name), Tag = nte }; txb.MouseLeftButtonUp += (sender2, e2) => { NodeTypeEntry nte2 = (sender2 as TextBlock).Tag as NodeTypeEntry; m_AddingFromMenu = true; DNode node = Graph.AddNodeAtLocation(e.MousePos, true); m_AddingFromMenu = false; ApplyNodeTypeToInsertedNode(nte2, node); Graph.ClosePopup(); Graph.BeginContentEdit(node); }; e.ListBox.Items.Add(txb); } }
void ApplyNodeTypeToInsertedNode(NodeTypeEntry nte, DNode node) { node.DrawingNode.Attr.Shape = nte.Shape; if (nte.XRadius != 0) node.DrawingNode.Attr.XRadius = nte.XRadius; if (nte.YRadius != 0) node.DrawingNode.Attr.YRadius = nte.YRadius; node.Tag = nte.Tag; Graph.ResizeNodeToLabel(node); }
public void AddNodeType(NodeTypeEntry nte) { _NodeTypes.Add(nte); NodeTypeComboBox.ItemsSource = NodeTypes.Select(x => x); // If I use NodeTypes directly, it crashes. No idea why. Looks like a bug in Silverlight. NodeTypeComboBox.SelectedIndex = 0; if (AllowGraphEditing && UseComboInsertion) NodeTypeComboBox.Visibility = Visibility.Visible; }