Exemplo n.º 1
0
        public virtual void Factor(ConceptUsecase useCase)
        {
            if (AboutWindow == null)
            {
                AboutWindow = new Vindow();
            }

            var splitViewBackend = useCase.SplitView.Backend.ToXwt();

            StatusLabel = new Label {
                HeightRequest = 20,
                Text          = "starting...",
                TextColor     = Colors.Black,
                TextAlignment = Alignment.Start,
            };

            var box = new VBox {
                Spacing = 2
            };

            box.PackStart(splitViewBackend, true);
            box.PackEnd(StatusLabel);

            (MainWindow.Backend as Window).Content = box;

            OnShow += () => (splitViewBackend as Paned).PositionFraction = 0.50;// WindowSize.Width / 2;
        }
Exemplo n.º 2
0
        private void ExportAsImage(ConceptUsecase useCase)
        {
            var currentDisplay = useCase.GetCurrentDisplay();

            if (currentDisplay != null && currentDisplay.Data != null)
            {
                var saveFileDialog = new FileDialogMemento {
                    DefaultExt = "tif",
                    Filter     = "TIF-Image|*.tif|All Files|*.*",
                };

                if (useCase.FileDialogShow(saveFileDialog, false) == DialogResult.Ok)
                {
                    var image =
                        new ImageExporter(currentDisplay.Data, currentDisplay.Layout)
                    {
                        StyleSheet = currentDisplay.StyleSheet
                    }
                    .ExportImage();
                    if (image != null)
                    {
                        image.Save(saveFileDialog.FileName, ImageFormat.Tiff);
                        image.Dispose();
                    }
                }
            }
        }
Exemplo n.º 3
0
        public void ComposeMenus(ConceptUsecase useCase)
        {
            if (useCase.Menu == null)
            {
                return;
            }

            // ComposeAdditionalMenus (useCase);

            var menuBackend = useCase.Menu.GetBackend() as Xwt.Swf.Xwt.SwfBackend.MenuBackend;

            if (menuBackend != null)
            {
                MenuStrip = menuBackend.Menu;
            }

            var font = MenuStrip.Font;

            Action <ToolStripMenuItem> setFont = null;

            setFont = (item) => {
                item.Font = font;
                foreach (ToolStripMenuItem sub in item.DropDownItems)
                {
                    sub.Font = font;
                    setFont(sub);
                }
            };

            foreach (ToolStripMenuItem item in MenuStrip.Items)
            {
                setFont(item);
            }
        }
Exemplo n.º 4
0
        private void ShowLayoutEditor(ConceptUsecase useCase)
        {
            options = new Options();
            options.ApplyButton.Click += (s1, e1) => {
                useCase.ArrangerToolbar.FullLayout(useCase.GetCurrentDisplay().Layout.Options());
            };

            var editor = new LayoutEditor();

            editor.Dock                  = DockStyle.Fill;
            editor.SelectedObject        = useCase.GetCurrentDisplay().Layout;
            editor.PropertyValueChanged += (s1, e1) => {
                useCase.DisplayStyleChanged?.Invoke(s1, new EventArgs <IStyle> (null));
            };

            options.SuspendLayout();
            options.Controls.Remove(options.OptionList);

            options.OptionChanger     = editor;
            options.ContentPanel.Size = editor.Size;
            options.ContentPanel.Controls.Add(editor);

            options.ClientSize = ControlSize(options).Size;
            options.ResumeLayout(true);
            Application.DoEvents();
            options.ClientSize = ControlSize(options).Size;
            Application.DoEvents();

            options.Show();
        }
Exemplo n.º 5
0
        public override void Compose(ConceptUsecase useCase)
        {
            base.Compose(useCase);
            var deviceComposer = BackendComposer as SwfConceptUseCaseComposer;

            CreateTestCases(useCase, deviceComposer);
        }
Exemplo n.º 6
0
 public void ComposeAdditionalMenus(ConceptUsecase useCase)
 {
     var l         = new Localizer();
     var addToFile = new ToolStripMenuItem[] {
         new ToolStripMenuItem(l["Print ..."], null, (s, e) => { this.Print(useCase); }),
         new ToolStripMenuItem(l["PrintPreview ..."], null, (s, e) => { this.PrintPreview(useCase); }),
     };
 }
