/// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="viewModelStore">The store this view model belongs to.</param>
        /// <param name="serializationMessage">Serialization message.</param>
        public SerializationErrorListItemViewModel(ViewModelStore viewModelStore, SerializationMessage serializationMessage)
            : base(viewModelStore, serializationMessage.MessageId, ModelErrorListItemViewModel.ConvertCategory(serializationMessage.Type), serializationMessage.Description)
        {
            this.serializationMessage = serializationMessage;

            this.SourceDisplayName = serializationMessage.Source + " - Line: " + serializationMessage.Line.ToString() + " , Column: " + serializationMessage.Column;
        }
        public MainModelTreeViewModel(ViewModelStore viewModelStore)
            : base(viewModelStore)
        {
            contextMenu = defaultContextMenu;

            this.EventManager.GetEvent<SelectionChangedEvent>().Subscribe(new Action<SelectionChangedEventArgs>(ReactOnViewSelection));
        }
 /// <summary>
 /// Constuctor.
 /// </summary>
 /// <param name="viewModelStore">The store this view model belongs to.</param>
 /// <param name="text">Text of the menu item.</param>
 /// <param name="iconUrl">Icon of the menu item.</param>
 public MenuItemViewModel(ViewModelStore viewModelStore, string text, string iconUrl)
     : base(viewModelStore)
 {
     itemText = text;
     itemIconUrl = iconUrl;
     itemChildren = new ObservableCollection<MenuItemViewModel>();
 }
 /// <summary>
 /// Constuctor.
 /// </summary>
 /// <param name="viewModelStore">The store this view model belongs to.</param>
 /// <param name="domainRelationshipInfo">Relationship domain class info.</param>
 /// <param name="sourceRoleId">RoleId of the source role player. </param>
 public UnaryRoleEditorViewModel(ViewModelStore viewModelStore, DomainRelationshipInfo domainRelationshipInfo, Guid sourceRoleId)
     : base(viewModelStore, domainRelationshipInfo, sourceRoleId)
 {
     deleteElementCommand = new DelegateCommand(DeleteElementCommand_Executed);
     editElementCommand = new DelegateCommand(EditElementCommand_Executed);
     navigateToElementCommand = new DelegateCommand(NavigateToElementCommand_Executed);
 }
 /// <summary>
 /// Constuctor.
 /// </summary>
 /// <param name="viewModelStore">The store this view model belongs to.</param>
 public ReferencedModelRoleViewModel(ViewModelStore viewModelStore)
     : base(viewModelStore)
 {
     editPathCommand = new DelegateCommand(EditPathCommand_Executed);
     createNewReferencedModelCommand = new DelegateCommand(CreateNewReferencedModelCommand_Executed);
     deleteReferencedModelCommand = new DelegateCommand(DeleteReferencedModelCommand_Executed);
 }
        protected ShellMainViewModel(ViewModelStore viewModelStore, ModelPackage package)
            : base(viewModelStore, false)
        {
            if (!this.ViewModelStore.CustomDataBag.ContainsKey(ShellViewModelStoreIds.ModelPackageId))
                this.ViewModelStore.CustomDataBag.Add(ShellViewModelStoreIds.ModelPackageId, package);

            if (!this.Store.CustomDataBag.ContainsKey(ShellViewModelStoreIds.ModelPackageId))
                this.Store.CustomDataBag.Add(ShellViewModelStoreIds.ModelPackageId, package);

            if (!this.Store.CustomDataBag.ContainsKey(ShellViewModelStoreIds.ViewModelStoreId))
                this.Store.CustomDataBag.Add(ShellViewModelStoreIds.ViewModelStoreId, this.ViewModelStore);

            this.saveModelCommand = new DelegateCommand(SaveModelCommandExecuted);

            this.modelPackage = package;

            this.EventManager.GetEvent<DocumentClosingEvent>().Subscribe(this.OnDocumentClosingEvent);
            this.EventManager.GetEvent<DocumentSavedEvent>().Subscribe(this.OnDocumentSavedEvent);

            this.showModelTreeCommand = new DelegateCommand(ShowModelTreeCommandExecuted);
            this.showPropertiesCommand = new DelegateCommand(ShowPropertiesCommandExecuted);
            this.showErrorListCommand = new DelegateCommand(ShowErrorListCommandExecuted);
            this.showDependenciesCommand = new DelegateCommand(ShowDependenciesCommandExecuted);
            this.showDiagramSurfaceCommand = new DelegateCommand(ShowDiagramSurfaceCommandCommandExecuted);

            this.pluginInformationCommand = new DelegateCommand(PluginInformationCommandExecuted);

            this.visibleCollection = new ObservableCollection<IDockableViewModel>();
            this.hiddenCollection = new ObservableCollection<IDockableViewModel>();

            this.Initialize();
        }
        /// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="viewModelStore">The store this view model belongs to.</param>
        /// <param name="message">Message from the model.</param>
        public ModelErrorListItemViewModel(ViewModelStore viewModelStore, ModelValidationMessage message)
            : base(viewModelStore, message.MessageId, ConvertCategory(message.Type), message.Description)
        {
            this.message = message;

            if (message.Source is IDomainModelOwnable)
            {
                if ((message.Source as IDomainModelOwnable).DomainElementHasName)
                {
                    this.SourceDisplayName = (message.Source as IDomainModelOwnable).DomainElementName;
                    
                    DomainPropertyInfo info = this.ViewModelStore.GetDomainModelServices(message.Source).ElementNameProvider.GetNamePropertyInfo(message.Source);
                    this.ViewModelStore.EventManager.GetEvent<ModelElementPropertyChangedEvent>().Subscribe(info, message.Source.Id, OnNamePropertyChanged);
                }
                else
                {
                    this.SourceDisplayName = (message.Source as IDomainModelOwnable).DomainElementTypeDisplayName;
                }
            }

            /*
            if (this.ViewModelStore.GetDomainModelServices(message.Source).ElementNameProvider.HasName(message.Source))
            {
                this.SourceDisplayName = this.ViewModelStore.GetDomainModelServices(message.Source).ElementNameProvider.GetName(message.Source);

                DomainPropertyInfo info = this.ViewModelStore.GetDomainModelServices(message.Source).ElementNameProvider.GetNamePropertyInfo(message.Source);
                this.ViewModelStore.EventManager.GetEvent<ModelElementPropertyChangedEvent>().Subscribe(info, message.Source.Id, OnNamePropertyChanged);
            }
            else
                this.SourceDisplayName = this.ViewModelStore.GetDomainModelServices(message.Source).ElementTypeProvider.GetTypeDisplayName(message.Source);
            */

            this.ViewModelStore.EventManager.GetEvent<ModelElementDeletedEvent>().Subscribe(message.Source.Id, OnElementDeleted);
        }
        /// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="viewModelStore">The store this view model belongs to.</param>
        /// <param name="diagram">The Diagram this item belongs to.</param>
        /// <param name="shapeElement">Shape element to be associated with this vm.</param>
        protected BaseDiagramItemViewModel(ViewModelStore viewModelStore, DiagramSurfaceViewModel diagram, ShapeElement shapeElement)
            : base(viewModelStore, shapeElement.Element, true, false)
        {
            this.sufaceDiagram = diagram;
            this.shapeElement = shapeElement;

            this.Initialize();
        }
        /// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="viewModelStore">The store this view model belongs to.</param>
        /// <param name="category">Error category of the error.</param>
        /// <param name="description">Description explaining why the error occured.</param>
        protected BaseErrorListItemViewModel(ViewModelStore viewModelStore, ErrorListItemCategory category, string description)
            : base(viewModelStore)
        {
            this.category = category;
            this.description = description;

            this.navigationCommand = new DelegateCommand(NavigationCommand_Executed);
        }
        /// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="viewModelStore">The store this view model belongs to.</param>
        public DeletionViewModel(ViewModelStore viewModelStore)
            : base(viewModelStore)
        {
            this.dependenciesViewModel = new DependenciesViewModel(viewModelStore, false);

            this.title = Tum.PDE.ToolFramework.Modeling.Visualization.Properties.Resources.DeletionViewModel_Titel;
            this.description = Tum.PDE.ToolFramework.Modeling.Visualization.Properties.Resources.DeletionViewModel_Description;
        }
        /// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="viewModelStore">The store this view model belongs to.</param>
        /// <param name="referencePath">Reference path.</param>
        public HtmlInsertImageViewModel(ViewModelStore viewModelStore, string referencePath)
            : base(viewModelStore)
        {
            this.referencePath = referencePath;
            this.title = "Insert/Modify image";

            browseCommand = new DelegateCommand(BrowseCommand_Executed);
        }
        /// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="store">View model store containing the event manager used to subscribe and publish selection events.</param>
        public NavigationManager(ViewModelStore store)
        {
            this.viewModelStore = store;
            this.currentHistory = new List<SelectedItemsCollection>();
            this.currentHistoryIndex = -1;

            // subscribe to selection event
            this.viewModelStore.EventManager.GetEvent<SelectionChangedEvent>().Subscribe(new Action<SelectionChangedEventArgs>(ReactOnViewSelection));
        }
        /// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="viewModelStore">The store this view model belongs to.</param>
        public LanguagesViewModel(ViewModelStore viewModelStore)
            : base(viewModelStore)
        {
            languages = new List<LanguageViewModel>();
            languages.Add(new LanguageViewModel(this.ViewModelStore, "en", "English"));
            languages.Add(new LanguageViewModel(this.ViewModelStore, "de", "Deutsch"));

            selectedLanguage = languages[0];
        }
        /// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="viewModelStore">The store this view model belongs to.</param>
        public MainDependenciesViewModel(ViewModelStore viewModelStore)
            : base(viewModelStore, false)
        {
            dependenciesViewModel = new DependenciesViewModel(viewModelStore, true);

            this.EventManager.GetEvent<SelectionChangedEvent>().Subscribe(new Action<SelectionChangedEventArgs>(ReactOnViewSelection));

            this.PreInitialize();
        }
        /// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="viewModelStore">The store this view model belongs to.</param>
        /// <param name="bCallIntialize">True if the Initialize method should be called.</param>
        protected BaseHostingViewModel(ViewModelStore viewModelStore, bool bCallIntialize)
            : base(viewModelStore, bCallIntialize)
        {
            // init base commands
            loadedCommand = new DelegateCommand(OnLoaded);
            unloadedCommand = new DelegateCommand(OnUnloaded);

            this.EventManager.GetEvent<DocumentClosedEvent>().Subscribe(this.OnDocumentClosedEvent);
            this.EventManager.GetEvent<DocumentOpenedEvent>().Subscribe(this.OnDocumentOpenedEvent);
        }
        /// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="viewModelStore">View model store containing this view model.</param>
        public BreadcrumbNavigationViewModel(ViewModelStore viewModelStore)
            : base(viewModelStore, "")
        {
            this.DockedWindowDesiredHeight = 65;

            this.EventManager.GetEvent<DocumentClosingEvent>().Subscribe(OnDocumentClosing);

            if (this.ModelData.CurrentModelContext.RootElement != null)
                InitVM();
        }
        protected BaseDiagramItemLinkViewModel(ViewModelStore viewModelStore, DiagramSurfaceViewModel diagram, LinkShape linkShape)
            : base(viewModelStore, diagram, linkShape)
        {
            this.Geometry = ConvertEdgePointsToGeometry(linkShape.EdgePoints);
            this.edgePointsVM = new ObservableCollection<EdgePointViewModel>();

            UpdateEdgePoints();

            Subscribe();
        }
