Beispiel #1
0
        /// <summary>
        /// Adds a widget to the UI
        /// </summary>
        /// <typeparam name="TThing">The <see cref="ParameterOrOverrideBase"/></typeparam>
        /// <typeparam name="TValueSet">The <see cref="ParameterValueSetBase"/></typeparam>
        /// <param name="iterationTrackParameter">The <see cref="IterationTrackParameter"/></param>
        private void AddWidget <TThing, TValueSet>(IterationTrackParameter iterationTrackParameter)
            where TThing : ParameterOrOverrideBase
            where TValueSet : ParameterValueSetBase
        {
            var iterationTrackParameterViewModel = new IterationTrackParameterViewModel <TThing, TValueSet>(this.Session, this.Thing, iterationTrackParameter);

            iterationTrackParameterViewModel.WhenAnyValue(x => x.ChartVisible)
            .Subscribe(x =>
            {
                if (this.currentMaximizedViewModel == iterationTrackParameterViewModel && x == Visibility.Collapsed)
                {
                    this.MinimizeCurrentMaximizedWidget();
                }

                if (this.currentMaximizedViewModel != iterationTrackParameterViewModel && x == Visibility.Visible)
                {
                    this.MaximizeWidget(iterationTrackParameterViewModel);
                }

                this.ResizeControls();
            });

            this.Disposables.Add(iterationTrackParameterViewModel.OnDeleteCommand.Subscribe(x => this.RemoveWidget(iterationTrackParameterViewModel)));

            this.Widgets.Insert(Math.Max(this.Widgets.Count - 1, 0), this.GetIterationTrackWidget(iterationTrackParameterViewModel));
            this.ResizeControls();
        }
Beispiel #2
0
        public void Setup()
        {
            this.assembler = new Assembler(this.uri);

            RxApp.MainThreadScheduler = Scheduler.CurrentThread;
            this.session           = new Mock <ISession>();
            this.permissionService = new Mock <IPermissionService>();
            this.permissionService.Setup(x => x.CanRead(It.IsAny <Thing>())).Returns(true);
            this.permissionService.Setup(x => x.CanWrite(It.IsAny <Thing>())).Returns(true);
            this.session.Setup(x => x.PermissionService).Returns(this.permissionService.Object);
            this.session.Setup(x => x.DataSourceUri).Returns(this.uri.ToString);
            this.session.Setup(x => x.Assembler).Returns(this.assembler);

            this.cache  = this.assembler.Cache;
            this.domain = new DomainOfExpertise(Guid.NewGuid(), this.assembler.Cache, this.uri)
            {
                Name = "test"
            };
            this.iteration = new Iteration(Guid.NewGuid(), null, null);

            var iterationTrackParameterTestFixture = new IterationTrackParameterTestFixture();

            iterationTrackParameterTestFixture.Setup();
            this.iterationTrackParameterForParameter         = iterationTrackParameterTestFixture.iterationTrackParameterForParameter;
            this.iterationTrackParameterForParameterOverride = iterationTrackParameterTestFixture.iterationTrackParameterForParameterOverride;

            var parameterValueArray = new ValueArray <string>(new[] { "10" });

            this.parameterValueSet = new ParameterValueSet(Guid.NewGuid(), null, null)
            {
                Published   = parameterValueArray,
                Manual      = parameterValueArray,
                ValueSwitch = ParameterSwitchKind.MANUAL
            };

            ((Parameter)this.iterationTrackParameterForParameter.ParameterOrOverride).ValueSet.Add(this.parameterValueSet);

            var parameterOverrideValueArray = new ValueArray <string>(new[] { "20" });

            this.parameterOverrideValueSet = new ParameterOverrideValueSet(Guid.NewGuid(), null, null)
            {
                Published   = parameterOverrideValueArray,
                Manual      = parameterOverrideValueArray,
                ValueSwitch = ParameterSwitchKind.MANUAL
            };

            ((ParameterOverride)this.iterationTrackParameterForParameterOverride.ParameterOrOverride).ValueSet.Add(this.parameterOverrideValueSet);

            this.cache.AddOrUpdate(new CacheKey(this.parameterValueSet.Iid, this.iteration.Iid), new Lazy <Thing>(() => this.parameterValueSet), (key, value) => value);
            this.cache.AddOrUpdate(new CacheKey(this.parameterOverrideValueSet.Iid, this.iteration.Iid), new Lazy <Thing>(() => this.parameterOverrideValueSet), (key, value) => value);

            this.cache.AddOrUpdate(new CacheKey(this.iterationTrackParameterForParameter.ParameterOrOverride.Iid, this.iteration.Iid), new Lazy <Thing>(() => this.iterationTrackParameterForParameter.ParameterOrOverride), (key, value) => value);
            this.cache.AddOrUpdate(new CacheKey(this.iterationTrackParameterForParameterOverride.ParameterOrOverride.Iid, this.iteration.Iid), new Lazy <Thing>(() => this.iterationTrackParameterForParameterOverride.ParameterOrOverride), (key, value) => value);

            this.iterationTrackParameterViewModel = new IterationTrackParameterViewModel <Parameter, ParameterValueSet>(this.session.Object, this.iteration, this.iterationTrackParameterForParameter);
        }
Beispiel #3
0
        public void Setup()
        {
            RxApp.MainThreadScheduler = Scheduler.CurrentThread;
            this.iteration            = new Iteration(Guid.NewGuid(), null, null);

            this.elementDefinition = new ElementDefinition(Guid.NewGuid(), null, null)
            {
                ShortName = "ED"
            };

            this.iteration.Element.Add(this.elementDefinition);

            this.elementUsage = new ElementUsage(Guid.NewGuid(), null, null)
            {
                ElementDefinition = this.elementDefinition,
                ShortName         = "EU"
            };

            this.elementDefinition.ContainedElement.Add(this.elementUsage);

            this.simpleQuantityKind = new SimpleQuantityKind(Guid.NewGuid(), null, null)
            {
                ShortName = "SQ"
            };

            this.scale = new RatioScale(Guid.NewGuid(), null, null)
            {
                ShortName = "SC"
            };

            this.parameter = new Parameter(Guid.NewGuid(), null, null)
            {
                ParameterType = this.simpleQuantityKind,
                Scale         = this.scale,
                Container     = this.elementDefinition
            };

            this.parameterOverride = new ParameterOverride(Guid.NewGuid(), null, null)
            {
                Parameter = this.parameter,
                Container = this.elementUsage
            };

            this.iterationTrackParameterForParameter = new IterationTrackParameter(this.parameter);

            this.iterationTrackParameterForParameterOverride = new IterationTrackParameter(this.parameterOverride);
        }