Пример #1
0
        internal static void CheckUiItems(List <UiItem> uiItems)
        {
            var exInfo = "\n>> " + TypeName + ".CheckUiItems Error: ";

            foreach (var item in uiItems)
            {
                UiElementHelper.CheckName(item.Name);

                if (uiItems.FindAll(x => x.Name == item.Name).Count > 1)
                {
                    throw new ArgumentException(exInfo + "UiItem can't have duplicated name!" + ", item.Name=" + item.Name);
                }
            }
        }
Пример #2
0
        public static void CheckZoneItems(string zoneName, List <ZoneItem> zoneItems)
        {
            var exInfo = "\n>> " + TypeName + ".CheckZoneItems Error: ";

            foreach (var item in zoneItems)
            {
                UiElementHelper.CheckName(item.Name);
                if (item.Name.IsNullOrEmpty())
                {
                    throw new ArgumentException(exInfo + "ZoneItem name can't be empty! zoneName=" + zoneName + ", item.Name=" + item.Name);
                }

                if (zoneItems.FindAll(x => x.Name == item.Name).Count > 1)
                {
                    throw new ArgumentException(exInfo + "ZoneItem can't have duplicated name! zoneName=" + zoneName + ", item.Name=" + item.Name);
                }

                if (item.Type == (int)ZoneItemType.ControlContainer)
                {
                    if (item.ControlTypeName != ControlType.Panel.ToString() & item.ControlTypeName != ControlType.ContainerPanel.ToString() & item.ControlTypeName != ControlType.ShadowPanel.ToString())
                    {
                        throw new ArgumentException(exInfo + "ControlContainer's ControlType Error ! zoneName=" + zoneName + ", item.Name=" + item.Name +
                                                    "; ControlType shoulb be in " + ControlType.Panel.ToString() + ", " + ControlType.ContainerPanel.ToString() + ", " + ControlType.ShadowPanel.ToString());
                    }
                }

                if (item.Type == (int)ZoneItemType.SubControl)
                {
                    if (item.Container.IsNullOrEmpty())
                    {
                        throw new ArgumentException(exInfo + "SubControl's Container can't be empty! zoneName=" + zoneName + ", item.Name=" + item.Name);
                    }

                    if (zoneItems.FindAll(x => x.Name == item.Container).Count == 0)
                    {
                        throw new ArgumentException(exInfo + "SubControl's Container doesn't exist! zoneName=" + zoneName + ", item.Name=" + item.Name);
                    }
                }
            }
        }
