/// <include file='doc\WmlObjectListAdapter.uex' path='docs/doc[@for="WmlObjectListAdapter.RenderItemDetails"]/*' />
        protected virtual void RenderItemDetails(WmlMobileTextWriter writer, ObjectListItem item)
        {
            String backCommandText = Control.BackCommandText.Length == 0 ?
                                     GetDefaultLabel(BackLabel) :
                                     Control.BackCommandText;
            String softkeyLabel = backCommandText.Length <= Device.MaximumSoftkeyLabelLength ?
                                  backCommandText :
                                  null;

            Style labelStyle = Control.LabelStyle;

            writer.EnterStyle(labelStyle);
            writer.RenderText(item[Control.LabelFieldIndex], true);
            writer.ExitStyle(labelStyle);

            writer.EnterStyle(Style);
            IObjectListFieldCollection fields = Control.AllFields;
            int fieldIndex = 0;

            foreach (ObjectListField field in fields)
            {
                if (field.Visible)
                {
                    String displayText = String.Format(CultureInfo.InvariantCulture, "{0}: {1}", field.Title, item[fieldIndex]);
                    writer.RenderText(displayText, true);
                }
                fieldIndex++;
            }
            RenderPostBackEvent(writer, _backToList, softkeyLabel, true, backCommandText, true);
            writer.ExitStyle(Style);
        }
        /// <include file='doc\WmlObjectListAdapter.uex' path='docs/doc[@for="WmlObjectListAdapter.RenderItemMenu"]/*' />
        protected virtual void RenderItemMenu(WmlMobileTextWriter writer, ObjectListItem item)
        {
            bool requiresDetails = HasItemDetails();

            String detailsCommandText = Control.DetailsCommandText.Length == 0 ?
                                        SR.GetString(SR.WmlObjectListAdapterDetails) :
                                        Control.DetailsCommandText;
            String softkeyLabel = detailsCommandText.Length <= Device.MaximumSoftkeyLabelLength ?
                                  detailsCommandText :
                                  null;
            Style commandStyle = Control.CommandStyle;

            if (commandStyle.Alignment == Alignment.NotSet)
            {
                commandStyle.Alignment = Alignment.Left;
            }
            writer.EnterStyle(commandStyle);
            if (requiresDetails)
            {
                RenderPostBackEvent(writer, _showDetails,
                                    softkeyLabel, true, detailsCommandText, true, WmlPostFieldType.Raw);
            }

            ObjectListCommandCollection commands = Control.Commands;

            foreach (ObjectListCommand command in commands)
            {
                RenderPostBackEvent(writer, command.Name,
                                    GetDefaultLabel(GoLabel), false, command.Text, true, WmlPostFieldType.Raw);
            }
            writer.ExitStyle(commandStyle);
        }
Example #3
0
        protected override void RenderItemDetails(WmlMobileTextWriter writer, ObjectListItem item)
        {
            string str1  = (Control.BackCommandText != String.Empty) ? Control.BackCommandText : base.GetDefaultLabel(ControlAdapter.BackLabel);
            string str2  = (str1.Length > base.Device.MaximumSoftkeyLabelLength) ? null : str1;
            Style  style = Control.LabelStyle;

            writer.EnterStyle(style);
            writer.RenderText(item[Control.LabelFieldIndex], true);
            writer.ExitStyle(style);
            writer.EnterStyle(base.Style);
            IObjectListFieldCollection iObjectListFieldCollection = Control.AllFields;
            int         i           = 0;
            IEnumerator iEnumerator = iObjectListFieldCollection.GetEnumerator();

            while (iEnumerator.MoveNext())
            {
                ObjectListField objectListField = (ObjectListField)iEnumerator.Current;
                if (objectListField.Visible)
                {
                    if (objectListField.Name == "CALL")
                    {
                        writer.RenderText(String.Format("{0}: {1}", objectListField.Title, WmlcheckPhonenumber(item[i])), true, false);
                    }
                    else if (objectListField.Name == "MAIL")
                    {
                        writer.RenderText(String.Format("{0}: {1}", objectListField.Title, WmlMail(item[i])), true, false);
                    }
                    else
                    {
                        writer.RenderText(String.Format("{0}: {1}", objectListField.Title, item[i]), true);
                    }
                }
                i++;
            }

            base.RenderPostBackEvent(writer, "__back", str2, true, str1, true);
            writer.ExitStyle(base.Style);
        }
