public void Visit(IDiagramNodeItem item)
        {
            if (item == null) return;
            var handlerNode = item as ISequenceNode;
            SequenceItemNode actionNode = item as SequenceItemNode;
            var actionBranch = item as ActionBranch;
            var actionOut = item as IActionOut;
            var actionIn = item as IActionIn;
            //var setVariableNode = item as SetVariableNode;
            //var groupNode = item as ActionGroupNode;
            var handlerIn = item as HandlerIn;
            if (handlerIn != null)
            {
                BeforeVisitHandlerIn(handlerIn);
                VisitHandlerIn(handlerIn);
                AfterVisitHandlerIn(handlerIn); return;
            }

            if (actionNode != null)
            {
                BeforeVisitAction(actionNode);
                VisitAction(actionNode);
                AfterVisitAction( actionNode); return;
            }

            if (actionBranch != null)
            {
                BeforeVisitBranch(actionBranch);
                VisitBranch(actionBranch);
                AfterVisitBranch(actionBranch);
                return;
            }
                
            if (actionOut != null)
            {
                BeforeVisitOutput(actionOut);
                VisitOutput(actionOut);
                AfterVisitOutput(actionOut);
                return;
            }
                
            if (actionIn != null)
            {
                BeforeVisitInput(actionIn);
                VisitInput(actionIn);
                AfterVisitInput(actionIn);
                return;
            }
                
        }
Ejemplo n.º 2
0
 public void Renamed(IDiagramNodeItem nodeItem, string editText, string name)
 {
     RefreshContent();
 }
Ejemplo n.º 3
0
 public void RemoveItem(IDiagramNodeItem nodeItem)
 {
 }
Ejemplo n.º 4
0
 public void AddItem(IDiagramNodeItem item)
 {
 }
Ejemplo n.º 5
0
 public override void NodeItemRemoved(IDiagramNodeItem item)
 {
     
 }
Ejemplo n.º 6
0
 public virtual bool Validate(IDiagramNodeItem a, IDiagramNodeItem b)
 {
     
     return a != b;
 }
Ejemplo n.º 7
0
 public override void NodeItemRemoved(IDiagramNodeItem item)
 {
 }
Ejemplo n.º 8
0
        protected CodeMemberMethod RenderMethod(object instance, KeyValuePair <MethodInfo, GenerateMethod> templateMethod, IDiagramNodeItem data)
        {
            MethodInfo info;
            var        dom = TemplateType.MethodFromTypeMethod(templateMethod.Key.Name, out info, false);

            CurrentMember    = dom;
            CurrentAttribute = templateMethod.Value;
            PushStatements(dom.Statements);

            var args       = new List <object>();
            var parameters = info.GetParameters();

            foreach (var arg in parameters)
            {
                args.Add(GetDefault(arg.ParameterType));
            }

            CurrentDeclaration.Members.Add(dom);

            var result = info.Invoke(instance, args.ToArray());
            var a      = result as IEnumerable;

            if (a != null)
            {
                var dummyIteraters = a.Cast <object>().ToArray();
                foreach (var item in dummyIteraters)
                {
                }
            }

            PopStatements();

            //var isOverried = false;
            //if (!IsDesignerFile && dom.Attributes != MemberAttributes.Final && templateMethod.Value.Location == TemplateLocation.Both)
            //{
            //    dom.Attributes |= MemberAttributes.Override;
            //    isOverried = true;
            //}
            //if ((info.IsVirtual && !IsDesignerFile) || (info.IsOverride() && !info.GetBaseDefinition().IsAbstract && IsDesignerFile))
            //{
            //    if (templateMethod.Value.CallBase)
            //    {
            //        //if (!info.IsOverride() || !info.GetBaseDefinition().IsAbstract && IsDesignerFile)
            //        //{
            //        dom.invoke_base(true);
            //        //}

            //    }
            //}
            InvertApplication.SignalEvent <ICodeTemplateEvents>(_ => _.MethodAdded(instance, this, dom));
            return(dom);
        }
Ejemplo n.º 9
0
        protected CodeConstructor RenderConstructor(object instance, KeyValuePair <MethodInfo, GenerateConstructor> templateMethod, IDiagramNodeItem data)
        {
            var info = templateMethod.Key;
            var dom  = templateMethod.Key.ToCodeConstructor();

            CurrentAttribute   = templateMethod.Value;
            CurrentConstructor = dom;
            PushStatements(dom.Statements);
            //            CurrentStatements = dom.Statements;
            var args       = new List <object>();
            var parameters = info.GetParameters();

            foreach (var arg in parameters)
            {
                args.Add(GetDefault(arg.ParameterType));
            }
            foreach (var item in templateMethod.Value.BaseCallArgs)
            {
                dom.BaseConstructorArgs.Add(new CodeSnippetExpression(item));
            }


            info.Invoke(instance, args.ToArray());
            PopStatements();
            CurrentDeclaration.Members.Add(dom);
            InvertApplication.SignalEvent <ICodeTemplateEvents>(_ => _.ConstructorAdded(instance, this, dom));
            return(dom);
        }