コード例 #1
0
        public MainView(ISettingsProvider <Settings> settingsProvider, IThemeProvider themeProvider)
        {
            InitializeComponent();


            this.messenger = new Messenger(this);

            this.viewModel = new MainViewModel(settingsProvider);
            var scheduler = new AsyncJobScheduler(this, viewModel);

            var output = new OutputView(themeProvider, messenger);

            output.Show(this.dockPanel1, DockState.DockBottom);


            var entityTreeView = new EntityTreeView(output, messenger, scheduler);

            entityTreeView.Show(this.dockPanel1, DockState.DockLeft);



            this.tConnectToEnvironment.Bind(_ => _.Visible, this.viewModel, _ => _.IsConnectToEnvirnmentVisible);
            this.tEnvironmentName.Bind(_ => _.Visible, this.viewModel, _ => _.IsEnvironmentNameVisible);
            this.tEnvironmentName.Bind(_ => _.Text, this.viewModel, _ => _.ConnectionName);

            this.tOpenFolder.BindCommand(() => this.viewModel.OpenWikiFolder);
        }
コード例 #2
0
ファイル: MainView.cs プロジェクト: neronotte/Greg.Xrm
        public MainView(IThemeProvider themeProvider)
        {
            InitializeComponent();

            var messenger = new Messenger(this);

            this.viewModel = new MainViewModel(messenger);

            var scheduler = new AsyncJobScheduler(this, this.viewModel);

            this.outputView = new OutputView(themeProvider, messenger);
            this.outputView.Show(this.dockPanel, DockState.DockBottom);

            this.environmentListView = new EnvironmentListView(themeProvider, messenger);
            this.environmentListView.Show(this.dockPanel, DockState.DockLeft);

            this.solutionsView = new SolutionsView(this.outputView, themeProvider, messenger, scheduler);
            this.solutionsView.Show(this.dockPanel, DockState.Document);

            this.solutionComponentsView = new SolutionComponentsView(this.outputView, themeProvider, messenger, scheduler);
            this.solutionComponentsView.Show(this.dockPanel, DockState.Document);

            this.solutionsView.Show();


            messenger.Register <AddNewConnectionMessage>(m => this.AddAdditionalOrganization());
            messenger.Register <RemoveConnectionMessage>(m => this.RemoveAdditionalOrganization(m.Detail));
        }
コード例 #3
0
ファイル: SystemController.cs プロジェクト: avirule/Wyd
 private void OnDestroy()
 {
     AsyncJobScheduler.Abort(true);
 }
コード例 #4
0
        public EnvironmentComparerPluginControl(IThemeProvider themeProvider)
        {
            if (themeProvider == null)
            {
                throw new ArgumentNullException(nameof(themeProvider));
            }


            InitializeComponent();

            this.messenger = new Messenger(this);

            this.tEnv1Name.Text      = "1. Connect to environment 1";
            this.tConnectToEnv2.Text = ConnectToEnvironment2String;


            this.outputView = new OutputView(themeProvider, messenger);
            this.outputView.Show(this.dockPanel, DockState.DockBottomAutoHide);

            this.viewModel = new EnvironmentComparerViewModel(this.messenger);
            var scheduler = new AsyncJobScheduler(this, viewModel);

            this.resultTreeView = new ResultTreeView(themeProvider, scheduler, this.messenger, this.outputView);
            this.resultTreeView.Show(this.dockPanel, DockState.DockLeft);

            this.configuratorView = new ConfiguratorView(themeProvider, scheduler, this.messenger, this.outputView);
            this.configuratorView.Show(this.dockPanel, DockState.DockLeft);

            this.resultGridView = new ResultGridView(themeProvider, this.messenger, this.outputView);
            this.resultGridView.Show(this.dockPanel, DockState.Document);

            this.resultRecordView = new ResultRecordView(themeProvider, this.messenger);
            this.resultRecordView.Show(this.dockPanel, DockState.Document);

            this.actionsView = new ActionsView(themeProvider, scheduler, this.messenger, this.outputView);
            this.actionsView.Show(this.dockPanel, DockState.Document);

            var helpContentIndexProvider = new HelpContentIndexProvider();
            var helpContentIndex         = helpContentIndexProvider.GetIndex();
            var helpRepository           = new HelpRepository(helpContentIndex, GetType().Assembly);
            var helpView = new HelpView(this.messenger, this.outputView, helpRepository, Topics.Home);

            helpView.Show(this.dockPanel, DockState.DockRight);
            helpView.DockState = DockState.DockRightAutoHide;
            // trick used because the DockState.AutoHide doesn't works well with browser control: the WebBrowser control "Dispose" method throws an exception if the form has not been loaded

            this.resultGridView.Show();
            this.configuratorView.Show();

            this.tEquals.Bind(_ => _.Visible, this.viewModel, _ => _.AreEqual);


            this.messenger.Register <HighlightResultRecord>(m =>
            {
                this.resultRecordView.Show();
            });
            this.messenger.Register <LoadEntitiesRequest>(m =>
            {
                ExecuteMethod(LoadEntities);
            });

            this.messenger.Register <StatusBarMessageEventArgs>(m =>
            {
                this.SendMessageToStatusBar?.Invoke(this, m);
            });
        }