Example #4
0
        /// <include file='doc\WmlListAdapter.uex' path='docs/doc[@for="WmlListAdapter.Render"]/*' />
        public override void Render(WmlMobileTextWriter writer)
        {
            if (Control.HasControls())
            {
                writer.BeginCustomMarkup();
                RenderChildren(writer);
                writer.EndCustomMarkup();
                return;
            }

            int pageStart = Control.FirstVisibleItemIndex;
            int pageSize  = Control.VisibleItemCount;

            if (pageSize == 0)
            {
                return;
            }

            MobileListItemCollection items = Control.Items;

            if (items.Count == 0)
            {
                return;
            }

            bool itemsAsLinks  = Control.ItemsAsLinks;
            bool hasCmdHandler = Control.HasItemCommandHandler;

            writer.EnterStyle(Style);
            for (int i = 0; i < pageSize; i++)
            {
                MobileListItem item = items[pageStart + i];

                if (itemsAsLinks)
                {
                    RenderLink(writer, item.Value, null, false, false, item.Text, true);
                }
                else if (hasCmdHandler)
                {
                    RenderPostBackEvent(writer, item.Index.ToString(CultureInfo.InvariantCulture), null, true, item.Text, true);
                }
                else
                {
                    writer.RenderText(item.Text, true);
                }
            }
            writer.ExitStyle(Style);
        }
        /// <include file='doc\WmlLinkAdapter.uex' path='docs/doc[@for="WmlLinkAdapter.Render"]/*' />
        public override void Render(WmlMobileTextWriter writer)
        {
            String navigateUrl = Control.NavigateUrl;
            String text = (String.IsNullOrEmpty(Control.Text)) ? navigateUrl : Control.Text;
            bool breakAfter = Control.BreakAfter && !Device.RendersBreaksAfterWmlAnchor;
            String softkeyLabel = Control.SoftkeyLabel;
            bool implicitSoftkeyLabel = false;
            if (softkeyLabel.Length == 0)
            {
                implicitSoftkeyLabel = true;
                softkeyLabel = Control.Text;
            }

            writer.EnterStyle(Style);
            RenderLink(writer, navigateUrl, softkeyLabel, implicitSoftkeyLabel, true, text, breakAfter);
            writer.ExitStyle(Style);
        }
Example #6
0
        /// <include file='doc\WmlValidatorAdapter.uex' path='docs/doc[@for="WmlValidatorAdapter.Render"]/*' />
        public override void Render(WmlMobileTextWriter writer)
        {
            writer.EnterStyle(Style);
            if (!Control.IsValid && Control.Display != ValidatorDisplay.None)
            {
                String text = Control.Text;
                if (String.IsNullOrEmpty(text))
                {
                    text = Control.ErrorMessage;
                }

                if (!String.IsNullOrEmpty(text))
                {
                    writer.RenderText(text, Control.BreakAfter);
                }
            }
            writer.ExitStyle(Style);
        }
        public override void Render(WmlMobileTextWriter writer)
        {
            String targetUrl            = Control.NavigateUrl;
            String text                 = (Control.Text == String.Empty) ? targetUrl : Control.Text;
            bool   breakAfter           = Control.BreakAfter && !Device.RendersBreaksAfterWmlAnchor;
            String softkeyLabel         = Control.SoftkeyLabel;
            bool   implicitSoftkeyLabel = false;

            if (softkeyLabel.Length == 0)
            {
                implicitSoftkeyLabel = true;
                softkeyLabel         = Control.Text;
            }

            writer.EnterStyle(Style);
            RenderLink(writer, targetUrl, softkeyLabel, implicitSoftkeyLabel, true, text, breakAfter);
            writer.ExitStyle(Style);
        }
 /// <include file='doc\WmlValidatorAdapter.uex' path='docs/doc[@for="WmlValidatorAdapter.Render"]/*' />
 public override void Render(WmlMobileTextWriter writer)
 {
     writer.EnterStyle(Style);
     if (!Control.IsValid && Control.Display != ValidatorDisplay.None)
     {
         String text = Control.Text;
         if (String.IsNullOrEmpty(text))
         {
             text = Control.ErrorMessage;
         }
         
         if (!String.IsNullOrEmpty(text))
         {
             writer.RenderText(text, Control.BreakAfter);
         }
     }
     writer.ExitStyle(Style);
 }
