/// <summary> /// Called when user clicks on the add-in menu /// </summary> /// <param name="e">The context of the VS tools and metadata</param> public override void OnClick(AddinDesignerEventArgs e) { //Microsoft.Dynamics.AX.Metadata.Core.MetaModel.EntryPointType entryPointType; try { var selectedItem = e.SelectedElement as Microsoft.Dynamics.Framework.Tools.MetaModel.Automation.IRootElement; if (selectedItem != null) { var metadataType = selectedItem.GetMetadataType(); LabelFactory labelFactory = LabelFactory.construct(selectedItem); labelFactory.ApplyLabel(); } } catch (Exception ex) { CoreUtility.HandleExceptionWithErrorMessage(ex); } }
public static LabelFactory construct(IRootElement selectedElement) { LabelFactory labelFactory = null; if (selectedElement is ITable) { labelFactory = new LabelFactory_Table(); } else if (selectedElement is ITableExtension) { labelFactory = new LabelFactory_TableExtension(); } else if (selectedElement is IDataEntity) { labelFactory = new LabelFactory_DataEntity(); } else if (selectedElement is Microsoft.Dynamics.Framework.Tools.MetaModel.Automation.DataEntityViews.IDataEntityViewExtension) { labelFactory = new LabelFactory_DataEntityExtension(); } else if (selectedElement is IMenuItem || selectedElement is IMenuItemExtension) { labelFactory = new LabelFactory_IMenuItem(); } else if (selectedElement is IForm) { labelFactory = new LabelFactory_Form(); } else if (selectedElement is ISecurityDuty) { labelFactory = new LabelFactory_ISecurityDuty(); } else if (selectedElement is ISecurityPrivilege) { labelFactory = new LabelFactory_ISecurityPrivilege(); } else if (selectedElement is ISecurityRole) { labelFactory = new LabelFactory_ISecurityRole(); } else if (selectedElement is IEdtBase) { labelFactory = new LabelFactory_IEdtBase(); } else if (selectedElement is IBaseEnum) { labelFactory = new LabelFactory_IBaseEnum(); } else if (selectedElement is IBaseEnumExtension) { labelFactory = new LabelFactory_IBaseEnumExtension(); } else if (selectedElement is IConfigurationKey) { labelFactory = new LabelFactory_IConfigurationKey(); } // add additional elseifs here else { throw new Exception($"Type {selectedElement.GetMetadataType().Name} not implemented yet"); } labelFactory.setElement(selectedElement); return(labelFactory); }