예제 #1
0
        public override void LoadData()
        {
            _allowToSave = false;

            comboBoxEditSlideHeader.EditValue = SlideContainer.EditedContent.ContractState.TabA.SlideHeader ??
                                                CustomTabInfo.HeadersItems.FirstOrDefault(h => h.IsDefault);

            comboBoxEditCombo1.EditValue = SlideContainer.EditedContent.ContractState.TabA.Combo1 ??
                                           CustomTabInfo.Combo1Items.FirstOrDefault(item => item.IsDefault);
            comboBoxEditCombo2.EditValue = SlideContainer.EditedContent.ContractState.TabA.Combo2 ??
                                           CustomTabInfo.Combo2Items.FirstOrDefault(item => item.IsDefault);

            xtraTabControl.SuspendLayout();

            var selectedItemId = (xtraTabControl.SelectedTabPage as ProductItemControl)?.ItemState?.ItemId;

            foreach (var itemControl in xtraTabControl.TabPages
                     .OfType <ProductItemControl>()
                     .Where(productControl => SlideContainer.EditedContent.ContractState.TabA.Products.All(product => product.ItemId != productControl.ItemState.ItemId))
                     .ToList())
            {
                xtraTabControl.TabPages.Remove(itemControl);
            }

            foreach (var itemState in SlideContainer.EditedContent.ContractState.TabA.Products)
            {
                var itemControl = xtraTabControl.TabPages
                                  .OfType <ProductItemControl>()
                                  .FirstOrDefault(productControl => itemState.ItemId == productControl.ItemState.ItemId);
                if (itemControl == null)
                {
                    var itemInfo = CustomTabInfo.Products.FirstOrDefault(item =>
                                                                         String.Equals(item.ProductId, itemState.ProductId, StringComparison.OrdinalIgnoreCase));
                    if (itemInfo != null)
                    {
                        itemControl = new ProductItemControl(itemInfo, itemState, this);
                        xtraTabControl.TabPages.Add(itemControl);
                    }
                }
            }

            if (selectedItemId != null)
            {
                xtraTabControl.SelectedTabPage = xtraTabControl.TabPages
                                                 .OfType <ProductItemControl>()
                                                 .FirstOrDefault(productTabControl =>
                                                                 productTabControl.ItemState.ItemId == selectedItemId)
                                                 ?? xtraTabControl.SelectedTabPage;
            }

            xtraTabControl.ResumeLayout();

            var itemControls = xtraTabControl.TabPages.OfType <ProductItemControl>().ToList();

            itemControls.FirstOrDefault()?.InitControl();

            UpdateSlideCount(itemControls.Count);

            _allowToSave = true;
        }
예제 #2
0
        private void OnMenuItemCloneClick(object sender, EventArgs e)
        {
            if (!(_menuHitInfo.Page is ProductItemControl productControl))
            {
                return;
            }

            var itemControl = new ProductItemControl(productControl.ItemInfo,
                                                     productControl.ItemState.Clone(),
                                                     this);

            xtraTabControl.TabPages.Insert(xtraTabControl.TabPages.IndexOf(_menuHitInfo.Page), itemControl);
            itemControl.InitControl();

            Contents.UpdateSlideCount(xtraTabControl.TabPages.OfType <ProductItemControl>().Count());

            SlideContainer.RaiseSlideTypeChanged();
            RaiseEditValueChanged();
        }
예제 #3
0
        private void OnProductItemClicked(Object sender, ProductClickedEventArgs e)
        {
            if (!_allowToSave)
            {
                return;
            }

            var itemInfo = e.ItemInfo;

            var itemControl = new ProductItemControl(itemInfo,
                                                     new IntegratedSolutionState.ProductItemState(itemInfo.ProductId),
                                                     this);

            xtraTabControl.TabPages.Add(itemControl);
            itemControl.InitControl();

            Contents.UpdateSlideCount(xtraTabControl.TabPages.OfType <ProductItemControl>().Count());

            SlideContainer.RaiseSlideTypeChanged();
            RaiseEditValueChanged();
        }