Ejemplo n.º 1
0
        public string GetHtmlToAppendByBrowserCard(BrowserCard card)
        {
            string fontSettings     = GetStylesToAppendByBrowserFont(card);
            string defaultSettings  = GetDefaultStyleSettings(card, true);
            string animationClasses = GetAnimationClass(card.AnimationType);

            string exitButton = "";

            if (card.ExitButton)
            {
                exitButton = $"<button type=\"button\" class=\"close\" aria-label=\"Close\"" +
                             " onclick=\"onExitButtonClick()\"><span aria-hidden=\"true\">&times;</span></button>";
            }

            string topImage = "";

            if ((!string.IsNullOrEmpty(card.Image)))
            {
                topImage = $"<img src=\"{card.Image}\" class=\"card-img-top\" alt=\"{card.Image}\">";
            }

            var    contentTitleStyle  = GetStylesToAppendByBrowserFont(card.ContentTitle);
            var    contentTitleStyles = GetDefaultStyleSettings(card.ContentTitle);
            string contentTitle       = !string.IsNullOrEmpty(card.ContentTitle.Title)
                ? $"<h5 class=\"card-title\" style=\"{contentTitleStyle}{contentTitleStyles}\">{card.ContentTitle.Title}</h5>"
                : "";

            var    contentStyles    = GetDefaultStyleSettings(card.ContentText);
            var    contentFontStyle = GetStylesToAppendByBrowserFont(card.ContentText);
            string contentText      = !string.IsNullOrEmpty(card.ContentText.Text) ? $"<p class=\"card-text\" style=\"{contentFontStyle}{contentStyles}\">{card.ContentText.Text}</p>" : "";

            string flexWrap = card.FlexWrap.ToString().Replace('_', '-');
            string flex     = card.FlexDirection == BrowserFlexDirection.unset ? "" : card.FlexDirection.ToString().Replace('_', '-');

            string contentAlign = GetContentAlignment(card.ItemAlignment);

            var cardTitleFontStyle = GetStylesToAppendByBrowserFont(card.CardTitle);
            var cardTitleStyles    = GetDefaultStyleSettings(card.CardTitle);

            string cardHeader = !string.IsNullOrEmpty(card.CardTitle.Title)
                ? $"<h5 class=\"card-header\" style=\"{cardTitleFontStyle}{cardTitleStyles}\">{card.CardTitle.Title}{exitButton}</h5>"
                : "";

            return
                ($"<div class=\"card container{animationClasses}\" style=\"{defaultSettings}{fontSettings}\">{topImage}{cardHeader}{contentTitle}{contentText}<div class=\"cardContentus d-flex {flexWrap} {flex} {contentAlign}\">");
        }
