Exemple #1
0
        public GroupViewModel CreateGroupRender(IGroup targetGroup, CompositeCommand cmds = null)
        {
            //create group element
            GroupViewModel NewGroupVM = WidgetFactory.CreateGroup(targetGroup) as GroupViewModel;

            //remove the older inner group
            List <GroupViewModel> AllGroups = items.OfType <GroupViewModel>().Where(c => c.IsGroup == true).ToList <GroupViewModel>();

            foreach (GroupViewModel it in AllGroups)
            {
                if (NewGroupVM.IsChild(it.widgetGID, true))
                {
                    it.IsSelected = false;
                    _selectionService.RemoveWidget(it);
                    items.Remove(it);
                }
            }


            //initialize all elements in new group
            foreach (WidgetViewModBase wdg in Items)
            {
                if (true == NewGroupVM.IsChild(wdg.widgetGID, false))
                {
                    wdg.ParentID   = NewGroupVM.widgetGID;
                    wdg.IsGroup    = false;
                    wdg.IsSelected = false;
                    NewGroupVM.AddChild(wdg);
                }
            }

            #region Reset Zorder

            // We got a crash report which was caused by  the exception System.InvalidOperationException from
            // System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable`1<Int32>), so make sure WidgetChildren has element first.
            // See http://bts1.nhncorp.com/nhnbts/browse/DSTUDIO-1679
            SetTargetObject2Front(NewGroupVM.WidgetChildren, cmds);
            //SetGroupTargetObjectContinue(, cmds, NewGroupVM);

            #endregion

            //UI Render the new group
            NewGroupVM.IsSelected = true;
            NewGroupVM.Status     = GroupStatus.Selected;
            //NewGroupVM.ZOrder = -3;
            Items.Add(NewGroupVM);
            NewGroupVM.Refresh();

            _ListEventAggregator.GetEvent <GroupChangedEvent>().Publish(true);
            return(NewGroupVM);
        }
Exemple #2
0
        private List <WidgetViewModBase> CreateVMObjects(IObjectContainer container)
        {
            List <WidgetViewModBase> all = new List <WidgetViewModBase>();

            //common widget
            foreach (IWidget newItem in container.WidgetList)
            {
                if (newItem != null && newItem.ParentGroup == null)
                {
                    WidgetViewModBase vmItem = WidgetFactory.CreateWidget(newItem);
                    vmItem.ParentPageVM = this;
                    all.Add(vmItem);
                }
            }

            //common master
            foreach (IMaster newItem in container.MasterList)
            {
                if (newItem != null && newItem.ParentGroup == null)
                {
                    WidgetViewModBase vmItem = WidgetFactory.CreateWidget(newItem);
                    vmItem.ParentPageVM = this;
                    all.Add(vmItem);
                }
            }

            //master and it's all children
            foreach (IGroup newGroup in container.GroupList)
            {
                GroupViewModel vmGroup = null;
                if (newGroup != null && newGroup.ParentGroup == null)
                {
                    vmGroup         = WidgetFactory.CreateGroup(newGroup) as GroupViewModel;
                    vmGroup.IsGroup = true;
                    vmGroup.Status  = GroupStatus.Selected;
                }

                List <IRegion> children = new List <IRegion>();
                GetWidgetChildren(newGroup, children);
                if (children.Count < 1 || vmGroup == null)
                {
                    continue;
                }
                all.Add(vmGroup);

                foreach (IRegion item in children)
                {
                    WidgetViewModBase vmChild = WidgetFactory.CreateWidget(item);
                    if (vmChild == null)
                    {
                        continue;
                    }

                    vmChild.IsGroup    = false;
                    vmChild.ParentID   = newGroup.Guid;
                    vmChild.IsSelected = false;
                    vmGroup.AddChild(vmChild);
                    all.Add(vmChild);
                }
            }
            return(all);
        }