private void DisableInteraction() { CanEdit = false; if (_widgetOpenAction != null) { DeselectPage(_widgetOpenAction.LinkPageGuid); } _selectedWidget = null; _widgetOpenAction = null; Raw_ExternalLink = string.Empty; Raw_NoneChecked = Raw_PageChecked = Raw_LinkChecked = false; WidgetList.Clear(); InitShowHideAction(); FirePropertyChanged("IsNewWindowChecked"); }
/// <summary> /// load all widgets/groups which is not in a group in current page. /// which means,only load top level widget/group. /// </summary> public void LoadPageWidgets() { if (_selectedWidget == null || _widgetShowHideAction == null) { DisableInteraction(); return; } WidgetList.Clear(); List <IWidgetPropertyData> allWidgets = SelectionService.GetCurrentPage().GetAllWidgets(); List <WidgetNode> TargetWidgets = new List <WidgetNode>(); foreach (IWidgetPropertyData it in allWidgets.Where(x => x.IsGroup == false)) { WidgetViewModBase wdg = it as WidgetViewModBase; if (wdg == null) { continue; } // load widget that is not in a group . if ((wdg.ParentID == Guid.Empty)) { bool bChecked = false; IRegion targetObject = wdg.WidgetModel.WdgDom; if (targetObject == null) { break; } //if the widget is already checked. var selWidget = _widgetShowHideAction.TargetObjects.FirstOrDefault(x => x.Guid == targetObject.Guid); if (selWidget != null) { bChecked = true; } TargetWidgets.Add(new WidgetNode(this, targetObject, wdg.Type, bChecked)); } } //load all groups. foreach (IGroup group in _currentPage.Groups) { bool bChecked = false; var selGroup = _widgetShowHideAction.TargetObjects.FirstOrDefault(x => x.Guid == group.Guid); if (selGroup != null) { bChecked = true; } TargetWidgets.Add(new WidgetNode(this, group, ObjectType.Group, bChecked)); } _isCheckAll = !TargetWidgets.Any(x => x.IsSelected == false); WidgetList.AddRange(TargetWidgets); FirePropertyChanged("IsCheckAll"); FirePropertyChanged("ShowHideType"); FirePropertyChanged("AnimateType"); FirePropertyChanged("AnimateTime"); FirePropertyChanged("IsShowHideEnabled"); }