Пример #1
0
        public void Factor(ConceptUsecase useCase)
        {
            if (MainWindow == null)
            {
                this.MainWindow = new Vindow();
            }

            useCase.MainWindow = this.MainWindow;

            ToolStripContainer = new ToolStripContainer();

            StatusStrip = new StatusStrip();
            StatusLabel = new ToolStripStatusLabel();

            var splitViewBackend = useCase.SplitView.Backend.ToSwf() as SplitContainer;

            ToolStripContainer.SuspendLayout();
            ToolStripContainer.ContentPanel.Controls.Add(splitViewBackend);
            ToolStripContainer.ResumeLayout();
            ToolStripContainer.PerformLayout();

            splitViewBackend.SplitterDistance = (int)(ToolStripContainer.Width / 2);

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

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

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

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

            viewerProvider.Add(new SdImageContentViewer());

            if (MarkdownContentViewer.Available())
            {
                viewerProvider.Add(new MarkdownContentViewer());
            }
        }
Пример #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();
            };
        }