112 #include <wx/msgdlg.h>
119 static string sid(
"bioseq_editor_factory");
125 static string slabel(
"Bioseq Editor Factory");
398 return "Publication Descriptor";
400 return "Publication Feature";
408 static bool registered =
false;
413 "Edit Selected Object(s)\tCtrl+Enter",
414 "Edit Selected Object(s)",
417 "Command opens Dialog to Edit Selected Object(s)"));
419 "Delete Selected Object(s)\tCtrl+Back",
420 "Delete Selected Object(s)",
423 "Command deletes Selected Object(s)"));
425 "Edit BioSource Descriptor",
426 "Edit BioSource Descriptor",
429 "Command opens Dialog to Edit Biosource Descriptor of the Current Bioseq"));
431 "Delete BioSource Descriptor",
432 "Delete BioSource Descriptor",
435 "Command deletes Biosource Descriptor of the Current Bioseq"));
437 "Create BioSource Descriptor",
438 "Create BioSource Descriptor",
441 "Command opens Dialog to Create Biosource Descriptor of the Current Bioseq"));
443 "Edit BioSource Feature",
444 "Edit BioSource Feature",
447 "Command opens Dialog to Edit Biosource Feature of the Current Bioseq"));
449 "Delete BioSource Feature",
450 "Delete BioSource Feature",
453 "Command deletes Biosource Feature of the Current Bioseq"));
455 "Create BioSource Feature",
456 "Create BioSource Feature",
459 "Command opens Dialog to Create Feature Descriptor of the Current Bioseq"));
462 "Propagate All Features",
463 "Propagate All Features",
466 "Command opens Dialog to Propagate All Features from the Current Bioseq"));
469 "Propagate Selected Feature(s)",
470 "Propagate Selected Feature(s)",
473 "Command opens Dialog to Propagate Selected Feature from the Current Bioseq"));
478 string description =
"Command opens Dialog to Create " + feature_name +
" on the Current Bioseq";
491 vector<CUICommand*> commands;
493 for (
size_t i = 0;
i < commands.size();
i++)
502 wxAcceleratorEntry accelerator3(wxACCEL_CTRL, WXK_RETURN,
eCmdEditObjects);
657 return kTextViewTopMenu;
823 return wxEvtHandler::ProcessEvent(event);
843 const char* szCommand =
"Edit Biosource Descriptor";
865 }
catch (
const std::exception& e) {
872 const char* szCommand =
"Create Biosource Descriptor";
884 ERR_POST(
Info <<
"Error: " << szCommand <<
": Biosource descriptor already exists");
898 }
catch (
const std::exception& e) {
905 const char* szCommand =
"Delete Biosource Descriptor";
924 }
catch (
const std::exception& e) {
952 const char* szCommand =
"Edit Biosource Feature";
976 }
catch (
const std::exception& e) {
991 const char* szCommand =
"Feature Propagate";
996 if (objList.empty()) {
1002 for (TEditObjectList::iterator it = objList.begin(); it != objList.end(); ++it) {
1006 bsh = it->m_Scope->GetBioseqHandle(pSeqFeat->
GetLocation());
1017 vector<CConstRef<CSeq_feat>> propagatedFeats;
1019 propagatedFeats.push_back(ci->GetSeq_feat());
1027 catch (
const std::exception& e) {
1048 const char* szCommand =
"Feature Propagate";
1055 if (objList.empty()) {
1060 vector<CConstRef<CSeq_feat>> propagatedFeats;
1061 for (TEditObjectList::iterator it = objList.begin(); it != objList.end(); ++it) {
1064 propagatedFeats.push_back(
ConstRef(pSeqFeat));
1083 }
catch (
const std::exception& e) {
1095 const char* szCommand =
"Create Biosource Feature";
1107 ERR_POST(
Info <<
"Error: " << szCommand <<
": Biosource feature already exists");
1120 seq_id->
Assign(*bseq_seq_id);
1130 }
catch (
const std::exception& e) {
1138 const char* szCommand =
"Delete Biosource Feature";
1156 }
catch (
const std::exception& e) {
1167 const char* szCommand = feat_name.c_str();
1181 seq_id->
Assign(*bseq_seq_id);
1191 }
catch (
const std::exception& e) {
1205 event.Enable(!bh.
IsAa());
1217 event.Enable(bh.
IsAa());
1244 seqFeat->
SetData().SetCdregion();
1265 switch (event.GetId()) {
1301 seqFeat->
SetData().SetRegion();
1383 string cmd_name =
"Create " + descriptor_type +
" Descriptor";
1384 const char* szCommand = cmd_name.c_str();
1398 ERR_POST(
Info <<
"Error: " << szCommand <<
": Biosource descriptor already exists");
1451 }
catch (
const std::exception& e) {
1469 if (seq_submit && seq_submit->
IsSetSub()) {
1470 submitBlock = &seq_submit->
GetSub();
1472 if (entry && entry->
IsSet()) {
1473 seq_set = &(entry->
GetSet());
1491 else if (titleEdit) {
1496 else if (submitBlock) {
1543 string command =
"Edit Object: ";
1548 if (objList.empty())
1556 const CSeq_loc* loc =
dynamic_cast<const CSeq_loc*
>(editObj.
m_Obj.
GetPointer());
1577 wxApp *app =
dynamic_cast<wxApp*
>(wxApp::GetInstance());
1588 wxApp *app =
dynamic_cast<wxApp*
>(wxApp::GetInstance());
1597 wxMessageBox(
wxT(
"Unable to load the alignment"),
wxT(
"Error"), wxOK | wxICON_ERROR);
1617 int res = wxMessageBox(
wxT(
"The current display is an on-the-fly defline, not an instantiated one. Editing this will create an instantiated title."),
wxT(
"Create Defline"), wxYES_NO | wxICON_QUESTION);
1625 bool create =
false;
1626 if (seqDesc && seqDesc->
IsSource())
1641 wxMessageBox(
wxT(
"No editor found for object of type \'") +
1644 wxT(
"Error"), wxOK|wxICON_ERROR);
1654 }
catch (
const std::exception& e) {
1671 if (objList.empty())
1683 catch (
const std::exception&) {
1690 event.Enable(
false);
1695 if (objList.empty())
1703 catch (
const std::exception&) {
1709 int num_selected = 0;
1714 if (objList.empty())
1722 const CSeqdesc* seqDesq =
dynamic_cast<const CSeqdesc*
>(editObj->m_Obj.GetPointer());
1723 const CSeq_feat* seqFeat =
dynamic_cast<const CSeq_feat*
>(editObj->m_Obj.GetPointer());
1727 if (seqDesq || seqFeat || seqAnnot || seqAlign)
1734 }
catch (
const std::exception&) {
1736 if (num_selected == 0)
1741 if (num_selected > 1)
1743 int res = wxMessageBox(
wxT(
"Are you sure you want to delete multiple objects?"),
wxT(
"Delete Selected Objects"), wxYES_NO | wxICON_QUESTION);
1750 bool delete_genes =
false;
1753 int res = wxMessageBox(
wxT(
"Remove associated genes?"),
wxT(
"Delete genes"), wxYES_NO | wxCANCEL | wxICON_QUESTION);
1754 if (res == wxCANCEL)
1760 delete_genes =
true;
1764 const char* szCommand =
"Delete Object";
1769 if (objList.empty()) {
1774 const CSeqdesc* seqDesq =
dynamic_cast<const CSeqdesc*
>(obj->m_Obj.GetPointer());
1777 wxMessageDialog dlg(
NULL,
wxT(
"Are you sure you want to delete the BioSource?"),
wxT(
"Delete BioSource"), wxOK | wxCANCEL);
1778 if (dlg.ShowModal() == wxID_CANCEL) {
1787 bool from_single =
false;
1790 const CSeqdesc* seqDesq =
dynamic_cast<const CSeqdesc*
>(obj->m_Obj.GetPointer());
1807 bool any_deleted =
false;
1810 const CSeqdesc* seqDesq =
dynamic_cast<const CSeqdesc*
>(editObj->m_Obj.GetPointer());
1811 const CSeq_feat* seqFeat =
dynamic_cast<const CSeq_feat*
>(editObj->m_Obj.GetPointer());
1821 }
else if (seqFeat) {
1840 else if (seqAnnot) {
1848 else if (seqAlign) {
1860 }
catch (
const std::exception& e) {
1867 event.Enable(
false);
1872 if (objList.empty())
1878 }
catch (
const std::exception&) {
1887 wxWindow* editorWindow =
edit->CreateWindow(edit_dlg);
1892 if (!title.empty()) {
1893 edit_dlg->SetTitle(title);
1910 bool askSeqSet =
false;
1922 askSeqSet = (seh.IsSeq() && sehDesc != seh);
1931 if (dlg.ShowModal() != wxID_OK) {
1974 bool cancel =
false;
1978 if (cancel || !sehDesc) {
2007 if (!seqFeat.IsSetData()) {
2008 LOG_POST(
Error <<
"CBioseqEditor.Delete.Feature data not set");
2013 if (seqFeat.IsSetLocation() && !seqFeat.GetLocation().IsNull()) {
2014 for (
CFeat_CI mf(seh.GetScope(), seqFeat.GetLocation(), sel); mf; ++mf) {
2015 if (mf->GetOriginalFeature().Equals(seqFeat)) {
2016 fh = mf->GetSeq_feat_Handle();
2027 LOG_POST(
Error <<
"CBioseqEditor.Delete.Feature Feature not found");
2037 int res = wxMessageBox(
wxT(
"Delete features which reference this gene?"),
2038 wxT(
"Delete Gene"), wxYES_NO | wxICON_QUESTION);
2048 cmd.Reset(&*composite);
2054 if (seqFeat.IsSetId() && seqFeat.GetId().IsLocal()) {
2058 for (
CFeat_CI feat_it(seh); feat_it; ++feat_it) {
2061 if ((*it)->IsSetId() && (*it)->GetId().IsLocal()) {
2062 if (local_id.
Match((*it)->GetId().GetLocal())) {
2063 feat_list.push_back(seh.GetScope().GetSeq_featHandle(
orig));
2069 if (!feat_list.empty()) {
2071 if (dlg.ShowModal() == wxID_OK) {
2074 cmd->AddCommand(*chgfeats);
2082 LOG_POST(
Error <<
"CBioseqEditor.Delete.Feature failed to create command");
2096 if (!seqFeat.IsSetData()) {
2097 LOG_POST(
Error <<
"CBioseqEditor.Delete.Feature data not set");
2103 if (seqFeat.IsSetLocation() && !seqFeat.GetLocation().IsNull()) {
2104 for (
CFeat_CI mf(seh.GetScope(), seqFeat.GetLocation(), sel); mf; ++mf) {
2105 if (mf->GetOriginalFeature().Equals(seqFeat)) {
2106 fh = mf->GetSeq_feat_Handle();
2115 LOG_POST(
Error <<
"CBioseqEditor.Delete.Feature Feature not found");
2126 int res = wxMessageBox(
wxT(
"Delete features which reference this gene?"),
2127 wxT(
"Delete Gene"), wxYES_NO | wxICON_QUESTION );
2137 cmd.Reset(&*composite);
2144 if (seqFeat.IsSetId() && seqFeat.GetId().IsLocal()) {
2148 for(
CFeat_CI feat_it(seh); feat_it; ++feat_it) {
2151 if ((*it)->IsSetId() && (*it)->GetId().IsLocal()) {
2152 if (local_id.
Match((*it)->GetId().GetLocal())) {
2153 feat_list.push_back(seh.GetScope().GetSeq_featHandle(
orig));
2159 if (!feat_list.empty()) {
2161 if (dlg.ShowModal() == wxID_OK) {
2164 cmd->AddCommand(*chgfeats);
2172 LOG_POST(
Error <<
"CBioseqEditor.Delete.Feature failed to create command");
2186 if (annot_it->GetCompleteSeq_annot().GetPointer() == &annot) {
2192 LOG_POST(
Error <<
"CBioseqEditor.Delete.Annot Annot not found");
2199 cmd->AddCommand(*cmdDelAnnot);
2202 for (
CFeat_CI feat_it(ah); feat_it; ++feat_it) {
2204 cmd->AddCommand(*cmdDelFeat);
2209 LOG_POST(
Error <<
"CBioseqEditor.Delete.Annot failed to create command");
2222 for (
CAlign_CI align_it(seh); align_it; ++align_it) {
2223 if (&align_it.GetOriginalSeq_align() == &align) {
2224 ah = align_it.GetSeq_align_Handle();
2229 LOG_POST(
Error <<
"CBioseqEditor.Delete.Align Align not found");
2235 LOG_POST(
Error <<
"CBioseqEditor.Delete.Align failed to create command");
2258 catch (
const std::exception&) {
2273 catch (
const std::exception&) {
2291 catch (
const std::exception&) {
2301 if (objList.empty()) {
2306 for (
auto&& it : objList) {
2310 bsh = it.m_Scope->GetBioseqHandle(pSeqFeat->
GetLocation());
2379 return ctx->GetHandle();
2426 if (featheader_item)
2438 if (startsection_item)
2444 if (endsection_item)
2514 for (; dsrc_it; ++dsrc_it) {
2515 const CSeqdesc& seqDesc = *dsrc_it;
2564 for (; dsrc_it; ++dsrc_it) {
2565 const CSeqdesc& seqDesc = *dsrc_it;
2625 const CSeq_loc* loc =
dynamic_cast<const CSeq_loc*
>(editObj.
m_Obj.
GetPointer());
2628 const CSeq_id*
id = loc->GetId();
2640 if (entry && entry->
IsSet())
2641 seq_set = &(entry->
GetSet());
2643 if (submit_block || seq_set || title_edit || align || submit) {
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
CSeq_entry_Handle GetSeqEntryForSeqdesc(CRef< CScope > scope, const CSeqdesc &seq_desc)
static CBioseq_Handle s_GetContext(const IFlatItem &item)
static const int num_feat_cmds
static const FeatTypeCmd feat_type_cmds[]
static bool s_IsLocalFeature(const CSeq_feat &seq_feat, CSeq_entry_Handle ctx)
struct feattypecmd FeatTypeCmd
static string GetKeyFromCmdID(int cmd_id)
static const FeatCmd feat_cmds[]
CIRef< IEditObject > CreateEditorForObject(CConstRef< CObject > obj, CSeq_entry_Handle seh, bool create)
static string s_GetMenuName(int i)
static const int num_feat_type_cmds
@ eCmdCreateRegulatory_ribosome_binding_site
@ eCmdCreateMobileElement
@ eCmdCreateMiscStructure
@ eCmdCreateBiosourceFeat
@ eCmdCreateRefGeneTracking
@ eCmdDeleteBiosourceDesc
@ eCmdCreatePrimTranscript
@ eCmdCreatePubDescriptorLabeled
@ eCmdCreateRegulatory_promoter
@ eCmdCreateRegulatory_riboswitch
@ eCmdCreateCodingRegion_ext
@ eCmdCreateCommentDescriptor
@ eCmdCreateBiosourceDesc
@ eCmdCreatePubFeatureLabeled
@ eCmdCreateRegulatory_enhancer
@ eCmdCreatePubDescriptor
@ eCmdCreateTransitPeptide
@ eCmdPropagateAllFeatures
@ eCmdCreateRegionDescriptor
@ eCmdCreateSecondaryStructure
@ eCmdCreateAuthorizedAccess
@ eCmdPropagateSelectedFeatures
@ eCmdCreateStructuredComment
@ eCmdCreateRegulatory_terminator
@ eCmdCreateMiscDifference
@ eCmdDeleteBiosourceFeat
static void CollectBioseqEditorCommands(vector< CUICommand * > &commands)
virtual CObject * CreateEditor(const string &interface_name, ICommandProccessor &cmdProccessor, IGuiWidgetHost *guiWidgetHost)
virtual string GetExtensionIdentifier() const
returns the unique human-readable identifier for the extension the id should use lowercase letters se...
virtual void RegisterCommands(CUICommandRegistry &, wxFileArtProvider &)
virtual string GetExtensionLabel() const
returns a displayable label for this extension ( please capitalize the key words - "My Extension" )
void OnCreateSite(wxCommandEvent &event)
bool x_HasAlignment(void)
bool x_HaveBiosourceDesc()
void OnPropagateSelectedFeatures(wxCommandEvent &event)
static CRef< objects::CSeq_feat > MakeDefaultFeature(objects::CSeqFeatData::ESubtype subtype)
CIRef< IEditCommand > x_GetDeleteCommand(objects::CSeq_entry_Handle &seh, const objects::CSeqdesc &seqDesc, bool from_single)
void OnDeleteBiosourceDesc(wxCommandEvent &event)
static objects::CSeqFeatData::ESubtype GetFeatTypeFromCmdID(int cmd_id)
void OnUpdateEditSelection(wxUpdateUIEvent &event)
void OnUpdateDeleteSelection(wxUpdateUIEvent &event)
void OnUpdateCreateBiosourceDesc(wxUpdateUIEvent &event)
void OnPropagateAllFeatures(wxCommandEvent &event)
void OnUpdateDeleteBiosourceDesc(wxUpdateUIEvent &event)
virtual void EditSelection()
void OnUpdateEditBiosourceFeat(wxUpdateUIEvent &event)
void OnCreateBond(wxCommandEvent &event)
void OnUpdateAnyFeat(wxUpdateUIEvent &event)
void OnUpdateProteinFeat(wxUpdateUIEvent &event)
void OnUpdatePropagateSelectedFeatures(wxUpdateUIEvent &event)
void OnCreateCodingRegion(wxCommandEvent &event)
void OnUpdateCreateBiosourceFeat(wxUpdateUIEvent &event)
void OnCreateDescriptor(wxCommandEvent &evt)
void OnCreateFeature(CRef< objects::CSeq_feat > feat, wxCommandEvent &event)
void OnEditSelection(wxCommandEvent &event)
virtual int GetEditFlags(CEditObject &editObj) const
bool x_DeleteFromSingleSeq(objects::CSeq_entry_Handle &seh, objects::CSeq_entry_Handle &sehdesc, const objects::CSeqdesc &seqDesq, bool &any, bool &cancel)
void OnCreatePubFeat(wxCommandEvent &event)
void OnCreateImport(wxCommandEvent &evt)
void OnCreateBiosourceDesc(wxCommandEvent &event)
bool x_HaveBiosourceFeat()
bool IsEditable(CEditObject &editObj) const
void OnDeleteBiosourceFeat(wxCommandEvent &event)
ICommandProccessor & m_CmdProccessor
void OnCreateRegion(wxCommandEvent &evt)
int x_GetFromPosition(void)
void OnCreateProt(wxCommandEvent &event)
void OnCreateBiosourceFeat(wxCommandEvent &event)
void x_DeleteObject(objects::CSeq_entry_Handle &seh, const objects::CSeqdesc &seqDesq)
void OnUpdateDeleteBiosourceFeat(wxUpdateUIEvent &event)
void OnEditBiosourceFeat(wxCommandEvent &event)
void OnCreateRNA(wxCommandEvent &evt)
void OnEditBiosourceDesc(wxCommandEvent &event)
void OnUpdateNucleotideFeat(wxUpdateUIEvent &event)
void OnUpdateEditBiosourceDesc(wxUpdateUIEvent &event)
void OnUpdatePropagateAllFeatures(wxUpdateUIEvent &event)
bool x_HandleFeatCreationHere(wxCommandEvent &event)
void x_EditObject(CIRef< IEditObject > edit, const string &title=kEmptyStr)
void OnCreateSecondaryStructure(wxCommandEvent &evt)
void x_ReportError(const string &cmd, const std::exception &e)
bool IsDeletable(CEditObject &editObj) const
void OnDeleteSelection(wxCommandEvent &event)
void OnCreateGene(wxCommandEvent &event)
void AddCommand(IEditCommand &command)
static CIRef< IEditCommand > DeleteGeneXRefs(objects::CSeq_entry_Handle &seh, const objects::CGene_ref &gene)
CRef< CCmdComposite > GetCommand()
vector< objects::CSeq_feat_Handle > TFeatVec
void SetEditorWindow(wxWindow *editorWindow)
void SetEditor(CIRef< IEditObject > editor)
virtual void SetUndoManager(ICommandProccessor *cmdProccessor)
static pair< EDescriptorType, string > GetDescriptorType(const objects::CSeqdesc &desc)
objects::CSeq_entry_Handle m_SEH
CConstRef< CObject > m_Obj
CBioseqContext * GetContext(void)
bool Match(const CObject_id &oid2) const
void SetBiosrc(TBiosrc &v)
ESubtype GetSubtype(void) const
string GetKey(EVocabulary vocab=eVocabulary_full) const
@ eSubtype_misc_difference
@ eSubtype_misc_structure
@ eSubtype_bad
These no longer need to match the FEATDEF values in the C toolkit's objfdef.h.
@ eSubtype_mobile_element
@ eSubtype_prim_transcript
@ eSubtype_transit_peptide_aa
@ eSubtype_sig_peptide_aa
@ eSubtype_mat_peptide_aa
static CTempString SubtypeValueToName(ESubtype eSubtype)
Turns a ESubtype into its string value which is NOT necessarily related to the identifier of the enum...
bool IsFtable(void) const
namespace ncbi::objects::
Base class for all serializable objects.
CUICommandRegistry is a centralized registry where all application commands should be registered.
static CUICommandRegistry & GetInstance()
the main instance associated with the application
wxMenu * CreateMenu(const SwxMenuItemRec *items)
create a menu from a static definition (see WX_*_MENU macros)
int RegisterCommand(CUICommand *cmd)
assumes ownership of the given object returns a command id (useful when registry is used for auto id ...
void AddAccelerator(const wxAcceleratorEntry &entry)
virtual objects::CBioseq_Handle GetCurrentBioseq()=0
virtual void GetCurrentSelection(TEditObjectList &)=0
virtual bool MayCreateFeatures() const
virtual wxString GetWorkDir() const =0
Undo/Redo interface for editing operations.
virtual void Execute(IEditCommand *command, wxWindow *window=0)=0
virtual const CSerialObject * GetObject(void) const =0
unsigned int TSeqPos
Type for sequence locations and lengths.
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
#define ERR_POST(message)
Error posting with file, line number information but without error codes.
#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.
void Info(CExceptionArgs_Base &args)
objects::CBioseq_Handle GetBioseqForSeqFeat(const objects::CSeq_feat &f, objects::CScope &scope)
objects::CSeq_feat_Handle GetSeqFeatHandleForBadLocFeature(const objects::CSeq_feat &feat, objects::CScope &scope)
virtual const CTypeInfo * GetThisTypeInfo(void) const =0
virtual void Assign(const CSerialObject &source, ESerialRecursionMode how=eRecursive)
Optimized implementation of CSerialObject::Assign, which is not so efficient.
CConstRef< CSeq_feat > GetGeneForFeature(const CSeq_feat &feat, CScope &scope)
Finds gene for feature, but obeys SeqFeatXref directives.
CBioseq_Handle GetBioseqHandle(const CSeq_id &id)
Get bioseq handle by seq-id.
CSeq_feat_Handle GetSeq_featHandle(const CSeq_feat &feat, EMissing action=eMissing_Default)
const CSeq_annot_Handle & GetAnnot(void) const
Get handle to seq-annot for this feature.
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
Get parent Seq-entry handle.
CSeq_entry_EditHandle GetEditHandle(void) const
Get 'edit' version of handle.
CSeq_entry_Handle GetTopLevelEntry(void) const
Get top level Seq-entry handle.
CScope & GetScope(void) const
Get scope this handle belongs to.
CScope & GetScope(void) const
Get scope this handle belongs to.
CConstRef< CSeq_feat > GetOriginalSeq_feat(void) const
CRef< CSeq_loc > GetRangeSeq_loc(TSeqPos start, TSeqPos stop, ENa_strand strand=eNa_strand_unknown) const
Return CSeq_loc referencing the given range and strand on the bioseq If start == 0,...
const CSeq_annot_Handle & GetAnnot(void) const
Get handle to the seq-annot.
const CSeq_feat_Handle & GetSeq_feat_Handle(void) const
Get original feature handle.
TObjectType * GetPointer(void) const THROWS_NONE
Get pointer,.
CConstRef< C > ConstRef(const C *object)
Template function for conversion of const object pointer to CConstRef.
TObjectType * GetPointer(void) THROWS_NONE
Get pointer,.
void Reset(void)
Reset reference object.
void Reset(void)
Reset reference object.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
static bool EqualNocase(const CTempString s1, SIZE_TYPE pos, SIZE_TYPE n, const char *s2)
Case-insensitive equality of a substring with another string.
const string & GetName(void) const
Get name of this type.
void SetType(TType &value)
Assign a value to Type data member.
TId GetId(void) const
Get the variant data.
@ eProcessed_signal_peptide
@ eProcessed_transit_peptide
@ eType_ncRNA
non-coding RNA; subsumes snRNA, scRNA, snoRNA
bool IsSetData(void) const
the specific data Check if a value has been assigned to Data data member.
void SetLocation(TLocation &value)
Assign a value to Location data member.
const TLocation & GetLocation(void) const
Get the Location member data.
bool IsGene(void) const
Check if variant Gene is selected.
const TData & GetData(void) const
Get the Data member data.
void SetData(TData &value)
Assign a value to Data data member.
const TGene & GetGene(void) const
Get the variant data.
@ ePsec_str_helix
any helix
TFrom GetFrom(void) const
Get the From member data.
const TInt & GetInt(void) const
Get the variant data.
const TSet & GetSet(void) const
Get the variant data.
bool IsSet(void) const
Check if variant Set is selected.
TTitle & SetTitle(void)
Select the variant.
TPub & SetPub(void)
Select the variant.
bool IsSource(void) const
Check if variant Source is selected.
TName & SetName(void)
Select the variant.
TComment & SetComment(void)
Select the variant.
TSource & SetSource(void)
Select the variant.
TUser & SetUser(void)
Select the variant.
const TMolinfo & GetMolinfo(void) const
Get the variant data.
TMolinfo & SetMolinfo(void)
Select the variant.
TRegion & SetRegion(void)
Select the variant.
@ e_Embl
EMBL specific information.
@ e_User
user defined object
@ e_Pub
a reference to the publication
@ e_Genbank
GenBank specific info.
@ e_Comment
a more extensive comment
@ e_Region
overall region (globin locus)
@ e_Molinfo
info on the molecule and techniques
@ e_Title
a title for this sequence
@ e_Name
a name for this sequence
@ e_Source
source of materials, includes Org-ref
const TSub & GetSub(void) const
Get the Sub member data.
bool IsSetSub(void) const
Check if a value has been assigned to Sub data member.
vector< CEditObject > TEditObjectList
where boath are integers</td > n< td ></td > n</tr > n< tr > n< td > tse</td > n< td > optional</td > n< td > String</td > n< td class=\"description\"> TSE option controls what blob is orig
#define FOR_EACH_SEQFEATXREF_ON_SEQFEAT(Itr, Var)
FOR_EACH_SEQFEATXREF_ON_SEQFEAT EDIT_EACH_SEQFEATXREF_ON_SEQFEAT.
ViewerWindowBase::OnEditMenu ViewerWindowBase::OnJustification EVT_MENU(MID_SHOW_GEOM_VLTNS, ViewerWindowBase::OnShowGeomVltns) EVT_MENU(MID_FIND_PATTERN
CSeqFeatData::ESubtype subtype
#define WX_DEFINE_MENU(name)
New macros for defining menus for use with CUICommandRegistry.
#define WX_SUBMENU(label)
#define WX_MENU_SEPARATOR_L(label)
#define WX_MENU_ITEM(cmd)
#define WX_MENU_ITEM_INT(cmd)
CRef< CCmdComposite > GetDeleteFeatureCommand(const objects::CSeq_feat_Handle &fh, bool remove_proteins=true)
void SetWorkDir(wxWindow *wnd, const wxString &workDir)
wxString ToWxString(const string &s)