private void createRouteGadgetFilesMenu_Click(object sender, EventArgs e)
{
// Get the settings for the dialog. If we've previously show the dialog, then
// use the previous settings. Note that the previous settings are wiped out when a new map file
// is loaded.
RouteGadgetCreationSettings settings;
if (routeGadgetCreationSettingsPrevious != null)
settings = routeGadgetCreationSettingsPrevious.Clone();
else {
// Default settings: creating in file directory, use format of the current map file.
settings = new RouteGadgetCreationSettings();
settings.fileDirectory = true;
settings.mapDirectory = false;
settings.outputDirectory = Path.GetDirectoryName(controller.FileName);
settings.fileBaseName = Path.GetFileNameWithoutExtension(controller.FileName);
}
// Initialize the dialog.
// CONSIDER: shouldn't have GetEventDB here! Do something different.
CreateRouteGadgetFiles createRouteGadgetFilesDialog = new CreateRouteGadgetFiles(controller.GetEventDB());
createRouteGadgetFilesDialog.RouteGadgetCreationSettings = settings;
// show the dialog; on success, create the files.
while (createRouteGadgetFilesDialog.ShowDialog(this) == DialogResult.OK) {
List<string> overwritingFiles = controller.OverwritingRouteGadgetFiles(createRouteGadgetFilesDialog.RouteGadgetCreationSettings);
if (overwritingFiles.Count > 0) {
OverwritingOcadFilesDialog overwriteDialog = new OverwritingOcadFilesDialog();
overwriteDialog.Filenames = overwritingFiles;
if (overwriteDialog.ShowDialog(this) == DialogResult.Cancel)
continue;
}
// Save settings persisted between invocations of this dialog.
routeGadgetCreationSettingsPrevious = createRouteGadgetFilesDialog.RouteGadgetCreationSettings;
controller.CreateRouteGadgetFiles(createRouteGadgetFilesDialog.RouteGadgetCreationSettings);
break;
}
// And the dialog is done.
createRouteGadgetFilesDialog.Dispose();
}