private void AppMainWindow_Loaded(object sender, RoutedEventArgs e)
        {
            foreach (Engine engine in App.EngineController.Engines)
            {
                TabItem newtab = new TabItem();
                newtab.Header = engine.EngineName;
                PreviewViewmodel newPreviewViewmodel = new PreviewViewmodel(engine);
                Debug.WriteLine(engine, "Creating viewmodel for");
                var evm = new EngineViewmodel(engine);
                Debug.WriteLine(engine, "Creating commands for");
                evm.PreviewViewmodel = newPreviewViewmodel;
                newtab.Content = evm.View;
                tcChannels.Items.Add(newtab);

                Debug.WriteLine(engine.MediaManager, "Creating tab for");
                TabItem tabIngest = new TabItem();
                tabIngest.Header = engine.EngineName + " - Media";
                MediaManagerView newMediaManagerView = new MediaManagerView();
                MediaManagerViewmodel newMediaManagerViewmodel = new MediaManagerViewmodel(engine.MediaManager, newPreviewViewmodel);
                newMediaManagerView.DataContext = newMediaManagerViewmodel;
                tabIngest.Content = newMediaManagerView;
                tcChannels.Items.Add(tabIngest);

                //Debug.WriteLine(engine.Templates, "Creating tab for");
                //TabItem tabTemplates = new TabItem();
                //tabTemplates.Header = engine.EngineName + " - Animacje";
                //TemplatesView newTemplatesView = new TemplatesView();
                //TemplatesViewmodel newTemplatesViewmodel = new TemplatesViewmodel(engine);
                //newTemplatesView.DataContext = newTemplatesViewmodel;
                //tabTemplates.Content = newTemplatesView;
                //tcChannels.Items.Add(tabTemplates);
            }
            tcChannels.SelectedIndex = 0;
        }
 public EventViewmodel(Server.Engine engine, EngineViewmodel engineViewmodel)
 {
     _engine = engine;
     engine.EventSaved += _onEventSaved;
     _engineViewmodel = engineViewmodel;
     _root = this;
     _level = 0;
     _isExpanded = true;
     foreach (Event se in engine.RootEvents.ToList())
         _addRootEvent(se);
 }
 private EventViewmodel(Event aEvent, EventViewmodel parent)
 {
     if (aEvent == null) // dummy child
         return;
     _event = aEvent;
     _parent = parent;
     _root = parent._root;
     _engineViewmodel = parent._engineViewmodel;
     _level = (_parent == null) ? 0 : _parent._level + 1;
     if (aEvent.SubEvents.Count() > 0)
         _childrens.Add(DummyChild);
     _event.PropertyChanged += _onPropertyChanged;
     _event.Deleted += _eventDeleted;
     _event.SubEventChanged += _onSubeventChanged;
     _event.Relocated += _onRelocated;
     Media = aEvent.Media;
     _engine = _event.Engine;
     _createCommands();
 }
        public MediaSearchViewmodel(EngineViewmodel engineVM, TMediaType mediaType, bool closeAfterAdd, TVideoFormat? videoFormat)
        {
            _manager = engineVM.Engine.MediaManager;
            _previewViewmodel = engineVM.PreviewViewmodel;
            if (_previewViewmodel != null)
                _previewViewmodel.PropertyChanged += OnPreviewPropertyChanged;
            _mediaType = mediaType;
            if (mediaType == TMediaType.AnimationFlash)
                _searchDirectory = _manager.AnimationDirectoryPGM;
            else
                _searchDirectory = _manager.MediaDirectoryPGM;
            _searchDirectory.MediaAdded += new EventHandler<MediaEventArgs>(_searchDirectory_MediaAdded);
            _searchDirectory.MediaRemoved += new EventHandler<MediaEventArgs>(_searchDirectory_MediaRemoved);
            _searchDirectory.MediaVerified += new EventHandler<MediaEventArgs>(_searchDirectory_MediaVerified);

            _videoFormat = videoFormat;
            _closeAfterAdd = closeAfterAdd;
            _mediaCategory = MediaCategories.FirstOrDefault();
            NewEventStartType = TStartType.After;
            if (!closeAfterAdd)
                OkButtonText = Properties.Resources._button_Add;
            _createCommands();
            _items = new ObservableCollection<MediaViewViewmodel>(_searchDirectory.Files
                .Where(m=> m.MediaType == mediaType && (videoFormat == null || m.VideoFormat == videoFormat))
                .Select(m => new MediaViewViewmodel(m)));
            _itemsView = CollectionViewSource.GetDefaultView(_items);
            _itemsView.SortDescriptions.Add(new SortDescription("MediaName", ListSortDirection.Ascending));
            _itemsView.Filter += _itemsFilter;

            _window = new MediaSearchView();
            _window.Owner = App.Current.MainWindow;
            _window.DataContext = this;
            _window.Closed += _windowClosed;
            _window.Show();
            //_window.Topmost = true;
        }