Exemplo n.º 7
0
        public void ExampleOpen(ConceptUsecase useCase)
        {
            var dialog = new OpenExampleData();

            if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                var testData = dialog.SceneExamples.Selected;
                testData.Data.Count = (int)dialog.numericUpDown1.Value;
                var scene = dialog.SceneExamples.GetScene(testData.Data);
                SetExampleScene(useCase, scene);
            }
            dialog.Dispose();
        }
Exemplo n.º 8
0
 private void PrintPreview(ConceptUsecase useCase)
 {
     using (PrintPreviewDialog printDialog = new PrintPreviewDialog()) {
         var          currentDisplay = useCase.GetCurrentDisplay();
         PrintManager man            = new PrintManager();
         using (var doc = man.CreatePrintDocument(currentDisplay.Data, currentDisplay.Layout)) {
             printDialog.Document = doc;
             if (printDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
             {
                 doc.Print();
             }
             printDialog.Document = null;
         }
     }
 }
Exemplo n.º 9
0
 private void Print(ConceptUsecase useCase)
 {
     using (var printDialog = new PrintDialog()) {
         var currentDisplay = useCase.GetCurrentDisplay();
         var man            = new PrintManager();
         using (var doc = man.CreatePrintDocument(currentDisplay.Data, currentDisplay.Layout)) {
             printDialog.Document = doc;
             if (printDialog.Show() == DialogResult.Ok)
             {
                 doc.Print();
             }
             printDialog.Document = null;
         }
     }
 }
Exemplo n.º 10
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);
        }
Exemplo n.º 11
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());
            }
        }
Exemplo n.º 12
0
 public void CreateTestCases(ConceptUsecase useCase, SwfConceptUseCaseComposer composer)
 {
     composer.MenuStrip.Items.AddRange(
         new ToolStripMenuItem[] {
         new ToolStripMenuItem("Test", null, new ToolStripMenuItem[] {
             new ToolStripMenuItem("Open Testcase...", null, (s, e) => {
                 this.ExampleOpen(useCase);
             }),
             new ToolStripMenuItem("Selector", null, (s, e) => {
                 var test = DisplayTest();
                 test.RunSelectorTest();
                 test.TearDown();
             }),
             new ToolStripMenuItem("BenchmarkOne", null, (s, e) => {
                 var test = DisplayTest();
                 test.MoveAlongSceneBoundsTest();
                 test.TearDown();
             }),
             new ToolStripMenuItem("QuadTree", null, (s, e) => {
                 this.ShowQuadTree(useCase.GetCurrentDisplay().Data);
             }),
             new ToolStripMenuItem("WCF", null, (s, e) => {
                 this.WCFServiceTest(useCase);
             }),
             new ToolStripMenuItem("SchemaFilter off", null, (s, e) => {
                 this.NoSchemaThingGraph(useCase);
             }),
             new ToolStripMenuItem("Database refresh Compression", null, (s, e) => {
                 useCase.RefreshCompression();
             }),
             new ToolStripMenuItem("Timeline", null, (s, e) => {
                 useCase.TimelineSheet();
             }),
             new ToolStripMenuItem("File-Explorer", null, (s, e) => {
                 this.ShowFileExplorer(useCase);
             }),
             new ToolStripMenuItem("current problem", null, (s, e) => {
                 this.CurrentProblem(useCase);
             }),
         })
     });
 }
Exemplo n.º 13
0
        public void WriteUsecase(ConceptUsecase usecase)
        {
            try {
                var hasPerst = false;
                var perst    = new UsecasePersistor();
                var fileName = "laststate.limstate";
                if (File.Exists(fileName))
                {
                    using (var reader = new StreamReader(fileName)) {
                        perst.XmlUsecase = XElement.Parse(reader.ReadToEnd());
                    }
                    hasPerst = true;
                }

                if (perst.XmlUsecase == null)
                {
                    perst.Save(usecase);

                    Trace.WriteLine(perst.XmlUsecase.ToString());

                    if (Registry.Pooled <IMessageBoxShow> ().Show("save state", "save", MessageBoxButtons.YesNo) == DialogResult.Yes)
                    {
                        using (var writer = new StreamWriter(fileName)) {
                            writer.Write(perst.XmlUsecase);
                        }
                    }
                }

                if (hasPerst)
                {
                    // usecase.SplitView = new Limada.View.Vidgets.SplitView0 ();

                    perst.Resume(usecase);
                }
            } catch (Exception ex) {
                Registry.Pooled <IExceptionHandler> ().Catch(ex);
            }
        }
