public LocalModsLibraryItemViewModel(ModLibraryViewModel library, LocalModsContainer model,
                                      LibraryGroupViewModel @group = null,
                                      bool isFeatured = false, bool doGrouping = false)
     : base(library, model, SixIconFont.withSIX_icon_Folder, @group, isFeatured, doGrouping)
 {
     Items.ChangeTrackingEnabled = true;
     Description = model.Path;
 }
 public CustomRepoCollectionLibraryItemViewModel(ModLibraryViewModel library, CustomCollection model,
                                                 LibraryGroupViewModel @group = null,
                                                 bool isFeatured = false, bool doGrouping = false)
     : base(library, model, SixIconFont.withSIX_icon_Synq, @group, isFeatured, doGrouping)
 {
     Model      = model;
     IsEditable = false;
     SubHeader  = model.CustomRepo.Name;
 }
 protected LibraryItemViewModel(LibraryGroupViewModel @group)
 {
     Children = new ReactiveList <IHierarchicalLibraryItem>();
     Group    = group;
     if (!Execute.InDesignMode)
     {
         _hasChildren = Children.CountChanged
                        .Select(x => x > 0).ToProperty(this, x => x.HasChildren, false, Scheduler.Immediate);
     }
     UiHelper.TryOnUiThread(() => Children.EnableCollectionSynchronization(_childrenLock));
 }
        public SubscribedCollectionLibraryItemViewModel(ModLibraryViewModel library, SubscribedCollection model,
                                                        LibraryGroupViewModel @group = null,
                                                        bool isFeatured = false, bool doGrouping = false)
            : base(library, model, SixIconFont.withSIX_icon_Synq, @group, isFeatured, doGrouping)
        {
            MainIcon   = SixIconFont.withSIX_icon_Folder;
            _library   = library;
            Model      = model;
            IsEditable = false;

            SubHeader = model.Author;
        }
        public MissionLibrarySetup(MissionLibraryViewModel library, Game game, IContentManager missionList,
                                   UserSettings settings,
                                   IEventAggregator eventBus)
        {
            if (game == null)
            {
                throw new ArgumentNullException(nameof(game));
            }
            if (!(game.SupportsMissions()))
            {
                throw new NotSupportedException("game.SupportsMissions()");
            }
            if (missionList == null)
            {
                throw new ArgumentNullException(nameof(missionList));
            }

            _library     = library;
            _game        = game;
            _missionList = missionList;
            _eventBus    = eventBus;
            _settings    = settings;
            OnlineGroup  = new MissionLibraryGroupViewModel(library, "Repositories", icon: SixIconFont.withSIX_icon_Cloud)
            {
                IsRoot    = true,
                SortOrder = 13
            };
            LocalGroup = new MissionLibraryGroupViewModel(library, "Local", "add folder",
                                                          SixIconFont.withSIX_icon_System)
            {
                IsRoot = true, SortOrder = 12
            };
            CollectionsGroup = new MissionLibraryGroupViewModel(library, "Collections", "new collection",
                                                                SixIconFont.withSIX_icon_Folder)
            {
                IsRoot = true, SortOrder = 11
            };
            BuiltInGroup = new MissionLibraryGroupViewModel(library, null)
            {
                IsRoot = true, SortOrder = 0
            };
            Groups = new LibraryGroupViewModel <MissionLibraryViewModel>[] { null, BuiltInGroup, LocalGroup };
            // , OnlineGroup

            _eventBus.Subscribe(this);

            Items.AddRange(Groups.Where(x => x != null && x != BuiltInGroup));
            if (_game.SupportsMissions())
            {
                Setup();
            }
            CreateItemsView();
        }
        public NetworkLibraryItemViewModel(ModLibraryViewModel library, BuiltInContentContainer model,
                                           LibraryGroupViewModel @group = null,
                                           bool doGrouping = false)
            : base(library, model, SixIconFont.withSIX_icon_Nav_Server, @group, true, doGrouping)
        {
            Items.ChangeTrackingEnabled = true;
            var currentSort = Sort.SelectedSort;

            if (currentSort == null || currentSort.Value != "UpdatedVersion")
            {
                Sort.SetSort("UpdatedVersion");
            }
        }
        public BrowseContentLibraryItemViewModel(ModLibraryViewModel library, T model, string icon = null,
                                                 LibraryGroupViewModel @group = null, bool isFeatured = false,
                                                 bool doGrouping = false)
            : base(library, model, icon, @group, isFeatured, doGrouping)
        {
            _collectionContextMenu   = new CollectionContextMenu(library);
            _modContextMenu          = new ModContextMenu(library);
            _multiContentContextMenu = new MultiContentContextMenu(library);
            _modBarMenu        = new ModBarMenu(library);
            _collectionBarMenu = new CollectionBarMenu(library);

            SetupMenus(HandleSingleMenu, HandleMultiMenu);
        }
        public CustomCollectionLibraryItemViewModel(ModLibraryViewModel library, CustomCollection model,
                                                    LibraryGroupViewModel localGroup,
                                                    bool isFeatured = false,
                                                    bool doGrouping = false)
            : base(library, model, SixIconFont.withSIX_icon_Hexagon, localGroup, isFeatured, doGrouping)
        {
            _library   = library;
            Model      = model;
            IsEditable = !isFeatured;

            /*
             * // TODO: How it really should be:
             * // Or use a variation of Can....
             * // this would be most appropriate for a ViewModel. For a DataModel it reduces the re-usability. But these things should be custom built for each View/Control anyway?
             * _isPublishShown;
             * _isDeleteShown;
             * _isUploadShown;
             * _isDeleteShown;
             * _isMoreShown;
             * _isChangeScopeShown;
             * _isSubscribersShown;
             * _showSyncedTime;
             */

            _isPublishable = model.WhenAnyValue(x => x.PublishedId)
                             .Select(x => !x.HasValue)
                             .ToProperty(this, x => x.IsPublishable);

            _isHosted = model.WhenAnyValue(x => x.PublishedId, x => x.HasValue)
                        .ToProperty(this, x => x.IsHosted);

            _isListed = model.WhenAnyValue(x => x.PublishingScope, x => x == CollectionScope.Public)
                        .ToProperty(this, x => x.IsListed);

            model.WhenAnyValue(x => x.PublishingScope)
            .Subscribe(x => IsPrivate = x == CollectionScope.Private);

            this.WhenAnyValue(x => x.IsHosted)
            .Subscribe(x => Icon = x ? SixIconFont.withSIX_icon_Synq : SixIconFont.withSIX_icon_Hexagon);

            _isPublished = model.WhenAnyValue(x => x.PublishedId, id => id.HasValue)
                           .ToProperty(this, x => x.IsPublished);

            _isSharable = this.WhenAnyValue(x => x.IsPublished, x => x.IsPrivate,
                                            (isPublished, isPrivate) => isPublished && !isPrivate)
                          .ToProperty(this, x => x.IsShareable);

            _canLockCollection = this.WhenAnyValue(x => x.IsSubscribedCollection)
                                 .Select(x => !x)
                                 .ToProperty(this, x => x.CanNotLockCollection);
        }
