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); }
protected override void OnAttachedComponentModel() { base.OnAttachedComponentModel(); if (GlobalModels.HasModel(this.Model.Page)) { pageBox.SelectedItem = GlobalModels.GetModel <PObject>(this.Model.Page); } }
private void GlobalModels_UnRegistering(object sender, Guid e) { PObject obj = GlobalModels.GetModel <PObject>(e); if (obj is PContentPage page) { this.PageList.Remove(page); } }
private void GlobalModels_Registered(object sender, Guid e) { PObject obj = GlobalModels.GetModel <PObject>(e); if (obj is PContentPage page) { this.PageList.Add(page); } }
private void GlobalModels_UnRegistering(object sender, Guid e) { PObject obj = GlobalModels.GetModel <PObject>(e); if (obj is PTemplatePage template) { this.TemplateList.Remove(template); } }
private void GlobalModels_Registered(object sender, Guid e) { PObject obj = GlobalModels.GetModel <PObject>(e); if (obj is PTemplatePage template) { this.TemplateList.Add(template); } }
protected override void OnAttachedComponentModel() { base.OnAttachedComponentModel(); if (GlobalModels.HasModel(this.Model.Template)) { templateBox.SelectedItem = GlobalModels.GetModel <PTemplatePage>(this.Model.Template); } }
public SelectorRenderer(ObjectSelector adornedElement, PSelector model) : base(adornedElement, model) { if (this.Model.TargetVisual != null) { var registedModel = GlobalModels.GetModel <PVisual>(this.Model.TargetVisual.Guid); this.Model.TargetVisual = registedModel; } }
public static IRenderer GetRendererFromGuid(this Guid guid) { if (GlobalModels.HasModel(guid)) { PObject model = GlobalModels.GetModel <PObject>(guid); return(model.GetRenderer()); } return(null); }
private void DestroyElement(FrameworkElement parent, FrameworkElement element) { IRenderer childRenderer = element.GetRenderer(); // Unregister On Shared model store GlobalModels.UnRegister(childRenderer.Model); // Dispose if (childRenderer is IDisposable disposable) { disposable.Dispose(); } element.SetRenderer(null); childRenderer.Model.SetRenderer(null); RendererManager.ResolveBinder(childRenderer).SetRenderer(null); }