Beispiel #1
0
        protected override void AppendSpecificTypeProperties(StringBuilder builder)
        {
            if (_widget.WidgetType == WidgetType.ListBox)
            {
                IListBox listBox = _widget as IListBox;
                builder.AppendFormat("\"allowMultiple\":{0},", listBox.AllowMultiple.ToString().ToLower());
            }

            IListBase listBase = _widget as IListBase;

            builder.Append("\"items\":[");

            foreach (IListItem item in listBase.Items)
            {
                builder.Append("{");

                builder.AppendFormat("\"textValue\":\"{0}\",", JsHelper.ReplaceSpecialCharacters(item.TextValue));
                builder.AppendFormat("\"isSelected\":{0},", item.IsSelected.ToString().ToLower());

                builder.Append("},");
            }

            JsHelper.RemoveLastComma(builder);

            builder.Append("],");
        }
Beispiel #2
0
        private void OKExecute(Window win)
        {
            if (win != null)
            {
                IDocumentService doc = ServiceLocator.Current.GetInstance <IDocumentService>();
                _document = doc.Document;

                foreach (var widget in widgetsList)
                {
                    IListBase list = widget as IListBase;
                    list.Items.Clear();

                    foreach (NodeViewModel node in NodeList)
                    {
                        IListItem item = list.CreateItem(node.Name);
                        item.IsSelected = node.IsChecked;
                    }
                    if (list.WidgetType == WidgetType.ListBox)
                    {
                        (list as IListBox).AllowMultiple = IsMultiple;
                    }
                }

                _document.IsDirty = true;
                win.DialogResult  = true;
                win.Close();
            }
        }
Beispiel #3
0
        /// <summary>
        /// Check if every item in list widget has same 'TextValue'
        /// </summary>
        /// <returns></returns>
        private void CheckItemsSame()
        {
            if (_VMItems.Count < 1)
            {
                return;
            }

            bool      bSame      = true;
            IListBase baselist   = (_VMItems.ElementAt(0) as ListBaseWidgetViewModel).IWidget;
            int       itemsCount = baselist.Items.Count;

            //check if list widget has same items(text only).
            foreach (var item in _VMItems)
            {
                if (item == baselist)
                {
                    continue;
                }
                IListBase widget = (item as ListBaseWidgetViewModel).IWidget;
                if (widget == null || itemsCount != widget.Items.Count)
                {
                    bSame = false;
                    break;
                }
                else
                {
                    for (int i = 0; i < itemsCount - 1; i++)
                    {
                        if (widget.Items.ElementAt(i).TextValue != baselist.Items.ElementAt(i).TextValue)
                        {
                            bSame = false;
                            break;
                        }
                    }
                    if (bSame == false)
                    {
                        break;
                    }
                }
            }

            RefreshItemsList(bSame);

            _IsItemsSame = bSame;
        }
Beispiel #4
0
        /// <summary>
        /// Load listbox items or droplist items from Document.
        /// </summary>
        private void LoadList()
        {
            //IListBox and IDroplist has a same base IListBase
            IListBase baselist = widgetsList.ElementAt(0) as IListBase;

            //only one or same, load first one.

            foreach (IListItem item in baselist.Items)
            {
                NodeViewModel newItem = new NodeViewModel(item.TextValue, item.IsSelected);
                NodeList.Add(newItem);
            }
            //Only IListBox has AllowMultiple property.
            if (baselist.WidgetType == WidgetType.ListBox)
            {
                isMultiple = (baselist as IListBox).AllowMultiple;
            }
        }
Beispiel #5
0
 /// <summary>
 /// Reresh items text list in property panel.
 /// </summary>
 /// <param name="bSame">if all widget has same items</param>
 private void RefreshItemsList(bool bSame)
 {
     ItemsList = string.Empty;
     if (bSame && _VMItems.Count > 0)
     {
         IListBase listBase = (_VMItems.ElementAt(0) as ListBaseWidgetViewModel).IWidget;
         foreach (IListItem item in listBase.Items)
         {
             if (item == listBase.Items.ElementAt(0))
             {
                 ItemsList += item.TextValue;
             }
             else
             {
                 ItemsList += ", " + item.TextValue;
             }
         }
     }
     FirePropertyChanged("ItemsList");
 }