Ejemplo n.º 18
0
 /// <summary>
 /// Register services to the given store.
 /// </summary>
 /// <param name="store">ViewModelStore.</param>
 public static void RegisterServices(ViewModelStore store)
 {
     IUIVisualizerService popupVisualizer = store.GlobalServiceProvider.Resolve<IUIVisualizerService>();
     try
     {
         popupVisualizer.TryRegister("SelectHyperlinkPopup", typeof(SelectHyperlinkPopup));
         popupVisualizer.TryRegister("InsertImagePopup", typeof(InsertImagePopup));
         popupVisualizer.TryRegister("InsertTablePopup", typeof(InsertTablePopup));
     }
     catch { }
 }
        /// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="viewModelStore">The store this view model belongs to.</param>
        /// <param name="element">Element.</param>
        protected ModalDesignerSurfaceViewModel(ViewModelStore viewModelStore, DomainModelElement element)
            : base(viewModelStore, null, viewModelStore.ModelData.CurrentModelContext.Name, false)
        {
            this.modelElement = element;
            this.nameExtension = Guid.NewGuid();

            this.PreInitialize();
            this.Initialize();

            // if the hosted element is deleted, we have to close this
            this.EventManager.GetEvent<ModelElementDeletedEvent>().Subscribe(this.modelElement.Id, OnModelElementDeleted);
        }
        /// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="viewModelStore">The store this view model belongs to.</param>
        /// <param name="bCallIntialize">True if the Initialize method should be called.</param>
        protected BaseDockingViewModel(ViewModelStore viewModelStore, bool bCallIntialize)
            : base(viewModelStore, false)
        {
            this.showDockingPaneCommand = new DelegateCommand(ShowDockingPaneCommand_Executed);
            this.FloatingWindowDesiredWidth = 200;
            this.FloatingWindowDesiredHeight = 500;
            this.DockedWindowDesiredHeight = 0.0;
            this.DockedWindowDesiredWidth = 0.0;

            if (bCallIntialize)
                this.PreInitialize();
        }
        /// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="viewModelStore">The store this view model belongs to.</param>
        public SearchResultViewModel(ViewModelStore viewModelStore)
            : base(viewModelStore, false)
        {
            searchResultViewModels = new ObservableCollection<SearchResultItemViewModel>();

            this.sortOrder = Search.SearchResultSortOrder.Name;
            this.isAscending = true;

            navigateCommand = new DelegateCommand(NavigateCommand_Executed);
            sortByNameCommand = new DelegateCommand(SortByNameCommand_Executed);
            sortByReasonCommand = new DelegateCommand(SortByReasonCommand_Executed);
            sortByPathCommand = new DelegateCommand(SortByPathCommand_Executed);

            this.PreInitialize();
        }
        /// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="viewModelStore">The store this view model belongs to.</param>
        public MainPropertyGridViewModel(ViewModelStore viewModelStore)
            : base(viewModelStore, false)
        {
            this.searchCommand = new DelegateCommand(SearchCommand_Executed);

            this.toggleAlphabeticalSortOrderCommand = new DelegateCommand(ToggleAlphabeticalSortOrderCommand_Executed);
            this.toggleCategorizedSortOrderCommand = new DelegateCommand(ToggleCategorizedSortOrderCommand_Executed);

            this.searchText = "Search";
            this.propertyGridSortOrder = PropertyGridSortOrder.Alphabetical;

            this.EventManager.GetEvent<SelectionChangedEvent>().Subscribe(new Action<SelectionChangedEventArgs>(ReactOnViewSelection));

            this.PreInitialize();
        }
        /// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="viewModelStore">The store this view model belongs to.</param>
        /// <param name="selectableElements">
        /// List of existing elements, that are allowed to be selected. Can be null to specify that
        /// the is no such restriction needed and that all elements can be selected.
        /// </param>
        public SelectElementViewModel(ViewModelStore viewModelStore, List<object> selectableElements)
            : base(viewModelStore)
        {
            selectElementTreeViewModel = new SelectElementTreeViewModel(viewModelStore);
            
            if( selectableElements != null )
                selectElementSearchViewModel = new SelectElementSearchViewModel(viewModelStore, selectableElements.Cast<ModelElement>());
            else
                selectElementSearchViewModel = new SelectElementSearchViewModel(viewModelStore);

            selectElementTreeViewModel.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(SubModel_PropertyChanged);
            selectElementSearchViewModel.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(SubModel_PropertyChanged);

            this.selectableElements = selectableElements;            
        }
        protected BaseDiagramItemElementViewModel(ViewModelStore viewModelStore, DiagramSurfaceViewModel diagram, NodeShape shapeElement)
            : base(viewModelStore, diagram, shapeElement)
        {
            this.itemLocation = shapeElement.Location;
            this.itemSize = shapeElement.Size;
            
            this.parentItem = null;

            this.nestedChildItems = new ObservableCollection<BaseDiagramItemElementViewModel>();
            this.nestedChildItemsRO = new ReadOnlyObservableCollection<BaseDiagramItemElementViewModel>(nestedChildItems);

            this.relativeChildItems = new ObservableCollection<BaseDiagramItemElementViewModel>();
            this.relativeChildItemsRO = new ReadOnlyObservableCollection<BaseDiagramItemElementViewModel>(relativeChildItems);

            Subscribe();
        }
        public SearchViewModel(ViewModelStore viewModelStore)
            : base(viewModelStore, false)
        {
            searchCommand = new DelegateCommand(SearchCommand_Executed);
            searchAdvancedCommand = new DelegateCommand(SearchAdvancedCommand_Executed);
            searchAndReplaceCommand = new DelegateCommand(SearchAndReplaceCommand_Executed);

            this.searchModus = SearchModus.SearchAdvanced;

            this.EventManager.GetEvent<SearchEvent>().Subscribe(new Action<SearchEventArgs>(ReactOnSearchRequest));

            this.FloatingWindowDesiredHeight = 360;
            this.FloatingWindowDesiredWidth = 340;

            this.PreInitialize();
        }
        /// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="viewModelStore">The store this view model belongs to.</param>
        /// <param name="mainViewModel">The main view model, this MRU view model belongs to.</param>
        public MRUFilesViewModel(ViewModelStore viewModelStore, MainViewModel mainViewModel)
            : base(viewModelStore)
        {
            this.mainViewModel = mainViewModel;

            this.mruFileEntries = new ObservableCollection<MRUFileEntryViewModel>();

            this.addCommand = new DelegateCommand<MRUFileEntry>(AddCommandExecuted);
            this.removeCommand = new DelegateCommand<MRUFileEntry>(RemoveCommandExecuted);
            this.moveToTopCommand = new DelegateCommand<MRUFileEntry>(MoveToTopCommandExecuted);
            this.openCommand = new DelegateCommand<MRUFileEntry>(OpenCommandExecuted);

            this.ModelData.AfterModelContextChanged += new EventHandler(ModelData_AfterModelContextChanged);
            if( this.ViewModelStore.Options.IsDeserialized )
                InitializeMRUEntries(this.ModelData.CurrentModelContext.Name);
            else
                this.ViewModelStore.Options.OptionsDeserialized += new EventHandler(Options_OptionsDeserialized);
        }
        protected BaseModelElementTreeViewModel(ViewModelStore viewModelStore, ModelElement element, ElementLink link, Guid domainRoleId, BaseModelElementTreeViewModel parent, bool bHookUpEvents, bool bCreateContextMenus, MainModelTreeViewModel mainModelTreeVm)
            : base(viewModelStore, element, bHookUpEvents, false)
        {
            this.parent = parent;
            this.mainModelTreeVm = mainModelTreeVm;
                       
            this.bCreateContextMenus = bCreateContextMenus;

            this.elementLink = link;
            this.domainRoleId = domainRoleId;

            this.elementLinkOrder = new List<Guid>();
            if (link != null)
                this.linkDomainClassId = link.GetDomainClass().Id;
            else
                this.linkDomainClassId = Guid.Empty;

            Initialize();
        }
        /// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="viewModelStore">The store this view model belongs to.</param>
        /// <param name="domainRelationshipInfo">Relationship domain class info.</param>
        /// <param name="sourceRoleId">RoleId of the source role player. </param>
        protected RoleEditorViewModel(ViewModelStore viewModelStore, DomainRelationshipInfo domainRelationshipInfo, Guid sourceRoleId)
            : base(viewModelStore)
        {
            this.domainRelationshipInfo = domainRelationshipInfo;
            if (domainRelationshipInfo.DomainRoles[0].Id == sourceRoleId)
            {
                sourceDomainRoleInfo = domainRelationshipInfo.DomainRoles[0];
                targetDomainRoleInfo = domainRelationshipInfo.DomainRoles[1];
            }
            else
            {
                sourceDomainRoleInfo = domainRelationshipInfo.DomainRoles[1];
                targetDomainRoleInfo = domainRelationshipInfo.DomainRoles[0];
            }

            this.isDefaultValuesSourceDynamic = true;

            this.Sort = SortByName;
        }
        public ModelContextViewModel(ViewModelStore viewModelStore, ModelContext modelContext, BaseMainViewModel mainViewModel)
            : base(viewModelStore, false)
        {
            this.modelContext = modelContext;
            this.mainViewModel = mainViewModel;

            this.selectModelContextCommand = new DelegateCommand(SelectModelContextCommand_Executed);

            this.PreInitialize();

            if (modelContext != null)
            {
                this.modelContext.DocumentClosed += new EventHandler(ModelContext_DocumentClosed);
                this.modelContext.DocumentLoaded += new EventHandler(ModelContext_DocumentLoaded);
                this.modelContext.DocumentReloaded += new EventHandler(ModelContext_DocumentLoaded);
            }

            this.executePluginCommand = new DelegateCommand<IPlugin>(ExecutePluginCommandExecuted);
        }
        public MainViewModel(ViewModelStore viewModelStore)
            : base(viewModelStore, false)
        {
            loadingModelEvent.Set();
            
            this.newModelCommand = new DelegateCommand(NewModelCommandExecuted);
            this.openModelCommand = new DelegateCommand(OpenModelCommandExecuted);
            this.saveModelCommand = new DelegateCommand(SaveModelCommandExecuted, SaveModelCommandCanExecute, true);
            this.saveAsModelCommand = new DelegateCommand(SaveAsModelCommandExecuted, SaveAsModelCommandCanExecute, true);
            this.closeModelCommand = new DelegateCommand(CloseModelCommandExecuted, CloseModelCommandCanExecute, true);

            this.showModelTreeCommand = new DelegateCommand(ShowModelTreeCommandExecuted);
            this.showPropertiesCommand = new DelegateCommand(ShowPropertiesCommandExecuted);
            this.showErrorListCommand = new DelegateCommand(ShowErrorListCommandExecuted);
            this.showDependenciesCommand = new DelegateCommand(ShowDependenciesCommandExecuted);
            this.showDiagramSurfaceCommand = new DelegateCommand(ShowDiagramSurfaceCommandCommandExecuted);

            this.pluginInformationCommand = new DelegateCommand(PluginInformationCommandExecuted);
        }
