1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
//----------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//----------------------------------------------------------------
namespace System.ServiceModel.Presentation
{
using System.Activities.Core.Presentation.Themes;
using System.Activities.Presentation;
using System.Activities.Presentation.Metadata;
using System.Activities.Presentation.Model;
using System.Activities.Presentation.PropertyEditing;
using System.ComponentModel;
using System.ServiceModel.Activities;
using System.ServiceModel.Activities.Presentation;
partial class ServiceDesigner : IExpandChild
{
const string MiscellaneousCategoryLabelKey = "miscellaneousCategoryLabel";
public ServiceDesigner()
{
InitializeComponent();
}
public ModelItem ExpandedChild
{
get
{
ModelItem modelItemToSelect = null;
if (this.ModelItem != null)
{
modelItemToSelect = this.ModelItem.Properties["Body"].Value;
}
return modelItemToSelect;
}
}
internal static void RegisterMetadata(AttributeTableBuilder builder)
{
var serviceType = typeof(WorkflowService);
var advancedAttribute = new EditorBrowsableAttribute(EditorBrowsableState.Advanced);
var categoryAttribute = new CategoryAttribute(EditorCategoryTemplateDictionary.Instance.GetCategoryTitle(MiscellaneousCategoryLabelKey));
builder.AddCustomAttributes(serviceType, new DesignerAttribute(typeof(ServiceDesigner)));
builder.AddCustomAttributes(serviceType, "Name", new TypeConverterAttribute(typeof(XNameConverter)));
builder.AddCustomAttributes(serviceType, serviceType.GetProperty("Endpoints"), BrowsableAttribute.No);
builder.AddCustomAttributes(
serviceType,
"ImplementedContracts",
advancedAttribute,
categoryAttribute,
PropertyValueEditor.CreateEditorAttribute(typeof(TypeCollectionPropertyEditor)),
new EditorOptionAttribute { Name = TypeCollectionPropertyEditor.AllowDuplicate, Value = false },
new EditorOptionAttribute { Name = TypeCollectionPropertyEditor.Filter, Value = ServiceContractImporter.FilterFunction },
new EditorOptionAttribute { Name = TypeCollectionPropertyEditor.DefaultType, Value = null });
builder.AddCustomAttributes(serviceType, serviceType.GetProperty("Body"), BrowsableAttribute.No);
}
}
}
|