Exemplo n.º 1
0
 private void DeleteVRoute(bool message = true)
 {
     if (gridView.SelectedItem != null)
     {
         VirtualRoute.DeleteVRoute((VirtualRoute)gridView.SelectedItem);
         gridView.DataStore = VirtualRoute.GetVRoutes(tt).ToArray();
     }
     else if (message)
     {
         MessageBox.Show(T._("Zuerst muss eine virtuelle Strecke ausgewählt werden!"), T._("Virtuelle Strecke löschen"));
     }
 }
Exemplo n.º 2
0
        private void CreateVRoute()
        {
            using var tpf = TrainPathForm.NewTrain(pluginInterface);
            tpf.Title     = T._("Verlauf der neuen virtuellen Strecke auswählen");
            if (tpf.ShowModal(this) != DialogResult.Ok)
            {
                return;
            }

            VirtualRoute.CreateVRoute(tt, tpf.Path.First(), tpf.Path.Last(), tpf.Waypoints.ToArray());
            gridView.DataStore = VirtualRoute.GetVRoutes(tt).ToArray();
        }
Exemplo n.º 3
0
#pragma warning restore CS0649

        public VirtualRouteForm(IPluginInterface pluginInterface)
        {
            this.pluginInterface = pluginInterface;
            tt = pluginInterface.Timetable;

            if (tt.Type == TimetableType.Linear)
            {
                throw new TimetableTypeNotSupportedException(TimetableType.Linear, "virtual routes");
            }

            Eto.Serialization.Xaml.XamlReader.Load(this);

            gridView.AddColumn <VirtualRoute>(t => t.GetRouteName(), T._("Streckenverlauf"));
            gridView.DataStore = VirtualRoute.GetVRoutes(tt).ToArray();

            this.AddCloseHandler();
        }
