예제 #1
0
        public void Compose(ConceptUsecase useCase)
        {
            ToolStripContainer.Dock = DockStyle.Fill;
            Mainform.Controls.Add(ToolStripContainer);

            ToolStripContainer.BottomToolStripPanel.Controls.Add(StatusStrip);
            this.StatusStrip.Items.Add(StatusLabel);

            useCase.DataPostProcess       =
                dataName => Mainform.Text = dataName + " - " + useCase.UseCaseTitle;

            useCase.MessageBoxShow = this.MessageBoxShow;

            useCase.Progress = (m, i, count) => {
                if (i == -1 && count == -1)
                {
                    StatusLabel.Text = m;
                }
                else
                {
                    StatusLabel.Text = string.Format(m, i, count);
                }
                Application.DoEvents();
            };

            Mainform.FormClosing        += (s, e) => useCase.Close();
            Application.ApplicationExit += (s, e) => {
                useCase.Close();
                useCase.Dispose();
            };

            useCase.ApplicationQuit = () => useCase.ApplicationQuitted = true;

            useCase.ShowAboutWindow = () => {
                if (AboutForm == null)
                {
                    AboutForm = new AboutForm();
                }
                AboutForm.ShowDialog();
            };

            useCase.ExportAsImage    = () => ExportAsImage(useCase);
            useCase.ShowStyleEditor  = () => ShowStyleEditor(useCase);
            useCase.ShowLayoutEditor = () => ShowLayoutEditor(useCase);

            FinalizeCompose += () => Compose2(useCase);
        }
예제 #2
0
        public virtual void Compose(ConceptUsecase useCase)
        {
            var mainWindowBackend = MainWindow.Backend as Window;

            mainWindowBackend.MainMenu = useCase.Menu;
            useCase.DataPostProcess    =
                dataName => mainWindowBackend.Title = dataName + " - " + useCase.UseCaseTitle;

            useCase.MessageBoxShow = (text, title, buttons) =>
                                     new XwtMessageBoxShow().Show(text, title, buttons);


            useCase.Progress = (m, i, count) => {
                if (i == -1 && count == -1)
                {
                    StatusLabel.Text = m;
                }
                else
                {
                    StatusLabel.Text = string.Format(m, i, count);
                }
                Application.MainLoop.DispatchPendingEvents();
            };

            mainWindowBackend.CloseRequested += (s, e) => {
                useCase.Close();
                useCase.Dispose();
                Application.Exit();
            };

            var viewerProvider = Registry.Pooled <ContentViewerProvider>();

            viewerProvider.Add(new SheetViewer());
            viewerProvider.Add(new ImageContentViewer());
            viewerProvider.Add(new DigidocContentViewer());
            viewerProvider.Add(new HtmlContentViewer());

            if (PdfContentViewer.Available())
            {
                viewerProvider.Add(new PdfContentViewer());
            }
            if (TextContentViewerWithToolbar.Available())
            {
                viewerProvider.Add(new TextContentViewerWithToolbar());
            }
            else
            if (TextContentViewer.Available())
            {
                viewerProvider.Add(new TextContentViewer());
            }

            if (MarkdownContentViewer.Available())
            {
                viewerProvider.Add(new MarkdownContentViewer());
            }

            useCase.ShowAboutWindow = () => {
                ComposeAbout(AboutWindow);
                AboutWindow.Show();
            };
        }