Example #1
0
 public SelectAasEntityFlyout(
     PackageCentral packages,
     PackageCentral.Selector selector,
     string filter = null)
 {
     InitializeComponent();
     this.packages = packages;
     this.selector = selector;
     theFilter     = filter;
 }
Example #2
0
        public void RebuildAasxElements(
            PackageCentral packages,
            PackageCentral.Selector selector,
            bool editMode = false, string filterElementName = null)
        {
            // clear tree
            displayedTreeViewLines = new List <VisualElementGeneric>();

            // valid?
            if (packages.MainAvailable)
            {
                // generate lines, add
                var x = Generators.GenerateVisualElementsFromShellEnv(
                    treeViewLineCache, packages.Main?.AasEnv, packages.Main,
                    packages.MainItem?.Filename, editMode, expandMode: 1);
                foreach (var xx in x)
                {
                    displayedTreeViewLines.Add(xx);
                }

                // more?
                if (packages.AuxAvailable &&
                    (selector == PackageCentral.Selector.MainAux ||
                     selector == PackageCentral.Selector.MainAuxFileRepo))
                {
                    var x2 = Generators.GenerateVisualElementsFromShellEnv(
                        treeViewLineCache, packages.Aux?.AasEnv, packages.Aux,
                        packages.AuxItem?.Filename, editMode, expandMode: 1);
                    foreach (var xx in x2)
                    {
                        displayedTreeViewLines.Add(xx);
                    }
                }

                // more?
                if (packages.Repositories != null && selector == PackageCentral.Selector.MainAuxFileRepo)
                {
                    var pkg = new AdminShellPackageEnv();
                    foreach (var fr in packages.Repositories)
                    {
                        fr.PopulateFakePackage(pkg);
                    }

                    var x2 = Generators.GenerateVisualElementsFromShellEnv(
                        treeViewLineCache, pkg?.AasEnv, pkg, null, editMode, expandMode: 1);
                    foreach (var xx in x2)
                    {
                        displayedTreeViewLines.Add(xx);
                    }
                }

                // may be filter
                if (filterElementName != null)
                {
                    foreach (var dtl in displayedTreeViewLines)
                    {
                        // it is not likely, that we have to delete on this level, therefore don't care
                        FilterLeavesOfVisualElements(dtl, filterElementName);
                    }
                }

                // any of these lines?
                if (displayedTreeViewLines.Count < 1)
                {
                    // emergency
                    displayedTreeViewLines.Add(
                        new VisualElementEnvironmentItem(
                            null /* no parent */, treeViewLineCache, packages.Main, packages.Main?.AasEnv,
                            VisualElementEnvironmentItem.ItemType.EmptySet));
                }
            }

            // redraw
            treeViewInner.ItemsSource = displayedTreeViewLines;
            treeViewInner.UpdateLayout();

            // select 1st
            if (displayedTreeViewLines.Count > 0)
            {
                displayedTreeViewLines[0].IsSelected = true;
            }
        }