Beispiel #1
0
        private static void VerifyVariants(string styleName)
        {
            var variants =
                StyleVariantsFactory.GetVariants(styleName);
            var option =
                StyleOptionsFactory.GetStylesPreviewOption(styleName);

            var numberOfNoEffectVariant = 0;

            foreach (var variant in variants.Values)
            {
                Assert.AreEqual(8, variant.Count,
                                "Each variant/category/aspect/dimension should have 8 variations");
                foreach (var styleVariants in variant)
                {
                    if (styleVariants.IsNoEffect(option))
                    {
                        numberOfNoEffectVariant++;
                    }
                }
            }
            Assert.AreEqual(variants.Values.Count, numberOfNoEffectVariant,
                            "In order to swap no effect variant with the style correctly, it is assumed that " +
                            "number of no effect variant should be equal to number of variants/category/aspect/dimension. " +
                            "Please modify a variation to have no effect on the style. Ref: issue #802.");
        }
Beispiel #2
0
        private static void VerifyVariants2(string styleName)
        {
            var variants =
                StyleVariantsFactory.GetVariants(styleName);
            var options =
                StyleOptionsFactory.GetStylesVariationOptions(styleName);

            for (var i = 0; i < options.Count; i++)
            {
                variants[variants.Keys.First()][i].Apply(options[i]);
            }

            var numberOfNoEffectVariant = 0;

            foreach (var variant in variants.Values)
            {
                foreach (var styleVariants in variant)
                {
                    foreach (var option in options)
                    {
                        if (styleVariants.IsNoEffect(option))
                        {
                            numberOfNoEffectVariant++;
                        }
                    }
                }
            }
            Assert.AreEqual(variants.Values.Count * options.Count, numberOfNoEffectVariant,
                            "In order to swap no effect variant with the style correctly, it is assumed that " +
                            "number of no effect variant should be equal to number of variants/category/aspect/dimension. " +
                            "Please modify a variation to have no effect on the style. Ref: issue #802.");
        }
Beispiel #3
0
        private void InitStylesVariationCategories(List <StyleOptions> givenOptions,
                                                   Dictionary <string, List <StyleVariants> > givenVariants, string targetStyle)
        {
            _styleOptions  = givenOptions ?? StyleOptionsFactory.GetStylesVariationOptions(targetStyle);
            _styleVariants = givenVariants ?? StyleVariantsFactory.GetVariants(targetStyle);

            VariantsCategory.Clear();
            foreach (var styleVariant in _styleVariants.Keys)
            {
                VariantsCategory.Add(styleVariant);
            }
            CurrentVariantCategoryId.Number = 0;
            _previousVariantsCategory       = VariantsCategory[0];

            // default style options (in preview stage)
            var defaultStyleOptions       = StyleOptionsFactory.GetStylesPreviewOption(targetStyle);
            var currentVariants           = _styleVariants.Values.First();
            var variantIndexWithoutEffect = -1;

            for (var i = 0; i < currentVariants.Count; i++)
            {
                if (currentVariants[i].IsNoEffect(defaultStyleOptions))
                {
                    variantIndexWithoutEffect = i;
                    break;
                }
            }

            // swap the no-effect variant with the current selected style's corresponding variant
            // so that to achieve continuity.
            // in order to swap, style option provided from StyleOptionsFactory should have
            // corresponding values specified in StyleVariantsFactory. e.g., an option generated
            // from factory has overlay transparency of 35, then in order to swap, it should have
            // a variant of overlay transparency of 35. Otherwise it cannot swap, because variants
            // don't match any values in the style options.
            if (variantIndexWithoutEffect != -1 && givenOptions == null)
            {
                // swap style variant
                var tempVariant = currentVariants[variantIndexWithoutEffect];
                currentVariants[variantIndexWithoutEffect] =
                    currentVariants[0];
                currentVariants[0] = tempVariant;
                // swap default style options (in variation stage)
                var tempStyleOpt = _styleOptions[variantIndexWithoutEffect];
                _styleOptions[variantIndexWithoutEffect] =
                    _styleOptions[0];
                _styleOptions[0] = tempStyleOpt;
            }

            for (var i = 0; i < currentVariants.Count && i < _styleOptions.Count; i++)
            {
                currentVariants[i].Apply(_styleOptions[i]);
            }
        }
Beispiel #4
0
        private List <StyleOption> GetOptions(string styleName)
        {
            var options  = _factory.GetStylesVariationOptions(styleName);
            var variants = new StyleVariantsFactory().GetVariants(styleName);

            for (var i = 0; i < options.Count; i++)
            {
                variants[variants.Keys.First()][i].Apply(options[i]);
            }

            return(options);
        }
 public PictureSlidesLabWindowViewModel(IPictureSlidesLabWindowView view,
                                        IStylesDesigner stylesDesigner = null)
 {
     Logger.Log("Init PSL View Model begins");
     View            = view;
     ImageDownloader = new ContextDownloader(View.GetThreadContext());
     InitStorage();
     InitUiModels();
     InitFontFamilies();
     CleanUnusedPersistentData();
     Designer = stylesDesigner ?? new StylesDesigner();
     Designer.SetSettings(Settings);
     OptionsFactory  = new StyleOptionsFactory();
     VariantsFactory = new StyleVariantsFactory();
     Logger.Log("Init PSL View Model done");
 }
        public PictureSlidesLabWindowViewModel(IPictureSlidesLabWindowView view,
                                               IStylesDesigner stylesDesigner = null)
        {
            Logger.Log("Init PSL View Model begins");
            View            = view;
            ImageDownloader = new ContextDownloader(View.GetThreadContext());
            InitStorage();
            InitUiModels();
            InitFontFamilies();
            CleanUnusedPersistentData();
            Designer = stylesDesigner ?? new StylesDesigner();
            Designer.SetSettings(Settings);
            OptionsFactory  = new StyleOptionsFactory();
            VariantsFactory = new StyleVariantsFactory();

            var catalog = new AggregateCatalog(
                new AssemblyCatalog(Assembly.GetExecutingAssembly()));
            var container = new CompositionContainer(catalog);

            container.ComposeParts(this);

            Logger.Log("Init PSL View Model done");
        }
        private Dictionary <string, List <StyleVariants> > ConstructVariantsFromStyle(StyleOptions opt)
        {
            var variants = StyleVariantsFactory.GetVariants(opt.StyleName);

            // replace each category/aspect's variant
            // with the new variant from the given style options
            foreach (var pair in variants)
            {
                var firstVariant    = pair.Value[0];
                var newFirstVariant = firstVariant.Copy(opt);
                for (var i = 0; i < pair.Value.Count; i++)
                {
                    // try to swap out the 'no-effect' style options
                    if (pair.Value[i].IsNoEffect(opt))
                    {
                        pair.Value[i] = firstVariant;
                        break;
                    }
                }
                pair.Value[0] = newFirstVariant;
            }
            return(variants);
        }
 public void Init()
 {
     _variantsFactory = new StyleVariantsFactory();
     _optionsFactory  = new StyleOptionsFactory();
 }