Beispiel #1
0
        /// <summary>
        /// Contructs a classes based on the element type
        /// </summary>
        /// <param name="element"></param>
        /// <returns></returns>
        static public CreateLabels construct(NamedElement element)
        {
            // TODO: Add here new elements constructors
            switch (element.GetType().Name)
            {
            case "Table":
                return(new CreateLabels_Table(element as Table));

            case "View":
                return(new CreateLabels_View(element as View));

            case "EdtBase":
            case "EdtString":
            case "EdtContainer":
            case "EdtDate":
            case "EdtEnum":
            case "EdtDateTime":
            case "EdtGuid":
            case "EdtReal":
            case "EdtInt":
            case "EdtInt64":
                return(new CreateLabels_Edt(element as EdtBase));

            case "BaseEnum":
                return(new CreateLabels_BaseEnum(element as BaseEnum));

            case "BaseEnumExtension":
                return(new CreateLabels_BaseEnumExtension(element as BaseEnumExtension));

            case "MenuItem":
            case "MenuItemAction":
            case "MenuItemDisplay":
            case "MenuItemOutput":
                return(new CreateLabels_MenuItem(element as MenuItem));

            case "Form":
                return(new CreateLabels_Form(element as Form));

            case "SecurityPrivilege":
                return(new CreateLabels_SecurityPrivilege(element as SecurityPrivilege));

            case "WorkflowHierarchyAssignmentProvider":
                return(new CreateLabels_WorkflowHierarchyAssignmentProvider(element as WorkflowHierarchyAssignmentProvider));

            case "WorkflowApproval":
                return(new CreateLabels_WorkflowApproval(element as WorkflowApproval));

            case "WorkflowCategory":
                return(new CreateLabels_WorkflowCategory(element as WorkflowCategory));

            case "WorkflowTask":
                return(new CreateLabels_WorkflowTask(element as WorkflowTask));

            case "WorkflowTemplate":    //WorkflowType Object
                return(new CreateLabels_WorkflowType(element as WorkflowTemplate));

            default:
                throw new NotImplementedException($"The type {element.GetType().Name} is not implemented.");
            }
        }
        static public IElement construct(NamedElement namedElement)
        {
            IElement element = null;

            #region Chose element by type
            switch (namedElement.GetType().Name)
            {
            case "Table":
                element = new ElementTable(namedElement);
                break;

            case "TableExtension":
                element = new ElementTableExtension(namedElement);
                break;

            case "View":
                element = new ElementView(namedElement);
                break;

            case "ClassItem":
                element = new ElementClassItem(namedElement);
                break;

            case "SimpleQuery":
                element = new ElementSimpleQuery(namedElement);
                break;

            case "CompositeQuery":
                element = new ElementCompositeQuery(namedElement);
                break;

            case "Form":
                element = new ElementForm(namedElement);
                break;

            case "FormExtension":
                element = new ElementFormExtension(namedElement);
                break;

            case "DataEntityView":
                element = new ElementDataEntityView(namedElement);
                break;

            default:
                throw new NotImplementedException($"Not implemented type: {namedElement.GetType().Name}");
            }
            #endregion

            return(element);
        }
        /// <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)
        {
            try
            {
                StringBuilder messages = new StringBuilder();

                // Get the selected element as a base type "NamedElement". Maybe you don't need to know the specific
                // type, because you just want to dump element names, for example. You still can check the type later
                // and run any type-specific logic.
                NamedElement namedElement = e.SelectedElement as NamedElement;
                if (namedElement != null)
                {
                    messages.AppendLine($"You selected {namedElement.GetType().Name} named {namedElement.Name}.");
                }

                // If you're looking for a specific type, try to cast the selected item directly to the type.
                ClassItem c = e.SelectedElement as ClassItem;
                if (c != null)
                {
                    int methodCount = c.Methods.Cast <IMethod>().Count(); // Calculating number of methods
                    messages.AppendLine($"The class has {methodCount} method(s).");
                }

                // Show messages in a dialog box.
                CoreUtility.DisplayInfo(messages.ToString());
            }
            catch (Exception ex)
            {
                CoreUtility.HandleExceptionWithErrorMessage(ex);
            }
        }
Beispiel #4
0
        /// <summary>
        /// Contructs a classes based on the element type
        /// </summary>
        /// <param name="element"></param>
        /// <returns></returns>
        static public CreateLabels construct(NamedElement element)
        {
            // TODO: Add here new elements constructors
            switch (element.GetType().Name)
            {
            case "Table":
                return(new CreateLabels_Table(element as Table));

            case "View":
                return(new CreateLabels_View(element as View));

            case "EdtBase":
            case "EdtString":
            case "EdtContainer":
            case "EdtDate":
            case "EdtEnum":
            case "EdtDateTime":
            case "EdtGuid":
            case "EdtReal":
            case "EdtInt":
            case "EdtInt64":
                return(new CreateLabels_Edt(element as EdtBase));

            case "BaseEnum":
                return(new CreateLabels_BaseEnum(element as BaseEnum));

            case "BaseEnumExtension":
                return(new CreateLabels_BaseEnumExtension(element as BaseEnumExtension));

            case "MenuItem":
            case "MenuItemAction":
            case "MenuItemDisplay":
            case "MenuItemOutput":
                return(new CreateLabels_MenuItem(element as MenuItem));

            case "Form":
                return(new CreateLabels_Form(element as Form));

            default:
                throw new NotImplementedException($"The type {element.GetType().Name} is not implemented.");
            }
        }