private void OK_Click(object sender, EventArgs e) { Psc.Molecule = QueryMolCtl.Molecule.Clone(); Psc.Molecule.RemoveStructureCaption(); // remove any structure caption that may cause a problem try { if (None.Checked || Lex.IsNullOrEmpty(Psc.Molecule.PrimaryValue)) // say none if checked or no structure { Psc.SearchType = StructureSearchType.Unknown; } else if (SubStruct.Checked) { SSOptions.GetValues(Psc); } else if (Similarity.Checked) { SimOptions.GetValues(Psc); } else if (Full.Checked) { FSOptions.GetValues(Psc); } else if (SmallWorld.Checked) { SmallWorldOptions.GetValues(Psc); UpdateAssociatedSmallWorldQueryColumns(Psc); } else { throw new Exception("No recognized search type checked"); // shouldn't happen } Psc.ConvertToQueryColumnCriteria(Qc); } catch (Exception ex) { MessageBoxMx.ShowError(ex.Message); return; } MoleculeSelectorControl.AddToMruList(QueryMolCtl, Psc.SearchType); DialogResult = DialogResult.OK; return; }
/// <summary> /// Display proper options subform or hide options if not showing /// based on the Psc settings /// </summary> void SetupOptions(bool initialSetup = false) { FormMetricsInfo fmi = WindowsHelper.GetFormMetrics(this); SetupDepth++; bool showOptions = ShowOptions; if (Psc.SearchType != StructureSearchType.Unknown) // && Psc.SearchType != StructureSearchType.SSS) // don't show SS options for now { ShowOptionsButton.Enabled = true; } else // no options available { showOptions = false; ShowOptionsButton.Enabled = false; } ShowOptionsButton.ImageIndex = (showOptions ? 1 : 0); // set proper ShowOptions Expand/Contract image button BottomDivider.Visible = (showOptions || Psc.SearchType == StructureSearchType.SmallWorld); // line above OK/Cancel if (Psc.SearchType == StructureSearchType.Substructure) { FSOptions.Visible = SimOptions.Visible = SmallWorldOptions.Visible = PreviewPanel.Visible = false; SSOptions.Visible = showOptions; int optHeight = showOptions ? SSOptions.Height + BottomCtlsHeight : 0; Size = new Size(InitialFormSize.Width, InitialFormSize.Height + optHeight); SSOptions.Setup(Psc); } else if (Psc.SearchType == StructureSearchType.MolSim) { SSOptions.Visible = FSOptions.Visible = SmallWorldOptions.Visible = PreviewPanel.Visible = false; SimOptions.Visible = showOptions; int optHeight = showOptions ? SimOptions.Height + BottomCtlsHeight : 0; Size = new Size(InitialFormSize.Width, InitialFormSize.Height + optHeight); SimOptions.Setup(Psc); } else if (Psc.SearchType == StructureSearchType.FullStructure) { SSOptions.Visible = SimOptions.Visible = SmallWorldOptions.Visible = PreviewPanel.Visible = false; FSOptions.Visible = showOptions; int optHeight = showOptions ? FSOptions.Height + BottomCtlsHeight : 0; Size = new Size(InitialFormSize.Width, InitialFormSize.Height + optHeight); FSOptions.Setup(Psc); } else if (Psc.SearchType == StructureSearchType.SmallWorld) { SSOptions.Visible = FSOptions.Visible = SimOptions.Visible = false; SmallWorldOptions.Visible = showOptions; SmallWorldOptions.CriteriaStructureForm = this; // link SmallWorldOptions to us SmallWorldPredefinedParameters swp = Psc.SmallWorldParameters; SmallWorldOptions.Setup(swp); Size = SmallWorldSize; // set form size same as last time if (!PreviewPanel.Visible) // if preview not visible then adjust size and show { PreviewCtl.InitializeView(); Size cs = this.ClientRectangle.Size; PreviewPanel.Width = cs.Width - PreviewPanel.Left - 2; PreviewPanel.Height = BottomDivider.Top - PreviewPanel.Top + 2; PreviewPanel.Visible = true; } if (initialSetup) { SmallWorldOptions.StartInitialQueryExecution(); // start search if initial setup } } else { Size = InitialFormSize; // no search type } Refresh(); SetupDepth--; return; }