예제 #1
0
        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;

        }
예제 #2
0
 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;
 }
예제 #3
0
        void IInitializable.Initialize()
        {
            m_commandService.RegisterCommand(
                ExprCommands.Expression,
                StandardMenu.Edit,
                StandardCommandGroup.EditOther,
                "Expression".Localize(),
                "Create and edit expressions".Localize(),
                Keys.None,
                null,
                CommandVisibility.All,
                this);


            m_documentRegistry.DocumentAdded += (sender, e) =>
            {
                ExpressionManager em = e.Item.As <ExpressionManager>();
                if (em != null)
                {
                    em.SetPythonScriptService(m_scriptingService);
                }
            };

            // run expressions if needed.
            Application.Idle += (sender, e) =>
            {
                if (m_documentRegistry == null)
                {
                    return;
                }
                foreach (var doc in m_documentRegistry.Documents)
                {
                    ExpressionManager em = doc.As <ExpressionManager>();
                    if (em != null)
                    {
                        em.Update();
                    }
                }
            };
        }
예제 #4
0
        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();
            
        }
예제 #5
0
        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();
        }