public void CreateSlidesFromSelectedWidgets()
        {
            viewModel.NewSlides=new List<Slide>();
            numberOfSlidesToSave = viewModel.SelectedWidgets.Count();

            if(numberOfSlidesToSave == 0)
            {
                viewModel.DoneAddingSlides();
                return;
            }

            numberOfSlidesSaved = 0;
            viewModel.Progressbar.IsVisible = true;
            viewModel.Progressbar.Message = "Creating slides...";
            foreach (var widgetMetadata in viewModel.SelectedWidgets)
            {
                Widget newWidget = Activator.CreateInstance(widgetMetadata.Type) as Widget;

                var newSlideConfiguration = new SlideConfiguration()
                {
                    Title = widgetMetadata.UserSelectedTitle,
                    Duration = widgetMetadata.SecondsOnScreen,
                    WidgetConfigurationId = newWidget.Configuration.Id,
                    WidgetType = widgetMetadata.Type.FullName,
                    WidgetXapName = widgetMetadata.XAPName
                };

                var slideTitle = widgetMetadata.UserSelectedTitle ?? widgetMetadata.Name;
                var newSlide = new Slide { Title = slideTitle, Widget = newWidget, SecondsOnScreen = widgetMetadata.SecondsOnScreen };

                slideConfigPersister.Save(newSlideConfiguration);
                viewModel.NewSlides.Add(newSlide);
            }
        }
예제 #2
0
파일: Slideshow.cs 프로젝트: ArildF/Smeedee
		partial void OnSetCurrentSlide(ref Slide value)
		{
			foreach (var slide in Slides)
			{
				slide.IsDisplayed = false;
				if (slide.Widget != null)
					slide.Widget.IsDisplayed = false;
			}

            if (value != null)
                value.IsDisplayed = true;

			if (value != null && value.Widget != null)
				value.Widget.IsDisplayed = true;
		}
예제 #3
0
        private Slide CreateSlideFromConfig(SlideConfiguration slideConfiguration)
        {
            var widgetType = GetType(slideConfiguration.WidgetType);
            var widget = Activator.CreateInstance(widgetType) as Widget;
            widget.SetConfigurationId(slideConfiguration.WidgetConfigurationId);
            
            var newSlide = new Slide()
            {
                Title = slideConfiguration.Title,
                SecondsOnScreen = slideConfiguration.Duration,
                Widget = widget
            };

            return newSlide;
        }
예제 #4
0
            public override void Context()
            {
                base.Context();
                Given_Slideshow_is_created();

                Slide firstSlide = new Slide() {Title = "one", SecondsOnScreen = 1, Widget = new Widget()};
                var slides = new ObservableCollection<Slide>
                {
                    firstSlide,
                    new Slide() {Title = "next", SecondsOnScreen = 100, Widget = new Widget()}
                };

                And_Slides_is_set(slides);
                And_CurrentSlide_is_set(firstSlide);
                And_Start_Command_is_executed();

            }
예제 #5
0
 protected void And_SelectedSlide_is_set(Slide slide)
 {
     viewModel.Slideshow.CurrentSlide = slide;
 }
예제 #6
0
 protected void And_index_of_Selected_Slide_is_sampled()
 {
     SelectedSlideIndex = viewModel.Slideshow.Slides.IndexOf(viewModel.Slideshow.CurrentSlide);
     SelectedSlide = viewModel.Slideshow.CurrentSlide;
 }
예제 #7
0
                public void Then_assure_the_selected_slide_becomes_the_slide_to_the_left_for_the_removed_one()
                {
                    And_Slideshow_has_Slides();
                    removedSlide = viewModel.Slideshow.Slides.Last();
                    And_SelectedSlide_is_set(removedSlide);
                    And_index_of_Selected_Slide_is_sampled();
                  
                    When_execute_Delete_Command();

                    var oldIndex = SelectedSlideIndex;
                    And_index_of_Selected_Slide_is_sampled();
                    var newIndex = SelectedSlideIndex;
                    newIndex.ShouldBe(oldIndex-1);
                }
예제 #8
0
			public override void Context()
			{
                base.Context();

				Given_EditSlideshowDialog_is_created();
				And_Slideshow_has_Slides();

				removedSlide = viewModel.Slideshow.Slides.First();
				And_SelectedSlide_is_set(removedSlide);

				When_execute_Delete_Command();
			}
예제 #9
0
		partial void OnSetCurrentSlide(ref Slide value);