internal IEnumerable <IGroupAction> DeserializeGroupActionGroup(actionSubmenu actiongroup) { var ret = new List <IGroupAction>(); foreach (var item in actiongroup.Items) { if (item is action) { var i = item as action; var add = new GroupAction { Name = i.menu, Shortcut = i.shortcut, Execute = i.execute, BatchExecute = i.batchExecute, DefaultAction = bool.Parse([email protected]()) }; ret.Add(add); } if (item is actionSubmenu) { var i = item as actionSubmenu; var addgroup = new GroupActionGroup { Children = new List <IGroupAction>(), Name = i.menu }; addgroup.Children = this.DeserializeGroupActionGroup(i); ret.Add(addgroup); } } return(ret); }
public ActionSubmenuItemModel(GroupActionGroup a) { Action = a; Items = new ObservableCollection <IBaseAction>(); foreach (var action in a.Children) { Items.Add(ViewModelLocator.ActionViewModel.CreateActionItem(action, Items)); } Items.CollectionChanged += (b, c) => { ((GroupActionGroup)Action).Children = Items.Select(x => x.Action).ToList(); }; }
public ActionSubmenuItemModel() { Action = new GroupActionGroup() { Name = "Action", IsGroup = true }; Items = new ObservableCollection <IBaseAction>(); Items.CollectionChanged += (a, b) => { ((GroupActionGroup)Action).Children = Items.Select(x => x.Action).ToList(); }; Items.Add(new ActionItemModel() { Parent = Items }); }
public ActionSubmenuItemModel(ActionSubmenuItemModel a) { Action = new GroupActionGroup { HeaderExecute = ((GroupActionGroup)a.Action).HeaderExecute, IsGroup = ((GroupActionGroup)a.Action).IsGroup, Name = ((GroupActionGroup)a.Action).Name, ShowExecute = ((GroupActionGroup)a.Action).ShowExecute }; Items = new ObservableCollection <IBaseAction>(a.Items.Select(x => ViewModelLocator.ActionViewModel.CopyActionItems(x))); ((GroupActionGroup)Action).Children = Items.Select(x => x.Action).ToList(); Items.CollectionChanged += (b, c) => { ((GroupActionGroup)Action).Children = Items.Select(x => x.Action).ToList(); }; Parent = a.Parent; ItemSource = a.ItemSource; }
internal Group DeserialiseGroup(group grp, int id) { var ret = new Group { Id = (byte)id, Name = grp.name, Background = grp.background == null ? null : Path.Combine(directory, grp.background), BackgroundStyle = grp.backgroundStyle.ToString(), Board = grp.board == null ? null : Path.Combine(directory, grp.board), BoardPosition = grp.boardPosition == null ? new DataRectangle { X = 0, Y = 0, Height = 0, Width = 0 } : new DataRectangle { X = double.Parse(grp.boardPosition.Split(',')[0]), Y = double.Parse(grp.boardPosition.Split(',')[1]), Width = double.Parse(grp.boardPosition.Split(',')[2]), Height = double.Parse(grp.boardPosition.Split(',')[3]) }, Collapsed = bool.Parse(grp.collapsed.ToString()), Height = Int32.Parse(grp.height), Width = Int32.Parse(grp.width), Icon = grp.icon == null ? null : Path.Combine(directory, grp.icon), Ordered = bool.Parse(grp.ordered.ToString()), Shortcut = grp.shortcut, CardActions = new List <IGroupAction>(), GroupActions = new List <IGroupAction>() }; if (grp.Items != null) { foreach (var item in grp.Items) { if (item is action) { var i = item as action; var to = new GroupAction { Name = i.menu, Shortcut = i.shortcut, BatchExecute = i.batchExecute, Execute = i.execute, DefaultAction = bool.Parse([email protected]()) }; if (item is cardAction) { (ret.CardActions as List <IGroupAction>).Add(to); } else if (item is groupAction) { (ret.GroupActions as List <IGroupAction>).Add(to); } } else if (item is actionSubmenu) { var i = item as actionSubmenu; var to = new GroupActionGroup { Children = new List <IGroupAction>(), Name = i.menu }; to.Children = this.DeserializeGroupActionGroup(i); if (item is cardActionSubmenu) { (ret.CardActions as List <IGroupAction>).Add(to); } else if (item is groupActionSubmenu) { (ret.GroupActions as List <IGroupAction>).Add(to); } } } } switch (grp.visibility) { case groupVisibility.none: ret.Visibility = GroupVisibility.Nobody; break; case groupVisibility.me: ret.Visibility = GroupVisibility.Owner; break; case groupVisibility.all: ret.Visibility = GroupVisibility.Everybody; break; case groupVisibility.undefined: ret.Visibility = GroupVisibility.Undefined; break; default: throw new ArgumentOutOfRangeException(); } return(ret); }