Ejemplo n.º 1
0
        internal void AddComponent(NComponent component)
        {
            NComponents.Add(component);

            pathResolver.BuildGraph();

            component.Accept(viewVisitor);
            component.Accept(vertexMovedVisitor);

            if (ComponentAdded != null)
            {
                ComponentAdded(component);
            }

            this.Invalidate();
        }
Ejemplo n.º 2
0
        public override void Visit(NConnector component)
        {
            NVisitor visitor = new NStartConnectVisitor(component);

            NComponent box = components.Find(x => x.GetFlatModel().ID == component.Model.StartBoxID);

            if (box != null)
            {
                box.Accept(visitor);
            }

            visitor = new NEndConnectVisitor(component);
            box     = components.Find(x => x.GetFlatModel().ID == component.Model.EndBoxID);
            if (box != null)
            {
                box.Accept(visitor);
            }
        }
Ejemplo n.º 3
0
        internal void SetFlatModeJSON(string strJSON)
        {
            this.NComponents.Clear();
            NVisitor  visitor = new NLoadVisitor(this.NComponents);
            FlowChart chart   = JSONUtil.Deserialize <FlowChart>(strJSON);

            chart.FlatModels.OrderBy(x => x.SortOrder).ToList().ForEach(x =>
            {
                NComponent component = (NComponent)Activator.CreateInstance(Type.GetType(x.ControllerClassName));
                component.SetFlatModel(x);
                this.AddComponent(component);
                component.Accept(visitor);
            });

            visitor = new NConnectorConnetVisitor(this.pathResolver);
            this.NComponents.ForEach(x =>
            {
                x.Accept(visitor);
            });
        }