Example #1
0
        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);
        }
Example #2
0
 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();
     };
 }
Example #3
0
 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
     });
 }
Example #4
0
 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;
 }
Example #5
0
        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);
        }