private static bool TryCreateAdapter(TypeMemberKey key, out IEventAdapter adapter) { adapter = null; RoutedEvent routedEvent = GetRoutedEvent(key.Type, key.MemberName); if (routedEvent != null) { adapter = new RoutedEventAdapter(routedEvent); return(true); } EventInfo clrEvent = GetClrEvent(key.Type, key.MemberName); if (clrEvent != null) { adapter = new ClrEventAdapter(clrEvent); return(true); } PropertyInfo eventProperty = GetEventProperty(key.Type, key.MemberName); if (eventProperty != null) { adapter = new EventPropertyAdapter(eventProperty); return(true); } return(false); }
public static IElementInitializer Create(XamlName memberName, Type containingType, IEnumerable <object> values, XamlNamespaces namespaces) { IEventAdapter eventAdapter = EventAdapter.CreateAdapter(containingType, memberName); if (eventAdapter != null) { return(new ElementEventMemberInitializer(eventAdapter, GetEventHandlerName(memberName, values))); } IPropertyAdapter propertyAdapter = PropertyAdapter.CreateAdapter(containingType, memberName); if (propertyAdapter != null) { return(ElementPropertyMemberInitializer.Create(propertyAdapter, values, namespaces)); } throw new Granular.Exception("Type \"{0}\" does not contain a member named \"{1}\"", containingType.Name, memberName); }
protected override void PreStart() { base.PreStart(); _eventAdapter = BuildDefaultJournalAdapter(); BecomeStacked(AwaitingConnection); }
public ElementEventMemberInitializer(IEventAdapter eventAdapter, string eventHandlerName) { this.eventAdapter = eventAdapter; this.eventHandlerName = eventHandlerName; }
public void Map(Type providerType, IEventAdapter adapter) { _adapters.Add(providerType, adapter); }
public static IElementInitializer FromXamlElement(IEventAdapter eventAdapter, XamlElement eventElement) { return new ElementEventMemberInitializer(eventAdapter, GetEventHandlerName(eventElement)); }
public static IElementInitializer FromXamlAttribute(IEventAdapter eventAdapter, XamlAttribute eventAttribute) { return new ElementEventMemberInitializer(eventAdapter, GetEventHandlerName(eventAttribute)); }