Ejemplo n.º 1
0
        private static FrameworkElement CreateVisualRendererCore(ExportRendererAttribute rendererAttr, PObject model, Point position)
        {
            var view     = (FrameworkElement)Activator.CreateInstance(rendererAttr.ViewType);
            var renderer = (IRenderer)Activator.CreateInstance(rendererAttr.RendererType, view, model);

            if (model.Guid.Equals(Guid.Empty))
            {
                model.Guid = Guid.NewGuid();
            }

            GlobalModels.Register(model.Guid, model);

            // metadata setting
            renderer.Metadata.CreatedTime     = DateTime.Now;
            renderer.Metadata.CreatedPosition = position;

            view.DataContext = model;
            view.AddAdorner((Adorner)renderer, zindex: 1);

            // View <-> Model
            view.SetModel(model);
            model.SetView(view);

            // View, Model -> Renderer
            view.SetRenderer(renderer);
            model.SetRenderer(renderer);

            // BinderHost -> Renderer
            (renderer.GetBinderHost() as PBinderHost).SetRenderer(renderer);

            return(view);
        }
Ejemplo n.º 2
0
        private ComponentElement CreateComponentElement()
        {
            if (!componentCache.ContainsKey(Model.Metadata.Element))
            {
                ExportRendererAttribute rAttr = RendererManager.FromModelType(Model.Metadata.Element);

                var model = Activator.CreateInstance(rAttr.ModelType) as PComponent;
                var view  = Activator.CreateInstance(rAttr.ViewType) as ComponentElement;

                view.SetIsFloating(true);
                view.SetComponentModel(model);

                view.HorizontalAlignment = HorizontalAlignment.Left;
                view.VerticalAlignment   = VerticalAlignment.Top;

                view.Margin = new Thickness(10);

                componentCache[Model.Metadata.Element] = view;
            }

            var element = componentCache[Model.Metadata.Element];

            if (element is Function functionElement)
            {
                var functionItemModel = Model as ToolBoxItemFunctionModel;
                functionElement.Model.SetRuntimeFunction(functionItemModel.MethodInfo);
            }

            return(element);
        }
Ejemplo n.º 3
0
        public static FrameworkElement CreateVisualRenderer(ExportRendererAttribute rendererAttr, Point position)
        {
            if (rendererAttr == null)
            {
                MessageBox.Show("Coming soon!");
                return(null);
            }

            var model = (PObject)Activator.CreateInstance(rendererAttr.ModelType);

            return(CreateVisualRendererCore(rendererAttr, model, position));
        }