示例#9
0
        ContentLibraryItemViewModel CreateCustomRepo(SixRepo repo, LibraryGroupViewModel group)
        {
            var libItem = new BrowseContentLibraryItemViewModel <SixRepo>(_library, repo, @group: group, isFeatured: true);

            foreach (var modSet in repo.CollectionItems)
            {
                modSet.UpdateState();
                var customRepoCollectionLibraryItem = new CustomRepoCollectionLibraryItemViewModel(_library, modSet,
                                                                                                   null, true);
                libItem.Children.AddLocked(customRepoCollectionLibraryItem);
                libItem.Items.AddLocked(modSet);
            }
            return(libItem);
        }
示例#10
0
        public ServerLibrarySetup(ServerLibraryViewModel library, IServerList serverList)
        {
            _library     = library;
            _serverList  = serverList;
            BuiltInGroup = new ServerLibraryGroupViewModel(library, null)
            {
                IsRoot = true, SortOrder = 0
            };

            _builtinFeatured =
                new ServerLibraryItemViewModel <BuiltInServerContainer>(library, new BuiltInServerContainer("Featured"),
                                                                        new CleanServerFilter(), null,
                                                                        SixIconFont.withSIX_icon_Ribbon, BuiltInGroup, true)
            {
                IconForeground = SixColors.SixOrange,
                IsRoot         = true,
                SortOrder      = 7,
                IsHead         = true
            };
            _builtinFavorites =
                new ServerLibraryItemViewModel <BuiltInServerContainer>(library, new BuiltInServerContainer("Favorites"),
                                                                        new CleanServerFilter(), null,
                                                                        SixIconFont.withSIX_icon_Star, BuiltInGroup, true)
            {
                IconForeground = SixColors.SixOrange,
                IsRoot         = true,
                SortOrder      = 8
            };
            _builtinRecent =
                new ServerLibraryItemViewModel <BuiltInServerContainer>(library, new BuiltInServerContainer("Recent"),
                                                                        new CleanServerFilter(), null,
                                                                        SixIconFont.withSIX_icon_Clock, BuiltInGroup, true)
            {
                IsRoot = true, SortOrder = 9
            };

            Groups = new LibraryGroupViewModel <ServerLibraryViewModel>[] { null, BuiltInGroup };

            if (serverList != null)
            {
                Setup();
            }

            Items.AddRange(Groups.Where(x => x != null && x != BuiltInGroup));
            CreateItemsView();
        }
