(
st== objects::COrgMod::eSubtype_old_lineage ||
72 st== objects::COrgMod::eSubtype_old_name ||
73 st== objects::COrgMod::eSubtype_other) {
76 returnobjects::COrgMod::IsDiscouraged(
st,
true);
89 if(
st>= objects::CSubSource::eSubtype_fwd_primer_seq &&
st<= objects::CSubSource::eSubtype_rev_primer_name) {
92 if(
st== objects::CSubSource::eSubtype_plasmid_name ||
93 st== objects::CSubSource::eSubtype_chromosome ||
94 st== objects::CSubSource::eSubtype_other) {
97 returnobjects::CSubSource::IsDiscouraged(
st);
139objects::CSeq_entry_Handle seh,
140wxWindowID
id,
constwxPoint& pos,
constwxSize&
size,
longstyle )
141: m_CmdProcessor(cmdproc), m_Seh(seh)
155SetExtraStyle(wxWS_EX_VALIDATE_RECURSIVELY);
156wxPanel::Create( parent,
id, pos,
size, style );
161GetSizer()->SetSizeHints(
this);
202wxBoxSizer* itemBoxSizer2 =
newwxBoxSizer(wxVERTICAL);
203itemPanel1->SetSizer(itemBoxSizer2);
205itemBoxSizer2->Add(5, 5, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
207wxFlexGridSizer* itemFlexGridSizer2 =
newwxFlexGridSizer(0, 1, 0, 0);
208itemBoxSizer2->Add(itemFlexGridSizer2, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 0);
210wxBoxSizer* itemBoxSizer3 =
newwxBoxSizer(wxHORIZONTAL);
211itemFlexGridSizer2->Add(itemBoxSizer3, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
213wxStaticText* itemStaticText5 =
newwxStaticText( itemPanel1, wxID_STATIC,
_(
"Attribute name"), wxDefaultPosition, wxDefaultSize, 0 );
214itemBoxSizer3->Add(itemStaticText5, 0, wxALIGN_LEFT |wxALL, 5);
217itemBoxSizer3->Add(60, 5, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
218 #elif __WXOSX_COCOA__ 219itemBoxSizer3->Add(80, 5, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
221itemBoxSizer3->Add(95, 5, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
223wxStaticText* itemStaticText7 =
newwxStaticText( itemPanel1, wxID_STATIC,
_(
"Attribute value"), wxDefaultPosition, wxDefaultSize, 0 );
224itemBoxSizer3->Add(itemStaticText7, 0, wxALIGN_LEFT |wxALL, 5);
227itemFlexGridSizer2->Add(
m_ScrolledWindow, 0, wxALIGN_LEFT |wxALIGN_CENTER_VERTICAL|wxALL, 5);
230 m_Sizer=
newwxFlexGridSizer(0, 2, 0, 0);
233wxHyperlinkCtrl* itemHyperlinkCtrl2 =
newwxHyperlinkCtrl( itemPanel1,
ID_ORGADVHYPERLINK,
_(
"Add another attribute"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
234itemFlexGridSizer2->Add(itemHyperlinkCtrl2, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5);
252 m_Sizer->Add(
row, 0, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL | wxALL, 0);
254itemHyperLink->SetVisitedColour(itemHyperLink->GetNormalColour());
255 m_Sizer->Add(itemHyperLink, 0, wxALIGN_CENTER_VERTICAL | wxLEFT | wxRIGHT, 0);
261 introw_width, row_height;
262 row->GetClientSize(&row_width, &row_height);
264 intlink_width, link_height;
265itemHyperLink->GetClientSize(&link_width, &link_height);
266 if(link_height > row_height) {
267row_height = link_height;
269row_width += link_width;
340wxWindow *win =
dynamic_cast<wxWindow*
>(
event.GetEventObject());
345 for(wxWindowList::iterator child = children.begin(); child != children.end(); ++child)
349wxSizer *sizer = win->GetContainingSizer();
381 size_tnum_rows_needed = 0;
382 size_tnum_subsrc = 0;
383 size_tnum_orgmod = 0;
387 for(
autoit :
m_Source->GetSubtype()) {
388 if(it->IsSetSubtype() &&
390(objects::CSubSource::NeedsNoText(it->GetSubtype())
395num_rows_needed += num_subsrc;
398 for(
autoit :
m_Source->GetOrg().GetOrgname().GetMod()) {
399 if(it->IsSetSubtype() &&
405num_rows_needed += num_orgmod;
417 while(num_rows < num_rows_needed) {
423 autorit = children.begin();
424 autoend = children.end();
426 if(num_subsrc > 0) {
427 for(
autoit :
m_Source->GetSubtype()) {
428 if(it->IsSetSubtype() &&
430(objects::CSubSource::NeedsNoText(it->GetSubtype())
437 string value= it->IsSetName() ? it->GetName() :
"TRUE";
443 if(num_orgmod > 0) {
444 for(
autoit :
m_Source->GetOrg().GetOrgname().GetMod()) {
445 if(it->IsSetSubtype() &&
464wxSizer *sizer =
row->GetContainingSizer();
467(*current)->Destroy();
477 for(
size_tindex = 0; index <
m_Rows; ++index) {
490 if(objects::CSubSource::IsValidSubtypeName(
label)) {
491 autosubtype = objects::CSubSource::GetSubtypeValue(
label);
492rval = objects::CSubSource::NeedsNoText(subtype);
500 if(objects::CSubSource::IsValidSubtypeName(name)) {
501 autosubtype = objects::CSubSource::GetSubtypeValue(name);
503src.SetSubtype().push_back(subsrc);
505 else if(objects::COrgMod::IsValidSubtypeName(name)) {
506 autosubtype = objects::COrgMod::GetSubtypeValue(name);
508src.SetOrg().SetOrgname().SetMod().push_back(org_mod);
535original->Assign(src);
537 if(src.IsSetSubtype()) {
538 autoit = src.SetSubtype().begin();
539 while(it != src.SetSubtype().end()) {
541it = src.SetSubtype().erase(it);
547 if(src.IsSetOrg() && src.GetOrg().IsSetOrgname() && src.GetOrg().GetOrgname().IsSetMod()) {
548 auto& mods = src.SetOrg().SetOrgname().SetMod();
549 autoit = mods.begin();
550 while(it != mods.end()) {
575 if(src.IsSetSubtype() && src.GetSubtype().empty()) {
578 if(src.IsSetOrg() && src.GetOrg().IsSetOrgname() &&
579src.GetOrg().GetOrgname().IsSetMod() &&
580src.GetOrg().GetOrgname().GetMod().empty()) {
581src.SetOrg().SetOrgname().ResetMod();
583 return!original->Equals(src);
600new_desc->SetSource();
603 if(new_desc->GetSource().Equals(*
m_Source))
607 boolany_changes =
false;
609 for(objects::CBioseq_CI bi(
m_Seh, objects::CSeq_inst::eMol_na); bi; ++bi) {
610objects::CSeqdesc_CI di(*bi, objects::CSeqdesc::e_Source);
616 if(!di->Equals(*cpy)) {
618 cmd->AddCommand(*chg);
625cpy->Assign(*new_desc);
626 autoentry = bi->GetParentEntry();
627objects::CBioseq_set_Handle parent = bi->GetParentBioseq_set();
628 if(parent && parent.IsSetClass() && parent.GetClass() == objects::CBioseq_set::eClass_nuc_prot)
629entry = parent.GetParentEntry();
631 cmd->AddCommand(*cmdAddDesc);
static string GetSubtypeName(const CSubSource &qual)
virtual bool DoNotListOrgMod(int st)
COrgAdvancedMod(wxWindow *parent, SModData mod_data)
virtual bool DoNotListSubSrc(int st)
CRef< objects::CBioSource > m_Source
virtual bool TransferDataFromWindow()
void CreateControls()
Creates the controls and sizers.
static bool ShowToolTips()
Should we show tooltips?
bool x_ApplyChangesToSource(objects::CBioSource &src)
void x_SetBioSourceModifier(objects::CBioSource &src, const string &name, const string &value)
wxIcon GetIconResource(const wxString &name)
Retrieves icon resources.
bool Create(wxWindow *parent, wxWindowID id=ID_CORGADVANCEDPANEL, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(400, 300), long style=wxTAB_TRAVERSAL)
Creation.
wxScrolledWindow * m_ScrolledWindow
virtual bool TransferDataToWindow()
COrgAdvancedPanel()
Constructors.
objects::CSeq_entry_Handle m_Seh
~COrgAdvancedPanel()
Destructor.
ICommandProccessor * m_CmdProcessor
void Init()
Initialises member variables.
void OnDeleteQualifier(wxHyperlinkEvent &event)
wxBitmap GetBitmapResource(const wxString &name)
Retrieves bitmap resources.
void OnAddAttributeHyperlinkClicked(wxHyperlinkEvent &event)
wxEVT_COMMAND_HYPERLINK event handler for ID_ORGADVHYPERLINK
void x_AddRowToWindow(wxWindow *row)
wxFlexGridSizer * m_Sizer
void ApplyBioSource(objects::CBioSource &src)
Undo/Redo interface for editing operations.
virtual void Execute(IEditCommand *command, wxWindow *window=0)=0
static DLIST_TYPE *DLIST_NAME() prev(DLIST_LIST_TYPE *list, DLIST_TYPE *item)
void Reset(void)
Reset reference object.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
static bool IsBlank(const CTempString str, SIZE_TYPE pos=0)
Check if a string is blank (has no text).
static bool EqualNocase(const CTempString s1, SIZE_TYPE pos, SIZE_TYPE n, const char *s2)
Case-insensitive equality of a substring with another string.
static const char label[]
const struct ncbi::grid::netcache::search::fields::SIZE size
const GenericPointer< typename T::ValueType > T2 value
bool s_DoNotListSubSrc(int st)
bool s_DoEraseOrgMod(objects::COrgMod::TSubtype subtype)
bool s_DoEraseSubSource(objects::CSubSource::TSubtype subtype)
static bool s_IsNonText(const string &label)
bool s_DoNotListOrgMod(int st)
static SLJIT_INLINE sljit_ins st(sljit_gpr r, sljit_s32 d, sljit_gpr x, sljit_gpr b)
#define row(bind, expected)
string ToStdString(const wxString &s)
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