Пример #3
0
        internal static void CheckMenuItems(int menuType, List <LayoutElement> menuItems)
        {
            var exInfo = "\n >> " + TypeName + ".CheckMenuItems Error: ";

            foreach (var menuItem in menuItems)
            {
                UiElementHelper.CheckName(menuItem.Name);
                if (menuItem.Type == (int)LayoutElementType.MenuItemContainerArea)
                {
                    if ((menuType == (int)MenuType.Nested | menuType == (int)MenuType.ToolBar) & (menuItem.ControlTypeName != "ToolStrip" && menuItem.ControlTypeName != "Panel"))
                    {
                        throw new ArgumentException(exInfo + "For Nested or ToolBar menu, the ControlTypeName of MenuItemContainerArea only can be \"ToolStrip\" or \"Panel\"! menuItem.Id=" + menuItem.Id + ", menuItem.Name=" + menuItem.Name);
                    }

                    if ((menuType == (int)MenuType.Horizontal) & (menuItem.ControlTypeName != "MenuStrip"))
                    {
                        throw new ArgumentException(exInfo + "For Horizontal menu, the ControlTypeName of MenuItemContainerArea only can be \"MenuStrip\"! menuItem.Id=" + menuItem.Id + ", menuItem.Name=" + menuItem.Name);
                    }
                }


                if (menuItem.Id < 1)
                {
                    throw new ArgumentException(exInfo + "menuItem Id can't be less than 1! menuItem.Id=" + menuItem.Id + ", menuItem.Name=" + menuItem.Name);
                }

                if (menuItems.FindAll(x => x.Id == menuItem.Id).Count > 1)
                {
                    throw new ArgumentException(exInfo + "menuItem can't have duplicated Id! menuItem.Id=" + menuItem.Id + ", menuItem.Name=" + menuItem.Name);
                }

                if (menuItems.FindAll(x => x.Name == menuItem.Name).Count > 1)
                {
                    throw new ArgumentException(exInfo + "menuItem can't have duplicated name! menuItem.Id=" + menuItem.Id + ", menuItem.Name=" + menuItem.Name);
                }

                if (menuItem.DockType < 0 || menuItem.DockType > 5)
                {
                    throw new ArgumentException(exInfo + "menuItem's DockType can't be less than 0 or greater than 5! area.Id=" + menuItem.Id + ", area.Name=" + menuItem.Name);
                }

                if (menuType == (int)MenuType.Nested | menuType == (int)MenuType.ToolBar)
                {
                    if (menuItem.Type != (int)LayoutElementType.MenuItem & menuItem.Type != (int)LayoutElementType.MenuItemContainerArea)
                    {
                        if (menuItem.Container.IsNullOrEmpty())
                        {
                            throw new ArgumentException(exInfo + "For Nested or ToolBar menu, only MenuItem or MenuItemContainerArea are permitted! menuItem.Id=" + menuItem.Id + ", menuItem.Name=" + menuItem.Name);
                        }
                    }
                    if (menuItem.Type == (int)LayoutElementType.MenuItemContainerArea)
                    {
                        var subMenuItems = menuItems.FindAll(x => x.Container == menuItem.Name);
                        foreach (var subMenuItem in subMenuItems)
                        {
                            if (subMenuItem.Type != (int)LayoutElementType.MenuItem)
                            {
                                throw new ArgumentException(exInfo + "For Nested or ToolBar menu, only MenuItem type can be as child element for MenuItemContainerArea ! MenuItemContainerArea.Id=" + menuItem.Id + ", MenuItemContainerArea.Name=" + menuItem.Name
                                                            + ", subMenuItem.Id=" + subMenuItem.Id + ", subMenuItem.Name=" + subMenuItem.Name);
                            }
                        }
                    }
                }

                else if (menuType == (int)MenuType.Horizontal | menuType == (int)MenuType.Vertical)
                {
                    if (menuItem.Type != (int)LayoutElementType.MenuItem)
                    {
                        throw new ArgumentException(exInfo + "For Horizontal/Vertical menu type, only MenuItem,TransactionOnlyItem are permitted! menuItem.Id=" + menuItem.Id + ", menuItem.Name=" + menuItem.Name);
                    }
                }
            }
        }
Пример #4
0
        public static void CheckViewItems(string viewName, List <LayoutElement> viewItems)
        {
            var exInfo = "\n>> " + TypeName + ".CheckViewItems Error: ";

            foreach (var viewItem in viewItems)
            {
                UiElementHelper.CheckName(viewItem.Name);
                if (viewItem.Type == (int)LayoutElementType.Zone)
                {
                    if (FileHelper.IsAbsolutePath(viewItem.Location))
                    {
                        throw new ArgumentException("ZoneLocation can't be an absolute path! ");
                    }
                    if (viewItem.Location.StartsWith("~"))
                    {
                        throw new ArgumentException(exInfo + "ZoneLocation can't starts with '~'! ");
                    }
                }

                if (viewItem.Type == (int)LayoutElementType.ContentArea | viewItem.Type == (int)LayoutElementType.Zone)
                {
                    if (viewItem.Container.IsNullOrEmpty())
                    {
                        throw new ArgumentException(exInfo + "ContentArea or Zone Item container can't be empty!  viewName=" + viewName + ", viewItem.Name=" + viewItem.Name);
                    }
                }

                if (viewItem.Type == (int)LayoutElementType.ContentArea)
                {
                    if (viewItem.DockType < 1 || viewItem.DockType > 5)
                    {
                        throw new ArgumentException(exInfo + "Content area's DockTypeName should be ‘Top’, ‘Right’, ‘Bottom’, ‘Left' or 'Fill’! viewName=" + viewName + ", area.Name=" + viewItem.Name);
                    }

                    var sameAreaItems = viewItems.FindAll(x => x.Container == viewItem.Name);
                    foreach (var subItem in sameAreaItems)
                    {
                        if (sameAreaItems.FindAll(x => x.Name == subItem.Name).Count > 1)
                        {
                            throw new ArgumentException(exInfo + "Content area can't have duplicated contained item name! viewName=" + viewName + ",area.Name=" + viewItem.Name + ", subItem.Name=" + subItem.Name);
                        }
                    }
                }


                if (viewItems.FindAll(x => x.Name == viewItem.Name && ((viewItem.Type == (int)LayoutElementType.FollowingTransaction | viewItem.Type == (int)LayoutElementType.ContentArea))).Count > 1)
                {
                    throw new ArgumentException(exInfo + "View Item can't have duplicated name! viewName=" + viewName + ", viewItem.Name=" + viewItem.Name);
                }

                if (viewItem.Type == (int)LayoutElementType.Zone)
                {
                    if (FileHelper.IsAbsolutePath(viewItem.Location))
                    {
                        throw new ArgumentException("ZoneLocation can't be an absolute path! ");
                    }
                    if (viewItem.Location.StartsWith("~"))
                    {
                        throw new ArgumentException(exInfo + "ZoneLocation can't starts with '~'! ");
                    }
                }
            }
        }