示例#11
0
        public ModLibrarySetup(ModLibraryViewModel library, Game game, IContentManager contentList,
                               UserSettings settings, IEventAggregator eventBus)
        {
            if (!(game.SupportsMods()))
            {
                throw new ArgumentException("game.SupportsMods()");
            }
            _library     = library;
            _game        = game;
            _modding     = game.Modding();
            _settings    = settings;
            _eventBus    = eventBus;
            _contentList = contentList;
            OnlineGroup  = new ModLibraryGroupViewModel(library, "Repositories", "add repo",
                                                        SixIconFont.withSIX_icon_Cloud)
            {
                IsRoot = true, SortOrder = 13
            };
            LocalGroup = new ModLibraryGroupViewModel(library, "Local", "add folder",
                                                      SixIconFont.withSIX_icon_System)
            {
                IsRoot = true, SortOrder = 12
            };
            CollectionsGroup = new ModLibraryGroupViewModel(library, "Collections", "new collection",
                                                            SixIconFont.withSIX_icon_Folder)
            {
                IsRoot = true, SortOrder = 11
            };
            BuiltInGroup = new ModLibraryGroupViewModel(library, null)
            {
                IsRoot = true, SortOrder = 0
            };

            Groups = new LibraryGroupViewModel <ModLibraryViewModel>[] {
                null, BuiltInGroup, CollectionsGroup, LocalGroup,
                OnlineGroup
            };
            _aIa = new BrowseContentLibraryItemViewModel <BuiltInContentContainer>(library,
                                                                                   new BuiltInContentContainer("AllInArma"), @group: LocalGroup, isFeatured: true);

            SetupItems();
            Items.AddRange(Groups.Where(x => x != null && x != BuiltInGroup));
            CreateItemsView();
            _eventBus.Subscribe(this);
        }
        public CollectionLibraryItemViewModel(ModLibraryViewModel library, Collection model, string icon,
                                              LibraryGroupViewModel @group = null, bool isFeatured = false,
                                              bool doGrouping = false)
            : base(library, model, icon, @group, isFeatured, doGrouping)
        {
            MainIcon        = SixIconFont.withSIX_icon_Folder;
            ShowItemsInTree = true;
            Items.KeepCollectionInSync2(Children);


            _collectionContextMenu   = new CollectionContextMenu(library);
            _modContextMenu          = new ModContextMenu(library);
            _multiContentContextMenu = new MultiContentContextMenu(library);
            _modBarMenu        = new ModBarMenu(library);
            _collectionBarMenu = new CollectionBarMenu(library);

            SetupMenus(HandleSingleMenu, HandleMultiMenu);
        }
 protected ContentLibraryItemViewModel(LibraryRootViewModel library, LibraryGroupViewModel @group) : base(@group)
 {
     _library = library;
 }