示例#1
0
		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);
		}
示例#2
0
		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);
		}
示例#3
0
		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);
		}