Example #9
0
        public override void Render(WmlMobileTextWriter writer)
        {
            String[] errorMessages = null;

            if (Control.Visible)
            {
                errorMessages = Control.GetErrorMessages();
            }

            writer.EnterStyle(Style);
            if (errorMessages != null)
            {
                if (Control.HeaderText.Length > 0)
                {
                    writer.RenderText(Control.HeaderText, true);
                }

                ArrayList arr = new ArrayList();
                foreach (String errorMessage in errorMessages)
                {
                    Debug.Assert(errorMessage != null && errorMessage.Length > 0, "Bad Error Messages");
                    arr.Add(errorMessage);
                }

                _list.DataSource = arr;
                _list.DataBind();

                if (String.Compare(Control.FormToValidate, Control.Form.UniqueID, true) != 0)
                {
                    _link.NavigateUrl = Constants.FormIDPrefix + Control.FormToValidate;
                    _link.Text        = Control.BackLabel == String.Empty? GetDefaultLabel(BackLabel) : Control.BackLabel;
                }
                else
                {
                    _link.Visible = false;
                }

                // Render the child controls to display error message list and a
                // link for going back to the Form that is having error
                RenderChildren(writer);
            }
            writer.ExitStyle(Style);
        }
Example #10
0
        private void RenderElement(WmlMobileTextWriter writer, int index, int begin, int end)
        {
            TextViewElement element = Control.GetElement(index);

            if (end == -1)
            {
                end = element.Text.Length;
            }

            String text = element.Text;

            if (begin > 0 || end < text.Length)
            {
                text = text.Substring(begin, end - begin);
            }

            BooleanOption previousBold   = Style.Font.Bold;
            BooleanOption previousItalic = Style.Font.Italic;

            if (element.IsBold)
            {
                Style.Font.Bold = BooleanOption.True;
            }
            if (element.IsItalic)
            {
                Style.Font.Italic = BooleanOption.True;
            }

            writer.EnterStyle(Style);
            if (element.Url != null)
            {
                RenderLink(writer, element.Url, null, true, true, text, element.BreakAfter);
            }
            else
            {
                writer.RenderText(text, element.BreakAfter);
            }
            writer.ExitStyle(Style);

            Style.Font.Bold   = previousBold;
            Style.Font.Italic = previousItalic;
        }
