public void Initialize(Type valueType = null, ActionInstanceSide side = ActionInstanceSide.Both, Type selectedType = null)
        {
            var types       = _manager.GetModules();
            var targetTypes = _manager.GetModules(valueType, side);

            SelectedType = selectedType;

            foreach (var type in types)
            {
                var itemView = new SelectActionItemView();
                itemView.Text = Lazurite.ActionsDomain.Utils.ExtractHumanFriendlyName(type);
                itemView.Icon = Icons.LazuriteIconAttribute.GetIcon(type);
                if (itemView.Icon == Icons.Icon._None)
                {
                    itemView.Icon = Icons.Icon.Brick;
                }
                itemView.HorizontalAlignment = HorizontalAlignment.Stretch;
                itemView.Tag    = type;
                itemView.Click += (o, e) => {
                    SelectedType = itemView.Tag as Type;
                    SelectionChanged?.Invoke(this);
                };
                itemView.IsEnabled = targetTypes.Any(x => x.Equals(type));
                var category = CategoryAttribute.Get(type);
                switch (category)
                {
                case Category.Control:
                    itemsViewControl.Children.Add(itemView);
                    break;

                case Category.DateTime:
                    itemsViewDateTime.Children.Add(itemView);
                    break;

                case Category.Geolocation:
                    itemsViewGeolocation.Children.Add(itemView);
                    break;

                case Category.Meta:
                    itemsViewMeta.Children.Add(itemView);
                    break;

                case Category.Multimedia:
                    itemsViewMedia.Children.Add(itemView);
                    break;

                case Category.Administration:
                case Category.Other:
                    itemsViewOther.Children.Add(itemView);
                    break;
                }
            }
        }
Exemplo n.º 2
0
        public void TestExtModulesAcrossSerializing_part1()
        {
            var savior = new FileSavior();

            Singleton.Add(savior);
            var     manager    = new PluginsManager();
            IAction testAction = manager.CreateInstance(manager.GetModules().First(), null);

            testAction.SetValue(null, DateTime.Now.ToString());
            savior.Set("testAction", testAction);
        }
Exemplo n.º 3
0
        public void RemoveLibTest()
        {
            Singleton.Add(new FileSavior());
            var modulesManager = new PluginsManager();

            modulesManager.RemovePlugin(modulesManager.GetPlugins().First().Name);
            if (modulesManager.GetModules().Any(x => x.Name.Contains("TestAction")))
            {
                throw new Exception();
            }
        }
Exemplo n.º 4
0
        public void LoadPluginTest()
        {
            Singleton.Add(new FileSavior());
            var modulesManager = new PluginsManager();
            var targetFile     = @"D:\Temporary\Lazurite_test.pyp";

            modulesManager.AddPlugin(targetFile);
            if (!modulesManager.GetModules().Any(x => x.Name.Contains("TestAction")))
            {
                throw new Exception();
            }
        }
Exemplo n.º 5
0
        public void TestExtModulesAcrossSerializing_part2()
        {
            var savior = new FileSavior();

            Singleton.Add(savior);
            var     modulesManager = new PluginsManager();
            IAction testAction     = savior.Get <IAction>("testAction");

            Debug.WriteLine(testAction.GetValue(null));
            if (!testAction.GetType().Equals(modulesManager.GetModules().First()))
            {
                throw new Exception();
            }
        }