Ejemplo n.º 1
0
        private void InitializeLibraries()
        {
            factories.Clear();

            // FIXME: only retrieve from current package and its dependencies
            var allLibraries = Session.AllPackages
                               .GroupBy(p => p.Package.IsSystem)
                               .ToDictionary(p => p.Key, p => p.SelectMany(x => x.Assets).OfType <UILibraryViewModel>());

            // system libraries
            foreach (var sysLib in allLibraries[true])
            {
                var asset = sysLib.Asset;
                factories.AddRange(asset.PublicUIElements.Select(x => new UIElementFromSystemLibrary(ServiceProvider, sysLib, x.Key)));
            }
            PanelFactories = factories.Where(f => f.Category == "Panel").OrderBy(f => f.Name).ToList();

            // user libraries
            foreach (var userLib in allLibraries[false])
            {
                RemoveLibrary(userLib);
                AddLibrary(userLib);
            }
        }