/// <summary> /// Get the name of a file to Open or Save /// </summary> /// <param name="action">1=open, 2=save, 3=save without prompt</param> /// <param name="title"></param> /// <param name="defaultFile"></param> /// <param name="filter">filter string, e.g. "Lists (*.lst)|*.lst" </param> /// <param name="defaultExtension"></param> /// <returns></returns> private static string GetFilename( int action, string title, string defaultFile, string filter, string defaultExt) { OpenFileDialog openDialog = null; SaveFileDialog saveDialog = null; FileDialog dialog; DialogResult result; string initialFolder = "", folder = "", fileName = "", ext = ""; //ClientLog.Message("GetFileName: action = " + action + ", defaultFile = " + defaultFile); // debug if (!String.IsNullOrEmpty(defaultFile)) // split out defaultFile name if specified { if (Lex.StartsWith(defaultFile, "http")) // if url just use name part { defaultFile = Path.GetFileName(defaultFile); // just get name part } ext = Path.GetExtension(defaultFile); if (ext != "") // if extension assume file name is present { initialFolder = Path.GetDirectoryName(defaultFile); defaultFile = Path.GetFileName(defaultFile); } else // if no extension assume just a folder { initialFolder = defaultFile; defaultFile = ""; } //ClientLog.Message("GetFileName modified: initialFolder = " + initialFolder + ", defaultFile = " + defaultFile); // debug } if (initialFolder == "") // still need initial folder { initialFolder = DirectoryMx.RemoveTerminalBackSlash(ClientDirs.DefaultMobiusUserDocumentsFolder); } if (action == 1) // open { openDialog = new OpenFileDialog(); dialog = (FileDialog)openDialog; } else // save { saveDialog = new SaveFileDialog(); if (action == 3) { saveDialog.OverwritePrompt = false; } dialog = (FileDialog)saveDialog; } dialog.Title = title; dialog.FileName = defaultFile; dialog.InitialDirectory = initialFolder; // if initialFolder doesn't exist the control will use the last folder or the current folder dialog.Filter = filter; dialog.FilterIndex = 1; // filter show first dialog.DefaultExt = defaultExt; try { result = dialog.ShowDialog(SessionManager.ActiveForm); } catch (Exception ex) // may be invalid default name { ServicesLog.Message("ShowDialog exception: " + ex.Message); dialog.FileName = ""; // clear default name result = dialog.ShowDialog(SessionManager.ActiveForm); // try again } fileName = dialog.FileName; dialog.Dispose(); if (result != DialogResult.OK) { return(""); } ext = Path.GetExtension(fileName); folder = Path.GetDirectoryName(fileName); return(fileName); }
public DialogResult ShowDialog2(ResultsFormat rf) { // Setup the dialog Rf = rf; rf.OutputDestination = OutputDest.Spotfire; GetDefaultExportParameters(rf); string dir = DirectoryMx.IncludeTerminalBackSlash(ClientDirs.DefaultMobiusUserDocumentsFolder); string qName = Rf.Query.UserObject.Name; string fName = dir; if (Lex.IsDefined(qName)) { if (QNameToExpFileName.ContainsKey(qName)) { fName = QNameToExpFileName[qName]; } else { fName = dir + qName + ".stdf"; } } FileName.Text = fName; if (rf.ExportStructureFormat == ExportStructureFormat.Chime) { ChimeStringStructure.Checked = true; } else if (rf.ExportStructureFormat == ExportStructureFormat.Smiles) { SmilesStructure.Checked = true; } else { MolfileStructure.Checked = true; } QnfSplitOptions.Setup(rf.QualifiedNumberSplit); DuplicateKeyValues.Checked = rf.DuplicateKeyTableValues; // Show the dialog DialogResult dr = ShowDialog(SessionManager.ActiveForm); if (dr == DialogResult.Cancel) { return(dr); } // Get the dialog values SpotfireFileCount++; rf.OutputFileName = FileName.Text; if (Lex.IsDefined(qName) && Lex.IsDefined(FileName.Text)) { QNameToExpFileName[qName] = FileName.Text; } if (SingleFileOption.Checked) { rf.OutputFileName2 = "Single"; } else if (MultipleFilesOptions.Checked) { rf.OutputFileName2 = "Multiple"; } else { rf.OutputFileName2 = "SingleAndMultiple"; } if (StdfCheckEdit.Checked) { rf.ExportFileFormat = ExportFileFormat.Stdf; } else { rf.ExportFileFormat = ExportFileFormat.Sbdf; } if (ChimeStringStructure.Checked) { rf.ExportStructureFormat = ExportStructureFormat.Chime; } else if (SmilesStructure.Checked) { rf.ExportStructureFormat = ExportStructureFormat.Smiles; } else { rf.ExportStructureFormat = ExportStructureFormat.Molfile; } rf.IncludeDataTypes = true; rf.DuplicateKeyTableValues = DuplicateKeyValues.Checked; rf.QualifiedNumberSplit = QnfSplitOptions.Get(); SaveDefaultExportParameters(rf); return(DialogResult.OK); }