Пример #1
0
        public void InsertVariable(AbstractComponentData receivedData)
        {
            string variable      = receivedData.id;
            bool   shouldReceive = true;

            if (receivedData is AbstractParameterData)
            {
                shouldReceive = CheckParameterData(receivedData as AbstractParameterData);
            }
            if (shouldReceive)
            {
                InlineUIContainer container = CreateInlineContainer(variable, this.CaretPosition);
                this.CaretPosition = container.ContentEnd;
                if (receivedData is AbstractParameterData)
                {
                    referredMacroParams.Add(variable);
                }
                DependenceCommandArgs args = new DependenceCommandArgs()
                {
                    source           = this,
                    targetVariableId = variable
                };
                Command.AddDependence.Execute(args, this);

                container.Unloaded += macroParameterContainer_Unloaded;
            }
            else
            {
                Console.Out.WriteLine("Cannot receive macro parameter " + variable + ", expression already contains parameter from macro " + referredMacroId());
            }
        }
Пример #2
0
        void macroParameterContainer_Unloaded(object sender, RoutedEventArgs e)
        {
            InlineUIContainer container = sender as InlineUIContainer;

            string variableId = (container.Tag as string);

            referredMacroParams.Remove(variableId);

            DependenceCommandArgs args = new DependenceCommandArgs()
            {
                source           = this,
                targetVariableId = variableId
            };

            Command.RemoveDependence.Execute(args, this);
        }