Expose more information about properties in `AnnotationCollection`
public interface IInteractiveIconAnnotation : IIconAnnotation{
// this inner annotation is automatically fetched from the MenuAnnotation property associated with IconName in a lazy fashion.
AnnotationCollection InnerAnnotation {get;}
}
Expose the following information in the setting AnnotationCollection when available as upposed to in the MenuAnnotation (too slow). These annotation should be added only when it is applicable and not in a hidden state for performance reasons.
- Property is parameterized (private ParameterizedAnnotation: IIconAnnotation, IEnabledAnnotation)
- Property is assigned as an input from an output. (private InputAnnotaton : IIconAnnotation, IEnabledAnnotation)
- Property is an output (private OutputAnnotation : IIconAnnotation)
- Property is an parameter (private ParameterAnnotation : IInteractiveIconAnnotation)
The parameterized and input annotations should implement IEnabledAnnotation and IIconAnnotation and set enabled to false. These properties should be disabled when either state is applicable.
This was agreed with @dennis-ks and @asger to improve support and performance in plugins.