Ejemplo n.º 31
0
 /// <summary>
 /// Constuctor.
 /// </summary>
 /// <param name="viewModelStore">The store this view model belongs to.</param>
 /// <param name="linkItem">Link item to be hosted by this view model.</param>
 public LinkItemViewModel(ViewModelStore viewModelStore, LinkItem linkItem)
     : base(viewModelStore)
 {
     this.linkItem        = linkItem;
     this.navigateCommand = new DelegateCommand(NavigateCommand_Executed);
 }
Ejemplo n.º 32
0
 /// <summary>
 /// Constuctor.
 /// </summary>
 /// <param name="viewModelStore">The store this view model belongs to.</param>
 public CreditsViewModel(ViewModelStore viewModelStore)
     : base(viewModelStore)
 {
 }
Ejemplo n.º 33
0
 /// <summary>
 /// Register services to the given store.
 /// </summary>
 /// <param name="store">ViewModelStore.</param>
 public abstract void RegisterServices(ViewModelStore store);
Ejemplo n.º 34
0
 /// <summary>
 /// Constuctor.
 /// </summary>
 /// <param name="viewModelStore">The store this view model belongs to.</param>
 public LinkItemsViewModel(ViewModelStore viewModelStore)
     : base(viewModelStore)
 {
     this.linkItemVMsWithoutCategory = new ObservableCollection <LinkItemViewModel>();
     this.linkItemVmsCategorized     = new ObservableCollection <LinkItemCategoryViewModel>();
 }