Exemplo n.º 14
0
        /// <summary>
        /// runs after usecasefactory.compose
        /// </summary>
        /// <param name="useCase">Use case.</param>
        public void Compose2(ConceptUsecase useCase)
        {
            ComposeMenus(useCase);

            if (useCase.Toolbar == null)
            {
                return;
            }

            var toolStrips = useCase.Toolbar.Items
                             .Cast <Limaki.View.IVidget> ()
                             .Select(v => v.ToSwf() as ToolStrip).ToArray();

            var utils = new ToolStripUtils {
                ToolStripItemSelectedColor = Color.White
            };

            utils.InitializeToolstrips(
                this.ToolStripContainer.TopToolStripPanel,
                this.MenuStrip,
                toolStrips
                );
        }
Exemplo n.º 15
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();
            };
        }
Exemplo n.º 16
0
        private void ShowStyleEditor(ConceptUsecase useCase)
        {
            var options = ComposeStyleEditor(useCase.GetCurrentDisplay().StyleSheet.Styles, useCase.DisplayStyleChanged);

            options.Show();
        }
Exemplo n.º 17
0
 private void ShowLayoutEditor(ConceptUsecase useCase)
 {
     var editor = new LayoutEditor();
 }
Exemplo n.º 18
0
 private void ShowStyleEditor(ConceptUsecase useCase)
 {
     var editor = new StyleEditor();
 }
Exemplo n.º 19
0
 private void PrintPreview(ConceptUsecase useCase)
 {
     throw new System.NotImplementedException();
 }
Exemplo n.º 20
0
        public void WriteUsecase0(ConceptUsecase usecase)
        {
            try {
                var mesh = Registry.Pooled <IGraphSceneDisplayMesh <IVisual, IVisualEdge> > ();
                //TODO:move this to another test
                if (true)
                {
                    var mesh2 = Registry.Pooled <IGraphSceneMesh <IVisual, IVisualEdge> > ();

                    if (mesh2 != mesh)
                    {
                        throw new Exception();
                    }
                }

                XElement dmx = null;

                var fileName = "laststate.limstate";
                if (File.Exists(fileName))
                {
                    using (var reader = new StreamReader(fileName)) {
                        dmx = XElement.Parse(reader.ReadToEnd());
                    }
                }

                // write current state
                var dmx1 = new UsecaseXmlSerializer()
                           .Write(usecase);

                Trace.WriteLine(dmx1.ToString());

                if (Registry.Pooled <IMessageBoxShow> ().Show("save state", "save", MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    using (var writer = new StreamWriter(fileName)) {
                        writer.Write(dmx1);
                    }
                }
                var usecase1 = usecase;

                // test with new usecase
                var testNewUsecase = false && dmx != null;
                if (testNewUsecase)
                {
                    var backendComposer = Registry.Create <IBackendConceptUseCaseComposer> ();
                    backendComposer.MainWindow = new Vindow {
                        Size = new Size(800, 600)
                    };

                    var factory = new UsecaseFactory <ConceptUsecase> ();
                    factory.Composer        = new ConceptUsecaseComposer();
                    factory.BackendComposer = backendComposer;

                    usecase1 = factory.Create();
                    factory.Compose(usecase1);
                }

                if (dmx != null)
                {
                    mesh.Clear();

                    new UsecaseXmlSerializer()
                    .Read(dmx, usecase1);

                    if (testNewUsecase)
                    {
                        usecase1.MainWindow.Show();
                    }
                }
            } catch (Exception ex) {
                Registry.Pooled <IExceptionHandler> ().Catch(ex);
            }
        }