Example #11
0
        protected virtual void RenderPager(WmlMobileTextWriter writer)
        {
            PagerStyle pagerStyle = Control.PagerStyle;
            int        pageCount  = Control.PageCount;

            if (pageCount <= 1)
            {
                return;
            }
            int page = Control.CurrentPage;

            writer.EnterStyle(pagerStyle);
            if (page < pageCount)
            {
                String nextPageText = pagerStyle.GetNextPageText(page);
                RenderPostBackEvent(writer,
                                    (page + 1).ToString(),
                                    writer.IsValidSoftkeyLabel(nextPageText) ? nextPageText
                                                                             : GetDefaultLabel(NextLabel),
                                    true,
                                    nextPageText,
                                    true);
            }

            if (page > 1)
            {
                String prevPageText = pagerStyle.GetPreviousPageText(page);
                RenderPostBackEvent(writer,
                                    (page - 1).ToString(),
                                    writer.IsValidSoftkeyLabel(prevPageText) ? prevPageText
                                                                             : GetDefaultLabel(PreviousLabel),
                                    true,
                                    prevPageText,
                                    true);
            }
            writer.ExitStyle(pagerStyle);
        }
        /// <include file='doc\WmlValidationSummaryAdapter.uex' path='docs/doc[@for="WmlValidationSummaryAdapter.Render"]/*' />
        public override void Render(WmlMobileTextWriter writer)
        {
            String[] errorMessages = null;

            if (Control.Visible)
            {
                errorMessages = Control.GetErrorMessages();
            }
    
            writer.EnterStyle(Style);
            if (errorMessages != null)
            {
                if (Control.HeaderText.Length > 0)
                {
                    writer.RenderText(Control.HeaderText, true);
                }

                ArrayList arr = new ArrayList();
                foreach (String errorMessage in errorMessages)
                {
                    Debug.Assert(errorMessage != null && errorMessage.Length > 0, "Bad Error Messages");
                    arr.Add(errorMessage);
                }

                _list.DataSource = arr;
                _list.DataBind();

                if (String.Compare(Control.FormToValidate, Control.Form.UniqueID, StringComparison.OrdinalIgnoreCase) != 0)
                {
                    _link.NavigateUrl = Constants.FormIDPrefix + Control.FormToValidate;
                    _link.Text = Control.BackLabel.Length == 0 ? GetDefaultLabel(BackLabel) : Control.BackLabel;
                }
                else
                {
                    _link.Visible = false;
                }

                // Render the child controls to display error message list and a
                // link for going back to the Form that is having error
                RenderChildren(writer);
            }
            writer.ExitStyle(Style);
        }
        /// <include file='doc\WmlListAdapter.uex' path='docs/doc[@for="WmlListAdapter.Render"]/*' />
        public override void Render(WmlMobileTextWriter writer)
        {
            if(Control.HasControls())
            {
                writer.BeginCustomMarkup();
                RenderChildren(writer);
                writer.EndCustomMarkup();
                return;
            }

            int pageStart = Control.FirstVisibleItemIndex;
            int pageSize = Control.VisibleItemCount;
            if (pageSize == 0)
            {
                return;
            }

            MobileListItemCollection items = Control.Items;
            if (items.Count == 0)
            {
                return;
            }

            bool itemsAsLinks = Control.ItemsAsLinks;
            bool hasCmdHandler = Control.HasItemCommandHandler;

            writer.EnterStyle(Style);
            for (int i = 0; i < pageSize; i++)
            {                        
                MobileListItem item = items[pageStart + i];

                if (itemsAsLinks)
                {
                    RenderLink(writer, item.Value, null, false, false, item.Text, true);
                }
                else if (hasCmdHandler)
                {
                    RenderPostBackEvent(writer, item.Index.ToString(CultureInfo.InvariantCulture), null, true, item.Text, true); 
                }
                else
                {
                    writer.RenderText(item.Text, true);
                }
            }
            writer.ExitStyle(Style);
        }
        /// <include file='doc\WmlPhoneCallAdapter.uex' path='docs/doc[@for="WmlPhoneCallAdapter.Render"]/*' />
        public override void Render(WmlMobileTextWriter writer)
        {
            String text, url, phoneNumber;
            String controlText = Control.Text;

            // Always strip off optional separators for PhoneNumber before it
            // is added in markup.

            String originalNumber = Control.PhoneNumber;
            char[] plainNumber = new char[originalNumber.Length];  // allocate enough buffer size

            // Loop to strip out optional separators
            int sizeOfPlainNumber = 0;
            foreach (char ch in originalNumber)
            {
                if ((ch >= '0' && ch <= '9') || ch == '+')
                {
                    plainNumber[sizeOfPlainNumber] = ch;
                    sizeOfPlainNumber++;
                }
            }

            // Assign the number string with the right size
            phoneNumber = new String(plainNumber, 0, sizeOfPlainNumber);

            // Construct text and url based on device capabilities
            //
            if (!Device.CanInitiateVoiceCall)
            {
                text = String.Format(CultureInfo.InvariantCulture, Control.AlternateFormat,
                                     controlText,
                                     originalNumber);
                url = Control.AlternateUrl;
            }
            else
            {
                // Some WML browsers require the phone number
                // showing as text so it can be selected.  If it is not
                // formatted in the text yet, append it to the end of the
                // text.
                if(Device.RequiresPhoneNumbersAsPlainText)
                {
                    text = controlText + " " + phoneNumber;
                    url = String.Empty;
                }
                else
                {
                    text = (controlText == null || controlText.Length > 0) ?
                                controlText : originalNumber;
                    url = "wtai://wp/mc;" + phoneNumber;
                }
            }

            // Write out plain text or corresponding link/softkey command
            // accordingly
            //
            writer.EnterStyle(Style);
            if (url.Length == 0)
            {
                writer.RenderText(text, Control.BreakAfter);
            }
            else
            {
                String softkeyLabel = Control.SoftkeyLabel;
                bool implicitSoftkeyLabel = false;
                if (softkeyLabel.Length == 0)
                {
                    implicitSoftkeyLabel = true;
                    softkeyLabel = text;
                }
                if (!writer.IsValidSoftkeyLabel(softkeyLabel))
                {
                    if (!implicitSoftkeyLabel && softkeyLabel.Length > 0)
                    {
                        softkeyLabel = softkeyLabel.Substring(0, Device.MaximumSoftkeyLabelLength);
                    }
                    else
                    {
                        implicitSoftkeyLabel = true;
                        softkeyLabel = GetDefaultLabel(CallLabel);
                    }
                }
                RenderBeginLink(writer, url, softkeyLabel, implicitSoftkeyLabel, true);
                writer.RenderText(text);
                RenderEndLink(writer, url, Control.BreakAfter);
            }
            writer.ExitStyle(Style);
        }
        private void RenderElement(WmlMobileTextWriter writer, int index, int begin, int end)
        {
            TextViewElement element = Control.GetElement(index);
            if (end == -1)
            {
                end = element.Text.Length;
            }

            String text = element.Text;
            if (begin > 0 || end < text.Length)
            {
                text = text.Substring(begin, end - begin);
            }

            BooleanOption previousBold   = Style.Font.Bold;
            BooleanOption previousItalic = Style.Font.Italic;
            if (element.IsBold)
            {
                Style.Font.Bold = BooleanOption.True;
            }
            if (element.IsItalic)
            {
                Style.Font.Italic = BooleanOption.True;
            }
            
            writer.EnterStyle(Style);
            if (element.Url != null)
            {
                RenderLink(writer, element.Url, null, true, true, text, element.BreakAfter);
            }
            else
            {
                writer.RenderText(text, element.BreakAfter);
            }
            writer.ExitStyle(Style);

            Style.Font.Bold   = previousBold;
            Style.Font.Italic = previousItalic;
        }
        public override void Render(WmlMobileTextWriter writer)
        {
            ArrayList          arr;
            DateTime           tempDate;
            DateTimeFormatInfo currentDateTimeInfo        = DateTimeFormatInfo.CurrentInfo;
            String             abbreviatedMonthDayPattern = AbbreviateMonthPattern(currentDateTimeInfo.MonthDayPattern);

            _threadCalendar = currentDateTimeInfo.Calendar;

            // RendersWmlSelectsAsMenuCards is true means the list control will be
            // rendered as select/option tags, where the break tag before
            // them will become an extra line which doesn't like good.
            bool addBreakBeforeListControl = Device.RendersWmlSelectsAsMenuCards;

            writer.EnterStyle(Style);

            Debug.Assert(NotSecondaryUI == NotSecondaryUIInit);
            switch (SecondaryUIMode)
            {
            case FirstPrompt:
                String promptText = Control.CalendarEntryText;
                if (promptText == String.Empty)
                {
                    promptText = SR.GetString(SR.CalendarAdapterFirstPrompt);
                }

                // Link to input option selection screen
                RenderPostBackEvent(writer,
                                    OptionPrompt.ToString(),
                                    GetDefaultLabel(GoLabel),
                                    true,
                                    promptText,
                                    true);
                break;

            // Render the first secondary page that provides differnt
            // options to select a date.
            case OptionPrompt:
                writer.RenderText(SR.GetString(SR.CalendarAdapterOptionPrompt),
                                  !addBreakBeforeListControl);

                arr = new ArrayList();

                // Option to select the default date
                arr.Add(Control.VisibleDate.ToString(
                            currentDateTimeInfo.ShortDatePattern));

                // Option to another page that can enter a date by typing
                arr.Add(SR.GetString(SR.CalendarAdapterOptionType));

                // Options to a set of pages for selecting a date, a week
                // or a month by picking month/year, week and day
                // accordingly.  Available options are determined by
                // SelectionMode.
                arr.Add(SR.GetString(SR.CalendarAdapterOptionChooseDate));

                if (Control.SelectionMode == CalendarSelectionMode.DayWeek ||
                    Control.SelectionMode == CalendarSelectionMode.DayWeekMonth)
                {
                    arr.Add(SR.GetString(SR.CalendarAdapterOptionChooseWeek));

                    if (Control.SelectionMode == CalendarSelectionMode.DayWeekMonth)
                    {
                        arr.Add(SR.GetString(SR.CalendarAdapterOptionChooseMonth));
                    }
                }
                DataBindAndRender(writer, _optionList, arr);
                break;

            // Render a title and textbox to capture a date entered by user
            case TypeDate:
                if (_textBoxErrorMessage != null)
                {
                    writer.RenderText(_textBoxErrorMessage, true);
                }

                if (_selectList.Visible)
                {
                    writer.RenderText(SR.GetString(SR.CalendarAdapterOptionEra), true);
                    _selectList.RenderControl(writer);
                }

                String numericDateFormat = GetNumericDateFormat();

                writer.RenderText(SR.GetString(SR.CalendarAdapterOptionType) + ":", true);
                writer.RenderText("(");
                writer.RenderText(numericDateFormat.ToUpper());
                writer.RenderText(")");

                if (!_selectList.Visible)
                {
                    writer.RenderText(GetEra(Control.VisibleDate));
                }
                writer.RenderText(String.Empty, true);

                _textBox.Numeric   = true;
                _textBox.Size      = numericDateFormat.Length;
                _textBox.MaxLength = numericDateFormat.Length;
                _textBox.Text      = Control.VisibleDate.ToString(numericDateFormat);
                _textBox.Visible   = true;
                _textBox.RenderControl(writer);

                String okLabel = GetDefaultLabel(OKLabel);

                // accept softkey for sending the textbox value back to the server
                RenderPostBackEvent(writer,
                                    TypeDateDone.ToString(),
                                    okLabel,
                                    true,
                                    okLabel,
                                    true,
                                    WmlPostFieldType.Raw);
                break;

            // Render a paged list for choosing a month
            case ChooseMonth:
            {
                String displayText = String.Format("{0}:", SR.GetString(SR.CalendarAdapterOptionChooseMonth));
                writer.RenderText(displayText, !addBreakBeforeListControl);

                tempDate = Control.VisibleDate;

                String abbreviatedYearMonthPattern = AbbreviateMonthPattern(currentDateTimeInfo.YearMonthPattern);

                // This is to be consistent with ASP.NET Calendar control
                // on handling YearMonthPattern:
                // Some cultures have a comma in their YearMonthPattern,
                // which does not look right in a calendar.  Here we
                // strip the comma off.
                int indexComma = abbreviatedYearMonthPattern.IndexOf(',');
                if (indexComma >= 0)
                {
                    abbreviatedYearMonthPattern =
                        abbreviatedYearMonthPattern.Remove(indexComma, 1);
                }

                arr = new ArrayList();
                for (int i = 0; i < _monthsToDisplay; i++)
                {
                    arr.Add(tempDate.ToString(abbreviatedYearMonthPattern));
                    tempDate = _threadCalendar.AddMonths(tempDate, 1);
                }
                arr.Add(GetDefaultLabel(NextLabel));
                arr.Add(GetDefaultLabel(PreviousLabel));
                DataBindAndRender(writer, _monthList, arr);
                break;
            }

            // Based on the month selected in case ChooseMonth above, render a list of
            // availabe weeks of the month.
            case ChooseWeek:
            {
                String monthFormat = (GetNumericDateFormat()[0] == 'y') ? "yyyy/M" : "M/yyyy";
                String displayText = String.Format("{0} ({1}):",
                                                   SR.GetString(SR.CalendarAdapterOptionChooseWeek),
                                                   Control.VisibleDate.ToString(monthFormat));
                writer.RenderText(displayText, !addBreakBeforeListControl);

                // List weeks of days of the selected month.  May include
                // days from the previous and the next month to fill out
                // all six week choices.  This is consistent with the
                // ASP.NET Calendar control.

                // Note that the event handling code of this list control
                // should be implemented according to the index content
                // generated here.

                tempDate = FirstCalendarDay(Control.VisibleDate);

                arr = new ArrayList();
                String weekDisplay;
                for (int i = 0; i < 6; i++)
                {
                    weekDisplay  = tempDate.ToString(abbreviatedMonthDayPattern);
                    weekDisplay += DaySeparator;
                    tempDate     = _threadCalendar.AddDays(tempDate, 6);
                    weekDisplay += tempDate.ToString(abbreviatedMonthDayPattern);
                    arr.Add(weekDisplay);
                    tempDate = _threadCalendar.AddDays(tempDate, 1);
                }
                DataBindAndRender(writer, _weekList, arr);
                break;
            }

            // Based on the month and week selected in case ChooseMonth and ChooseWeek above,
            // render a list of the dates in the week.
            case ChooseDay:
            {
                String displayText = String.Format("{0}:", SR.GetString(SR.CalendarAdapterOptionChooseDate));
                writer.RenderText(displayText, !addBreakBeforeListControl);

                tempDate = Control.VisibleDate;

                arr = new ArrayList();
                String        date;
                String        dayName;
                StringBuilder dayDisplay   = new StringBuilder();
                bool          dayNameFirst = (GetNumericDateFormat()[0] != 'y');

                for (int i = 0; i < 7; i++)
                {
                    date = tempDate.ToString(abbreviatedMonthDayPattern);

                    if (Control.ShowDayHeader)
                    {
                        // Use the short format for displaying day name
                        dayName           = GetAbbreviatedDayName(tempDate);
                        dayDisplay.Length = 0;

                        if (dayNameFirst)
                        {
                            dayDisplay.Append(dayName);
                            dayDisplay.Append(Space);
                            dayDisplay.Append(date);
                        }
                        else
                        {
                            dayDisplay.Append(date);
                            dayDisplay.Append(Space);
                            dayDisplay.Append(dayName);
                        }
                        arr.Add(dayDisplay.ToString());
                    }
                    else
                    {
                        arr.Add(date);
                    }
                    tempDate = _threadCalendar.AddDays(tempDate, 1);
                }
                DataBindAndRender(writer, _dayList, arr);
                break;
            }

            default:
                Debug.Assert(false, "Unexpected Secondary UI Mode");
                break;
            }
            writer.ExitStyle(Style);
        }
