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("],"); }
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(); } }
/// <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; }
/// <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; } }
/// <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"); }