Beispiel #1
0
        public GnosisContainerTreeViewItemController(GnosisVisibleController controller)
        {
            SourceController                     = controller;
            TreeViewItemImplementation           = GnosisControlCreator.CreateGnosisContainerTreeViewItem();
            TreeViewItemImplementation.GnosisTag = SourceController;

            SetIconAndCaption();


            //Add child nodes
            if (controller is GnosisParentWindowController)
            {
                GnosisContainerTreeViewItemController primary =
                    new GnosisContainerTreeViewItemController(GlobalData.Singleton.PrimarySplitController);
                TreeViewItemImplementation.AddItem(primary.TreeViewItemImplementation);
            }
            else if (controller is GnosisPrimarySplitController || controller is GnosisSplitController)
            {
                foreach (GnosisContainerController child in ((GnosisSplitController)controller).ChildControllers.OrderBy(x => x.ControlImplementation.Order))
                {
                    GnosisContainerTreeViewItemController childItem = new GnosisContainerTreeViewItemController(child);
                    TreeViewItemImplementation.AddItem(childItem.TreeViewItemImplementation);
                }
            }
        }
Beispiel #2
0
        public void AddFrameController(GnosisFrameController frameController)
        {
            if (((IGnosisTileTabImplementation)ControlImplementation).CurrentTileTabItem == null)
            {
                if (tabItemControllers.Count == 0)
                {
                    Setup();
                }
                else
                {
                    GlobalData.Singleton.ErrorHandler.HandleError("No tab item selected", "GnosisTileTabController.AddFrameController");
                }
            }

            //Find the selected tab item and pass it the frame
            GnosisTileTabItemController controller = tabItemControllers.Find(i => i.ControlImplementation == ((IGnosisTileTabImplementation)ControlImplementation).CurrentTileTabItem);

            controller.LoadFrame(frameController);
            controller.IsDummyTabItem = false;

            //string caption = frameController.Caption;
            //if (frameController.InstanceController != null)
            //{
            //    if (frameController.InstanceController.Instance.InstanceName != null && frameController.InstanceController.Instance.InstanceName.Length > 0)
            //    {
            //        caption += " - " + frameController.InstanceController.Instance.InstanceName;
            //    }
            //}
            //((IGnosisTileTabItemImplementation)ControlImplementation).SetCaption(caption);
            //((IGnosisTileTabImplementation)ControlImplementation).CurrentTileTabItem.LoadFrame((IGnosisFrameImplementation)frameController.ControlImplementation, caption);

            //check if there is a '+' tab item
            GnosisTileTabItemController dummy = tabItemControllers.Find(i => i.IsDummyTabItem);

            if (dummy == null)
            {
                //create dummy tabitem
                GnosisTileTabItem tabItem = GnosisControlCreator.CreateGnosisTabItem(1);
                // IGnosisTileTabItemImplementation tabItemImp = GlobalData.Singleton.ImplementationCreator.GetGnosisTabItemImplementation();
                GnosisTileTabItemController itemController = new GnosisTileTabItemController(tabItem, EntityController, this);
                itemController.IsDummyTabItem = true;
                itemController.ControlImplementation.Order = tabItemControllers.Count + 1;
                tabItemControllers.Add(itemController);

                GnosisToggleButton headerButton = GnosisControlCreator.CreateGnosisToggleButton(1, "+");
                GlobalData.Singleton.StyleHelper.ApplyStyle(headerButton, frameController.EntityController.GetNormalStyle());
                // headerButton.SetCaption("+");
                headerButton.Order = itemController.ControlImplementation.Order;
                tabItem.SetHeaderButton(headerButton);

                ((IGnosisTileTabImplementation)ControlImplementation).LoadTabItem(tabItem);

                //headerButtons.Add(headerButton);
            }
        }
        public void LoadData(GnosisInstance instance, bool expanded)
        {
            //Get the data rows from the instance
            IEnumerable <XElement> dataRows = instanceController.GetDataRows(galleryDatasetItem.Dataset);

            //Find the attribute to use for the caption
            GnosisGallerySearchAttribute captionGalleryAttribute = galleryDatasetItem.GalleryAttributes.Where(a => a.GalleryRole.Equals("Caption")).First();
            string captionAttributeName = instanceController.GetTargetAttributeName(captionGalleryAttribute.Dataset, captionGalleryAttribute.DatasetItem);
            int    order = 1;
            int    index = 0;

            foreach (var row in dataRows)
            {
                GnosisGalleryItem galleryItem = GnosisControlCreator.CreateGnosisGalleryItem(order++, expanded);
                // IGnosisGalleryItemImplementation galleryItemImplementation = GlobalData.Singleton.ImplementationCreator.GetGnosisGalleryItemImplementation();
                GnosisGalleryItemController itemController = new GnosisGalleryItemController(galleryItem, instanceController, parent);
                itemController.Setup();

                galleryItem.Caption = row.Attribute(captionAttributeName).Value;

                foreach (GnosisGallerySearchItem searchItem in galleryDatasetItem.GallerySearchItems)
                {
                    GnosisGallerySearchItem searchItemClone = GnosisControlCreator.CreateGnosisGallerySearchItem(searchItem);
                    // IGnosisGalleryItemImplementation childImplementation = GlobalData.Singleton.ImplementationCreator.GetGnosisGalleryItemImplementation();
                    GnosisGallerySearchItemController childController = new GnosisGallerySearchItemController(searchItemClone, instanceController, itemController, index);
                    childController.Setup();

                    itemController.AddGalleryItemController(childController);
                    // galleryItem.GnosisAddChild(searchItemClone);
                    //galleryItemImplementation.AddGalleryItem(childImplementation);
                }

                foreach (GnosisGalleryDocumentItem docItem in galleryDatasetItem.GalleryDocumentItems)
                {
                    // IGnosisGalleryItemImplementation childImplementation = GlobalData.Singleton.ImplementationCreator.GetGnosisGalleryItemImplementation();
                    GnosisGalleryDocumentItem           docItemClone    = GnosisControlCreator.CreateGnosisGalleryDocumentItem(docItem);
                    GnosisGalleryDocumentItemController childController = new GnosisGalleryDocumentItemController(docItemClone, instanceController, itemController, index);
                    childController.Setup();

                    itemController.AddGalleryItemController(childController);
                    //  galleryItem.GnosisAddChild(docItemClone);
                }

                // itemController.LoadGalleryItems();

                index++;
                parent.AddGalleryItemController(itemController);
                //  ((GnosisGalleryItem)parent.ControlImplementation).GnosisAddChild(itemController.ControlImplementation);
                //   ((IGnosisGalleryImplementation)parent.ControlImplementation).AddGalleryItem(galleryItemImplementation);
            }

            // parent.LoadGalleryItems();
        }
        private GnosisDocumentFrameController New()
        {
            GnosisDocumentFrame docFrame = GnosisControlCreator.CreateGnosisDocFrame(
                GlobalData.Singleton.Connection.System,
                GlobalData.Singleton.Connection.VersionNo,
                GlobalData.Singleton.Connection.URL);

            // IGnosisDocFrameImplementation docFrameImp = GlobalData.Singleton.ImplementationCreator.GetGnosisDocFrameImplementation();

            GnosisDocumentFrameController newController =
                new GnosisDocumentFrameController(docFrame, InstanceController, (GnosisContainerController)Parent);

            newController.Setup();

            return(newController);
        }
