public static IPainter Create(ElementBase element) { Type type = element.GetType(); if (element is IPrimitive) return (IPainter)Activator.CreateInstance(_painters[((IPrimitive)element).Primitive], element); var args = new PainterFactoryEventArgs(element); EventService.EventAggregator.GetEvent<PainterFactoryEvent>().Publish(args); return args.Painter ?? new DefaultPainter(element); }
public static IPainter Create(CommonDesignerCanvas designerCanvas, ElementBase element) { Type type = element.GetType(); var primitive = element as IPrimitive; if (primitive != null && primitive.Primitive != Primitive.NotPrimitive) return (IPainter)Activator.CreateInstance(_painters[primitive.Primitive], designerCanvas, element); var args = new PainterFactoryEventArgs(designerCanvas, element); EventService.EventAggregator.GetEvent<PainterFactoryEvent>().Publish(args); return args.Painter ?? new DefaultPainter(designerCanvas, element); }
void OnPainterFactoryEvent(PainterFactoryEventArgs args) { if (args.DesignerCanvas != _passCardCanvas) return; var elementPassCardImageProperty = args.Element as ElementPassCardImageProperty; if (elementPassCardImageProperty != null) { Photo photo = null; switch (elementPassCardImageProperty.PropertyType) { case PassCardImagePropertyType.DepartmentLogo: photo = _department == null ? null : _department.Photo; break; case PassCardImagePropertyType.OrganisationLogo: photo = _organisation.Photo; break; case PassCardImagePropertyType.Photo: photo = _employee.Photo; break; case PassCardImagePropertyType.PositionLogo: photo = _position == null ? null : _position.Photo; break; case PassCardImagePropertyType.Additional: var columnValue = _employee.AdditionalColumns.FirstOrDefault(x => x.AdditionalColumnTypeUID == elementPassCardImageProperty.AdditionalColumnUID); if (columnValue != null) photo = columnValue.Photo; break; default: break; } args.Painter = new PassCardImagePropertyPainter(_passCardCanvas, elementPassCardImageProperty, photo == null || photo.Data == null || photo.Data.Count() == 0 ? null : photo.Data); } }
private void OnPainterFactoryEvent(PainterFactoryEventArgs args) { if (args.DesignerCanvas != DesignerCanvas) return; var elementPassCardImageProperty = args.Element as ElementPassCardImageProperty; if (elementPassCardImageProperty != null) args.Painter = new PassCardImagePropertyPainter(DesignerCanvas, elementPassCardImageProperty); }