NCBI C++ ToolKit
sequencingtechnologypanel.cpp
Go to the documentation of this file.

Go to the SVN repository for this file.

1 /* $Id: sequencingtechnologypanel.cpp 47479 2023-05-02 13:24:02Z ucko $
2  * ===========================================================================
3  *
4  * PUBLIC DOMAIN NOTICE
5  * National Center for Biotechnology Information
6  *
7  * This software/database is a "United States Government Work" under the
8  * terms of the United States Copyright Act. It was written as part of
9  * the author's official duties as a United States Government employee and
10  * thus cannot be copyrighted. This software/database is freely available
11  * to the public for use. The National Library of Medicine and the U.S.
12  * Government have not placed any restriction on its use or reproduction.
13  *
14  * Although all reasonable efforts have been taken to ensure the accuracy
15  * and reliability of the software and data, the NLM and the U.S.
16  * Government do not and cannot warrant the performance or results that
17  * may be obtained by using this software or data. The NLM and the U.S.
18  * Government disclaim all warranties, express or implied, including
19  * warranties of performance, merchantability or fitness for any particular
20  * purpose.
21  *
22  * Please cite the author in any work or product based on this material.
23  *
24  * ===========================================================================
25  *
26  * Authors: Colleen Bollin
27  */
28 
29 
30 #include <ncbi_pch.hpp>
36 
37 ////@begin includes
38 ////@end includes
39 
40 #include <wx/panel.h>
41 #include <wx/sizer.h>
42 #include <wx/checkbox.h>
43 #include <wx/textctrl.h>
44 #include <wx/stattext.h>
45 #include <wx/valtext.h>
46 #include <wx/listctrl.h>
47 #include <wx/statbox.h>
48 
49 
50 #include <wx/bitmap.h>
51 #include <wx/icon.h>
52 #include <wx/toplevel.h>
53 #include <wx/scrolwin.h>
54 #include <wx/hyperlink.h>
55 
59 
60 ////@begin XPM images
61 ////@end XPM images
62 
65 
66 /*!
67  * CSequencingTechnologyPanel type definition
68  */
69 
70 IMPLEMENT_DYNAMIC_CLASS( CSequencingTechnologyPanel, wxPanel )
71 
72 
73 /*!
74  * CSequencingTechnologyPanel event table definition
75  */
76 
77 BEGIN_EVENT_TABLE( CSequencingTechnologyPanel, wxPanel )
78 
79 ////@begin CSequencingTechnologyPanel event table entries
81 
83 
85 
86 ////@end CSequencingTechnologyPanel event table entries
87 
89 
90 
91 /*!
92  * CSequencingTechnologyPanel constructors
93  */
94 
96 {
97  Init();
98 }
99 
100 CSequencingTechnologyPanel::CSequencingTechnologyPanel( wxWindow* parent, CRef<objects::CUser_object> user, wxWindowID id, const wxPoint& pos, const wxSize& size, long style )
101 {
102  Init();
103  m_User = new objects::CUser_object();
104  if (user) {
105  m_User->Assign(*user);
106  }
107  Create(parent, id, pos, size, style);
108  SetRegistryPath("Dialogs.Edit.SequencingTechnology");
109 }
110 
111 
112 /*!
113  * CSequencingTechnologyPanel creator
114  */
115 
116 bool CSequencingTechnologyPanel::Create( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style )
117 {
118 ////@begin CSequencingTechnologyPanel creation
119  wxPanel::Create( parent, id, pos, size, style );
120 
121  CreateControls();
122  if (GetSizer())
123  {
124  GetSizer()->SetSizeHints(this);
125  }
126  Centre();
127 ////@end CSequencingTechnologyPanel creation
128  return true;
129 }
130 
131 
132 /*!
133  * CSequencingTechnologyPanel destructor
134  */
135 
137 {
138  SaveSettings();
139 }
140 
141 static const char* kReplaceAll = "Replace All";
142 
144 {
145  m_RegPath = reg_path;
146 }
147 
149 {
150  if (m_RegPath.empty())
151  return;
153  CRegistryWriteView view = gui_reg.GetWriteView(m_RegPath);
154  bool replace_all = false;
155  wxSizer *sizer = NULL;
156  wxWindow *win = GetParent();
157  if (win)
158  sizer = win->GetSizer();
159 
160  if (sizer)
161  {
162  wxSizerItemList& itemList = sizer->GetChildren();
163  for (size_t i = 0; i < itemList.size(); i++)
164  {
165  wxCheckBox* c_btn = dynamic_cast<wxCheckBox*>(itemList[i]->GetWindow());
166  if (c_btn && c_btn->GetLabel() == _("Replace All"))
167  {
168  replace_all = c_btn->GetValue();
169  break;
170  }
171  }
172  }
173  view.Set(kReplaceAll, replace_all);
174 }
175 
176 
178 {
179  if (m_RegPath.empty())
180  return false;
181 
183  CRegistryReadView view = gui_reg.GetReadView(m_RegPath);
184 
185  bool replace_all = view.GetBool(kReplaceAll, false);
186  return replace_all;
187 }
188 
189 /*!
190  * Member initialisation
191  */
192 
194 {
195 ////@begin CSequencingTechnologyPanel member initialisation
203  m_Coverage = NULL;
204 ////@end CSequencingTechnologyPanel member initialisation
205 }
206 
207 
208 /*!
209  * Control creation for CSequencingTechnologyPanel
210  */
211 
213 {
214 ////@begin CSequencingTechnologyPanel content construction
215  CSequencingTechnologyPanel* itemPanel1 = this;
216 
217  wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL);
218  itemPanel1->SetSizer(itemBoxSizer2);
219 
220  wxArrayString standardCommentCtrlStrings;
222  if (structuredCommentRules)
223  {
224  // add wxchoice with available comment rules
225  standardCommentCtrlStrings.Add(wxEmptyString);
226  ITERATE (CComment_set::Tdata, it, structuredCommentRules->Get())
227  {
228  const CComment_rule& rule = **it;
229  string prefix = rule.GetPrefix();
231  standardCommentCtrlStrings.Add(wxString(prefix));
232  }
233  }
234 
235  m_StandardCommentCtrl = new wxChoice( itemPanel1, ID_CHOICE11, wxDefaultPosition, wxDefaultSize, standardCommentCtrlStrings, 0 );
236  itemBoxSizer2->Add(m_StandardCommentCtrl, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
237  m_StandardCommentCtrl->SetStringSelection(_("Assembly-Data-START"));
238 
239  wxStaticBox* itemStaticBoxSizer3Static = new wxStaticBox(itemPanel1, wxID_ANY, _("What methods were used to obtain these sequences?"));
240  wxStaticBoxSizer* itemStaticBoxSizer3 = new wxStaticBoxSizer(itemStaticBoxSizer3Static, wxVERTICAL);
241  itemBoxSizer2->Add(itemStaticBoxSizer3, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
242 
243  m_MethodsSizer = new wxBoxSizer(wxVERTICAL);
244  itemStaticBoxSizer3->Add(m_MethodsSizer, 0, wxALIGN_LEFT|wxALL, 0);
245 
246  wxCheckBox* itemCheckBox5 = new wxCheckBox( itemPanel1, ID_CHECKBOX5, _("Sanger dideoxy sequencing"), wxDefaultPosition, wxDefaultSize, 0 );
247  itemCheckBox5->SetValue(false);
248  m_MethodsSizer->Add(itemCheckBox5, 0, wxALIGN_LEFT|wxALL, 5);
249 
250  wxCheckBox* itemCheckBox6 = new wxCheckBox( itemPanel1, ID_CHECKBOX6, _("454"), wxDefaultPosition, wxDefaultSize, 0 );
251  itemCheckBox6->SetValue(false);
252  m_MethodsSizer->Add(itemCheckBox6, 0, wxALIGN_LEFT|wxALL, 5);
253 
254  wxCheckBox* itemCheckBox7 = new wxCheckBox( itemPanel1, ID_CHECKBOX7, _("Helicos"), wxDefaultPosition, wxDefaultSize, 0 );
255  itemCheckBox7->SetValue(false);
256  m_MethodsSizer->Add(itemCheckBox7, 0, wxALIGN_LEFT|wxALL, 5);
257 
258  wxCheckBox* itemCheckBox8 = new wxCheckBox( itemPanel1, ID_CHECKBOX8, _("Illumina"), wxDefaultPosition, wxDefaultSize, 0 );
259  itemCheckBox8->SetValue(false);
260  m_MethodsSizer->Add(itemCheckBox8, 0, wxALIGN_LEFT|wxALL, 5);
261 
262  wxCheckBox* itemCheckBox9 = new wxCheckBox( itemPanel1, ID_CHECKBOX9, _("Ion Torrent"), wxDefaultPosition, wxDefaultSize, 0 );
263  itemCheckBox9->SetValue(false);
264  m_MethodsSizer->Add(itemCheckBox9, 0, wxALIGN_LEFT|wxALL, 5);
265 
266  wxCheckBox* itemCheckBox10 = new wxCheckBox( itemPanel1, ID_CHECKBOX10, _("Pacific Biosciences"), wxDefaultPosition, wxDefaultSize, 0 );
267  itemCheckBox10->SetValue(false);
268  m_MethodsSizer->Add(itemCheckBox10, 0, wxALIGN_LEFT|wxALL, 5);
269 
270  wxCheckBox* itemCheckBox11 = new wxCheckBox( itemPanel1, ID_CHECKBOX11, _("SOLiD"), wxDefaultPosition, wxDefaultSize, 0 );
271  itemCheckBox11->SetValue(false);
272  m_MethodsSizer->Add(itemCheckBox11, 0, wxALIGN_LEFT|wxALL, 5);
273 
274  wxBoxSizer* itemBoxSizer12 = new wxBoxSizer(wxHORIZONTAL);
275  itemStaticBoxSizer3->Add(itemBoxSizer12, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 0);
276 
277  m_OtherMethod = new wxCheckBox( itemPanel1, ID_CHECKBOX12, _("Other"), wxDefaultPosition, wxDefaultSize, 0 );
278  m_OtherMethod->SetValue(false);
279  itemBoxSizer12->Add(m_OtherMethod, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
280 
281  m_OtherMethodText = new wxTextCtrl( itemPanel1, ID_OTHERMETHODTEXTCTRL, wxEmptyString, wxDefaultPosition, wxSize(200, -1), 0 );
282  m_OtherMethodText->Enable(false);
283  itemBoxSizer12->Add(m_OtherMethodText, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
284 
285  wxStaticBox* itemStaticBoxSizer15Static = new wxStaticBox(itemPanel1, wxID_ANY, _("What program(s) did you use to assemble your sequences?"));
286  wxStaticBoxSizer* itemStaticBoxSizer15 = new wxStaticBoxSizer(itemStaticBoxSizer15Static, wxVERTICAL);
287  itemBoxSizer2->Add(itemStaticBoxSizer15, 0, wxGROW|wxALL, 5);
288 
289  m_AssemblyProgramSizer = new wxBoxSizer(wxVERTICAL);
290  itemStaticBoxSizer15->Add(m_AssemblyProgramSizer, 0, wxGROW|wxALL, 0);
291 
292  m_SingleAssemblyProgram = new CSingleAssemblyProgramPanel( itemPanel1, ID_ASSEMBLYFOREIGN, wxDefaultPosition, wxSize(100, 100), 0 );
293  m_AssemblyProgramSizer->Add(m_SingleAssemblyProgram, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 10);
294 
295  m_AddPrograms = new wxHyperlinkCtrl( itemPanel1, ID_BUTTON2, _("Add More Assembly Programs"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
296  m_AssemblyProgramSizer->Add(m_AddPrograms, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
297 
298  wxFlexGridSizer* itemFlexGridSizer19 = new wxFlexGridSizer(2, 2, 0, 0);
299  itemBoxSizer2->Add(itemFlexGridSizer19, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
300 
301  wxStaticText* itemStaticText20 = new wxStaticText( itemPanel1, wxID_STATIC, _("Assembly Name (optional):"), wxDefaultPosition, wxDefaultSize, 0 );
302  itemFlexGridSizer19->Add(itemStaticText20, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
303 
304  m_AssemblyName = new wxTextCtrl( itemPanel1, ID_TEXTCTRL19, wxEmptyString, wxDefaultPosition, wxSize(150, -1), 0 );
305  itemFlexGridSizer19->Add(m_AssemblyName, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5);
306 
307  wxStaticText* itemStaticText22 = new wxStaticText( itemPanel1, wxID_STATIC, _("Coverage (optional):"), wxDefaultPosition, wxDefaultSize, 0 );
308  itemFlexGridSizer19->Add(itemStaticText22, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
309 
310  m_Coverage = new wxTextCtrl( itemPanel1, ID_TEXTCTRL20, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
311  itemFlexGridSizer19->Add(m_Coverage, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5);
312 
313  wxBoxSizer* itemBoxSizer23 = new wxBoxSizer(wxHORIZONTAL);
314  itemBoxSizer2->Add(itemBoxSizer23, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 0);
315 
316  wxHyperlinkCtrl* itemHyperlinkCtrl24 = new wxHyperlinkCtrl( itemPanel1, ID_BUTTON, _("Clear"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
317  itemBoxSizer23->Add(itemHyperlinkCtrl24, 0, wxALL, 5);
318 
319 
320 ////@end CSequencingTechnologyPanel content construction
321 // m_ListBook->GetListView()->Show(false);
323 }
324 
325 
327 {
328  wxSizerItemList& itemList = m_MethodsSizer->GetChildren();
329  size_t pos = 0;
330  while (pos < itemList.size()) {
331  wxCheckBox* method_check = dynamic_cast<wxCheckBox*>(itemList[pos]->GetWindow());
332  if (method_check) {
333  method_check->SetValue(false);
334  }
335  pos++;
336  }
337  m_OtherMethod->SetValue(false);
338  m_OtherMethodText->SetValue(wxEmptyString);
339  m_OtherMethodText->Enable(false);
340 }
341 
342 
344 {
346  return;
347  }
348 
349  Freeze();
351  while (m_AssemblyProgramSizer->GetItemCount() > 0) {
352  int pos = 0;
353  m_AssemblyProgramSizer->GetItem(pos)->DeleteWindows();
354  m_AssemblyProgramSizer->Remove(pos);
355  }
358 
359  m_AssemblyProgram = new CMultipleAssemblyProgramPanel( this, ID_ASSEMBLYFOREIGN, wxDefaultPosition, wxSize(100, 100), wxSIMPLE_BORDER );
360  m_AssemblyProgramSizer->Add(m_AssemblyProgram, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
362  Layout();
363  Thaw();
364 }
365 
366 
368 {
369  if (!wxPanel::TransferDataToWindow())
370  return false;
371 
372  x_ClearMethods();
373 
374  ITERATE (CUser_object::TData, it, m_User->GetData()) {
375  string field_name = "";
376  const CObject_id& obj_id = (*it)->GetLabel();
377  if ( obj_id.IsStr() ) {
378  field_name = obj_id.GetStr();
379  }
380  string value = "";
381  if ((*it)->IsSetData()) {
382  if ((*it)->GetData().IsStr()) {
383  value = (*it)->GetData().GetStr();
384  } else if ((*it)->GetData().IsInt()) {
385  value = NStr::IntToString ((*it)->GetData().GetInt());
386  }
387  }
388 
389  if (NStr::EqualNocase (field_name, "Assembly Name")) {
390  m_AssemblyName->SetValue(ToWxString (value));
391  } else if (NStr::EqualNocase (field_name, "Coverage")) {
392  m_Coverage->SetValue(ToWxString (value));
393  } else if (NStr::EqualNocase (field_name, "Assembly Method")) {
394  if (NStr::Find(value, ";") != string::npos) {
396  }
398  } else if (NStr::EqualNocase (field_name, "Sequencing Technology")) {
399  vector<string> techs;
400  NStr::Split (value, ";", techs);
401  string other_methods = "";
402  ITERATE (vector<string>, it, techs) {
403  string tech = NStr::TruncateSpaces(*it);
404  wxSizerItemList& itemList = m_MethodsSizer->GetChildren();
405  bool found = false;
406  size_t pos = 0;
407  while (pos < itemList.size() && !found) {
408  wxCheckBox* method_check = dynamic_cast<wxCheckBox*>(itemList[pos]->GetWindow());
409  if (method_check) {
410  if (NStr::EqualNocase(tech, ToStdString (method_check->GetLabel()))) {
411  method_check->SetValue(true);
412  found = true;
413  }
414  }
415  pos++;
416  }
417  if (!found) {
418  if (!NStr::IsBlank(other_methods)) {
419  other_methods += "; ";
420  }
421  other_methods += *it;
422  }
423  }
424  if (!NStr::IsBlank(other_methods)) {
425  m_OtherMethod->SetValue(true);
426  m_OtherMethodText->SetValue(ToWxString (other_methods));
427  m_OtherMethodText->Enable(true);
428  }
429  }
430  }
431 
432  return true;
433 }
434 
435 
436 static const string kKnownFields[] = {
437  "Assembly Method",
438  "Assembly Name",
439  "Coverage",
440  "Sequencing Technology",
441  "StructuredCommentPrefix",
442  "StructuredCommentSuffix"
443 };
444 
445 static const int kNumKnownFields = sizeof (kKnownFields) / sizeof (string);
446 
447 static bool IsKnownField (const CObject_id& label)
448 {
449  if (!label.IsStr()) {
450  return false;
451  }
452  for (int i = 0; i < kNumKnownFields; i++) {
453  if (NStr::EqualNocase(kKnownFields[i], label.GetStr())) {
454  return true;
455  }
456  }
457  return false;
458 }
459 
460 
462 {
463  if (!wxPanel::TransferDataFromWindow())
464  return false;
465 
466  CUser_object::TData::iterator it = m_User->SetData().begin();
467  while (it != m_User->SetData().end()) {
468  if (IsKnownField((*it)->GetLabel())) {
469  it = m_User->SetData().erase(it);
470  } else {
471  ++it;
472  }
473  }
474 
475  string prefix;
476  if (m_StandardCommentCtrl) {
477  prefix = ToStdString (m_StandardCommentCtrl->GetStringSelection());
478  if (!NStr::IsBlank(prefix)) {
479  // structured comment prefix
481  m_User->AddField ("StructuredCommentPrefix", prefix);
482  }
483  }
484 
485  string program = m_AssemblyProgram->GetValue();
486  if (!NStr::IsBlank(program)) {
487  CUser_field& program = m_User->SetField("Assembly Method");
488  program.SetData().SetStr(m_AssemblyProgram->GetValue());
489  }
490  // optional fields
491  if (!m_AssemblyName->GetValue().IsEmpty()) {
492  CUser_field& assembly_name = m_User->SetField("Assembly Name");
493  assembly_name.SetData().SetStr(ToStdString(m_AssemblyName->GetValue()));
494  }
495  if (!m_Coverage->GetValue().IsEmpty()) {
496  CUser_field& coverage = m_User->SetField("Coverage");
497  coverage.SetData().SetStr(ToStdString(m_Coverage->GetValue()));
498  }
499 
500  // Sequencing Technology field is last
501  string method = "";
502  wxSizerItemList& itemList = m_MethodsSizer->GetChildren();
503  size_t pos = 0;
504  while (pos < itemList.size()) {
505  wxCheckBox* method_check = dynamic_cast<wxCheckBox*>(itemList[pos]->GetWindow());
506  if (method_check) {
507  if (method_check->GetValue()) {
508  if (!NStr::IsBlank(method)) {
509  method += "; ";
510  }
511  method += ToStdString (method_check->GetLabel());
512  }
513  }
514  pos++;
515  }
516  if (m_OtherMethod->GetValue()) {
517  string other_method = ToStdString (m_OtherMethodText->GetValue());
518  if (!NStr::IsBlank(other_method)) {
519  if (!NStr::IsBlank(method)) {
520  method += "; ";
521  }
522  method += other_method;
523  }
524  }
525  CUser_field& seqtech = m_User->SetField ("Sequencing Technology");
526  seqtech.SetData().SetStr(method);
527 
528  if (!NStr::IsBlank(prefix)) {
529  NStr::ReplaceInPlace (prefix, "START##", "END##");
530  m_User->AddField ("StructuredCommentSuffix", prefix);
531  }
532 
533  return true;
534 }
535 
536 
538 {
539  if (m_User)
540  return m_User;
541 
543 }
544 
545 
546 /*!
547  * Should we show tooltips?
548  */
549 
551 {
552  return true;
553 }
554 
555 /*!
556  * Get bitmap resources
557  */
558 
559 wxBitmap CSequencingTechnologyPanel::GetBitmapResource( const wxString& name )
560 {
561  // Bitmap retrieval
562 ////@begin CSequencingTechnologyPanel bitmap retrieval
563  wxUnusedVar(name);
564  return wxNullBitmap;
565 ////@end CSequencingTechnologyPanel bitmap retrieval
566 }
567 
568 /*!
569  * Get icon resources
570  */
571 
572 wxIcon CSequencingTechnologyPanel::GetIconResource( const wxString& name )
573 {
574  // Icon retrieval
575 ////@begin CSequencingTechnologyPanel icon retrieval
576  wxUnusedVar(name);
577  return wxNullIcon;
578 ////@end CSequencingTechnologyPanel icon retrieval
579 }
580 
581 
582 /*!
583  * wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_CHECKBOX12
584  */
585 
587 {
588  m_OtherMethodText->Enable(m_OtherMethod->GetValue());
589 }
590 
591 
592 /*!
593  * wxEVT_COMMAND_HYPERLINK event handler for ID_BUTTON
594  */
595 
596 void CSequencingTechnologyPanel::OnClearClicked( wxHyperlinkEvent& event )
597 {
598  x_ClearMethods();
599 
601  m_AssemblyName->SetValue(wxEmptyString);
602  m_Coverage->SetValue (wxEmptyString);
603 }
604 
605 
606 /*!
607  * wxEVT_COMMAND_HYPERLINK event handler for ID_BUTTON2
608  */
609 
611 {
613 }
614 
615 
616 void CSequencingTechnologyPanel::ChangeSeqdesc(const objects::CSeqdesc& desc)
617 {
619  m_User->Assign(desc.GetUser());
621 }
622 
623 
624 void CSequencingTechnologyPanel::UpdateSeqdesc(objects::CSeqdesc& desc)
625 {
628  desc.SetUser(*user);
629 }
630 
631 
633 
User-defined methods of the data storage class.
User-defined methods of the data storage class.
EVT_CHECKBOX(ID_CADJUSTFEATURES_CHECKBOX, CAdjustFeaturesForGaps::OnKnownUnknownSelected) EVT_CHECKBOX(ID_CADJUSTFEATURES_CHECKBOX1
virtual void SetValue(const string &val)
static CConstRef< CComment_set > GetCommentRules()
CRegistryWriteView GetWriteView(const string &section)
get a read-write view at a particular level.
Definition: registry.cpp:462
static CGuiRegistry & GetInstance()
access the application-wide singleton
Definition: registry.cpp:400
CRegistryReadView GetReadView(const string &section) const
get a read-only view at a particular level.
Definition: registry.cpp:428
class CRegistryReadView provides a nested hierarchical view at a particular key.
Definition: reg_view.hpp:58
bool GetBool(const string &key, bool default_val=false) const
Definition: reg_view.cpp:241
void Set(const string &key, int val)
access a named key at this level, with no recursion
Definition: reg_view.cpp:533
CRef< objects::CUser_object > GetUser_object() const
CRef< objects::CUser_object > m_User
bool Create(wxWindow *parent, wxWindowID id=ID_CSEQUENCINGTECHNOLOGYPANEL, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(400, 300), long style=wxTAB_TRAVERSAL)
Creation.
wxIcon GetIconResource(const wxString &name)
Retrieves icon resources.
CSingleAssemblyProgramPanel * m_SingleAssemblyProgram
void CreateControls()
Creates the controls and sizers.
wxBitmap GetBitmapResource(const wxString &name)
Retrieves bitmap resources.
static bool ShowToolTips()
Should we show tooltips?
void SetRegistryPath(const string &reg_path)
virtual void UpdateSeqdesc(objects::CSeqdesc &desc)
void Init()
Initialises member variables.
virtual void ChangeSeqdesc(const objects::CSeqdesc &desc)
void OnOtherMethodClick(wxCommandEvent &event)
wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_CHECKBOX12
void OnButton2HyperlinkClicked(wxHyperlinkEvent &event)
wxEVT_COMMAND_HYPERLINK event handler for ID_BUTTON2
void OnClearClicked(wxHyperlinkEvent &event)
wxEVT_COMMAND_HYPERLINK event handler for ID_BUTTON
CAssemblyProgramPanel * m_AssemblyProgram
static void s_RemovePoundSigns(string &str)
static void s_AddPoundSigns(string &str)
char value[7]
Definition: config.c:431
#define ID_CHECKBOX12
#define _(proto)
Definition: ct_nlmzip_i.h:78
static void Init(void)
Definition: cursor6.c:76
#define ID_BUTTON2
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
Definition: ncbimisc.hpp:815
#define NULL
Definition: ncbistd.hpp:225
void Reset(void)
Reset reference object.
Definition: ncbiobj.hpp:773
#define END_NCBI_SCOPE
End previously defined NCBI scope.
Definition: ncbistl.hpp:103
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
Definition: ncbistl.hpp:100
static list< string > & Split(const CTempString str, const CTempString delim, list< string > &arr, TSplitFlags flags=0, vector< SIZE_TYPE > *token_pos=NULL)
Split a string using specified delimiters.
Definition: ncbistr.cpp:3457
static bool IsBlank(const CTempString str, SIZE_TYPE pos=0)
Check if a string is blank (has no text).
Definition: ncbistr.cpp:106
static string IntToString(int value, TNumToStringFlags flags=0, int base=10)
Convert int to string.
Definition: ncbistr.hpp:5084
static SIZE_TYPE Find(const CTempString str, const CTempString pattern, ECase use_case=eCase, EDirection direction=eForwardSearch, SIZE_TYPE occurrence=0)
Find the pattern in the string.
Definition: ncbistr.cpp:2887
static bool EqualNocase(const CTempString s1, SIZE_TYPE pos, SIZE_TYPE n, const char *s2)
Case-insensitive equality of a substring with another string.
Definition: ncbistr.hpp:5353
static string & ReplaceInPlace(string &src, const string &search, const string &replace, SIZE_TYPE start_pos=0, SIZE_TYPE max_replace=0, SIZE_TYPE *num_replace=0)
Replace occurrences of a substring within a string.
Definition: ncbistr.cpp:3401
static string TruncateSpaces(const string &str, ETrunc where=eTrunc_Both)
Truncate spaces in a string.
Definition: ncbistr.cpp:3182
static const char label[]
bool IsStr(void) const
Check if variant Str is selected.
Definition: Object_id_.hpp:291
const TStr & GetStr(void) const
Get the variant data.
Definition: Object_id_.hpp:297
void SetData(TData &value)
Assign a value to Data data member.
vector< CRef< CUser_field > > TData
const TPrefix & GetPrefix(void) const
Get the Prefix member data.
list< CRef< CComment_rule > > Tdata
END_EVENT_TABLE()
int i
const struct ncbi::grid::netcache::search::fields::SIZE size
static const char * prefix[]
Definition: pcregrep.c:405
static static static wxID_ANY
USING_SCOPE(objects)
static const int kNumKnownFields
static bool IsKnownField(const CObject_id &label)
static const char * kReplaceAll
static const string kKnownFields[]
#define ID_BUTTON
wxString ToWxString(const string &s)
Definition: wx_utils.hpp:173
string ToStdString(const wxString &s)
Definition: wx_utils.hpp:161
Modified on Wed Mar 27 11:19:47 2024 by modify_doxy.py rev. 669887