Beispiel #5
0
        protected override void Setup()
        {
            //content is derived from
            ToggleMenuItemControllers = new List <GnosisGenericToggleMenuItemController>();
            string value = GlobalData.Singleton.SystemController.GetEnvironmentVariableValue(
                ((GnosisGenericMenuGroup)ControlImplementation).VariableSystemID,
                ((GnosisGenericMenuGroup)ControlImplementation).VariableControlID);
            int code = Convert.ToInt32(value);
            //GnosisEnvironmentVariable variable = GlobalData.Singleton.SystemController.GetEnvironmentVariable(VariableSystemID, VariableControlID);
            //variableName = variable.GnosisName;
            //GlobalData.Singleton.SystemController.PropertyChanged += SystemController_PropertyChanged;

            List <GnosisDataItem> values = GlobalData.Singleton.SystemController.GetDataItemList(
                ((GnosisGenericMenuGroup)ControlImplementation).VariableSystemID,
                ((GnosisGenericMenuGroup)ControlImplementation).VariableControlID);

            foreach (GnosisDataItem dataItem in values)
            {
                GnosisGenericToggleMenuItem toggleItem = GnosisControlCreator.CreateGenericToggleMenuItem(
                    dataItem.GnosisName,
                    dataItem.Order,
                    dataItem.GnosisIcon,
                    dataItem.Tooltip,
                    ((GnosisGenericMenuGroup)ControlImplementation).VariableSystemID,
                    ((GnosisGenericMenuGroup)ControlImplementation).VariableControlID,
                    dataItem.Code);

                ((GnosisGenericMenuGroup)ControlImplementation).GnosisAddChild(toggleItem);

                GnosisGenericToggleMenuItemController controller = new GnosisGenericToggleMenuItemController(toggleItem, this);
                toggleItem.PropertyChanged += Child_PropertyChanged;
                ToggleMenuItemControllers.Add(controller);
                if (toggleItem.Code == code)
                {
                    toggleItem.Active = true;
                }
                else
                {
                    toggleItem.Active = false;
                }
            }
        }
