public override void LoadData()
        {
            if (Initialized)
            {
                return;
            }

            _allowHandleEvents = false;

            var savedImageClipart = TabState.Clipart is ImageClipartObject imageClipart ? imageClipart : null;

            _defaultClipartObject = ImageClipartObject.FromFile(TabInfo.DefaultImagePath);
            _currentClipartObject = TabInfo.ImageFiles.Any(item =>
                                                           String.Equals(item, savedImageClipart?.FilePath, StringComparison.OrdinalIgnoreCase)) ?
                                    savedImageClipart :
                                    ImageClipartObject.FromFile(TabInfo.ImageFiles.FirstOrDefault());


            clipartEditContainer.Init(_defaultClipartObject, new ClipartConfiguration(), Container.Container.TabPageContainer.ParentControl);
            clipartEditContainer.EditValueChanged += OnEditValueChanged;

            clipartEditContainer.LoadData(TabState.Clipart ?? _defaultClipartObject);

            _allowHandleEvents = true;

            Initialized = true;
        }
 private void OnInsertFileItemClick(object sender, ItemClickEventArgs e)
 {
     using (var openFileDialog = new OpenFileDialog())
     {
         openFileDialog.Title            = "Inser Image or Video file";
         openFileDialog.DefaultExt       = "*.png;*.bmp;*.jpg;*.jpeg;*.mp4;*.avi;*.wmv";
         openFileDialog.Filter           = "Image or Video files|*.png;*.bmp;*.jpg;*.jpeg;*.mp4;*.avi;*.wmv";
         openFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
         if (openFileDialog.ShowDialog() == DialogResult.OK)
         {
             var           filePath      = openFileDialog.FileName;
             ClipartObject clipartObject = null;
             if (FileFormatHelper.IsImageFile(filePath))
             {
                 clipartObject = ImageClipartObject.FromFile(filePath);
             }
             else if (FileFormatHelper.IsVideoFile(filePath))
             {
                 clipartObject = GenererateVideoClipart(filePath);
             }
             if (clipartObject != null)
             {
                 LoadData(clipartObject);
                 EditValueChanged?.Invoke(sender, e);
             }
         }
     }
 }
        private void OnImageDragDrop(object sender, DragEventArgs e)
        {
            if (e.Data != null && e.Data.GetDataPresent(DataFormats.FileDrop, true) &&
                e.Data.GetData(DataFormats.FileDrop, true) is String[])
            {
                var filePath = (e.Data.GetData(DataFormats.FileDrop) as String[] ?? new string[] { }).FirstOrDefault();
                if (filePath == null)
                {
                    return;
                }

                ClipartObject clipartObject = null;
                if (FileFormatHelper.IsImageFile(filePath))
                {
                    clipartObject = ImageClipartObject.FromFile(filePath);
                }
                else if (FileFormatHelper.IsVideoFile(filePath))
                {
                    clipartObject = GenererateVideoClipart(filePath);
                }
                if (clipartObject != null)
                {
                    LoadData(clipartObject);
                    EditValueChanged?.Invoke(sender, e);
                }
            }
        }
        protected override OutputDataPackage GetOutputData()
        {
            var outputDataPackage = new OutputDataPackage();

            outputDataPackage.Theme = SelectedTheme;

            switch (SlideContainer.EditedContent.ApproachState.TabA.Items.Count)
            {
            case 1:
                outputDataPackage.TemplateName =
                    MasterWizardManager.Instance.SelectedWizard.GetShiftApproachFile("058_our_approach_a4.pptx");
                break;

            case 2:
                outputDataPackage.TemplateName =
                    MasterWizardManager.Instance.SelectedWizard.GetShiftApproachFile("057_our_approach_a3.pptx");
                break;

            case 3:
                outputDataPackage.TemplateName =
                    MasterWizardManager.Instance.SelectedWizard.GetShiftApproachFile("056_our_approach_a2.pptx");
                break;

            case 4:
                outputDataPackage.TemplateName =
                    MasterWizardManager.Instance.SelectedWizard.GetShiftApproachFile("055_our_approach_a1.pptx");
                break;

            default:
                outputDataPackage.TemplateName =
                    MasterWizardManager.Instance.SelectedWizard.GetShiftApproachFile("058_our_approach_a4.pptx");
                break;
            }

            outputDataPackage.TextItems.Add("SHIFT09AHEADER".ToUpper(), (SlideContainer.EditedContent.ApproachState.TabA.SlideHeader ?? CustomTabInfo.HeadersItems.FirstOrDefault(h => h.IsDefault))?.Value);
            outputDataPackage.TextItems.Add("SHIFT09ACOMBO1".ToUpper(), (SlideContainer.EditedContent.ApproachState.TabA.Combo1 ?? CustomTabInfo.Combo1Items.FirstOrDefault(h => h.IsDefault))?.Value);

            var itemStateList = SlideContainer.EditedContent.ApproachState.TabA.Items.OrderBy(itemState => itemState.Index).ToList();

            for (var i = 0; i < itemStateList.Count; i++)
            {
                var itemState = SlideContainer.EditedContent.ApproachState.TabA.Items[i];
                var itemInfo  = CustomTabInfo.ApproachItems.FirstOrDefault(item =>
                                                                           String.Equals(item.Id, itemState.Id, StringComparison.OrdinalIgnoreCase));

                if (itemInfo == null)
                {
                    continue;
                }

                var clipart = ImageClipartObject.FromFile(itemInfo.ImagePath);
                clipart.OutputBackground = true;
                outputDataPackage.ClipartItems.Add(String.Format("SHIFT09ATAB{0}CLIPART{0}", i + 1).ToUpper(), clipart);

                outputDataPackage.TextItems.Add(String.Format("SHIFT09ATAB{0}SUBHEADER{0}", i + 1).ToUpper(), itemState.Subheader ?? itemInfo.SubHeaderDefaultValue);
            }

            return(outputDataPackage);
        }
            public static SolutionsItemState FromItemInfo(SolutionsItemInfo itemInfo)
            {
                var itemState = new SolutionsItemState();

                if (itemInfo != null)
                {
                    itemState.Id        = itemInfo.Id;
                    itemState.Clipart   = ImageClipartObject.FromFile(itemInfo.ImagePath);
                    itemState.Title     = itemInfo.Title;
                    itemState.Subheader = itemInfo.SubHeaderDefaultValue;
                }
                return(itemState);
            }
        private void SelectPreviouseItem()
        {
            var imageFilePath = TabInfo.ImageFiles
                                .FirstOrDefault(item => _currentClipartObject == null || String.Equals(_currentClipartObject.FilePath, item, StringComparison.OrdinalIgnoreCase));
            var currentItemIndex  = TabInfo.ImageFiles.IndexOf(imageFilePath);
            var nextImageFilePath = TabInfo.ImageFiles.ElementAtOrDefault(currentItemIndex - 1 >= 0 ? currentItemIndex - 1 : TabInfo.ImageFiles.Count - 1);

            _currentClipartObject = ImageClipartObject.FromFile(nextImageFilePath);

            _allowHandleEvents = false;
            clipartEditContainer.LoadData(_currentClipartObject);
            _allowHandleEvents = true;
            RaiseEditValueChanged();
        }
        private void SelectItemFromList()
        {
            using (var form = new FormImageList())
            {
                form.LoadData(TabInfo.ImageFiles, (_currentClipartObject ?? _defaultClipartObject)?.FilePath);
                if (form.ShowDialog() == DialogResult.OK)
                {
                    _currentClipartObject = ImageClipartObject.FromFile(form.SelectedFile);

                    _allowHandleEvents = false;
                    clipartEditContainer.LoadData(_currentClipartObject);
                    _allowHandleEvents = true;
                    RaiseEditValueChanged();
                }
            }
        }
        protected override OutputDataPackage GetOutputData()
        {
            var outputDataPackage = new OutputDataPackage();

            outputDataPackage.Theme = SelectedTheme;

            outputDataPackage.TemplateName =
                MasterWizardManager.Instance.SelectedWizard.GetShiftContractFile("d_agreement_closing.pptx");

            var clipart2 = SlideContainer.EditedContent.ContractState.TabD.Clipart2 ??
                           ImageClipartObject.FromImage(CustomTabInfo.Clipart2Image);

            if (clipart2 != null)
            {
                outputDataPackage.ClipartItems.Add("SHIFT15DCLIPART2", clipart2);
            }
            var clipart3 = SlideContainer.EditedContent.ContractState.TabD.Clipart3 ??
                           ImageClipartObject.FromImage(CustomTabInfo.Clipart3Image);

            if (clipart3 != null)
            {
                outputDataPackage.ClipartItems.Add("SHIFT15DCLIPART3", clipart3);
            }

            var userData = SlideContainer.EditedContent.ContractState.TabD.User ?? CustomTabInfo.UserList.FirstOrDefault();

            if (userData != null)
            {
                var clipart1 = ImageClipartObject.FromFile(userData?.ImageFilePath);
                if (clipart1 != null)
                {
                    outputDataPackage.ClipartItems.Add("SHIFT15DCLIPART1", clipart1);
                }

                outputDataPackage.TextItems.Add("SHIFT15DHeader".ToUpper(), userData.Name);
                outputDataPackage.TextItems.Add("SHIFT15DLinkText1".ToUpper(), userData.Description);
                outputDataPackage.TextItems.Add("SHIFT15DLinkText2".ToUpper(), userData.Email);
                outputDataPackage.TextItems.Add("SHIFT15DLinkText3".ToUpper(), userData.Phone);
            }

            return(outputDataPackage);
        }
        private OutputDataPackage GetOutputData()
        {
            var outputDataPackage = new OutputDataPackage();

            //outputDataPackage.Theme = SlideContainer.GetSelectedTheme(SlideType);

            var tab1Combo1 = (ItemState.PositionToggle.Statements.Items.ElementAtOrDefault(0)?.Combo ??
                              (ItemInfo.Positioning.Tab1.ComboCheckbox1.Value
                                                                  ? ItemInfo.Positioning.Tab1.Combo1Items.FirstOrDefault(h => h.IsDefault)
                                                                  : null))?.Value;
            var tab1MultiPopup1 = (ItemState.PositionToggle.Statements.Items.ElementAtOrDefault(0)?.MemoPopup ??
                                   (ItemInfo.Positioning.Tab1.MemoPopupCheckbox1.Value ?
                                    ItemInfo.Positioning.Tab1.MemoPopup1Items.FirstOrDefault(item =>
                                                                                             item.IsDefault && !item.IsPlaceholder) : null))?.Value;

            var tab1Combo2 = (ItemState.PositionToggle.Statements.Items.ElementAtOrDefault(1)?.Combo ??
                              (ItemInfo.Positioning.Tab1.ComboCheckbox2.Value
                                                                  ? ItemInfo.Positioning.Tab1.Combo2Items.FirstOrDefault(h => h.IsDefault)
                                                                  : null))?.Value;
            var tab1MultiPopup2 = (ItemState.PositionToggle.Statements.Items.ElementAtOrDefault(1)?.MemoPopup ??
                                   (ItemInfo.Positioning.Tab1.MemoPopupCheckbox2.Value ?
                                    ItemInfo.Positioning.Tab1.MemoPopup2Items.FirstOrDefault(item =>
                                                                                             item.IsDefault && !item.IsPlaceholder) : null))?.Value;

            var bullets = new[]
            {
                (ItemState.PositionToggle.Bullets.Bullets.ElementAtOrDefault(0) ??
                 (ItemState.PositionToggle.Bullets.Toggled ?? ItemInfo.Positioning.Tab2.ToggleSwitch.Value?
                  ItemInfo.Positioning.Tab2.BulletCombo1Items.FirstOrDefault(item => item.IsDefault && !item.IsPlaceholder):
                  null))?.Value,
                (ItemState.PositionToggle.Bullets.Bullets.ElementAtOrDefault(1) ??
                 (ItemState.PositionToggle.Bullets.Toggled ?? ItemInfo.Positioning.Tab2.ToggleSwitch.Value?
                  ItemInfo.Positioning.Tab2.BulletCombo2Items.FirstOrDefault(item => item.IsDefault && !item.IsPlaceholder):
                  null))?.Value,
                (ItemState.PositionToggle.Bullets.Bullets.ElementAtOrDefault(2) ??
                 (ItemState.PositionToggle.Bullets.Toggled ?? ItemInfo.Positioning.Tab2.ToggleSwitch.Value?
                  ItemInfo.Positioning.Tab2.BulletCombo3Items.FirstOrDefault(item => item.IsDefault && !item.IsPlaceholder):
                  null))?.Value,
                (ItemState.PositionToggle.Bullets.Bullets.ElementAtOrDefault(3) ??
                 (ItemState.PositionToggle.Bullets.Toggled ?? ItemInfo.Positioning.Tab2.ToggleSwitch.Value?
                  ItemInfo.Positioning.Tab2.BulletCombo4Items.FirstOrDefault(item => item.IsDefault && !item.IsPlaceholder):
                  null))?.Value,
                (ItemState.PositionToggle.Bullets.Bullets.ElementAtOrDefault(4) ??
                 (ItemState.PositionToggle.Bullets.Toggled ?? ItemInfo.Positioning.Tab2.ToggleSwitch.Value?
                  ItemInfo.Positioning.Tab2.BulletCombo5Items.FirstOrDefault(item => item.IsDefault && !item.IsPlaceholder):
                  null))?.Value,
                (ItemState.PositionToggle.Bullets.Bullets.ElementAtOrDefault(5) ??
                 (ItemState.PositionToggle.Bullets.Toggled ?? ItemInfo.Positioning.Tab2.ToggleSwitch.Value?
                  ItemInfo.Positioning.Tab2.BulletCombo6Items.FirstOrDefault(item => item.IsDefault && !item.IsPlaceholder):
                  null))?.Value,
                (ItemState.PositionToggle.Bullets.Bullets.ElementAtOrDefault(6) ??
                 (ItemState.PositionToggle.Bullets.Toggled ?? ItemInfo.Positioning.Tab2.ToggleSwitch.Value?
                  ItemInfo.Positioning.Tab2.BulletCombo7Items.FirstOrDefault(item => item.IsDefault && !item.IsPlaceholder):
                  null))?.Value,
                (ItemState.PositionToggle.Bullets.Bullets.ElementAtOrDefault(7) ??
                 (ItemState.PositionToggle.Bullets.Toggled ?? ItemInfo.Positioning.Tab2.ToggleSwitch.Value?
                  ItemInfo.Positioning.Tab2.BulletCombo8Items.FirstOrDefault(item => item.IsDefault && !item.IsPlaceholder):
                  null))?.Value
            }
            .Where(item => !String.IsNullOrWhiteSpace(item))
            .ToList();

            var bundleItem = ItemState.ResearchToggle.Data.BundleState?.ToLitsItem() ??
                             (ItemState.ResearchToggle.Data.Toggled ?? ItemInfo.Research.Tab1.ToggleSwitch.Value ?
                              ItemInfo.Research.Tab1.BundleInfo.Items.FirstOrDefault(item => item.IsDefault) :
                              null);

            var layoutItem = ItemState.StyleToggle.LayoutTab.SavedLayout ?? ItemInfo.Style.Tab2.DefaultItem;

            var outputCondition = Container.CustomTabInfo.OutputConditions.FirstOrDefault(condition =>
                                                                                          condition.ConditionPositioningTab1MultiPopup1 == (!String.IsNullOrWhiteSpace(tab1Combo1) || !String.IsNullOrWhiteSpace(tab1MultiPopup1)) &&
                                                                                          condition.ConditionPositioningTab1MultiPopup2 == (!String.IsNullOrWhiteSpace(tab1Combo2) || !String.IsNullOrWhiteSpace(tab1MultiPopup2)) &&
                                                                                          condition.ConditionPositioningTab2 == bullets.Any() &&
                                                                                          condition.ConditionResearchTab1 == (bundleItem != null && !bundleItem.IsEmpty()) &&
                                                                                          layoutItem != null && condition.LayoutType == layoutItem.LayoutType);


            if (outputCondition != null)
            {
                outputDataPackage.TemplateName =
                    MasterWizardManager.Instance.SelectedWizard.GetShiftIntegratedSolutionFile(outputCondition.TemplateName);

                outputDataPackage.LayoutName = String.Format("layout_{0}", layoutItem.LayoutIndex);

                var clipart1 = ItemState.StyleToggle.ImageTab.Clipart ??
                               ImageClipartObject.FromFile(ItemInfo.Style.Tab1.DefaultImagePath);
                if (clipart1 != null)
                {
                    clipart1.OutputBackground = true;
                    outputDataPackage.ClipartItems.Add("SHIFT10ACLIPART1", clipart1);
                }

                outputDataPackage.TextItems.Add("SHIFT10ASOLUTIONHEADER".ToUpper(), (ItemState.Header ?? ItemInfo.HeaderItems.FirstOrDefault(h => h.IsDefault))?.Value);
                outputDataPackage.TextItems.Add("SHIFT10ASOLUTIONCOMBO1".ToUpper(), (ItemState.Combo1 ?? ItemInfo.Combo1Items.FirstOrDefault(h => h.IsDefault))?.Value);

                outputDataPackage.TextItems.Add("SHIFT10ATAB1COMBO1".ToUpper(), tab1Combo1);
                outputDataPackage.TextItems.Add("SHIFT10ATAB1MULTIBOX1".ToUpper(), tab1MultiPopup1);

                outputDataPackage.TextItems.Add("SHIFT10ATAB1COMBO2".ToUpper(), tab1Combo2);
                outputDataPackage.TextItems.Add("SHIFT10ATAB1MULTIBOX2".ToUpper(), tab1MultiPopup2);

                outputDataPackage.TextItems.Add("SHIFT10ATAB2COMBO1".ToUpper(), (ItemState.PositionToggle.Bullets.Combo1 ?? (ItemInfo.Positioning.Tab2.Checkbox1.Value ? ItemInfo.Positioning.Tab2.Combo1Items.FirstOrDefault(h => h.IsDefault) : null))?.Value);
                outputDataPackage.TextItems.Add("SHIFT10ATAB2COMBOMERGE1".ToUpper(), String.Join(((char)13).ToString(), bullets.Select(item => String.Format("- {0}", item))));

                var bundleItems = new[] { bundleItem?.Value1, bundleItem?.Value2, bundleItem?.Value3 }
                .Where(item => !String.IsNullOrWhiteSpace(item))
                .ToList();
                outputDataPackage.TextItems.Add("SHIFT10ABUNDLELINE1".ToUpper(), bundleItems.ElementAtOrDefault(0));
                outputDataPackage.TextItems.Add("SHIFT10ABUNDLELINE2".ToUpper(), bundleItems.ElementAtOrDefault(1));
                outputDataPackage.TextItems.Add("SHIFT10ABUNDLELINE3".ToUpper(), bundleItems.ElementAtOrDefault(2));
            }

            return(outputDataPackage);
        }