Ejemplo n.º 2
0
        public string GetHtmlStringByBrowserElement(IBrowserElement element)
        {
            try
            {
                StringBuilder rawHtmlBuilder = new StringBuilder();
                switch (element.Type)
                {
                case BrowserElementType.Card:
                    BrowserCard card = element as BrowserCard;
                    switch (card.CardType)
                    {
                    case BrowserCardType.HeaderDescriptionAndButtonWithIcon:
                        string cardHtml2 = GetHtmlToAppendByBrowserCard(card);
                        rawHtmlBuilder.Append(cardHtml2);
                        break;

                    default:
                        string cardHtml3 = GetHtmlToAppendByBrowserCard(card);
                        rawHtmlBuilder.Append(cardHtml3);
                        break;
                    }
                    break;

                case BrowserElementType.BrowserBoxSelection:
                    // Not implemented yet
                    BrowserBoxSelection boxSelection = element as BrowserBoxSelection;
                    rawHtmlBuilder.Append(GetHtmlToAppendByBrowserBoxSelection(boxSelection));
                    break;

                case BrowserElementType.Title:
                    BrowserTitle titleElement = element as BrowserTitle;
                    rawHtmlBuilder.Append(GetHtmlToAppendByBrowserTitle(titleElement));
                    break;

                case BrowserElementType.Text:
                    BrowserText textElement = element as BrowserText;
                    rawHtmlBuilder.Append(GetHtmlToAppendByBrowserTextElement(textElement));
                    break;

                case BrowserElementType.Checkbox:
                    BrowserCheckBox checkBoxElement = element as BrowserCheckBox;
                    rawHtmlBuilder.Append(GetHtmlToAppendByCheckBox(checkBoxElement));
                    break;

                case BrowserElementType.Button:
                    BrowserButton browserButton = element as BrowserButton;
                    rawHtmlBuilder.Append(GetHtmlToAppendByBrowserButton(browserButton));
                    break;

                case BrowserElementType.TextBox:
                    BrowserTextBox browserTextBox = element as BrowserTextBox;
                    rawHtmlBuilder.Append(GetHtmlToAppendByBrowserTextBox(browserTextBox));
                    break;

                case BrowserElementType.Password:
                    BrowserPasswordTextBox browserPasswordTextBox = element as BrowserPasswordTextBox;
                    rawHtmlBuilder.Append(GetHtmlToAppendByBrowserPasswordTextBox(browserPasswordTextBox));
                    break;

                case BrowserElementType.DropDown:
                    BrowserDropDown dropDown = element as BrowserDropDown;
                    rawHtmlBuilder.Append(GetHtmlToAppendByBrowserDropDown(dropDown));
                    break;

                case BrowserElementType.ProgressBar:
                    BrowserProgressbar progressBar = element as BrowserProgressbar;
                    rawHtmlBuilder.Append(GetHtmlToAppendByBrowserProgressBar(progressBar));
                    break;

                case BrowserElementType.Icon:
                    BrowserButtonIcon icon = element as BrowserButtonIcon;
                    rawHtmlBuilder.Append(GetHtmlToAppendByIcon(icon));
                    break;
                }

                return(rawHtmlBuilder.ToString());
            }
            catch (Exception e)
            {
                ProvideError(e);
                return("");
            }
        }
Ejemplo n.º 3
0
        public void AddCard(string cardTitle, string cardContent)
        {
            var card = new BrowserCard(BrowserCardType.HeaderDescriptionAndButtonWithIcon, "", cardTitle, cardContent);

            this.Cards.Add(card);
        }
Ejemplo n.º 4
0
        public string GetHtmlStringByElements(List <IBrowserElement> elements, List <Guid> alreadyAdded = null)
        {
            if (alreadyAdded == null)
            {
                alreadyAdded = new List <Guid>();
            }

            StringBuilder rawHtmlBuilder = new StringBuilder();

            if (elements.Any(w => w.Type == BrowserElementType.Card))
            {
                List <IBrowserElement> container = elements.Where(w => w.Type == BrowserElementType.Card).ToList();
                foreach (IBrowserElement element in container)
                {
                    BrowserCard browserCard = element as BrowserCard;
                    if (browserCard == null)
                    {
                        ProvideError("Error", "Browser Card is null.");
                        continue;
                    }

                    alreadyAdded.Add(browserCard.Id);
                    switch (browserCard.CardType)
                    {
                    case BrowserCardType.HeaderAndContent:

                        string cardHtml = GetHtmlToAppendByBrowserCard(browserCard);
                        foreach (IBrowserElement elem in elements.OrderBy(o => o.OrderIndex))
                        {
                            if (alreadyAdded.Contains(elem.Id))
                            {
                                continue;
                            }

                            if (!browserCard.ChildElements.Contains(elem.Id))
                            {
                                continue;
                            }

                            alreadyAdded.Add(elem.Id);


                            switch (elem.Type)
                            {
                            case BrowserElementType.Card:
                                BrowserCard card  = elem as BrowserCard;
                                string      align = GetContentAlignment(card.ItemAlignment);

                                cardHtml += $"<div class=\"p-2 {align}\">";


                                if (card.ChildElements.Count <= 0)
                                {
                                    cardHtml += GetHtmlStringByBrowserElement(elem);
                                    cardHtml += "</div></div></div>";
                                    continue;
                                }


                                cardHtml += GetHtmlStringByBrowserElement(elem);

                                for (int i = 1; i <= card.CurrentRow; i++)
                                {
                                    IEnumerable <IBrowserElement> childElements = elements.Where(w =>
                                                                                                 card.ChildElements.Contains(w.Id) && w.Row == i);
                                    if (!childElements.Any())
                                    {
                                        continue;
                                    }

                                    string itemAlign = GetContentAlignment(card.ItemAlignment);

                                    cardHtml += $"<div class=\"p-2 {itemAlign} {card.FlexWrap.ToString().Replace('_', '-')}\" style=\"margin:0;padding:0;\">";
                                    foreach (IBrowserElement child in childElements.OrderBy(w => w.OrderIndex))
                                    {
                                        string childAlign = GetContentAlignment(child.ItemAlignment);

                                        cardHtml += $"<div class=\"p2 {childAlign} {child.FlexDirection.ToString().Replace('_', '-')}\">";
                                        cardHtml += GetHtmlStringByBrowserElement(child);
                                        alreadyAdded.Add(child.Id);

                                        switch (child.Type)
                                        {
                                        case BrowserElementType.Card:
                                            cardHtml += "</div></div></div>";
                                            break;
                                        }

                                        cardHtml += "</div>";
                                    }

                                    cardHtml += "</div></div>";
                                }

                                cardHtml += "</div></div>";

                                break;

                            default:
                                string itemAlignment = GetContentAlignment(elem.ItemAlignment);

                                cardHtml += $"<div class=\"p-2 {itemAlignment}\">";
                                cardHtml += GetHtmlStringByBrowserElement(elem);
                                cardHtml += "</div>";
                                break;
                            }
                        }

                        rawHtmlBuilder.Append(cardHtml + "</div></div>");

                        break;

                    case BrowserCardType.HeaderDescriptionAndButtonWithIcon:


                        break;
                    }
                }
            }

            foreach (IBrowserElement element in elements.OrderBy(w => w.OrderIndex))
            {
                if (alreadyAdded.Contains(element.Id))
                {
                    continue;
                }

                rawHtmlBuilder.Append(GetHtmlStringByBrowserElement(element));
            }

            return(rawHtmlBuilder.ToString());
        }
