Пример #1
0
        public static void GenerateVisualElementsFromShellEnvAddElements(TreeViewLineCache cache, AdminShell.AdministrationShellEnv env, VisualElementGeneric parent, AdminShell.Referable parentContainer, AdminShell.SubmodelElementWrapper el)
        {
            var ti = new VisualElementSubmodelElement(parent, cache, env, parentContainer, el);

            parent.Members.Add(ti);
            var elc = el.submodelElement as AdminShell.SubmodelElementCollection;

            if (elc != null)
            {
                foreach (var elcc in elc.value)
                {
                    GenerateVisualElementsFromShellEnvAddElements(cache, env, ti, elc, elcc);
                }
            }
        }
        public static void GenerateVisualElementsFromShellEnvAddElements(
            TreeViewLineCache cache, AdminShell.AdministrationShellEnv env, VisualElementGeneric parent,
            AdminShell.Referable parentContainer, AdminShell.SubmodelElementWrapper el)
        {
            var ti = new VisualElementSubmodelElement(parent, cache, env, parentContainer, el);

            parent.Members.Add(ti);

            // Recurse: SMC
            if (el.submodelElement is AdminShell.SubmodelElementCollection elc && elc.value != null)
            {
                foreach (var elcc in elc.value)
                {
                    GenerateVisualElementsFromShellEnvAddElements(cache, env, ti, elc, elcc);
                }
            }

            // Recurse: Entity
            // ReSharper disable ExpressionIsAlwaysNull
            if (el.submodelElement is AdminShell.Entity ele && ele.statements != null)
            {
                foreach (var eles in ele.statements)
                {
                    GenerateVisualElementsFromShellEnvAddElements(cache, env, ti, ele, eles);
                }
            }
            // ReSharper enable ExpressionIsAlwaysNull

            // Recurse: Operation
            if (el.submodelElement is AdminShell.Operation elo)
            {
                if (elo.inputVariable != null)
                {
                    foreach (var vin in elo.inputVariable)
                    {
                        ti.Members.Add(
                            new VisualElementOperationVariable(
                                ti, cache, env, el.submodelElement, vin, AdminShell.OperationVariable.Direction.In));
                    }
                }
                if (elo.outputVariable != null)
                {
                    foreach (var vout in elo.outputVariable)
                    {
                        ti.Members.Add(
                            new VisualElementOperationVariable(
                                ti, cache, env, el.submodelElement, vout, AdminShell.OperationVariable.Direction.Out));
                    }
                }
                if (elo.inoutputVariable != null)
                {
                    foreach (var vout in elo.inoutputVariable)
                    {
                        ti.Members.Add(
                            new VisualElementOperationVariable(
                                ti, cache, env, el.submodelElement, vout,
                                AdminShell.OperationVariable.Direction.InOut));
                    }
                }
            }

            // Recurse: AnnotatedRelationshipElement
            if (el.submodelElement is AdminShell.AnnotatedRelationshipElement ela && ela.annotations != null)
            {
                foreach (var elaa in ela.annotations)
                {
                    GenerateVisualElementsFromShellEnvAddElements(cache, env, ti, ela, elaa);
                }
            }
        }