Beispiel #6
0
        public void Setup()
        {
            GnosisTileTabItem tabItem = GnosisControlCreator.CreateGnosisTabItem(1);
            //  IGnosisTileTabItemImplementation tabItemImp = GlobalData.Singleton.ImplementationCreator.GetGnosisTabItemImplementation();
            GnosisTileTabItemController itemController = new GnosisTileTabItemController(tabItem, EntityController, this);

            tabItemControllers.Add(itemController);
            itemController.IsDummyTabItem = true;
            itemController.ControlImplementation.Order = 1;

            //IGnosisToggleButtonImplementation headerButton = GlobalData.Singleton.ImplementationCreator.GetGnosisToggleButtonImplementation();
            //GlobalData.Singleton.StyleHelper.ApplyStyle(headerButton, tabItemImp, itemController, frameController.EntityController.GetNormalStyle());
            // headerButton.SetCaption("+");
            // headerButton.Order = 1;
            // tabItemImp.SetHeader(headerButton);

            ((IGnosisTileTabImplementation)ControlImplementation).LoadTabItem(tabItem);
            //headerButtons.Add(headerButton);

            currentTabItemController = tabItemControllers[0];
        }
Beispiel #7
0
        //private void LoadFrame()
        //{
        //    if (frameControllers.Count > 0)
        //    {
        //        GnosisFrameController lastFrame = frameControllers[frameControllers.Count - 1];
        //        ((IGnosisTileImplemenation)ControlImplementation).LoadFrameImplementation((IGnosisFrameImplementation)lastFrame.ControlImplementation);
        //    }
        //}

        private void CreateTabs()
        {
            //create a tab controller
            // IGnosisTileTabImplementation tabImp = GlobalData.Singleton.ImplementationCreator.GetGnosisTabImplementation();

            GnosisTileTab tab = GnosisControlCreator.CreateGnosisTab();

            tabController = new GnosisTileTabController(tab, EntityController, this);
            tabController.Setup();

            //pass the frames to the tab controller
            foreach (GnosisFrameController frameController in frameControllers)
            {
                tabController.AddFrameController(frameController);
            }

            //update the UI
            ((GnosisTile)ControlImplementation).LoadTabImplementation((IGnosisTileTabImplementation)tabController.ControlImplementation);

            frameControllers       = new List <GnosisFrameController>();
            currentFrameController = null;
        }
