49 #include <wx/textctrl.h>
50 #include <wx/arrstr.h>
52 #include <wx/radiobox.h>
53 #include <wx/checkbox.h>
54 #include <wx/choice.h>
55 #include <wx/msgdlg.h>
56 #include <wx/valgen.h>
57 #include <wx/button.h>
87 for (; iter != sm_ITSMap.end(); ++iter){
88 if (iter->second == field_type){
98 if (iter != sm_ITSMap.end()){
118 for (; iter != sm_IGSMap.end(); ++iter){
119 if (iter->second == field_type){
129 if (iter != sm_IGSMap.end()){
155 wxWindowID
id,
const wxString& caption,
const wxPoint& pos,
156 const wxSize&
size,
long style )
160 Create(parent,
id, caption, pos,
size, style);
167 SetExtraStyle(wxWS_EX_BLOCK_EVENTS);
173 GetSizer()->SetSizeHints(
this);
203 wxBoxSizer* itemBoxSizer2 =
new wxBoxSizer(wxVERTICAL);
204 itemCBulkCmdDlg1->SetSizer(itemBoxSizer2);
206 wxBoxSizer* itemBoxSizer3 =
new wxBoxSizer(wxHORIZONTAL);
207 itemBoxSizer2->Add(itemBoxSizer3, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 3);
209 m_5partial =
new wxCheckBox( itemCBulkCmdDlg1,
ID_CHECKBOX7,
_(
"5' Partial"), wxDefaultPosition, wxDefaultSize, 0 );
211 itemBoxSizer3->Add(
m_5partial, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2);
213 itemBoxSizer3->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
215 m_3partial =
new wxCheckBox( itemCBulkCmdDlg1,
ID_CHECKBOX8,
_(
"3' Partial"), wxDefaultPosition, wxDefaultSize, 0 );
217 itemBoxSizer3->Add(
m_3partial, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2);
219 wxBoxSizer* itemBoxSizer7 =
new wxBoxSizer(wxHORIZONTAL);
220 itemBoxSizer2->Add(itemBoxSizer7, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 0);
225 m_AlignCoords =
new wxCheckBox( itemCBulkCmdDlg1,
ID_CHECKBOX9,
_(
"Use alignment coordinates"), wxDefaultPosition, wxDefaultSize, 0 );
227 itemBoxSizer7->Add(
m_AlignCoords, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2);
231 wxArrayString m_ITSRadioboxStrings;
232 m_ITSRadioboxStrings.Add(
_(
"&ITS"));
233 m_ITSRadioboxStrings.Add(
_(
"&IGS"));
234 m_ITSRadiobox =
new wxRadioBox( itemCBulkCmdDlg1,
ID_RADIOBOX_ITS_IGS, wxEmptyString, wxDefaultPosition, wxDefaultSize, m_ITSRadioboxStrings, 1, wxRA_SPECIFY_ROWS );
236 itemBoxSizer7->Add(
m_ITSRadiobox, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2);
238 wxArrayString itemChoiceStrings;
245 wxFlexGridSizer* itemFlexGridSizer10 =
new wxFlexGridSizer(5, 3, -1, -1);
246 itemBoxSizer2->Add(itemFlexGridSizer10, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
249 first_choice.
rnaType =
new wxChoice( itemCBulkCmdDlg1,
ID_CHOICE_FIRST, wxDefaultPosition, wxDefaultSize, itemChoiceStrings, 0 );
250 itemFlexGridSizer10->Add(first_choice.
rnaType, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 2);
252 first_choice.
from =
new wxTextCtrl( itemCBulkCmdDlg1,
ID_TEXTCTRL_FFROM, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
253 itemFlexGridSizer10->Add(first_choice.
from, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 2);
255 first_choice.
to =
new wxTextCtrl( itemCBulkCmdDlg1,
ID_TEXTCTRL_FTO, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
256 itemFlexGridSizer10->Add(first_choice.
to, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 2);
259 second_choice.
rnaType =
new wxChoice( itemCBulkCmdDlg1,
ID_CHOICE_SECOND, wxDefaultPosition, wxDefaultSize, itemChoiceStrings, 0 );
260 itemFlexGridSizer10->Add(second_choice.
rnaType, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 2);
262 second_choice.
from =
new wxTextCtrl( itemCBulkCmdDlg1,
ID_TEXTCTRL_SFROM, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
263 itemFlexGridSizer10->Add(second_choice.
from, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 2);
265 second_choice.
to =
new wxTextCtrl( itemCBulkCmdDlg1,
ID_TEXTCTRL_STO, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
266 itemFlexGridSizer10->Add(second_choice.
to, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 2);
269 third_choice.
rnaType =
new wxChoice( itemCBulkCmdDlg1,
ID_CHOICE_THIRD, wxDefaultPosition, wxDefaultSize, itemChoiceStrings, 0 );
270 itemFlexGridSizer10->Add(third_choice.
rnaType, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 2);
272 third_choice.
from =
new wxTextCtrl( itemCBulkCmdDlg1,
ID_TEXTCTRL_TFROM, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
273 itemFlexGridSizer10->Add(third_choice.
from, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 2);
275 third_choice.
to =
new wxTextCtrl( itemCBulkCmdDlg1,
ID_TEXTCTRL_TTO, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
276 itemFlexGridSizer10->Add(third_choice.
to, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 2);
279 fourth_choice.
rnaType =
new wxChoice( itemCBulkCmdDlg1,
ID_CHOICE_FOURTH, wxDefaultPosition, wxDefaultSize, itemChoiceStrings, 0 );
280 itemFlexGridSizer10->Add(fourth_choice.
rnaType, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 2);
282 fourth_choice.
from =
new wxTextCtrl( itemCBulkCmdDlg1,
ID_TEXTCTRL_FOFROM, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
283 itemFlexGridSizer10->Add(fourth_choice.
from, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 2);
285 fourth_choice.
to =
new wxTextCtrl( itemCBulkCmdDlg1,
ID_TEXTCTRL_FOTO, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
286 itemFlexGridSizer10->Add(fourth_choice.
to, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 2);
289 fifth_choice.
rnaType =
new wxChoice( itemCBulkCmdDlg1,
ID_CHOICE_FIFTH, wxDefaultPosition, wxDefaultSize, itemChoiceStrings, 0 );
290 itemFlexGridSizer10->Add(fifth_choice.
rnaType, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 2);
292 fifth_choice.
from =
new wxTextCtrl( itemCBulkCmdDlg1,
ID_TEXTCTRL_FIFROM, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
293 itemFlexGridSizer10->Add(fifth_choice.
from, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 2);
295 fifth_choice.
to =
new wxTextCtrl( itemCBulkCmdDlg1,
ID_TEXTCTRL_FITO, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
296 itemFlexGridSizer10->Add(fifth_choice.
to, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 2);
298 wxBoxSizer* itemBoxSizer28 =
new wxBoxSizer(wxHORIZONTAL);
299 itemBoxSizer2->Add(itemBoxSizer28, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 0);
301 m_OK =
new wxButton( itemCBulkCmdDlg1,
ID_APPLY,
_(
"Accept"), wxDefaultPosition, wxDefaultSize, 0 );
302 itemBoxSizer28->Add(
m_OK, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
304 m_Cancel =
new wxButton( itemCBulkCmdDlg1,
ID_CLOSEBTN,
_(
"Close"), wxDefaultPosition, wxDefaultSize, 0 );
305 itemBoxSizer28->Add(
m_Cancel, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
309 itemBoxSizer28->Add(
m_LeaveUp, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
340 wxWindow::InitDialog();
393 for (; iter != sm_IGSMap.end(); ++iter){
403 TVecSeqFeat::iterator feat_it = featlist.begin();
406 (*feat_it)->SetPartial(
true);
410 feat_it = featlist.end() - 1;
412 (*feat_it)->SetPartial(
true);
474 wxWindow::TransferDataFromWindow();
569 unsigned int event_id = 1;
571 switch (event.GetId()) {
578 event_id = event_id + 2;
581 event_id = event_id + 3;
618 unsigned int row_sel = 0;
625 }
else if (
m_ChoiceList[row_sel].from->GetLineLength(0) > 0){
627 if (from_value.find_first_not_of(
"0123456789") !=
NPOS){
632 if (from > 1 && row_sel >= 1){
654 unsigned int row_sel = 0;
665 if ((from_value.find_first_not_of(
"0123456789") !=
NPOS) || (to_value.find_first_not_of(
"0123456789") !=
NPOS)){
694 wxArrayString labels;
776 bool align_present =
false;
778 align_present =
true;
797 sel_scope = it->scope;
798 }
else if (sel_scope != it->scope) {
799 m_ErrorMessage =
"Selected objects are from different projets.\nPlease move all objects to the same project and try again.";
805 bool modified =
false;
812 if (seqentry || (seqsubmit && seqsubmit->
IsEntrys())) {
820 if (seqentry || (seqsubmit && seqsubmit->
IsEntrys())) {
825 const CObject* ptr = it->object.GetPointer();
831 if (seqloc && seqloc->
IsWhole()) {
839 }
else if (bsh.
IsAa()){
844 if (bioseq->
IsNa()) {
849 }
else if (bioseq->
IsAa()){
853 }
else if (bioseq_set) {
870 if ( ! featlist.empty()) {
872 TVecConstSeqFeat::iterator feat_it = featlist.begin();
873 for ( ; feat_it != featlist.end(); ++feat_it) {
895 m_ErrorMessage =
"Cannot proceed. This bioseq belongs to more than one alignment.";
897 }
else if (align_nr == 1) {
899 wxYES_NO | wxCANCEL | wxICON_QUESTION);
932 if ( !entry || entry.
IsSeq() )
return;
934 for ( ; b_iter; ++b_iter) {
936 AddFeatures(*b_iter, featlist, composite, modified);
943 int answer = wxMessageBox (
ToWxString(
"You are not viewing a single Bioseq. Apply to all Bioseqs?"),
944 ToWxString(
"Question"), wxYES_NO | wxCANCEL | wxICON_QUESTION);
948 for ( ; b_iter; ++b_iter) {
950 AddFeatures(*b_iter, featlist, composite, modified);
959 AddFeatures(*b_iter, featlist, composite, modified);
970 if ( ! featlist.empty()) {
973 if (alignments.size() == 1) {
980 const CSeq_id& tgseq_id = (*target_id).GetObject();
983 false,
false,
true,
true, create_general_only, &listener);
986 if (listener.
Count() > 0) {
988 for (
size_t i = 0;
i < listener.
Count();
i++) {
992 wxOK | wxICON_ERROR,
NULL);
1001 vector<CConstRef<CSeq_align> > alignments;
1005 for ( ; align_it; ++align_it) {
1014 if ((*align_id)->Match(**bseq_id)) {
1029 return alignments.size();
1041 for (CBioseq::TId::const_iterator bseq_id = bseqIDs.begin(); bseq_id != bseqIDs.end() && !found; ++bseq_id) {
1042 if ((*align_id)->Match(**bseq_id)) {
1060 const CSeq_id& prop_id = (*iter).GetObject();
1061 if ((*bseq_id)->Match(prop_id)) {
1097 return const_featlist;
1099 int aln_from = 0, seq_from =
min;
1100 int aln_to = 0, seq_to =
max;
1111 return const_featlist;
1115 aln_from = aln_from - 1;
1117 if (seq_from <
min) { seq_from =
min; }
1120 if (seq_from >
max) {
1122 return const_featlist;
1127 return const_featlist;
1135 aln_to = aln_to - 1;
1137 if (seq_to >
max) { seq_to =
max; }
1141 return const_featlist;
1145 if (seq_from == seq_to) {
1156 featlist.push_back(new_feat);
1159 featlist.push_back(new_feat);
1167 return const_featlist;
1182 return const_featlist;
1194 if (from <
min ) { from =
min; }
1199 return const_featlist;
1205 return const_featlist;
1212 if (to >
max) { to =
max; }
1217 return const_featlist;
1231 featlist.push_back(new_feat);
1234 featlist.push_back(new_feat);
1240 return const_featlist;
@ eExtreme_Biological
5' and 3'
User-defined methods of the data storage class.
CStaticArrayMap< string, CApplyRNAITSDlg::ERNA_IGSType > TIGSMap
DEFINE_STATIC_ARRAY_MAP(TITSMap, sm_ITSMap, s_Rna_ITSStrings)
SStaticPair< const char *, CApplyRNAITSDlg::ERNA_ITSType > TITSLabelPair
static const TITSLabelPair s_Rna_ITSStrings[]
USING_SCOPE(ncbi::objects)
static const char * kApplyChoice
SStaticPair< const char *, CApplyRNAITSDlg::ERNA_IGSType > TIGSLabelPair
static const TIGSLabelPair s_Rna_IGSStrings[]
CStaticArrayMap< string, CApplyRNAITSDlg::ERNA_ITSType > TITSMap
#define ID_TEXTCTRL_SFROM
#define ID_LEAVE_DIALOG_UP
#define ID_TEXTCTRL_FOFROM
#define ID_RADIOBOX_ITS_IGS
#define ID_TEXTCTRL_FFROM
#define ID_TEXTCTRL_TFROM
#define ID_TEXTCTRL_FIFROM
bool IsGeneralIdProtPresent(objects::CSeq_entry_Handle tse)
const CSeq_id & GetSeqId(TNumrow row) const
TSignedSeqPos GetSeqPosFromAlnPos(TNumrow for_row, TSeqPos aln_pos, ESearchDirection dir=eNone, bool try_reverse_dir=true) const
TDim GetNumRows(void) const
TVecConstSeqId m_PropSeqids
void AddFeatures(const CBioseq_Handle &bsh, TVecConstSeqFeat &featlist, CRef< CCmdComposite > composite, bool &modified)
ERNA_ITSType GetNextRNA_ITSChoice(ERNA_ITSType field_type)
IAlnExplorer::TNumrow x_GetRow(const CBioseq &bioseq)
void Apply_RNAITS_ToTSE(CRef< CCmdComposite > composite, bool &modified)
bool x_WasPropagatedTo(const CBioseq_Handle &bsh)
returns true if features were already propagated to the sequence
void OnAnyOtherChoiceSelected(wxCommandEvent &event)
bool Create(wxWindow *parent, wxWindowID id=10307, const wxString &caption=_("Apply rRNA_ITS"), const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(400, 300), long style=wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU|wxCLOSE_BOX|wxTAB_TRAVERSAL)
Creation.
static ERNA_ITSType GetRNA_ITSTypeFromName(const string &label)
~CApplyRNAITSDlg()
Destructor.
void OnGoClick(wxCommandEvent &event)
vector< CRef< CSeq_feat > > TVecSeqFeat
void x_Set_ITSArray(wxArrayString &Its_tags)
TVecConstSeqFeat GetRNAITSList_AlignCoordFromDlg(const CBioseq_Handle &bsh)
void OnCancelClick(wxCommandEvent &event)
bool x_IsThereAlignment(void)
TVecConstSeqId x_SeqIdsAlignedWith(const CBioseq_Handle &bsh, const CSeq_align &align)
obtains a vector of seqIds aligned with bsh through the given alignment - used for feature propagatio...
wxBitmap GetBitmapResource(const wxString &name)
Retrieves bitmap resources.
void OnITSRadioBoxSelected(wxCommandEvent &event)
vector< CConstRef< CSeq_id > > TVecConstSeqId
TVecConstSeqFeat x_UpdatePartials(TVecSeqFeat &featlist)
if required, sets the first and last features incomplete
CApplyRNAITSDlg()
Constructors.
void Propagate_RNAITSList(const CBioseq_Handle &bsh, TVecConstSeqFeat &featlist, CRef< CCmdComposite > composite, bool &modified, bool create_general_only)
virtual void SetRegistryPath(const string ®_path)
virtual string GetErrorMessage()
void OnFirstChoiceSelected(wxCommandEvent &event)
ERNA_IGSType GetNextRNA_IGSChoice(ERNA_IGSType field_type)
static const string & GetRNA_IGSName(ERNA_IGSType field_type)
void x_Set_IGSArray(wxArrayString &Igs_tags)
static ERNA_IGSType GetRNA_IGSTypeFromName(const string &label)
wxCheckBox * m_AlignCoords
vector< CConstRef< CSeq_feat > > TVecConstSeqFeat
void Apply_RNAITS_ToBioseqSet(CSeq_entry_Handle entry, CRef< CCmdComposite > composite, bool &modified)
virtual void SaveSettings() const
static const string & GetRNA_ITSName(ERNA_ITSType field_type)
void x_SaveAndDestroyFrame()
static bool ShowToolTips()
Should we show tooltips?
wxRadioBox * m_ITSRadiobox
vector< CConstRef< CSeq_align > > x_GetAlignments(const CBioseq_Handle &bsh)
obtains all dense-seg type alignments where this bioseq is present, in this seq-entry
TVecConstSeqFeat ObtainRNAITSList(const CBioseq_Handle &bsh)
void CreateControls()
Creates the controls and sizers.
wxIcon GetIconResource(const wxString &name)
Retrieves icon resources.
virtual CRef< CCmdComposite > GetCommand()
CBulkCmdDlg pure virtual functions.
void OnCtrlToKillFocus(wxFocusEvent &event)
virtual void LoadSettings()
TVecConstSeqFeat GetRNAITSList_SeqCoordFromDlg(const CBioseq_Handle &bsh)
void Init()
Initialises member variables.
vector< SRNAITSChoice > m_ChoiceList
void OnCloseWindow(wxCloseEvent &event)
void Apply_RNAITS_ToBioseq(const CBioseq_Handle &bsh, CRef< CCmdComposite > composite, bool &modified, bool create_general_only)
void OnCtrlFromKillFocus(wxFocusEvent &event)
SIZE_TYPE x_BioseqInAlignments(const CBioseq_Handle &bsh)
returns the number of dense-seg type alignment which the bioseq belongs to
TConstScopedObjects GetSelectedObjects()
objects::CSeq_entry_Handle m_TopSeqEntry
bool Create(wxWindow *parent, wxWindowID id, const wxString &title, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxDEFAULT_FRAME_STYLE, const wxString &name=wxFrameNameStr)
bool GetTopLevelSeqEntryAndProcessor()
ICommandProccessor * m_CmdProccessor
void AddCommand(IEditCommand &command)
CRegistryWriteView GetWriteView(const string §ion)
get a read-write view at a particular level.
static CGuiRegistry & GetInstance()
access the application-wide singleton
CRegistryReadView GetReadView(const string §ion) const
get a read-only view at a particular level.
Default implementation of IMessageListener: collects all messages posted.
class CRegistryReadView provides a nested hierarchical view at a particular key.
int GetInt(const string &key, int default_val=0) const
access a named key at this level, with no recursion
void Set(const string &key, int val)
access a named key at this level, with no recursion
bool IsEntrys(void) const
class CStaticArrayMap<> provides access to a static array in much the same way as CStaticArraySet<>,...
TBase::const_iterator const_iterator
@ eBackwards
Towards lower seq coord (to the left if plus strand, right if minus)
@ eForward
Towards higher seq coord (to the right if plus strand, left if minus)
virtual void Execute(IEditCommand *command, wxWindow *window=0)=0
IWorkbench is the central interface in the application framework.
void PropagateToTarget(CRef< CCmdComposite > composite, const vector< CConstRef< objects::CSeq_feat >> &feat_list, objects::CBioseq_Handle src, objects::CBioseq_Handle target, const objects::CSeq_align &align, bool stop_at_stop, bool cleanup_partials, bool merge_abutting, bool extend_over_gaps, bool create_general_only, CMessageListener_Basic *listener, objects::CObject_id::TId *feat_id=nullptr)
CRef< objects::CSeq_feat > AddRibosomalRNA(const objects::CBioseq_Handle &bsh, string name, int from, int to, bool ispartial5, bool ispartial3)
CRef< objects::CSeq_feat > AddMiscRNA(const objects::CBioseq_Handle &bsh, string name, int from, int to, bool ispartial5, bool ispartial3)
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
#define NON_CONST_ITERATE(Type, Var, Cont)
Non constant version of ITERATE macro.
#define LOG_POST(message)
This macro is deprecated and it's strongly recomended to move in all projects (except tests) to macro...
void Error(CExceptionArgs_Base &args)
const string & GetMsg(void) const
Get message string.
vector< SConstScopedObject > TConstScopedObjects
virtual size_t Count(void) const
Get total number of collected messages.
virtual string GetText(void) const =0
Get text message.
virtual const IMessage & GetMessage(size_t index) const
Get a previously collected message.
virtual void Assign(const CSerialObject &source, ESerialRecursionMode how=eRecursive)
Optimized implementation of CSerialObject::Assign, which is not so efficient.
CConstRef< CBioseq > GetCompleteBioseq(void) const
Get the complete bioseq.
TSeqPos GetBioseqLength(void) const
CSeq_entry_Handle GetSeq_entry_Handle(void) const
Get parent Seq-entry handle.
CConstRef< CSeq_id > GetSeqId(void) const
Get id which can be used to access this bioseq handle Throws an exception if none is available.
CSeq_entry_Handle GetParentEntry(void) const
Return a handle for the parent seq-entry of the bioseq.
const CSeq_align & GetOriginalSeq_align(void) const
Get original alignment.
void Reset(void)
Reset reference object.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
NCBI_NS_STD::string::size_type SIZE_TYPE
static int StringToInt(const CTempString str, TStringToNumFlags flags=0, int base=10)
Convert string to int.
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 enable_if< is_arithmetic< TNumeric >::value||is_convertible< TNumeric, Int8 >::value, string >::type NumericToString(TNumeric value, TNumToStringFlags flags=0, int base=10)
Convert numeric value to string.
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.
static const char label[]
const TDenseg & GetDenseg(void) const
Get the variant data.
bool IsSetSegs(void) const
Check if a value has been assigned to Segs data member.
vector< CRef< CSeq_id > > TIds
const TIds & GetIds(void) const
Get the Ids member data.
const TSegs & GetSegs(void) const
Get the Segs member data.
bool IsDenseg(void) const
Check if variant Denseg is selected.
bool IsSetIds(void) const
sequences in order Check if a value has been assigned to Ids data member.
const TWhole & GetWhole(void) const
Get the variant data.
bool IsWhole(void) const
Check if variant Whole is selected.
const TId & GetId(void) const
Get the Id member data.
list< CRef< CSeq_id > > TId
@ eMol_na
just a nucleic acid
bool FocusedOnNucleotides(TConstScopedObjects &objects, const objects::CSeq_entry_Handle &tse)
void ReportUsage(const wxString &dialog_name)
Report opening & accepting events in the editing package.
constexpr bool empty(list< Ts... >) noexcept
const struct ncbi::grid::netcache::search::fields::SIZE size
const GenericPointer< typename T::ValueType > T2 value
static SLJIT_INLINE sljit_ins msg(sljit_gpr r, sljit_s32 d, sljit_gpr x, sljit_gpr b)
#define row(bind, expected)
Template structure SStaticPair is simlified replacement of STL pair<> Main reason of introducing this...
wxString ToWxString(const string &s)
string ToStdString(const wxString &s)