Issue Tracker thread for Discussion posted here -
The attached zip is a fresh checkout of version 1.2 - with the changes Lee and I have come up with to implement PropertyGroups as per the discussion thread. There is a .txt file in the zip containing a list of all of the changed / newly created files.
1) Abstract PropertyGroup class added - containing two properties - (TypedPagedata, and a new PropertyHierarchy type)
2) PropertyHierarchy class added which manages the property naming hieracrchy (e.g. CurrentPage["Image-AltText"]
3) PropertyGroup Attribute class added to allow specification of a edit caption prefix and also a sort order within a PropertyGroup
4) TypedPageActivator will now explicitly look for properties of type PropertyGroup and create DynamicProxy instances of them.
Two additional virtual methods for the creation of PropertyGroups - these have been added and overidden in StructureMapTypedPageActivator allowing DI with PropertyGroups
5) PageTypePropertyInterceptor will look for InvocationTargets of type PropertyGroup and return the PropertyGroups TypedPagedata and ResolvedPropertyName, else it will fall back to the existing logic
6) PageTypePropertyDefinitionLocator - now also check for any property which is of type PropertyGroup and will resolve its PageTypePropertys
We've added a few unit tests but certainly don't have a full coverage as yet - appreciate your help on what holes you think there may be.
One of the features that we weren't sure about was whether to allow nested PropertyGroups. We've kind of toyed around both ways here, but I think allowing them adds too much complexity.
Interested to hear your thoughts