public static void RegisterMetadata(AttributeTableBuilder builder) { Type stateType = typeof(State); builder.AddCustomAttributes(stateType, new DesignerAttribute(typeof(StateDesigner))); builder.AddCustomAttributes(stateType, stateType.GetProperty(StateDesigner.EntryPropertyName), BrowsableAttribute.No); builder.AddCustomAttributes(stateType, stateType.GetProperty(StateDesigner.ExitPropertyName), BrowsableAttribute.No); builder.AddCustomAttributes(stateType, stateType.GetProperty(StateDesigner.TransitionsPropertyName), BrowsableAttribute.No); builder.AddCustomAttributes(stateType, stateType.GetProperty(StateDesigner.IsFinalPropertyName), BrowsableAttribute.No); builder.AddCustomAttributes(stateType, stateType.GetProperty(StateDesigner.VariablesPropertyName), BrowsableAttribute.No); builder.AddCustomAttributes(stateType, new ShowInOutlineViewAttribute()); builder.AddCustomAttributes(stateType, new AllowBreakpointAttribute()); builder.AddCustomAttributes(stateType, stateType.GetProperty(StateDesigner.TransitionsPropertyName), new ShowPropertyInOutlineViewAttribute() { CurrentPropertyVisible = false }); builder.AddCustomAttributes(stateType, new ActivityDesignerOptionsAttribute { OutlineViewIconProvider = (modelItem) => { ResourceDictionary icons = EditorResources.GetIcons(); if (modelItem != null) { object icon = null; if (StateContainerEditor.IsFinalState(modelItem) && icons.Contains("FinalStateIcon")) { icon = icons["FinalStateIcon"]; } else if (icons.Contains("StateIcon")) { icon = icons["StateIcon"]; } if (icon != null && icon is DrawingBrush) { return((DrawingBrush)icon); } } return(null); } }); }
internal bool IsFinalState() { return(StateContainerEditor.IsFinalState(this.ModelItem)); }