public MainWindow() { InitializeComponent(); // Define the application's look-and-feel. // (Don't forget to add a corresponding assembly to the project). ThemeManager.ApplicationThemeName = "Office1020blue"; // Create a new string builder. var builder = new OleDbConnectionStringBuilder() { Provider = "Microsoft.Jet.OLEDB.4.0", DataSource = "nwind.mdb" }; // Register the string builder in the current data provider repository. DataProviderRepository.Current.Register("nwind", "Northwind", builder.ToString()); // Create a new client factory and view model for the Designer. var factory = new LocalReportDesignerClientFactory(); var model = new ReportDesignerViewModel() { ReportName = "WpfReportDesigner_local.SampleReport", ServiceClientFactory = factory }; // Assign the model to the Report Designer, // and start a design session. reportDesigner.Model = model; reportDesigner.Model.StartDesign(); LocalReportDesignerClient qw = new LocalReportDesignerClient(); }
/// <summary> /// Returns an instance of <see cref="ReportDesignerRibbonViewModel"/> /// </summary> /// <param name="iteration">The associated <see cref="Iteration"/></param> /// <param name="session">The <see cref="ISession"/></param> /// <param name="thingDialogNavigationService">The <see cref="IThingDialogNavigationService"/></param> /// <param name="panelNavigationService">The <see cref="IPanelNavigationService"/></param> /// <param name="dialogNavigationService">The <see cref="IDialogNavigationService"/></param> /// <param name="pluginSettingsService"> /// The <see cref="IPluginSettingsService"/> used to read and write plugin setting files. /// </param> /// <returns>An instance of <see cref="ReportDesignerRibbonViewModel"/></returns> public static ReportDesignerViewModel InstantiatePanelViewModel( Iteration iteration, ISession session, IThingDialogNavigationService thingDialogNavigationService, IPanelNavigationService panelNavigationService, IDialogNavigationService dialogNavigationService, IPluginSettingsService pluginSettingsService) { if (!(iteration.Container is EngineeringModel model)) { throw new InvalidOperationException("The container of an Iteration cannot be anything else than an Engineering Model."); } var participant = model.GetActiveParticipant(session.ActivePerson); if (participant == null) { throw new InvalidOperationException("The Participant in an engineering model cannot be null"); } var stopWatch = Stopwatch.StartNew(); var viewModel = new ReportDesignerViewModel(iteration, session, thingDialogNavigationService, panelNavigationService, dialogNavigationService, pluginSettingsService); stopWatch.Stop(); Logger.Info("The Report Designer opened in {0}", stopWatch.Elapsed.ToString("hh':'mm':'ss'.'fff")); return(viewModel); }
public void SetUp() { this.CleanupExistingFiles(); RxApp.MainThreadScheduler = Scheduler.CurrentThread; this.session = new Mock <ISession>(); this.thingDialogNavigationService = new Mock <IThingDialogNavigationService>(); this.panelNavigationService = new Mock <IPanelNavigationService>(); this.dialogNavigationService = new Mock <IDialogNavigationService>(); this.pluginSettingsService = new Mock <IPluginSettingsService>(); this.openSaveFileDialogService = new Mock <IOpenSaveFileDialogService>(); this.submittableParameterValuesCollector = new Mock <ISubmittableParameterValuesCollector>(); this.permissionService = new Mock <IPermissionService>(); this.dynamicTableChecker = new Mock <IDynamicTableChecker>(); this.messageBoxService = new Mock <IMessageBoxService>(); this.serviceLocator = new Mock <IServiceLocator>(); ServiceLocator.SetLocatorProvider(() => this.serviceLocator.Object); this.serviceLocator.Setup(x => x.GetInstance <IOpenSaveFileDialogService>()).Returns(this.openSaveFileDialogService.Object); this.serviceLocator.Setup(x => x.GetInstance <ISubmittableParameterValuesCollector>()).Returns(this.submittableParameterValuesCollector.Object); this.serviceLocator.Setup(x => x.GetInstance <IDynamicTableChecker>()).Returns(this.dynamicTableChecker.Object); this.serviceLocator.Setup(x => x.GetInstance <IMessageBoxService>()).Returns(this.messageBoxService.Object); this.assembler = new Assembler(this.uri); this.cache = this.assembler.Cache; this.sitedir = new SiteDirectory(Guid.NewGuid(), this.cache, this.uri); this.modelsetup = new EngineeringModelSetup(Guid.NewGuid(), this.cache, this.uri) { Name = "model" }; this.iterationsetup = new IterationSetup(Guid.NewGuid(), this.cache, this.uri); this.person = new Person(Guid.NewGuid(), this.cache, this.uri); this.participant = new Participant(Guid.NewGuid(), this.cache, this.uri) { Person = this.person, SelectedDomain = domainOfExpertise }; this.sitedir.Model.Add(this.modelsetup); this.sitedir.Person.Add(this.person); this.sitedir.Domain.Add(domainOfExpertise); this.sitedir.Domain.Add(domainOfExpertise_2); this.sitedir.Domain.Add(domainOfExpertise_3); this.modelsetup.IterationSetup.Add(this.iterationsetup); this.modelsetup.Participant.Add(this.participant); this.model = new EngineeringModel(Guid.NewGuid(), this.cache, this.uri) { EngineeringModelSetup = this.modelsetup }; this.iteration = new Iteration(Guid.NewGuid(), this.cache, this.uri) { IterationSetup = this.iterationsetup }; this.model.Iteration.Add(this.iteration); this.elementDefinition_1 = new ElementDefinition(Guid.NewGuid(), this.cache, this.uri) { ShortName = "Sat", Name = "Satellite" }; this.elementDefinition_2 = new ElementDefinition(Guid.NewGuid(), this.cache, this.uri) { ShortName = "Bat", Name = "Battery" }; this.elementUsage_1 = new ElementUsage(Guid.NewGuid(), this.cache, this.uri) { ElementDefinition = this.elementDefinition_2, ShortName = "bat_a", Name = "battery a" }; this.elementUsage_2 = new ElementUsage(Guid.NewGuid(), this.cache, this.uri) { ElementDefinition = this.elementDefinition_2, ShortName = "bat_b", Name = "battery b" }; var simpleQuantityKind = new SimpleQuantityKind(Guid.NewGuid(), null, null) { ShortName = "m" }; var simpleQuantityKind2 = new SimpleQuantityKind(Guid.NewGuid(), null, null) { ShortName = "v" }; var ratioScale = new RatioScale(Guid.NewGuid(), null, null); simpleQuantityKind.PossibleScale.Add(ratioScale); simpleQuantityKind.DefaultScale = ratioScale; simpleQuantityKind2.PossibleScale.Add(ratioScale); simpleQuantityKind2.DefaultScale = ratioScale; var actualList = new ActualFiniteStateList(Guid.NewGuid(), null, null); actualList.Owner = domainOfExpertise; var possibleList1 = new PossibleFiniteStateList(Guid.NewGuid(), null, null); var possibleState1 = new PossibleFiniteState(Guid.NewGuid(), null, null) { Name = "possiblestate1", ShortName = "1" }; var possibleState2 = new PossibleFiniteState(Guid.NewGuid(), null, null) { Name = "possiblestate2", ShortName = "2" }; possibleList1.PossibleState.Add(possibleState1); possibleList1.PossibleState.Add(possibleState2); actualList.PossibleFiniteStateList.Add(possibleList1); this.actualState_3 = new ActualFiniteState(Guid.NewGuid(), this.cache, this.uri); this.actualState_3.PossibleState.Add(possibleState1); this.actualState_4 = new ActualFiniteState(Guid.NewGuid(), this.cache, this.uri); this.actualState_4.PossibleState.Add(possibleState2); this.parameter = new Parameter(Guid.NewGuid(), this.cache, this.uri) { Owner = domainOfExpertise, ParameterType = simpleQuantityKind, IsOptionDependent = true, Scale = ratioScale }; var parameterSubscription = new ParameterSubscription(Guid.NewGuid(), this.cache, this.uri) { Owner = domainOfExpertise_3 }; this.parameter.ParameterSubscription.Add(parameterSubscription); this.parameter2 = new Parameter(Guid.NewGuid(), this.cache, this.uri) { Owner = domainOfExpertise_2, ParameterType = simpleQuantityKind2, StateDependence = actualList, Scale = ratioScale }; this.parameterOverride = new ParameterOverride(Guid.NewGuid(), this.cache, this.uri) { Owner = domainOfExpertise, Parameter = this.parameter }; var parameterValueset_1 = new ParameterValueSet { ActualOption = option_B, Iid = Guid.NewGuid() }; var parameterValueset_2 = new ParameterValueSet { ActualOption = option_A, Iid = Guid.NewGuid() }; var parameterValueset_3 = new ParameterValueSet { ActualState = this.actualState_3, Iid = Guid.NewGuid() }; var parameterValueset_4 = new ParameterValueSet { ActualState = this.actualState_4, Iid = Guid.NewGuid() }; var parameterSubscriptionValueSetA = new ParameterSubscriptionValueSet { Iid = Guid.NewGuid() }; var parameterSubscriptionValueSetB = new ParameterSubscriptionValueSet { Iid = Guid.NewGuid() }; var values_1 = new List <string> { "2" }; var values_2 = new List <string> { "3" }; var values_3 = new List <string> { "220" }; var emptyValues = new List <string> { "-" }; var publishedValues = new List <string> { "123" }; var subscriptionValues = new List <string> { "456" }; var overrideValueset = new ParameterOverrideValueSet() { ParameterValueSet = parameterValueset_1, Iid = Guid.NewGuid() }; this.iteration.Option.Add(option_A); this.iteration.Option.Add(option_B); this.iteration.DefaultOption = option_A; parameterValueset_1.Manual = new ValueArray <string>(values_1); parameterValueset_1.Reference = new ValueArray <string>(values_1); parameterValueset_1.Computed = new ValueArray <string>(values_1); parameterValueset_1.Formula = new ValueArray <string>(values_1); parameterValueset_1.Published = new ValueArray <string>(publishedValues); parameterValueset_1.ValueSwitch = ParameterSwitchKind.MANUAL; parameterValueset_2.Manual = new ValueArray <string>(values_2); parameterValueset_2.Reference = new ValueArray <string>(values_2); parameterValueset_2.Computed = new ValueArray <string>(values_2); parameterValueset_2.Formula = new ValueArray <string>(values_2); parameterValueset_2.Published = new ValueArray <string>(publishedValues); parameterValueset_2.ValueSwitch = ParameterSwitchKind.MANUAL; parameterValueset_3.Manual = new ValueArray <string>(values_3); parameterValueset_3.Reference = new ValueArray <string>(values_3); parameterValueset_3.Computed = new ValueArray <string>(values_3); parameterValueset_3.Formula = new ValueArray <string>(values_3); parameterValueset_3.Published = new ValueArray <string>(emptyValues); parameterValueset_3.ValueSwitch = ParameterSwitchKind.MANUAL; parameterValueset_4.Manual = new ValueArray <string>(emptyValues); parameterValueset_4.Reference = new ValueArray <string>(emptyValues); parameterValueset_4.Computed = new ValueArray <string>(emptyValues); parameterValueset_4.Formula = new ValueArray <string>(emptyValues); parameterValueset_4.Published = new ValueArray <string>(publishedValues); parameterValueset_4.ValueSwitch = ParameterSwitchKind.MANUAL; overrideValueset.Manual = new ValueArray <string>(values_1); overrideValueset.Reference = new ValueArray <string>(values_1); overrideValueset.Computed = new ValueArray <string>(values_1); overrideValueset.Formula = new ValueArray <string>(values_1); overrideValueset.Published = new ValueArray <string>(publishedValues); overrideValueset.ValueSwitch = ParameterSwitchKind.MANUAL; parameterSubscriptionValueSetA.Manual = new ValueArray <string>(subscriptionValues); parameterSubscriptionValueSetA.ValueSwitch = ParameterSwitchKind.MANUAL; parameterSubscriptionValueSetA.SubscribedValueSet = parameterValueset_1; parameterSubscriptionValueSetB.Manual = new ValueArray <string>(subscriptionValues); parameterSubscriptionValueSetB.ValueSwitch = ParameterSwitchKind.COMPUTED; parameterSubscriptionValueSetB.SubscribedValueSet = parameterValueset_2; this.parameter.ValueSet.Add(parameterValueset_1); this.parameter.ValueSet.Add(parameterValueset_2); this.parameterOverride.ValueSet.Add(overrideValueset); this.parameter2.ValueSet.Add(parameterValueset_3); this.parameter2.ValueSet.Add(parameterValueset_4); parameterSubscription.ValueSet.Add(parameterSubscriptionValueSetA); parameterSubscription.ValueSet.Add(parameterSubscriptionValueSetB); this.elementUsage_1.ExcludeOption.Add(option_A); this.elementUsage_1.ParameterOverride.Add(this.parameterOverride); this.elementDefinition_1.Parameter.Add(this.parameter); this.elementDefinition_1.ContainedElement.Add(this.elementUsage_1); this.elementDefinition_1.ContainedElement.Add(this.elementUsage_2); this.elementDefinition_2.Parameter.Add(this.parameter); this.elementDefinition_2.Parameter.Add(this.parameter2); this.iteration.Element.Add(this.elementDefinition_1); this.iteration.Element.Add(this.elementDefinition_2); this.iteration.TopElement = this.elementDefinition_1; this.iteration.ActualFiniteStateList.Add(actualList); this.iteration.PossibleFiniteStateList.Add(possibleList1); actualList.ActualState.Add(this.actualState_3); actualList.ActualState.Add(this.actualState_4); this.session.Setup(x => x.RetrieveSiteDirectory()).Returns(this.sitedir); this.session.Setup(x => x.ActivePerson).Returns(this.person); this.session.Setup(x => x.DataSourceUri).Returns(this.uri.ToString); this.session.Setup(x => x.Assembler).Returns(this.assembler); this.session.Setup(x => x.IsVersionSupported(It.IsAny <Version>())).Returns(true); this.session.Setup(x => x.OpenIterations).Returns(new Dictionary <Iteration, Tuple <DomainOfExpertise, Participant> >()); this.session.Setup(x => x.PermissionService).Returns(this.permissionService.Object); this.cache.TryAdd(new CacheKey(this.iteration.Iid, null), new Lazy <Thing>(() => this.iteration)); this.reportDesignerViewModel = new ReportDesignerViewModel(this.iteration, this.session.Object, this.thingDialogNavigationService.Object, this.panelNavigationService.Object, this.dialogNavigationService.Object, this.pluginSettingsService.Object); }
public MainPageViewModel(ReportDesignerViewModel reportDesignerViewModel) { this.reportDesignerViewModel = reportDesignerViewModel; }