private void AddSearch(SearchViewModel vm)
        {
            vm.Parent = this;

            var showContainerPayload = new ShowContainerPayload(vm);
            ShowContainer(showContainerPayload, null);
            CurrentSearches.Add(vm);
        }
 public void HandleShowProfile(ProfileViewModel profileViewModel)
 {
     profileViewModel.Parent = this;
     var showContainerPayload = new ShowContainerPayload(profileViewModel);
     ShowContainer(showContainerPayload, null);
 }
 public void HandleShowConversation(ConversationViewModel conversationViewModel)
 {
     conversationViewModel.Parent = this;
     var showContainerPayload = new ShowContainerPayload(conversationViewModel);
     ShowContainer(showContainerPayload, null);
 }
 public void HandleShowContainer(ShowContainerPayload payload)
 {
     ShowContainer(payload, null);
 }
        //small hack: sets the viewmodel.position = streamcontainer.index

        public void ShowContainer(ShowContainerPayload payload, DelegateCommand closeDelegate)
        {
            var viewModel = payload.ViewModel;
            var index = payload.ViewModel.Position;

            viewModel.CloseCommand = closeDelegate ?? new DelegateCommand(() => RemoveContainer(viewModel));

            if (!StreamContainers.Contains(viewModel))
            {
                if (index > 0 && index <= StreamContainers.Count)
                    StreamContainers.Insert(index, viewModel);
                else
                    StreamContainers.Add(viewModel);
            }
            viewModel.Start();
        }
        public void CreateStream(StreamModel f, String title, double columnWidth)
        {
            var model = _createStreamViewModel();
            model.Parent = this;

            if (f != null)
            {
                model.StreamConfiguration.Filters = f;
                if (string.IsNullOrEmpty(f.GroupName))
                {
                    model.Title = "New Column " + (StreamContainers.Count + 1);
                    model.StreamConfiguration.ShowConfiguration = true;
                }
                else
                {
                    model.Title = f.GroupName;
                }

                if (!FilterGroups.Contains(f))
                    FilterGroups.Add(f);
            }
            else
            {
                model.Title = title;
            }

            if (!StreamContainers.Contains(model))
                StreamContainers.Add(model);

            var container = new StreamView(model);

            model.View = container;
            model.Start();

            var showContainerPayload = new ShowContainerPayload(model);

            ShowContainer(showContainerPayload, null);

            container.Width = columnWidth;
            model.Width = columnWidth;
        }