private void StartJtg(string fnArg, Action finished) { string javapath = info.Settings.Get("jTGStarter.javapath", "java"); string jtgPath = info.Settings.Get("jTGStarter.jtgpath", JTGShared.DEFAULT_FILENAME); var compat = JTGShared.JTGCompatCheck(jtgPath); if (!compat.Compatible) { MessageBox.Show("Die gewählte Version von jTrainGraph ist wahrscheinlich nicht mit FPledit kompatibel. Bitte verwenden Sie jTrainGraph 2.02 - 2.03 oder 3.03 (und höher)!", "jTrainGraphStarter: Fehler", MessageBoxType.Error); return; } if (info.Timetable.Version != compat.Version && info.Timetable.Type != TimetableType.Network) { MessageBox.Show("Die gewählte Version von jTrainGraph ist wahrscheinlich nicht mit der aktuellen Fahrplandatei kompatibel.", "jTrainGraphStarter: Fehler", MessageBoxType.Error); return; } string jtgFolder = Path.GetDirectoryName(jtgPath); Process p = new Process(); p.StartInfo.WorkingDirectory = jtgFolder; p.StartInfo.FileName = javapath; p.StartInfo.Arguments = "-jar \"" + jtgPath + "\" \"" + fnArg + "\""; try { try { p.Start(); info.Logger.Info("Wartet darauf, dass jTrainGraph beendet wird..."); p.WaitForExit(); info.Logger.Info("jTrainGraph beendet! Lade Datei neu..."); if (p.ExitCode != 0) { throw new Exception("Process exited with error code " + p.ExitCode); } } catch (Exception e) { info.Logger.Error("Fehler beim Starten von jTrainGraph: Möglicherweise ist das jTrainGraphStarter Plugin falsch konfiguriert! Zur Konfiguration siehe jTrainGraph > Einstellungen"); info.Logger.LogException(e); return; } finished(); } catch (Exception e) { info.Logger.Error("jTrainGraphStarter: " + e.Message); info.Logger.LogException(e); } }
private void chooseJtgButton_Click(object sender, EventArgs e) { using (var ofd = new OpenFileDialog()) { ofd.AddLegacyFilter("JAR-Dateien (*.jar)|*.jar"); if (ofd.ShowDialog(this) == DialogResult.Ok) { jtgPathTextBox.Text = ofd.FileName; var compat = JTGShared.JTGCompatCheck(jtgPathTextBox.Text); if (compat.Version.HasValue) { versionComboBox.SelectedValue = versionComboBox.DataStore. FirstOrDefault(i => ((VersionItem)i).Version == compat.Version); } } } }
private void closeButton_Click(object sender, EventArgs e) { bool jtgexists = File.Exists(jtgPathTextBox.Text) || ExecutableExists(jtgPathTextBox.Text); bool javaexists = ExecutableExists(javaPathTextBox.Text); var compat = JTGShared.JTGCompatCheck(jtgPathTextBox.Text); if (!javaexists || !jtgexists || !compat.Compatible) { var text = ""; if (!jtgexists) { text += "Die angegebene Datei für jTrainGraph wurde nicht gefunden. "; } if (!compat.Compatible) { text += "Die gewählte Version von jTrainGraph ist wahrscheinlich nicht mit FPledit kompatibel. Bitte verwenden Sie jTrainGraph 2.02 - 2.03 oder 3.03 (und höher)! "; } if (!javaexists) { text += "Java wurde unter dem angegebenen Pfad nicht gefunden. "; } text += "Wollen Sie trotzdem fortfahren?"; if (MessageBox.Show(text, "jTrainGraphStarter: Fehler", MessageBoxButtons.YesNo) == DialogResult.No) { return; } } var targetVersion = ((VersionItem)versionComboBox.SelectedValue).Version; settings.SetEnum("jTGStarter.target-version", targetVersion); settings.Set("jTGStarter.show-message", !messageCheckBox.Checked.Value); settings.Set("jTGStarter.javapath", javaPathTextBox.Text); settings.Set("jTGStarter.jtgpath", jtgPathTextBox.Text); Close(); }