/// <inheritdoc/> public ILookup GetContext(IPort item, IPortStyle style) { var adapter = ((EventPortStyle)style).adapter; fallbackLookup = adapter.Renderer.GetContext(item, adapter); return(this); }
/// <summary> /// Adds a <see cref="IOptionItem"/>s that are bound to the port's <see cref="IPort.Style"/> /// to the builder. /// </summary> /// <param name="context">The context to use for building.</param> /// <param name="port"></param> protected virtual void AddStyleItems(IOptionBuilderContext context, IPort port) { //style group... //retrieve current style... IPortStyle style = port.Style; if (style != null) { //retrieve OptionBuilder from style IOptionBuilder styleBuilder = GetStyleOptionBuilder(context, style); if (styleBuilder != null) { styleBuilder.AddItems(context.CreateChildContext(DefaultPortPropertyMapBuilder.StyleProperty), style.GetType(), style); } } }
/// <summary> /// Builds the property for the port's <see cref="IPort.Style"/>. /// </summary> protected virtual void BuildPortStylesProperty(IPropertyBuildContext <IPort> context) { context.AddEntry(PortStyleProperty, new ValueGetterDelegate <Type>(delegate { var type = context.CurrentInstance.Style.GetType(); while (!type.IsPublic) { type = type.BaseType; } return(type); }) , new ValueSetterDelegate <Type>(delegate(Type value) { IGraph graph = context.Lookup(typeof(IGraph)) as IGraph; IPortStyle style = Activator.CreateInstance(value) as IPortStyle; if (graph != null && style != null) { graph.SetStyle(context.CurrentInstance, style); } }), null); }
public EdgeStyleDecorator(IPortStyle bendStyle) { this.bendStyle = bendStyle; }
/// <inheritdoc/> public IMarqueeTestable GetMarqueeTestable(IPort item, IPortStyle style) { var adapter = ((EventPortStyle)style).adapter; return(adapter.Renderer.GetMarqueeTestable(item, adapter)); }
/// <inheritdoc/> public IVisibilityTestable GetVisibilityTestable(IPort item, IPortStyle style) { var adapter = ((EventPortStyle)style).adapter; return(adapter.Renderer.GetVisibilityTestable(item, adapter)); }
/// <inheritdoc/> public IBoundsProvider GetBoundsProvider(IPort item, IPortStyle style) { var adapter = ((EventPortStyle)style).adapter; return(adapter.Renderer.GetBoundsProvider(item, adapter)); }
/// <inheritdoc/> public IVisualCreator GetVisualCreator(IPort item, IPortStyle style) { var adapter = ((EventPortStyle)style).adapter; return(adapter.Renderer.GetVisualCreator(item, adapter)); }
/// <summary> /// Retrieves the builder for the given style. /// </summary> protected virtual IPropertyMapBuilder GetStyleBuilder(IPropertyBuildContext <IPort> context, IPortStyle style) { return(context.GetPropertyMapBuilder(style)); }
/// <summary> /// Builds the properties for the port's <see cref="IPort.Style"/> /// </summary> protected virtual void BuildStyleProperties(IPropertyBuildContext <IPort> context, IPortStyle style) { //style group... //retrieve current style... if (style != null) { IPropertyMapBuilder propertyBuilder = GetStyleBuilder(context, style); if (propertyBuilder != null) { propertyBuilder.BuildPropertyMap(context.CreateChildContext <IPortStyle>(StyleProperty, delegate { return(context.CurrentInstance.Style); }, delegate(IPortStyle newInstance) { IGraph graph = context.Lookup(typeof(IGraph)) as IGraph; if (graph != null) { graph.SetStyle(context.CurrentInstance, newInstance); } }, styleAssignmentPolicy)); } } }
/// <summary> /// Retrieves the <see cref="IOptionBuilder"/> to use for the given style. /// </summary> /// <remarks> /// This implementation simply delegates to <see cref="IOptionBuilderContext.GetOptionBuilder(object)"/>. /// </remarks> /// <param name="context">The context to use.</param> /// <param name="style">The current style instance.</param> /// <returns>The builder or <see langword="null"/>.</returns> protected virtual IOptionBuilder GetStyleOptionBuilder(IOptionBuilderContext context, IPortStyle style) { return(context.GetOptionBuilder(style)); }