Пример #5
0
        internal static List <SubMenuItem> GetSubMenuItems(string subMenuDir)
        {
            try
            {
                var subMenuUiCfgFile = subMenuDir + "\\Ui";
                if (!ConfigFileHelper.IsFileExisting(subMenuUiCfgFile))
                {
                    return(null);
                }
                var cfgFileMgr   = new ConfigFileManager(subMenuUiCfgFile);
                var subMenuItems = FunctionHelper.GetGenericFromCfgFile <List <LayoutElement> >(subMenuUiCfgFile, false) ?? new List <LayoutElement>();

                foreach (var subMenuItem in subMenuItems)
                {
                    //check
                    UiElementHelper.CheckName(subMenuItem.Name);
                    if (subMenuItem.Id < 1)
                    {
                        throw new ArgumentException("subMenuItem Id can't be less than 1! subMenuItem.Id=" + subMenuItem.Id + ", subMenuItem.Name=" + subMenuItem.Name);
                    }
                    if (subMenuItem.ParentId < 0)
                    {
                        throw new ArgumentException("subMenuItem ParentId can't be less than 0! subMenuItem.Id=" + subMenuItem.Id + ", subMenuItem.Name=" + subMenuItem.Name);
                    }

                    if (subMenuItems.FindAll(x => x.Id == subMenuItem.Id).Count > 1)
                    {
                        throw new ArgumentException("subMenuItem can't have duplicated Id! subMenuItem.Id=" + subMenuItem.Id + ", subMenuItem.Name=" + subMenuItem.Name);
                    }

                    if (subMenuItems.FindAll(x => x.Name == subMenuItem.Name).Count > 1)
                    {
                        throw new ArgumentException("menuItem can't have duplicated name! menuItem.Id=" + subMenuItem.Id + ", subMenuItem.Name=" + subMenuItem.Name);
                    }
                    //set
                    subMenuItem.InvalidFlag           = subMenuItem.InvalidFlag.GetJudgementFlag();
                    subMenuItem.InvisibleFlag         = subMenuItem.InvisibleFlag.GetJudgementFlag();
                    subMenuItem.DisabledFlag          = subMenuItem.DisabledFlag.GetJudgementFlag();
                    subMenuItem.WriteIntoLogFlag      = subMenuItem.WriteIntoLogFlag.GetJudgementFlag();
                    subMenuItem.ShowRunningStatusFlag = subMenuItem.ShowRunningStatusFlag.GetJudgementFlag();
                }

                var subMenuItems1 = subMenuItems.FindAll(x => x.InvalidFlag.ToLower() == "false");
                var subMenuItems2 = new List <SubMenuItem>();
                foreach (var subMenuItem in subMenuItems1)
                {
                    var subMenuItem2 = new SubMenuItem();
                    subMenuItem.ExecModeFlag     = string.IsNullOrEmpty(subMenuItem.ExecModeFlag) ? "" : subMenuItem.ExecModeFlag;
                    subMenuItem2.Id              = subMenuItem.Id.ToString();
                    subMenuItem2.ParentId        = subMenuItem.ParentId.ToString();
                    subMenuItem2.Name            = subMenuItem.Name ?? "";
                    subMenuItem2.DisplayName     = subMenuItem.DisplayName ?? "";
                    subMenuItem2.Action          = subMenuItem.Action ?? "";
                    subMenuItem2.ControlTypeName = subMenuItem.ControlTypeName ?? "";
                    subMenuItem2.ImageUrl        = subMenuItem.ImageUrl ?? "";
                    subMenuItems2.Add(subMenuItem2);
                }
                return(subMenuItems2);
            }
            catch (Exception ex)
            {
                throw new ArgumentException("\n>> " + TypeName + ".SetSubMenuItems Error: " + ex.Message);
            }
        }