Example #17
0
 /// <include file='doc\WmlCommandAdapter.uex' path='docs/doc[@for="WmlCommandAdapter.Render"]/*' />
 public override void Render(WmlMobileTextWriter writer)
 {
     writer.EnterStyle(Style);
     RenderSubmitEvent(writer, Control.SoftkeyLabel, Control.Text, Control.BreakAfter);
     writer.ExitStyle(Style);
 }
        public override void Render(WmlMobileTextWriter writer)
        {
            String text, url, phoneNumber;
            String controlText = Control.Text;

            // Always strip off optional separators for PhoneNumber before it
            // is added in markup.

            String originalNumber = Control.PhoneNumber;

            char[] plainNumber = new char[originalNumber.Length];  // allocate enough buffer size

            // Loop to strip out optional separators
            int sizeOfPlainNumber = 0;

            foreach (char ch in originalNumber)
            {
                if ((ch >= '0' && ch <= '9') || ch == '+')
                {
                    plainNumber[sizeOfPlainNumber] = ch;
                    sizeOfPlainNumber++;
                }
            }

            // Assign the number string with the right size
            phoneNumber = new String(plainNumber, 0, sizeOfPlainNumber);

            // Construct text and url based on device capabilities
            //
            if (!Device.CanInitiateVoiceCall)
            {
                text = String.Format(Control.AlternateFormat,
                                     controlText,
                                     originalNumber);
                url = Control.AlternateUrl;
            }
            else
            {
                // Some WML browsers require the phone number
                // showing as text so it can be selected.  If it is not
                // formatted in the text yet, append it to the end of the
                // text.
                if (Device.RequiresPhoneNumbersAsPlainText)
                {
                    text = controlText + " " + phoneNumber;
                    url  = String.Empty;
                }
                else
                {
                    text = (controlText != String.Empty) ?
                           controlText : originalNumber;
                    url = "wtai://wp/mc;" + phoneNumber;
                }
            }

            // Write out plain text or corresponding link/softkey command
            // accordingly
            //
            writer.EnterStyle(Style);
            if (url.Length == 0)
            {
                writer.RenderText(text, Control.BreakAfter);
            }
            else
            {
                String softkeyLabel         = Control.SoftkeyLabel;
                bool   implicitSoftkeyLabel = false;
                if (softkeyLabel.Length == 0)
                {
                    implicitSoftkeyLabel = true;
                    softkeyLabel         = text;
                }
                if (!writer.IsValidSoftkeyLabel(softkeyLabel))
                {
                    if (!implicitSoftkeyLabel && softkeyLabel.Length > 0)
                    {
                        softkeyLabel = softkeyLabel.Substring(0, Device.MaximumSoftkeyLabelLength);
                    }
                    else
                    {
                        implicitSoftkeyLabel = true;
                        softkeyLabel         = GetDefaultLabel(CallLabel);
                    }
                }
                RenderBeginLink(writer, url, softkeyLabel, implicitSoftkeyLabel, true);
                writer.RenderText(text);
                RenderEndLink(writer, url, Control.BreakAfter);
            }
            writer.ExitStyle(Style);
        }
Example #19
0
 public override void Render(WmlMobileTextWriter writer)
 {
     writer.EnterStyle(Style);
     writer.RenderText(Control.Text, Control.BreakAfter);
     writer.ExitStyle(Style);
 }
 /// <include file='doc\WmlCommandAdapter.uex' path='docs/doc[@for="WmlCommandAdapter.Render"]/*' />
 public override void Render(WmlMobileTextWriter writer)
 {
     writer.EnterStyle(Style);
     RenderSubmitEvent(writer, Control.SoftkeyLabel, Control.Text, Control.BreakAfter);
     writer.ExitStyle(Style);
 }
 /// <include file='doc\WmlLabelAdapter.uex' path='docs/doc[@for="WmlLabelAdapter.Render"]/*' />
 public override void Render(WmlMobileTextWriter writer)
 {
     writer.EnterStyle(Style);
     writer.RenderText(Control.Text, Control.BreakAfter);
     writer.ExitStyle(Style);
 }