wxWindowID
id,
constwxString& caption,
constwxPoint& pos,
constwxSize&
size,
longstyle ) :
114m_Workbench (workbench)
120 m_Gen=
newobjects::CCit_gen();
125 Create(parent,
id, caption, pos,
size, style);
136SetExtraStyle(wxWS_EX_BLOCK_EVENTS);
137wxDialog::Create( parent,
id, caption, pos,
size, style );
142GetSizer()->SetSizeHints(
this);
178 #define NCBI_AuthorCompareFields(Field,Obj1,Obj2) \ 179 if (##Obj1.IsSet##Field()) { \ 180 if (##Obj2.IsSet##Field()) { \ 181 if (!NStr::Equal(##Obj1.Get##Field(), ##Obj2.Get##Field())) { \ 184 } else if (!NStr::IsBlank(##Obj1.Get##Field())) { \ 188 if (##Obj2.IsSet##Field() && !NStr::IsBlank(##Obj2.Get##Field())) { \ 195 if(p1.IsSetLast()) {
196 if(p2.IsSetLast()) {
208 if(p1.IsSetFirst()) {
209 if(p2.IsSetFirst()) {
210 if(!
NStr::Equal(p1.GetFirst(), p2.GetFirst())) {
221 if(p1.IsSetInitials()) {
222 if(p2.IsSetInitials()) {
223 if(!
NStr::Equal(p1.GetInitials(), p2.GetInitials())) {
230 if(p2.IsSetInitials() && !
NStr::IsBlank(p2.GetInitials())) {
234 if(p1.IsSetSuffix()) {
235 if(p2.IsSetSuffix()) {
236 if(!
NStr::Equal(p1.GetSuffix(), p2.GetSuffix())) {
252 bool s_AffilSame(
constobjects::CAffil& a1,
constobjects::CAffil& a2)
254 if(a1.IsStr() && !a2.IsStr()) {
256}
else if(!a1.IsStr() && a2.IsStr()) {
258}
else if(a1.IsStr()) {
260}
else if(a1.IsStd() && !a2.IsStd()) {
262}
else if(!a1.IsStd() && a2.IsStd()) {
264}
else if(a1.IsStd()) {
265 constobjects::CAffil::TStd& af1 = a1.GetStd();
266 constobjects::CAffil::TStd& af2 = a2.GetStd();
269 if(af1.IsSetAffil()) {
270val1 = af1.GetAffil();
272 if(af2.IsSetAffil()) {
273val2 = af2.GetAffil();
280 if(af1.IsSetDiv()) {
283 if(af2.IsSetDiv()) {
291 if(af1.IsSetCity()) {
292val1 = af1.GetCity();
294 if(af2.IsSetCity()) {
295val2 = af2.GetCity();
302 if(af1.IsSetSub()) {
305 if(af2.IsSetSub()) {
313 if(af1.IsSetCountry()) {
314val1 = af1.GetCountry();
316 if(af2.IsSetCountry()) {
317val2 = af2.GetCountry();
324 if(af1.IsSetStreet()) {
325val1 = af1.GetStreet();
327 if(af2.IsSetStreet()) {
328val2 = af2.GetStreet();
335 if(af1.IsSetEmail()) {
336val1 = af1.GetEmail();
338 if(af2.IsSetEmail()) {
339val2 = af2.GetEmail();
346 if(af1.IsSetFax()) {
349 if(af2.IsSetFax()) {
357 if(af1.IsSetPhone()) {
358val1 = af1.GetPhone();
360 if(af2.IsSetPhone()) {
361val2 = af2.GetPhone();
368 if(af1.IsSetPostal_code()) {
369val1 = af1.GetPostal_code();
371 if(af2.IsSetPostal_code()) {
372val2 = af2.GetPostal_code();
382 bool s_AuthorsSame(
constobjects::CAuthor& a1,
constobjects::CAuthor& a2)
384 if(a1.IsSetName() && !a2.IsSetName()) {
386}
else if(!a1.IsSetName() && a2.IsSetName()) {
388}
else if(!a1.IsSetName()) {
390}
else if(a1.GetName().IsStr() && !a2.GetName().IsStr()) {
392}
else if(!a1.GetName().IsStr() && a2.GetName().IsStr()) {
394}
else if(a1.GetName().IsStr()) {
395 return NStr::Equal(a1.GetName().GetStr(), a2.GetName().GetStr());
396}
else if(a1.GetName().IsName() && !a2.GetName().IsName()) {
398}
else if(!a1.GetName().IsName() && a2.GetName().IsName()) {
400}
else if(a1.GetName().IsName()) {
401 return s_Name_stdsSame(a1.GetName().GetName(), a2.GetName().GetName());
410 if(list1.IsSetNames() && !list2.IsSetNames()) {
412}
else if(!list1.IsSetNames() && list2.IsSetNames()) {
414}
else if(!list1.IsSetNames()) {
416}
else if(list1.GetNames().Which() != list2.GetNames().Which()) {
418}
else if(list1.GetNames().IsStd()) {
419objects::CAuth_list::C_Names::TStd::const_iterator it1 = list1.GetNames().GetStd().begin();
420objects::CAuth_list::C_Names::TStd::const_iterator it2 = list2.GetNames().GetStd().begin();
421 while(it1 != list1.GetNames().GetStd().end() && it2 != list2.GetNames().GetStd().end()) {
428 if(it1 != list1.GetNames().GetStd().end() || it2 != list2.GetNames().GetStd().end()) {
432}
else if(list1.GetNames().IsStr()) {
433objects::CAuth_list::C_Names::TStr::const_iterator it1 = list1.GetNames().GetStr().begin();
434objects::CAuth_list::C_Names::TStr::const_iterator it2 = list2.GetNames().GetStr().begin();
435 while(it1 != list1.GetNames().GetStr().end() && it2 != list2.GetNames().GetStr().end()) {
442 if(it1 != list1.GetNames().GetStr().end() || it2 != list2.GetNames().GetStr().end()) {
463wxBoxSizer* itemBoxSizer2 =
newwxBoxSizer(wxVERTICAL);
464itemDialog1->SetSizer(itemBoxSizer2);
467itemBoxSizer2->Add(
m_Updatable, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
476wxBoxSizer* itemBoxSizer6 =
newwxBoxSizer(wxHORIZONTAL);
477itemBoxSizer2->Add(itemBoxSizer6, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
479wxButton* itemButton7 =
newwxButton( itemDialog1,
ID_CLEAR_BTN,
_(
"Clear"), wxDefaultPosition, wxDefaultSize, 0 );
480itemBoxSizer6->Add(itemButton7, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
482wxBoxSizer* itemBoxSizer8 =
newwxBoxSizer(wxHORIZONTAL);
483itemBoxSizer2->Add(itemBoxSizer8, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
485 m_BackBtn=
newwxButton( itemDialog1,
ID_BUTTON15,
_(
"< Back"), wxDefaultPosition, wxDefaultSize, 0 );
487itemBoxSizer8->Add(
m_BackBtn, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
489 m_NextBtn=
newwxButton( itemDialog1,
ID_BUTTON14,
_(
"Next >"), wxDefaultPosition, wxDefaultSize, 0 );
490itemBoxSizer8->Add(
m_NextBtn, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
492wxBoxSizer* itemBoxSizer11 =
newwxBoxSizer(wxHORIZONTAL);
493itemBoxSizer2->Add(itemBoxSizer11, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
495wxButton* itemButton12 =
newwxButton( itemDialog1,
ID_IMPORT_BTN,
_(
"Import Template"), wxDefaultPosition, wxDefaultSize, 0 );
496itemBoxSizer11->Add(itemButton12, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
498wxButton* itemButton13 =
newwxButton( itemDialog1,
ID_EXPORT_BTN,
_(
"Export Template"), wxDefaultPosition, wxDefaultSize, 0 );
499itemBoxSizer11->Add(itemButton13, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
512wxPanel* contact_panel =
newwxPanel(
m_Book);
513wxSizer* contact_sizer =
newwxBoxSizer(wxVERTICAL);
514contact_panel->SetSizer(contact_sizer);
516contact_sizer->Add(
m_ContactPanel, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
517wxSizer* alt_sizer =
newwxBoxSizer(wxHORIZONTAL);
518contact_sizer->Add(alt_sizer, 0, wxALIGN_LEFT|wxALL, 5);
519wxStaticText*
label=
newwxStaticText(contact_panel,
wxID_ANY,
_(
"Alternate Email Address"));
520alt_sizer->Add(
label, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
524 m_Book->AddPage(contact_panel,
wxT(
"Contact"));
526objects::CAuth_list& auth_list =
m_SubmitBlock->SetCit().SetAuthors();
535objects::CAuth_list& man_auth_list =
m_Gen->SetAuthors();
598|| (
names.IsStr() &&
names.GetStr().empty())
599|| (
names.IsStd() &&
names.GetStd().empty())
600|| (
names.IsMl() &&
names.GetMl().empty()))
613 boolis_blank =
false;
614 if(!auth.IsSetName())
618 else if(auth.GetName().IsStr())
625 else if(auth.GetName().IsName())
627 constobjects::CName_std& name = auth.GetName().GetName();
630&& (!name.IsSetInitials() ||
NStr::IsBlank(name.GetInitials()))
631&& (!name.IsSetSuffix() ||
NStr::IsBlank(name.GetSuffix())))
643objects::CAuth_list::TNames&
names=
m_SubmitBlock->SetCit().SetAuthors().SetNames();
644objects::CContact_info& contact =
m_SubmitBlock->SetContact();
651new_auth->Assign (contact.GetContact());
652 names.SetStd().push_back(new_auth);
661contact.SetContact().Assign(*
names.GetStd().front());
674}
else if(
names.IsStr()) {
675 ITERATE(objects::CAuth_list::TNames::TStr, it,
names.GetStr()) {
681}
else if(
names.IsStd()) {
682 ITERATE(objects::CAuth_list::TNames::TStd, it,
names.GetStd()) {
693 const string kAllSubmitMissing=
"Sequence authors, affiliation, and contact information is missing!";
698 const string kCityMissing=
"You must provide a city in affiliation.";
710 boolmissing_authors =
true;
711 boolmissing_affil =
true;
712 boolmissing_contact =
true;
713 boolmissing_email =
true;
714 boolmissing_city =
true;
715 boolmissing_country =
true;
717 if(block && block->IsSetCit()) {
718 if(block->GetCit().IsSetAuthors()) {
719 constobjects::CAuth_list& auth_list = block->GetCit().GetAuthors();
720 if(auth_list.IsSetNames()
722missing_authors =
false;
724 if(auth_list.IsSetAffil()) {
725 if(((auth_list.GetAffil().IsStr() && !
NStr::IsBlank(auth_list.GetAffil().GetStr()))
726|| (auth_list.GetAffil().IsStd() && auth_list.GetAffil().GetStd().IsSetAffil()
727&& !
NStr::IsBlank(auth_list.GetAffil().GetStd().GetAffil())))) {
728missing_affil =
false;
730 if(auth_list.GetAffil().IsStd()) {
731 if(auth_list.GetAffil().GetStd().IsSetCity() && !
NStr::IsBlank(auth_list.GetAffil().GetStd().GetCity())) {
732missing_city =
false;
734 if(auth_list.GetAffil().GetStd().IsSetCountry() && !
NStr::IsBlank(auth_list.GetAffil().GetStd().GetCountry())) {
735missing_country =
false;
741 if(block && block->IsSetContact()) {
742 if(block->GetContact().IsSetContact()) {
743missing_contact =
false;
745 if(block->GetContact().IsSetEmail()) {
746missing_email =
false;
750 if(missing_authors && missing_affil && missing_contact && missing_email) {
752}
else if(missing_authors) {
754}
else if(missing_affil) {
756}
else if(missing_contact) {
758}
else if(missing_email) {
760}
else if(missing_city) {
762}
else if(missing_country) {
767 if(block->IsSetHup() && block->IsSetReldate()) {
769 CTimerelease_date = block->GetReldate().AsCTime();
771err =
"Release date is in the past.";
773}
catch(exception &) {
774err =
"Release date is invalid";
821 if(
m_Book->GetPageCount() == 6) {
844objects::CAuth_list& auth_list =
m_SubmitBlock->SetCit().SetAuthors();
850auth_list.SetAffil(*affil);
852auth_list.ResetAffil();
866objects::CAuth_list::TNames&
names= block->SetCit().SetAuthors().SetNames();
868 names.SetStr().push_back(
" ");
870 if(!block->GetCit().GetAuthors().IsSetAffil()) {
871block->SetCit().SetAuthors().SetAffil().SetStd().SetAffil(
" ");
873block->SetContact().SetContact().SetAffil().Assign(block->GetCit().GetAuthors().GetAffil());
875block->SetContact().SetContact().SetName().SetStr(
" ");
879 if(!block->GetCit().IsSetDate()) {
881block->SetCit().SetDate(*submit_date);
909 m_Gen->ResetTitle();
911 m_Gen->SetTitle(title);
926 m_Gen->SetAuthors().SetAffil(*affil);
931 m_Gen->SetAuthors().ResetAffil();
935 m_Gen->SetCit(
"Unpublished");
938 if(!
m_Gen->IsSetDate()) {
940 m_Gen->SetDate(*submit_date);
952 boolmissing_authors =
true;
953 boolmissing_affil =
true;
954 boolmissing_title =
true;
958missing_title =
false;
960 if(
gen->IsSetAuthors()) {
961 constobjects::CAuth_list& auth_list =
gen->GetAuthors();
962 if(auth_list.IsSetNames()
964missing_authors =
false;
966 if(auth_list.IsSetAffil()
967&& ((auth_list.GetAffil().IsStr() && !
NStr::IsBlank(auth_list.GetAffil().GetStr()))
968|| (auth_list.GetAffil().IsStd() && auth_list.GetAffil().GetStd().IsSetAffil()
969&& !
NStr::IsBlank(auth_list.GetAffil().GetStd().GetAffil())))) {
970missing_affil =
false;
975 if(missing_title && missing_authors && missing_affil) {
977}
else if(missing_title) {
979}
else if(missing_authors) {
981}
else if(missing_affil) {
1047 if( this->wxWindow::IsShown() )
1056 intcurr =
m_Book->GetSelection();
1062 if(curr ==
m_Book->GetPageCount() - 1) {
1077 intcurr =
m_Book->GetSelection();
1079 m_Book->SetSelection(curr - 1);
1090 intcurr =
m_Book->GetSelection();
1091 if(curr < m_Book->GetPageCount() - 1) {
1092 m_Book->SetSelection(curr + 1);
1106objects::CAuth_list& man_auth_list =
m_Gen->SetAuthors();
1122objects::CAuth_list& man_auth_list =
m_Gen->SetAuthors();
1136vector<string> format_ids;
1137format_ids.push_back(
"file_loader_asn");
1138fileManager->LoadFormats(format_ids);
1140vector<CIRef<IOpenObjectsPanelClient> > loadManagers;
1144dlg.SetSize(710, 480);
1149 if(dlg.ShowModal() == wxID_OK) {
1151 if(!object_loader) {
1152wxMessageBox(
wxT(
"Failed to get object loader"),
wxT(
"Error"),
1153wxOK | wxICON_ERROR);
1167 boolany_unrecognized =
false;
1168 boolany_change =
false;
1169 stringalt_email =
"";
1171 const CObject& ptr = obj_it->GetObject();
1172 constobjects::CSubmit_block* block =
dynamic_cast<constobjects::CSubmit_block*
>(&ptr);
1180 constobjects::CSeqdesc* desc =
dynamic_cast<constobjects::CSeqdesc*
>(&ptr);
1182 if(desc->IsPub() && desc->GetPub().IsSetPub() && desc->GetPub().GetPub().IsSet()
1183&& desc->GetPub().GetPub().Get().size() == 1
1184&& desc->GetPub().GetPub().Get().front()->IsGen()) {
1188 m_Gen->Assign(desc->GetPub().GetPub().Get().front()->GetGen());
1194any_unrecognized =
true;
1197any_unrecognized =
true;
1201 if(any_unrecognized) {
1202wxMessageBox(
wxT(
"Warning: Unrecognized objects in template file"),
wxT(
"Error"),
1203wxOK | wxICON_ERROR);
1235 if(block && block->IsSetHup() && block->IsSetReldate()) {
1236 CTimerelease_date = block->GetReldate().AsCTime();
1238wxMessageBox(
wxT(
"Release date is in the past."),
wxT(
"Error"),
1239wxOK | wxICON_ERROR);
1257wxString wxs(errors);
1258wxMessageBox(
wxT(
"Cannot export invalid template: "+ wxs),
wxT(
"Error"),
1259wxOK | wxICON_ERROR);
1266 wxT(
"ASN.1 files (")+extensions +
wxT(
")|") + extensions +
wxT(
"|") +
1268wxFD_SAVE|wxFD_OVERWRITE_PROMPT);
1270 if(asn_save_file.ShowModal() == wxID_OK)
1272wxString path = asn_save_file.GetPath();
1273wxString name = asn_save_file.GetFilename();
1280wxMessageBox(
wxT(
"Please, select file name"),
wxT(
"Error"),
1281wxOK | wxICON_ERROR,
this);
1285 if(name.Find(wxUniChar(
'.')) == wxNOT_FOUND)
1287path +=
wxT(
".sqn");
1288name +=
wxT(
".sqn");
1295wxMessageBox(
wxT(
"Cannot open file ")+name,
wxT(
"Error"),
1296wxOK | wxICON_ERROR,
this);
1310pub->SetGen().Assign(*
gen);
1312desc->SetPub().SetPub().Set().push_back(pub);
1322desc->SetUser().Assign(*u);
1340 switch(
m_Book->GetSelection()) {
1361 m_Gen->ResetTitle();
1365 m_Gen->ResetAuthors();
EVT_CHECKBOX(ID_CADJUSTFEATURES_CHECKBOX, CAdjustFeaturesForGaps::OnKnownUnknownSelected) EVT_CHECKBOX(ID_CADJUSTFEATURES_CHECKBOX1
bool GUI_AsyncExecUnit(IExecuteUnit &exec_unit, const wxString &msg)
@Auth_list.hpp User-defined methods of the data storage class.
void SetAffil(CRef< objects::CAffil > affil)
virtual bool TransferDataToWindow()
virtual bool TransferDataFromWindow()
CRef< objects::CAffil > GetAffil()
void PopulateAuthors(objects::CAuth_list &auth_list)
virtual bool TransferDataToWindow()
virtual bool TransferDataFromWindow()
virtual void SetAuthors(const objects::CAuth_list &auth_list)
virtual void SetRegistryPath(const string &path)
static wxString GetDialogFilter(EFileType fileType)
IObjectLoader * GetObjectLoader()
void SetManagers(vector< CIRef< IOpenObjectsPanelClient > > &managers)
virtual bool TransferDataFromWindow()
virtual bool TransferDataToWindow()
void UnselectReleaseDateChoice()
Base class for all serializable objects.
static string GetCitGenProblems(CRef< objects::CCit_gen > gen)
wxCheckBox * m_AuthorsSame
CRef< objects::CCit_gen > x_CreateCitGen()
string GetAlternateEmailAddress()
CUnpublishedPanel * m_UnpublishedPanel
CAuthorAffiliationPanel * m_AffilPanel
CRef< objects::CSubmit_block > GetSubmitBlock()
void OnNextBtnClick(wxCommandEvent &event)
wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON14
static string GetBlockProblems(CRef< objects::CSubmit_block > block)
bool Create(wxWindow *parent, wxWindowID id=10015, const wxString &caption=_("Submission Information"), const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(400, 300), long style=wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU|wxCLOSE_BOX|wxTAB_TRAVERSAL)
Creation.
void OnSeparateAuthorsClick(wxCommandEvent &event)
wxCheckBox * m_AffilsSame
CRef< objects::CSubmit_block > m_SubmitBlock
CRef< objects::CCit_gen > m_Gen
wxBoxSizer * m_SameAuthSizer
~CSubmitBlockDlg()
Destructor.
CRef< objects::CCit_gen > GetCitGen()
void OnCopySeqAuthToManAuthClick(wxCommandEvent &event)
CReleaseDatePanel * m_ReleaseDatePanel
void Init()
Initialises member variables.
wxIcon GetIconResource(const wxString &name)
Retrieves icon resources.
wxTextCtrl * m_AlternateEmail
void SetAlternateEmailAddress(string alt_email)
CAuthorNamesPanel * m_SequenceAuthorsPanel
void OnClearBtnClick(wxCommandEvent &event)
wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_CLEAR_BTN
CSubmitBlockDlg()
Constructors.
void OnBackBtnClick(wxCommandEvent &event)
wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON15
wxButton * m_CopySeqAuthToManAuth
void OnExportBtnClick(wxCommandEvent &event)
wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_EXPORT_BTN
void SetPageForError(string errors)
wxBitmap GetBitmapResource(const wxString &name)
Retrieves bitmap resources.
CAuthorNamesPanel * m_ManAuthorsPanel
void UnselectReleaseDateChoice()
void CreateControls()
Creates the controls and sizers.
CContactPanel * m_ContactPanel
void OnSubmitblockdlgPageChanged(wxNotebookEvent &event)
wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED event handler for ID_SUBMITBLOCKDLGLISTBOOK
static bool ShowToolTips()
Should we show tooltips?
void OnImportBtnClick(wxCommandEvent &event)
wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_IMPORT_BTN
CRef< objects::CSubmit_block > x_CreateBlock()
void SetTitle(const string &title)
virtual bool PreExecute()=0
virtual bool PostExecute()=0
vector< SObject > TObjects
IWorkbench is the central interface in the application framework.
std::ofstream out("events_result.xml")
main entry point for tests
static const struct name_t names[]
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
#define MSerial_AsnText
I/O stream manipulators â.
TObjectType * GetPointer(void) THROWS_NONE
Get pointer,.
void Reset(void)
Reset reference object.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
IO_PREFIX::ofstream CNcbiOfstream
Portable alias for ofstream.
static SIZE_TYPE FindNoCase(const CTempString str, const CTempString pattern, SIZE_TYPE start, SIZE_TYPE end, EOccurrence which=eFirst)
Find the pattern in the specified range of a string using a case insensitive search.
static bool IsBlank(const CTempString str, SIZE_TYPE pos=0)
Check if a string is blank (has no text).
static bool Equal(const CTempString s1, SIZE_TYPE pos, SIZE_TYPE n, const char *s2, ECase use_case=eCase)
Test for equality of a substring with another string.
@ eCurrent
Use current time. See also CCurrentTime.
static const char label[]
void SetAffil(TAffil &value)
Assign a value to Affil data member.
void ResetAffil(void)
Reset Affil data member.
constexpr bool empty(list< Ts... >) noexcept
const struct ncbi::grid::netcache::search::fields::SIZE size
bool s_AuthorListsSame(const objects::CAuth_list &list1, const objects::CAuth_list &list2)
const string kAffilMissing
const string kTitleMissing
const string kInvalidEmail
const string kAllCitGenMissing
const string kSequenceAuthorsMissing
bool s_Name_stdsSame(const objects::CName_std &p1, const objects::CName_std &p2)
const string kEmailMissing
bool s_AuthListEmpty(const objects::CAuth_list::TNames &names)
const string kManuscriptAuthorsMissing
const string kContactMissing
static bool s_NamesNotSet(const objects::CAuth_list::TNames &names)
const string kCityMissing
const string kAllSubmitMissing
bool s_AffilSame(const objects::CAffil &a1, const objects::CAffil &a2)
bool s_AuthorsSame(const objects::CAuthor &a1, const objects::CAuthor &a2)
bool s_AuthorNameBlank(const objects::CAuthor &auth)
const string kCountryMissing
#define ID_SUBMITBLOCKDLG_SAME_AUTHORS
#define ID_COPY_SEQ_AUTH_TO_MAN_AUTH
#define ID_SUBMITBLOCKDLGLISTBOOK
CRef< objects::CUser_object > MakeBankItSubmissionObject()
bool IsValidEmail(string email)
bool IsBankItSubmissionObject(const objects::CUser_object &user)
string GetDescAlternateEmailAddress(const objects::CSeqdesc &desc)
const string kSubmissionPreparationToolVersion
wxString GetAsnSqnExtensions()
void SetUserAlternateEmailAddress(objects::CUser_object &u, string alt_email)
wxString ToWxString(const string &s)
string ToAsciiStdString(const wxString &input)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4