public DynamicDomNode(DomNode node) { if (node == null) { throw new ArgumentNullException("node"); } m_mgr = node.GetRoot().As <ExpressionManager>(); if (m_mgr == null) { throw new ArgumentException("node must be part of circuit"); } m_node = node; }
public ExpressionDlg(ExpressionManager mgr) { if (mgr == null) { throw new ArgumentNullException("mgr"); } m_mgr = mgr; InitializeComponent(); m_objectAttribute.Text = string.Empty; m_copyBtn.Enabled = false; m_objectList.DisplayMember = "Id"; m_exprList.DisplayMember = "Id"; m_propList.DisplayMember = "Name"; m_tabControl.Selected += (sender, e) => UpdateActiveTabPage(); m_objectList.SelectedIndexChanged += m_objectList_SelectedIndexChanged; m_propList.SelectedIndexChanged += (sender, e) => { var node = (DynamicDomNode)m_objectList.SelectedItem; var propDescr = (AttributePropertyDescriptor)m_propList.SelectedItem; if (node != null && propDescr != null) { m_objectAttribute.Text = string.Format("editor.{0}.{1}", node.Id, propDescr.Name); } else { m_objectAttribute.Text = string.Empty; } }; m_objectAttribute.TextChanged += (sender, e) => m_copyBtn.Enabled = !string.IsNullOrWhiteSpace(m_objectAttribute.Text); m_copyBtn.Click += (sender, e) => Clipboard.SetText(m_objectAttribute.Text); m_applyBtn.Click += (sender, e) => ApplyChanges(); m_okBtn.Click += (sender, e) => ApplyChanges(); m_cancelBtn.Click += (sender, e) => UndoAll(); m_exprList.SelectedIndexChanged += (sender, e) => { var expr = (Expression)m_exprList.SelectedItem; SetActiveExpression(expr); }; m_exprList.KeyDown += (sender, e) => { if (e.KeyCode == Keys.Delete) { var expr = (Expression)m_exprList.SelectedItem; DeleteExpression(expr); } }; var delExprMenu = new ToolStripMenuItem("Delete".Localize()); delExprMenu.Click += (sender, e) => { var expr = (Expression)m_exprList.SelectedItem; DeleteExpression(expr); }; m_exprList.ContextMenuStrip = new ContextMenuStrip(); m_exprList.ContextMenuStrip.Opening += (sender, e) => e.Cancel = m_exprList.SelectedIndex < 0; m_exprList.ContextMenuStrip.Items.Add(delExprMenu); UpdateActiveTabPage(); }