Exemplo n.º 4
0
        private void ResetRenderer()
        {
            if (pluginInterface.FileState.Opened)
            {
                Func <PathData> pd;
                if (routesDropDown.SelectedRoute > Timetable.UNASSIGNED_ROUTE_ID)
                {
                    pd = Renderer.DefaultPathData(routesDropDown.SelectedRoute, pluginInterface.Timetable);
                }
                else
                {
                    var virt = VirtualRoute.GetVRoute(pluginInterface.Timetable, routesDropDown.SelectedRoute);
                    pd = virt !.GetPathData;
                }

                renderer = new Renderer(pluginInterface.Timetable, pd);
                if (!scrollPosition.HasValue)
                {
                    scrollPosition = new Point(0, 0);
                }
                panel.Height  = renderer.GetHeightExternal(!splitCheckBox.Checked !.Value);
                hpanel.Height = splitCheckBox.Checked.Value ? renderer.GetHeightExternal(default, default, true) : 0;
Exemplo n.º 5
0
        public bool Export(Timetable tt, Stream stream, IReducedPluginInterface pluginInterface, string[] flags = null)
        {
            Func <PathData> pd;

            if (route > Timetable.UNASSIGNED_ROUTE_ID)
            {
                pd = Renderer.DefaultPathData(route, tt);
            }
            else
            {
                var virt = VirtualRoute.GetVRoute(tt, route);
                pd = virt !.GetPathData;
            }

            Renderer renderer = new Renderer(tt, pd);

            using (var bmp = new Bitmap(width, renderer.GetHeightExternal(true), PixelFormat.Format32bppArgb))
                using (var g = Graphics.FromImage(bmp))
                {
                    renderer.Draw(g, true, width, true);
                    bmp.Save(stream, format);
                }
            return(true);
        }
Exemplo n.º 6
0
        public void InitPrint()
        {
            var printers = Print.PrinterSettings.InstalledPrinters.Cast <string>().ToArray();

            doc = new Print.PrintDocument();
            var form           = new FDialog <string>();
            var routesDropDown = new RoutesDropDown();
            var routeStack     = new StackLayout(routesDropDown)
            {
                Orientation = Orientation.Horizontal, Padding = new Eto.Drawing.Padding(10), Spacing = 5
            };
            var routeGroup = new GroupBox {
                Content = routeStack, Text = T._("Strecke auswählen")
            };
            var printerDropDown = new DropDown {
                DataStore = printers
            };
            var paperDropDown = new DropDown();
            var landscapeChk  = new CheckBox {
                Text = T._("Querformat")
            };
            var printButton = new Button {
                Text = T._("Drucken")
            };
            var printerStack = new StackLayout(printerDropDown, paperDropDown, landscapeChk, printButton)
            {
                Orientation = Orientation.Horizontal, Padding = new Eto.Drawing.Padding(10), Spacing = 5
            };
            var printerGroup = new GroupBox {
                Content = printerStack, Text = T._("Druckeinstellungen")
            };
            var stack = new StackLayout(routeGroup, printerGroup)
            {
                Orientation = Orientation.Vertical, Padding = new Eto.Drawing.Padding(10), Spacing = 5
            };

            routesDropDown.Initialize(pluginInterface);
            routesDropDown.EnableVirtualRoutes = true;

            form.Content       = stack;
            form.DefaultButton = printButton;
            form.Title         = T._("Bildfahrplan drucken");

            printButton.Click += (s, e) =>
            {
                form.Result = (string)printerDropDown.SelectedValue;
                form.Close();
            };

            printerDropDown.SelectedIndexChanged += (s, e) =>
            {
                doc.PrinterSettings.PrinterName = (string)printerDropDown.SelectedValue;
                var paper   = doc.PrinterSettings.PaperSizes.Cast <Print.PaperSize>().Select(p => p.PaperName).ToArray();
                var a4Index = Array.IndexOf(paper, "A4");
                paperDropDown.DataStore     = paper;
                paperDropDown.SelectedIndex = (a4Index != -1) ? a4Index : 0;
            };

            printerDropDown.SelectedIndex = 0;

            if (form.ShowModal() != null)
            {
                if (routesDropDown.SelectedRoute > Timetable.UNASSIGNED_ROUTE_ID)
                {
                    pd = Renderer.DefaultPathData(routesDropDown.SelectedRoute, pluginInterface.Timetable);
                }
                else
                {
                    var virt = VirtualRoute.GetVRoute(pluginInterface.Timetable, routesDropDown.SelectedRoute);
                    pd = virt !.GetPathData;
                }

                doc.PrintPage   += Doc_PrintPage;
                doc.DocumentName = T._("Bildfahrplan generiert mit FPLedit");

                doc.PrinterSettings.PrinterName = form.Result;

                doc.DefaultPageSettings.Margins = new Print.Margins(50, 50, 50, 50); // not working (turning page????)

                if (Eto.Platform.Instance.IsGtk)
                {
                    var paperSize = doc.PrinterSettings.PaperSizes[paperDropDown.SelectedIndex];
                    //HACK: Do not use doc.DefaultPageSettings.Landscape on Linux, as it will lead to awkwardly turned rendering areas, ???)
                    if (landscapeChk.Checked !.Value)
                    {
                        doc.DefaultPageSettings.PaperSize = new Print.PaperSize(paperSize.PaperName, paperSize.Height, paperSize.Width);
                    }
                    else
                    {
                        doc.DefaultPageSettings.PaperSize = paperSize;
                    }
                }
                else
                {
                    doc.DefaultPageSettings.Landscape = landscapeChk.Checked !.Value;
                }

                if (!doc.PrinterSettings.IsValid)
                {
                    MessageBox.Show(T._("Ungültige Druckereinstellungen!"), "FPLedit", MessageBoxType.Error);
                }
                else
                {
                    try
                    {
                        doc.Print();
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(T._("Fehler beim Drucken! {0}", ex.Message), "FPLedit", MessageBoxType.Error);
                    }
                }
            }