예제 #1
0
        /// <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);
        }
예제 #2
0
        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);
        }