public void TestProperties() { var timelineEvent = new TimelineEvent { Name = "Tes1", Start = new Time(0), Stop = new Time(10), }; var model = new PlaylistPlayElement(timelineEvent); var viewModel = new PlaylistElementVM { Model = model, }; Assert.AreEqual(model.Description, viewModel.Description); Assert.AreEqual(new Time(10), viewModel.Duration); }
void UpdatePlaylistElementsSelection() { TreeIter iter; Dictionary <PlaylistVM, List <PlaylistElementVM> > selected = new Dictionary <PlaylistVM, List <PlaylistElementVM> > (); IViewModel parentVM, childVM; foreach (var path in Selection.GetSelectedRows()) { parentVM = childVM = null; Model.GetIterFromString(out iter, path.ToString()); FillParentAndChild(iter, out parentVM, out childVM); PlaylistElementVM selectedViewModel = childVM as PlaylistElementVM; if (selectedViewModel != null) { PlaylistVM playlist = parentVM as PlaylistVM; if (!selected.ContainsKey(playlist)) { selected.Add(playlist, new List <PlaylistElementVM> ()); } selected [playlist].Add(selectedViewModel); } } IEnumerable <PlaylistVM> unselected = ViewModel.Selection.Except(selected.Keys); foreach (var playlist in unselected) { if (playlist.Selection.Any()) { playlist.Selection.Clear(); } } foreach (var selections in selected) { selections.Key.Selection.Replace(selections.Value); } if (!selected.Any()) { foreach (var playlist in ViewModel.ViewModels.Where((arg) => arg.Selection.Any())) { playlist.Selection.Clear(); } } }
void RenderPlaylistElement(PlaylistElementVM vm, IDrawingToolkit tk, IContext context, Area backgroundArea, Area cellArea, CellState state) { tk.Context = context; tk.Begin(); Point textPoint = new Point(backgroundArea.Left + LEFT_OFFSET + (2 * SPACING) + COLOR_RECTANGLE_WIDTH + MINIATURE_WIDTH + SPACING, cellArea.Start.Y); double textWidth = (cellArea.Right - RIGTH_OFFSET - EYE_IMAGE_WIDTH - SPACING) - textPoint.X; RenderBackground(tk, backgroundArea, App.Current.Style.ThemeBase); RenderSelection(tk, context, backgroundArea, cellArea, state, true); RenderPrelit(vm.Playing, tk, context, backgroundArea, cellArea, state); RenderChildText(tk, textPoint, (int)textWidth, (int)cellArea.Height, vm.Description, App.Current.Style.TextBase); RenderColorStrip(tk, backgroundArea, App.Current.Style.TextBase); Point p = new Point(backgroundArea.Left + LEFT_OFFSET + COLOR_RECTANGLE_WIDTH + SPACING, cellArea.Start.Y + VERTICAL_OFFSET); RenderImage(tk, p, vm.Miniature, MINIATURE_WIDTH, MINIATURE_HEIGHT); RenderEye(tk, backgroundArea, cellArea, vm.Playing); tk.End(); }
public void TestForwardProperties() { int count = 0; var timelineEvent = new TimelineEvent { Name = "Tes1", Start = new Time(0), Stop = new Time(10), }; var model = new PlaylistPlayElement(timelineEvent); var viewModel = new PlaylistElementVM { Model = model, }; viewModel.PropertyChanged += (sender, e) => { count++; }; timelineEvent.EventTime = new Time(1); Assert.AreEqual(2, count); }
protected virtual void RenderPlaylist(TreeViewColumn column, CellRenderer cell, TreeModel model, TreeIter iter) { string desc; var obj = model.GetValue(iter, COL_DATA); PlaylistVM playlistVM = obj as PlaylistVM; if (playlistVM == null) { PlaylistElementVM plElement = obj as PlaylistElementVM; if (plElement == null) { desc = ""; } else { desc = plElement.Description; } } else { desc = FormatDesc(playlistVM); } (cell as CellRendererText).Text = desc; }