Ejemplo n.º 5
0
        public void AddElement(BrowserElement element)
        {
            element.OrderIndex = AddedElements++;
            //element.Position = this.Position;
            switch (element.Type)
            {
            case BrowserElementType.BrowserBoxSelection:
                BrowserBoxSelection boxSelection = element as BrowserBoxSelection;

                break;

            case BrowserElementType.Button:
                BrowserButton button = element as BrowserButton;
                Buttons.Add(button);
                break;

            case BrowserElementType.Title:
                BrowserTitle title = element as BrowserTitle;
                Titles.Add(title);
                break;

            case BrowserElementType.Text:
                BrowserText text = element as BrowserText;
                Texts.Add(text);
                break;

            case BrowserElementType.TextBox:
                BrowserTextBox textBox = element as BrowserTextBox;
                TextBoxes.Add(textBox);
                break;

            case BrowserElementType.Card:
                BrowserCard card = element as BrowserCard;
                Cards.Add(card);
                break;

            case BrowserElementType.Password:
                BrowserPasswordTextBox passwordTextBox = element as BrowserPasswordTextBox;
                PasswordTextBoxes.Add(passwordTextBox);
                break;

            //case BrowserElementType.YesNoDialog:
            //    BrowserYesNoDialog yesNoDialog = element as BrowserYesNoDialog;
            //    YesNoDialog = yesNoDialog;
            //    break;
            case BrowserElementType.Checkbox:
                BrowserCheckBox checkBox = element as BrowserCheckBox;
                CheckBoxes.Add(checkBox);
                break;

            case BrowserElementType.DropDown:
                BrowserDropDown dropDown = element as BrowserDropDown;
                DropDowns.Add(dropDown);
                break;

            case BrowserElementType.ProgressBar:
                BrowserProgressBar progressBar = element as BrowserProgressBar;
                ProgressBars.Add(progressBar);
                break;

            case BrowserElementType.Container:
                BrowserContainer container = element as BrowserContainer;
                Container.Add(container);
                break;

            case BrowserElementType.Icon:
                BrowserButtonIcon icon = element as BrowserButtonIcon;
                Icons.Add(icon);
                break;

            default:
                NAPI.Util.ConsoleOutput($"UNKNOWN ELEMENT OF TYPE {element.Type}");
                break;
            }
        }