Beispiel #8
0
        public void LoadFrame(GnosisFrameController frameController)
        {
            showLoadingAnimation = false;

            frameControllers.Add(frameController);
            currentFrameController = frameController;

            ((GnosisTileTabItem)ControlImplementation).Clear();

            //((IGnosisTileTabItemImplementation)ControlImplementation).SetHeader(headerButton);

            string caption = ((IGnosisFrameImplementation)frameController.ControlImplementation).Caption;

            if (frameController.InstanceController != null)
            {
                if (frameController.InstanceController.Instance.InstanceName != null && frameController.InstanceController.Instance.InstanceName.Length > 0)
                {
                    caption += " - " + frameController.InstanceController.Instance.InstanceName;
                }
            }
            ((IGnosisFrameImplementation)frameController.ControlImplementation).Caption = caption;

            //Create a toggle button for the tab item header. Apply the style of the frame to it
            //Use the tile tab item as the binding source for the toggle button so that it changes with mouse over of tab item etc
            GnosisToggleButton headerButton = GnosisControlCreator.CreateGnosisToggleButton(
                this.ControlImplementation.Order,
                caption);

            GlobalData.Singleton.StyleHelper.ApplyStyle(headerButton, frameController.EntityController.GetNormalStyle());
            frameController.TabHeaderButton = headerButton;



            if (loaded)
            {
                ((IGnosisTileTabItemImplementation)ControlImplementation)
                .LoadFrame((IGnosisFrameImplementation)currentFrameController.ControlImplementation, headerButton);
            }
        }
        //public virtual IGnosisGridFieldImplementation GetFieldClone()
        //{
        //    IGnosisGridFieldImplementation gridFieldImp = fieldController.GetClone();
        //    gridFieldImp.Order = columnModel.Order;
        //    fields.Add(gridFieldImp);

        //    return gridFieldImp;
        //}

        public virtual IGnosisGridFieldImplementation GetFieldClone()
        {
            IGnosisGridFieldImplementation gridField = null;

            if (ColumnModel is GnosisTextColumn)
            {
                gridField = GnosisControlCreator.CreateGnosisGridTextField((GnosisTextColumn)ColumnModel);
            }
            else if (ColumnModel is GnosisCheckColumn)
            {
                gridField = GnosisControlCreator.CreateGnosisGridCheckField((GnosisCheckColumn)ColumnModel);
            }
            else if (ColumnModel is GnosisDateColumn)
            {
                gridField = GnosisControlCreator.CreateGnosisGridDateField((GnosisDateColumn)ColumnModel);
            }
            else if (ColumnModel is GnosisDateTimeColumn)
            {
                gridField = GnosisControlCreator.CreateGnosisGridDateTimeField((GnosisDateTimeColumn)ColumnModel);
            }
            else if (ColumnModel is GnosisComboColumn)
            {
                gridField = GnosisControlCreator.CreateGnosisGridComboField((GnosisComboColumn)ColumnModel);
            }
            else if (ColumnModel is GnosisLinkColumn)
            {
                gridField = GnosisControlCreator.CreateGnosisGridLinkField((GnosisLinkColumn)ColumnModel);
            }
            else if (ColumnModel is GnosisNumberColumn)
            {
                gridField = GnosisControlCreator.CreateGnosisGridNumberField((GnosisNumberColumn)ColumnModel);
            }
            else if (ColumnModel is GnosisTextResults)
            {
                gridField = GnosisControlCreator.CreateGnosisResultsTextField((GnosisTextResults)ColumnModel);
            }
            else if (ColumnModel is GnosisCheckResults)
            {
                gridField = GnosisControlCreator.CreateGnosisResultsCheckField((GnosisCheckResults)ColumnModel);
            }
            else if (ColumnModel is GnosisDateResults)
            {
                gridField = GnosisControlCreator.CreateGnosisResultsDateField((GnosisDateResults)ColumnModel);
            }
            else if (ColumnModel is GnosisDateTimeResults)
            {
                gridField = GnosisControlCreator.CreateGnosisResultsDateTimeField((GnosisDateTimeResults)ColumnModel);
            }
            else if (ColumnModel is GnosisNumberResults)
            {
                gridField = GnosisControlCreator.CreateGnosisResultsNumberField((GnosisNumberResults)ColumnModel);
            }


            if (gridField != null)
            {
                GlobalData.Singleton.StyleHelper.ApplyStyle(gridField, instanceController.EntityController.GetNormalStyle());
                return(gridField);
            }
            else
            {
                GlobalData.Singleton.ErrorHandler.HandleError("Unknown column type: " + ColumnModel.GetType().ToString(), "GnosisGridColumnController.GetFieldClone");
                return(null);
            }
        }
        //public GnosisGridFieldController FieldController
        //{
        //    get { return fieldController; }
        //}

        public GnosisGridColumnController(
            GnosisGridColumn column,
            GnosisInstanceController _instanceController,
            GnosisGridController _parent)
        {
            columnModel        = column;
            instanceController = _instanceController;
            parent             = _parent;
            fields             = new List <IGnosisGridFieldImplementation>();

            //header
            header = GnosisControlCreator.CreateGnosisGridHeaderField();
            GnosisStyle captionStyle = _instanceController.EntityController.GetCaptionStyle();

            GlobalData.Singleton.StyleHelper.ApplyCaptionStyle(header, captionStyle);
            double height = GlobalData.Singleton.StyleHelper.GetFieldHeight(header, captionStyle.Font, captionStyle.FontSize);

            ((GnosisGridHeaderField)header).Height = height;
            header.Caption = column.Caption;

            //columnar header
            columnarHeader = GnosisControlCreator.CreateGnosisCaptionLabel();
            GlobalData.Singleton.StyleHelper.ApplyCaptionStyle(columnarHeader, _instanceController.EntityController.GetCaptionStyle());

            SetDisplayWidths();

            ////field for cloning
            //if (column is GnosisTextColumn)
            //{
            //    // IGnosisGridTextFieldImplementation textFieldImp = GlobalData.Singleton.ImplementationCreator.GetGnosisGridTextFieldImplementation();
            //    ModelCreator.CreateGnosisGridTextField(1);
            //    fieldController = new GnosisGridTextFieldController(this, textFieldImp, instanceController, parent, 0);
            //    GlobalData.Singleton.StyleHelper.ApplyStyle(textFieldImp, fieldController, instanceController.EntityController.GetNormalStyle());
            //}
            //else if (column is GnosisTextResults)
            //{
            //    IGnosisTextResultsFieldImplementation textFieldImp = GlobalData.Singleton.ImplementationCreator.GetGnosisTextResultsFieldImplementation();
            //    fieldController = new GnosisTextResultsFieldController(this, textFieldImp, instanceController, (GnosisSearchResultsGridController)parent, 0);
            //    GlobalData.Singleton.StyleHelper.ApplyStyle(textFieldImp, fieldController, instanceController.EntityController.GetNormalStyle());
            //}
            //else if (column is GnosisCheckColumn)
            //{
            //    IGnosisGridCheckFieldImplementation checkFieldImp = GlobalData.Singleton.ImplementationCreator.GetGnosisGridCheckFieldImplementation();
            //    fieldController = new GnosisGridCheckFieldController(this, checkFieldImp, instanceController, parent, 0);
            //    GlobalData.Singleton.StyleHelper.ApplyStyle(checkFieldImp, fieldController, instanceController.EntityController.GetNormalStyle());
            //}
            //else if (column is GnosisCheckResults)
            //{
            //    IGnosisCheckResultsFieldImplementation checkFieldImp = GlobalData.Singleton.ImplementationCreator.GetGnosisCheckResultsFieldImplementation();
            //    fieldController = new GnosisCheckResultsFieldController(this, checkFieldImp, instanceController, (GnosisSearchResultsGridController)parent, 0);
            //}
            //else if (column is GnosisComboColumn)
            //{
            //    IGnosisGridComboFieldImplementation comboFieldImp = GlobalData.Singleton.ImplementationCreator.GetGnosisGridComboFieldImplementation();
            //    fieldController = new GnosisGridComboFieldController(this, comboFieldImp, instanceController, parent, 0);
            //}
            //else if (column is GnosisDateColumn)
            //{
            //    IGnosisGridDateFieldImplementation dateFieldImp = GlobalData.Singleton.ImplementationCreator.GetGnosisGridDateFieldImplementation();
            //    fieldController = new GnosisGridDateFieldController(this, dateFieldImp, instanceController, parent, 0);
            //}
            //else if (column is GnosisDateResults)
            //{
            //    IGnosisDateResultsFieldImplementation dateResultsImp = GlobalData.Singleton.ImplementationCreator.GetGnosisDateResultsFieldImplementation();
            //    fieldController = new GnosisDateResultsFieldController(this, dateResultsImp, instanceController, (GnosisSearchResultsGridController)parent, 0);
            //}
            //else if (column is GnosisDateTimeColumn)
            //{
            //    IGnosisGridDateTimeFieldImplementation dateTimeFieldImp = GlobalData.Singleton.ImplementationCreator.GetGnosisGridDateTimeFieldImplementation();
            //    fieldController = new GnosisGridDateTimeFieldController(this, dateTimeFieldImp, instanceController, parent, 0);
            //}
            //else if (column is GnosisDateTimeResults)
            //{
            //    IGnosisDateTimeResultsFieldImplementation dateTimeResultsImp = GlobalData.Singleton.ImplementationCreator.GetGnosisDateTimeResultsFieldImplementation();
            //    fieldController = new GnosisGridFieldController(this, dateTimeResultsImp, instanceController, (GnosisSearchResultsGridController)parent, 0);
            //}
            //fieldController.ControlImplementation.Order = column.Order;

            //get min and max field width
        }
        public override void LoadData(int rowNo)
        {
            if (InstanceController != null)
            {
                string datasetName     = ((GnosisComboField)ControlImplementation).Dataset;
                string datasetItemName = ((GnosisComboField)ControlImplementation).DatasetItem;

                XElement optionsXML     = InstanceController.GetOptionsXML(datasetName, datasetItemName);
                string   valueAttribute = InstanceController.GetSourceAttributeName(datasetName, datasetItemName);
                string   selected       = InstanceController.GetDataString(datasetName, datasetItemName, rowNo);

                comboOptionImplementations = new Dictionary <GnosisComboOption, List <GnosisKey> >();
                //IGnosisComboOptionImplementation selectedOption = null;
                int i = 1;
                foreach (var row in optionsXML.Descendants())
                {
                    GnosisComboOption comboOptionImp = GnosisControlCreator.CreateGnosisComboOption(i);//GlobalData.Singleton.ImplementationCreator.GetGnosisComboOptionImplementation();
                    string            display        = row.Attribute(valueAttribute).Value;
                    comboOptionImp.SetText(display);
                    if (display.Equals(selected))
                    {
                        currentComboOptionImplementation = comboOptionImp;
                    }

                    List <GnosisKey> keys = new List <GnosisKey>();

                    if (((GnosisComboField)ControlImplementation).ComboAttributes != null)
                    {
                        foreach (GnosisComboAttribute comboAttribute in ((GnosisComboField)ControlImplementation).ComboAttributes.Where(a => a._ComboRole == GnosisComboAttribute.ComboRoleType.KEY))
                        {
                            string    targetAttribute = InstanceController.GetTargetAttributeName(comboAttribute.Dataset, comboAttribute.DatasetItem);
                            string    sourceAttribute = InstanceController.GetKeyOptionSourceAttributeName(comboAttribute.Dataset, comboAttribute.DatasetItem);
                            string    keyString       = row.Attribute(sourceAttribute).Value;
                            GnosisKey key             = new GnosisKey(comboAttribute.Dataset, comboAttribute.DatasetItem, sourceAttribute, targetAttribute, keyString);
                            keys.Add(key);
                        }
                    }

                    comboOptionImplementations.Add(comboOptionImp, keys);
                    i++;
                }

                //List<string> values = InstanceController.GetOptionsList(datasetName, datasetItemName);
                //string selected = InstanceController.GetDataString(datasetName, datasetItemName, rowNo);

                //comboOptionImplementations = new List<IGnosisComboOptionImplementation>();
                //IGnosisComboOptionImplementation selectedOption = null;

                //foreach (string option in values)
                //{
                //    IGnosisComboOptionImplementation comboOptionImp = GlobalData.Singleton.ImplementationCreator.GetGnosisComboOptionImplementation();
                //    comboOptionImplementations.Add(comboOptionImp);
                //    //comboOptionImp.LoadItem(option);
                //    comboOptionImp.SetText(option);
                //    if (option.Equals(selected))
                //    {
                //        selectedOption = comboOptionImp;
                //    }
                //}

                List <GnosisComboOption> comboOptions = new List <GnosisComboOption>();

                foreach (GnosisComboOption option in comboOptionImplementations.Keys)
                {
                    comboOptions.Add(option);
                }

                ((GnosisComboField)ControlImplementation).LoadComboOptionImplementations(comboOptions);

                if (currentComboOptionImplementation != null)
                {
                    ((GnosisComboField)ControlImplementation).SetSelectedOption(currentComboOptionImplementation);
                }
            }
        }
        public void Setup()
        {
            toolbarButtonControllers = new List <object>();

            try
            {
                //Find the GnosisGenericMenu which this toolbar points at
                genericMenuController = (GnosisGenericMenuController)GlobalData.Singleton.FindController(((GnosisToolbar)ControlImplementation).MenuSystemID,
                                                                                                         ((GnosisToolbar)ControlImplementation).MenuControlID);

                //create toolbar buttons for each generic menu item
                if (genericMenuController.GenericMenuItemControllers != null && genericMenuController.GenericMenuItemControllers.Count > 0)
                {
                    foreach (GnosisGenericMenuItemController menuItemController in genericMenuController.GenericMenuItemControllers.OrderBy(x => x.ControlImplementation.Order))
                    {
                        object btnController;

                        if (menuItemController.ChildControllers.Count > 0)
                        {
                            GnosisMenuButton menuButton = GnosisControlCreator.CreateGnosisMenuButton();
                            //btn = CreateDropDownButton(menuItemController);
                            //  IGnosisToolbarMenuButtonImplementation menuBtnImplementation =
                            //    GlobalData.Singleton.ImplementationCreator.GetGnosisToolbarMenuButtonImplementation();
                            btnController = new GnosisToolbarMenuButtonController(menuItemController, menuButton, EntityController, this);
                            ((GnosisToolbarMenuButtonController)btnController).Setup();

                            toolbar.AddMenuButton(menuButton);
                            toolbarButtonControllers.Add(btnController);
                        }
                        else if (menuItemController is GnosisGenericToggleMenuItemController)
                        {
                            // IGnosisToggleButtonImplementation toggleButton = GlobalData.Singleton.ImplementationCreator.GetGnosisToggleButtonImplementation();
                            GnosisToggleButton          toggleButton = new GnosisToggleButton();
                            GnosisGenericToggleMenuItem menuItem     = (GnosisGenericToggleMenuItem)menuItemController.ControlImplementation;
                            toggleButton.Active     = menuItem.Active;
                            toggleButton.Caption    = menuItem.Caption;
                            toggleButton.GnosisIcon = menuItem.GnosisIcon;
                            toggleButton.ToolTip    = menuItem.Tooltip;
                            toggleButton.Disabled   = menuItem.Disabled;
                            toggleButton.Hidden     = menuItem.Hidden;
                            btnController           = new GnosisToolbarToggleButtonController((GnosisGenericToggleMenuItemController)menuItemController, toggleButton, EntityController, this);
                            //((GnosisToolbarToggleButtonController)btnController).Setup();

                            toolbar.AddToggleButton(toggleButton);
                            toolbarButtonControllers.Add(btnController);
                        }
                        else if (menuItemController is GnosisGenericMenuGroupController)
                        {
                            GnosisGenericMenuGroupController groupController = (GnosisGenericMenuGroupController)menuItemController;

                            foreach (GnosisGenericToggleMenuItemController toggleMenuItemController in groupController.ToggleMenuItemControllers)
                            {
                                // IGnosisToggleButtonImplementation toggleButton = GlobalData.Singleton.ImplementationCreator.GetGnosisToggleButtonImplementation();
                                GnosisToggleButton          toggleButton = new GnosisToggleButton();
                                GnosisGenericToggleMenuItem menuItem     = (GnosisGenericToggleMenuItem)toggleMenuItemController.ControlImplementation;
                                toggleButton.Active     = menuItem.Active;
                                toggleButton.Caption    = menuItem.Caption;
                                toggleButton.GnosisIcon = menuItem.GnosisIcon;
                                toggleButton.ToolTip    = menuItem.Tooltip;
                                toggleButton.Disabled   = menuItem.Disabled;
                                toggleButton.Hidden     = menuItem.Hidden;
                                btnController           = new GnosisToolbarToggleButtonController(toggleMenuItemController, toggleButton, EntityController, this);
                                toolbar.AddToggleButton(toggleButton);
                                toolbarButtonControllers.Add(btnController);
                            }
                        }
                        else
                        {
                            GnosisButton          toolbarButton = new GnosisButton();// ((GnosisGenericMenuItem)menuItemController.ControlImplementation);
                            GnosisGenericMenuItem menuItem      = (GnosisGenericMenuItem)menuItemController.ControlImplementation;
                            toolbarButton.Caption    = menuItem.Caption;
                            toolbarButton.GnosisIcon = menuItem.GnosisIcon;
                            toolbarButton.ToolTip    = menuItem.Tooltip;
                            toolbarButton.Disabled   = menuItem.Disabled;
                            toolbarButton.Hidden     = menuItem.Hidden;
                            // IGnosisButtonImplementation btnImplementation =
                            //   GlobalData.Singleton.ImplementationCreator.GetGnosisButtonImplementation();
                            btnController = new GnosisToolbarButtonController(menuItemController, toolbarButton, EntityController, this);
                            ((GnosisToolbarButtonController)btnController).Setup();

                            toolbar.AddToolbarButton(toolbarButton);
                            toolbarButtonControllers.Add(btnController);
                        }


                        //genericMenuItemControllers.Add(menuItemController);
                    }
                }

                if (((GnosisGenericMenu)genericMenuController.ControlImplementation).SystemAddressField != null)
                {
                    // IGnosisSystemAddressFieldImplementation systemAddressFieldImp =
                    //   GlobalData.Singleton.ImplementationCreator.GetGnosisSystemAddressFieldImplementation();
                    GnosisSystemAddressController systemAddressController = new GnosisSystemAddressController(
                        ((GnosisGenericMenu)genericMenuController.ControlImplementation).SystemAddressField, EntityController, this);
                    toolbar.AddSystemAddressField(((GnosisGenericMenu)genericMenuController.ControlImplementation).SystemAddressField);
                }
            }
            catch (Exception ex)
            {
                GlobalData.Singleton.ErrorHandler.HandleError(ex.Message, ex.StackTrace);
            }
        }