, m_TrackInitFinished(
true)
107, m_SkipGenuineCheck(
false)
110x_RegisterIcon(
SIconInfo(eIcon_Content,
"Content",
true,
"track_content"));
112m_DS->SetJobListener(
this);
143 if(!p->GetShown()) {
149vector<string> naAccs;
156 switch(p->GetAction()) {
165p->SetShown(
false);
172 else if(p->IsNA()) {
176naAccessions.push_back(p->GetSource());
219 if(track && track->
IsOn()) {
222 const string& t_name = p->GetName();
243 if((*iter)->GetTrack()) {
245 dynamic_cast<CDataTrack*
>((*iter)->GetTrack());
264 if(!p->GetShown())
continue;
324 if(track->
IsOn()) {
336 const string& disp_name,
338 const string& filter,
339 const string& sub_key)
345 stringtrack_name = name;
346 if(track_name.empty()) {
347track_name = track_key;
384 if(track && !track->
GetTitle().empty() ) {
399 if(cont)
returncont;
407 boolwas_on = track->
IsOn();
415 if(was_on) proxy->
SetShown(
true);
432cont->SetIsBlast(
true);
448 if(title.empty()) title = track->
GetTitle();
457 booladjust_order =
true;
459 if(original_track) {
471 if( !filter_name.empty() ) {
491 _ASSERT( !data_source.empty() );
493 if(t_iter != tracks.
end()) {
495tracks.
erase(t_iter);
505 if( !tracks.
empty() ) {
517 if( !tracks.
empty() ) {
529 if( !filter_name.empty() ) {
536sub_track->
Update(
false);
545 boolgraph_overlay = track_proxy && track_proxy->
GetKey() ==
"graph_overlay";
549 if(go_it == tracks.
end())
551go =
dynamic_cast<CGraphOverlay*
>(go_it->second.GetPointer());
557 if(tracks.
size() > 1)
558tracks.
erase(go_it);
568 else if(tracks.
size() > 1) {
585 if( !filter_name.empty() ) {
590 dynamic_cast<CGraphOverlay*
>(
this)->UpdateTrackParams(iter->first);
603adjust_order =
false;
606tracks[track_proxy->
GetAnnots().front()] = cont;
609cont->Update(
false);
620 if( !filter_name.empty() ) {
665 while(iter !=
m_TrackProxies.end() && (*iter)->GetOrder() != order) {
670 if((*iter)->GetTrack()) {
673(*iter)->SetTrack(track);
695 while(iter !=
m_TrackProxies.end() && (*iter)->GetOrder() != order) {
713 while(iter !=
m_TrackProxies.end() && (*iter)->GetOrder() != order) {
718 if( !(*iter)->IsTempTrack() ) {
738full_proxy->
SetKey(track_key);
740annots.push_back(src_proxy->
GetSource());
748new_proxy->
SetName(track_name);
760 while(iter != p_track->
m_TrackProxies.end() && order > (*iter)->GetOrder()) {
761(*iter)->SetOrder(order);
773 while(iter !=
m_TrackProxies.end() && (*iter)->GetOrder() != order) {
777(*iter)->SetDisplayName(new_name);
778(*iter)->GetTrack()->SetTitle(new_name);
786 while(iter !=
m_TrackProxies.end() && (*iter)->GetOrder() != order) {
790 if((*iter)->GetTrack()) {
791(*iter)->GetTrack()->SaveProfile();
794(*iter)->SetShown(
false);
800(*iter)->SetEmpty(
true);
810 while(iter !=
m_TrackProxies.end() && (*iter)->GetOrder() != order) {
819(*iter)->SetShown(
false);
829CLayoutGroup::TObjectList::iterator iter =
SetChildren().begin();
830CLayoutGroup::TObjectList::iterator p_iter = iter;
836 if(iter ==
SetChildren().end() || iter == p_iter)
return;
842(*proxy_iter)->GetOrder() != order) {
849(*pre_proxy_iter)->GetOrder() != pre_order) {
857(*pre_proxy_iter)->SetOrder(order);
858 if((*pre_proxy_iter)->GetTrack())
859(*pre_proxy_iter)->GetTrack()->SetOrder(order);
861(*proxy_iter)->SetOrder(pre_order);
862 if((*proxy_iter)->GetTrack())
863(*proxy_iter)->GetTrack()->SetOrder(pre_order);
874CLayoutGroup::TObjectList::reverse_iterator iter =
SetChildren().rbegin();
875CLayoutGroup::TObjectList::reverse_iterator n_iter = iter;
881 if(iter ==
SetChildren().rend() || iter == n_iter)
return;
885TTrackProxies::reverse_iterator proxy_iter =
m_TrackProxies.rbegin();
887(*proxy_iter)->GetOrder() != order) {
892TTrackProxies::reverse_iterator n_proxy_iter =
m_TrackProxies.rbegin();
894(*n_proxy_iter)->GetOrder() != n_order) {
902(*n_proxy_iter)->SetOrder(order);
903 if((*n_proxy_iter)->GetTrack())
904(*n_proxy_iter)->GetTrack()->SetOrder(order);
905(*proxy_iter)->SetOrder(n_order);
906 if((*proxy_iter)->GetTrack())
907(*proxy_iter)->GetTrack()->SetOrder(n_order);
918TTrackProxies::reverse_iterator proxy_iter =
m_TrackProxies.rbegin();
920(*proxy_iter)->GetOrder() != order) {
924TTrackProxies::reverse_iterator next_track(proxy_iter);
927(*proxy_iter)->SetOrder((*next_track)->GetOrder());
928 if((*proxy_iter)->GetTrack())
929(*proxy_iter)->GetTrack()->SetOrder((*next_track)->GetOrder());
930(*next_track)->SetOrder(order);
931 if((*next_track)->GetTrack())
932(*next_track)->GetTrack()->SetOrder(order);
933order = (*proxy_iter)->GetOrder();
948(*proxy_iter)->GetOrder() != order) {
952TTrackProxies::iterator next_track(proxy_iter);
955(*proxy_iter)->SetOrder((*next_track)->GetOrder());
956 if((*proxy_iter)->GetTrack())
957(*proxy_iter)->GetTrack()->SetOrder((*next_track)->GetOrder());
959(*next_track)->SetOrder(order);
960 if((*next_track)->GetTrack())
961(*next_track)->GetTrack()->SetOrder(order);
963order = (*proxy_iter)->GetOrder();
978(*proxy_from)->GetOrder() != from) {
985(*proxy_to)->GetOrder() != to) {
989 intnew_order = (*proxy_to)->GetOrder() + 1;
990(*proxy_to)->SetOrder(new_order);
991 if(!(*proxy_to)->TrackNotSet()) {
992(*proxy_to)->GetTrack()->SetOrder(new_order);
996(*proxy_from)->SetOrder(to);
997 if(!(*proxy_from)->TrackNotSet()) {
998(*proxy_from)->GetTrack()->SetOrder(to);
1012has_any = ((*iter)->GetTrack() !=
NULL);
1024 intoff = (
int)(seq_len * 0.0001);
1025 TSeqRangetotal_range(off, seq_len - off);
1029(*iter)->IsEmpty() ||
1030((*iter)->GetTrack() ==
NULL&&
1031 dynamic_cast<const CTrackProxy*
>(iter->GetPointer()) &&
1042 while(iter !=
m_TrackProxies.end() && (*iter)->GetOrder() != order) {
1049(*iter)->SetShown(track->
IsOn());
1067 size_tlength = name.length(), post_fix = 0;
1069 const string&
n= p->GetName();
1070 if(
n.length() <= length ||
n.substr(0, length) != name)
1074 if(errno == 0 &&
tmp>= post_fix)
1087 if(track && track->
GetTitle() == name) {
1134 if(shown != proxy->
GetShown()) {
1143c_track->
ShowAll(shown, recursive);
1148 if(t_proxy && shown != t_proxy->
GetShown()) {
1175 intoff =
min((
int)(seq_len * 0.0001), 100);
1176 TSeqRangetotal_range(off, seq_len - off);
1184 if(full_proxy && full_proxy->
GetKey() ==
1198 if(c_track->
IsOn()) {
1207}
else if(track ==
NULL&& full_proxy &&
1223 for(
const auto&
t: src_proxies) {
1227 if(
t->IsEmpty() ||
1228(!
dynamic_cast<const CTrackProxy*
>(
t.GetPointer()) &&
1229!
t->GetTrack() && !
t->IsNA())) {
1232dst_proxies.push_back(
t);
1237 for(
const auto&
t: src_proxies) {
1241 if(
t->IsEmpty() ||
1242(!
dynamic_cast<const CTrackProxy*
>(
t.GetPointer()) &&
1243!
t->GetTrack() && !
t->IsNA())) {
1247 if(
t->GetShown())
1248visible.push_back(
t);
1250hidden.push_back(
t);
1254 for(
const auto&
t: visible) {
1257dst_proxies.push_back(
t);
1261 for(
const auto&
t: hidden) {
1264dst_proxies.push_back(
t);
1276vector<string> naAccessions;
1278 for(
auto&
t: menuTracks) {
1279 if(!
t->GetTrack()) {
1282 t->SetShown(
true);
1285 else if(
t->IsNA()) {
1286 t->SetShown(
true);
1287naAccessions.push_back(
t->GetSource());
1290 else if(!
t->GetShown()) {
1295 if(!naAccessions.empty()) {
1306 for(
auto&
t: menuTracks) {
1307 if(!
t->GetTrack())
continue;
1308 if(
t->GetShown())
1318vector<string> naAccessions;
1320 for(
auto&
t: menuTracks) {
1321 if(!
t->GetTrack() &&
t->IsNA()) {
1322 t->SetShown(
true);
1323naAccessions.push_back(
t->GetSource());
1330 if(!naAccessions.empty()) {
1345 autoit = menuTracks.begin();
1346 while(it != menuTracks.end() && index-- != 0)
1349 if(it == menuTracks.end())
1374 if(proxy->
GetOrder() == order) {
1385 if(proxy->
IsNA()) {
1407 if((*iter)->GetTrack() !=
NULL&& (*iter)->GetTrack()->IsOn()) {
1444 LOG_POST(
Error<<
"CTrackContainer::x_OnJobCompleted() notification \ 1445 for job does not contain results.");
1453 if( !tracks.
empty() ) {
1457c_track->SetSubtrackProxies(t_proxy->
GetChildren());
1470 boolneed_update =
false;
1471 if( !tracks.
empty() ) {
1472need_update =
true;
1474 SetMsg(
", Initializing subtracks..., Finish initializing " 1489 for(
const auto& proxy : menuTracks) {
1491 stringitem_name = proxy->GetDisplayName();
1492 if(item_name.empty()) {
1493item_name = proxy->GetName();
1495 stringhelp_text = item_name;
1496 if(proxy->GetTrack()) {
1497 if(proxy->GetShown() && !proxy->GetTrack()->GetFullTitle().empty() ) {
1498help_text = proxy->GetTrack()->GetFullTitle();
1500item_name = help_text;
1503item_name +=
"...";
1509 if(cont->
IsOn()) {
1510item_name +=
" (no data found so far)";
1512item_name +=
" (potential)";
1515}
else if(proxy->GetShown()) {
1516item_name +=
" (no data found so far)";
1518item_name +=
" (potential)";
1521wxMenuItem* item = 0;
1524item = menu.AppendCheckItem(
1526 if(proxy->GetShown()) {
1541 if(proxy->GetTrack() && !proxy->GetTrack()->IsCollapsible() ) {
1542item->Enable(
false);
1547menu.Append(
kBaseID- 4,
wxT(
"More..."));
1554 boolall_on =
true;
1555 boolall_off =
true;
1558 if((*iter)->GetShown()) {
1566wxMenuItem* item = menu.Append(
kBaseID- 3,
wxT(
"Select all"));
1567 if(all_on) item->Enable(
false);
1568item = menu.Append(
kBaseID- 2,
wxT(
"Deselect all"));
1569 if(all_off) item->Enable(
false);
1570menu.Append(
kBaseID- 1,
wxT(
"Revert selections"));
1571menu.AppendSeparator();
1641params.
m_Annots.assign(accessions.begin(), accessions.end());
1646factory,
this, t_proxy, params);
1676factory,
this, t_proxy, params);
1681 SetMsg(
", Initializing subtracks...");
1697 if(t_proxy)
x_ReinitNATrack(t_proxy, copyAnnots, makeContainersVisible);
1704 if(
key==
"sequence_track")
1722 if(knownAnnots.
empty())
1727 for(
autoit = annots.
begin(); it != annots.
end();) {
1728 autoit2 = knownAnnots.
find(it->first);
1729 if(it2 != knownAnnots.
end()) {
1731it = annots.
erase(it);
1738vector<string> load;
1741 autoit = known.
find(p->GetSource());
1742 if(it != known.
end()) {
1743 if(!p->GetTrack()) {
1744p->SetNAdata(*it->second);
1747load.push_back(it->first);
1753 for(
auto&
i: known) {
1754 stringname_modified(
i.first);
1761load.push_back(
i.first);
1766 if(!load.empty()) {
1768 if(makeContainersVisible)
1784 if(p->GetTrack() == child) {
1798 if(p->GetTrack() || p->IsNA()) ++total;
1803 msg+=
" error, track is broken";
1833 boolwas_on = track->
IsOn();
1871 bool{
returnt1->
GetName() < t2->GetName(); };
1873src_copy.sort(NameComp);
1874 if(!dst_proxies.empty())
1875dst_proxies.sort(NameComp);
1879 boolpartial = (level == -2);
1881time_t timeStamp = time(
NULL);
1883 for(
autosit = src_copy.begin(), dit = dst_proxies.begin(); sit != src_copy.end(); ++sit) {
1884 if(!(*sit)->IsRealized() || !(*sit)->GetTrack())
continue;
1894 while(dit != dst_proxies.end() && (*dit)->GetName() < (*sit)->GetName())
1897 if(dit != dst_proxies.end() && (*dit)->GetName() == (*sit)->GetName()) {
1898 if((*sit)->IsTempTrack() && (*sit)->IsEmpty()) {
1899dit = dst_proxies.erase(dit);
1903(*dit)->
SetOrder((*sit)->GetOrder());
1904(*dit)->SetShown((*sit)->GetShown());
1905(*dit)->SetExpanded((*sit)->GetExpanded());
1906(*dit)->SetTimeStamp(timeStamp);
1907(*dit)->SetTrackProfile((*sit)->GetTrackProfile());
1908(*dit)->SetSource((*sit)->GetSource());
1909(*dit)->SetFilter((*sit)->GetFilter());
1910(*dit)->SetSortBy((*sit)->GetSortBy());
1911(*dit)->SetId((*sit)->GetId());
1912(*dit)->SetDisplayName((*sit)->GetDisplayName());
1923 else if(dp && sp) {
1924 stringdata_source =
1932 else if(!(*sit)->IsEmpty()) {
1933dit = dst_proxies.insert(dit, (*sit)->Clone());
1934(*dit)->SetTimeStamp(timeStamp);
1952 if(!track)
continue;
1954 if(c_track && !c_track->
IsOverlay()) {
1956(base_name.empty() ?
"": base_name +
"---") + p->GetName(),
indent);
1959p->SetOrder(order++);
1960 if(p->IsTempTrack()) {
1961p->SetName(base_name +
"---"+ p->GetName());
1964dst_proxies.push_back(p);
1965 if(p->GetShown()) {
1967featurePanel->
Add(track);
CAppJobNotification Notification send by CAppJobEventTranslator.
CDataTrack - a abstract base class for layout tracks which need to deal with background data retrieva...
virtual bool AllJobsFinished() const
virtual void DeleteAllJobs()
void CreateTrack(const string &desc, const ILayoutTrackFactory *factory, CTrackContainer *parent, CTempTrackProxy *params, const ILayoutTrackFactory::SExtraParams &extra_param)
void SetDSContext(ISGDataSourceContext *ds_context)
virtual bool AllJobsFinished() const
void SetRenderingContext(CRenderingContext *r_cntx)
void Add(CSeqGlyph *obj)
Append a layout object to the end.
CLayoutGroup & SetGroup()
const CLayoutGroup::TObjectList & GetChildren() const
virtual void Update(bool layout_only)
Update content and layout including the bounding box.
const CLayoutGroup & GetGroup() const
CLayoutGroup::TObjectList & SetChildren()
CGraphOverlay container of the graph_tracks that are dispalyed in overlay mode.
void UpdateSource(CTempTrackProxy *self_proxy=0)
void UpdateTrackParams(const string &annot_name)
Close a track.
void UpdateBoundingBox()
update group's bounding box only.
bool Remove(CSeqGlyph *obj)
Remove a layout object.
virtual void GetHTMLActiveAreas(TAreaVector *p_areas) const
Get html active areas.
void UpdateLayout()
update group's bounding box only, and its parent layout.
int m_IndentLevel
track hierachy indentation level.
void SetShowTitle(bool flag)
void SetTitle(const string &label, const string &default_title=NcbiEmptyString)
virtual bool x_ShowTitle() const
Need to preserve title space and show the title.
@ eIcon_Content
icon id for setting content
@ eIcon_Settings
icon id for track settings
bool GetShowTitle() const
void SetIndent(int indent)
ILayoutTrackHost * m_LTHost
Top level host owning the tracks.
virtual void SetComments(const string &)
set comments.
CLayoutTrack * GetParentTrack()
string GetTitle() const
get the track title.
void CloseMe()
close this track.
void x_OnLayoutChanged()
update the layout.
void SetConfig(CRef< CSeqGraphicConfig > conf)
virtual void x_OnIconClicked(TIconID id)
Mouse left-click event handler on an icon.
void SetShow(bool shown)
set the flag only.
void LoadProfile(const string &profile_str)
set track profile and load settings.
void SetIsBlast(bool isBlast)
void SetParentTrack(CLayoutTrack *parent)
void SetMsg(const string &msg)
void Expand(bool expand)
Collapse or expand the track.
CRef< CSeqGraphicConfig > m_gConfig
global configuration.
virtual const CTrackTypeInfo & GetTypeInfo() const =0
int TIconID
use int as TIconID instead of EIconID.
virtual void SetHighlights(const string &)
virtual CHTMLActiveArea * InitHTMLActiveArea(TAreaVector *p_areas) const
Initialize the HTML active area for a track.
void SetHost(ILayoutTrackHost *host)
CRenderingContext offers the basic context and utility methods for rendering layout objects in featur...
CRef< CSGSequenceDS > GetSeqDS() const
const TSeqRange & GetVisSeqRange() const
static bool IsBackgroundJob()
virtual void ClearJobID(TJobID job_id)
virtual void DeleteAllJobs()
Remove waiting jobs from queue or cancel the unfinished jobs.
TSeqPos GetSequenceLength() const
void SetHighlightsColor(const CRgbaColor &hl_color)
CRenderingContext * m_Context
the rendering context
virtual void SetHeight(TModelUnit h)
virtual void Update(bool)
Update content and layout including the bounding box.
vector< CHTMLActiveArea > TAreaVector
const string & GetSizeLevel() const
void UpdateNA_ChildVisibility(CTempTrackProxy &child) const
void SetShown(bool shown)
const string & GetSubkey() const
void SetName(const string &name)
const string & GetCategory() const
const string & GetDisplayName() const
virtual CRef< CTempTrackProxy > Clone() const
virtual bool IsTempTrack() const
check if this is a temporary track.
const TSeqRange & GetVisitedRange() const
const string & GetSortBy() const
list< CRef< CTempTrackProxy > > TTrackProxies
bool GetShowTitle() const
void SetTrack(CLayoutTrack *track)
Associated any track already?.
void SetSource(const string &src)
void SetFilter(const string &filter)
CConstRef< CTempTrackProxy > GetChildTempTrack(const string &name) const
Get track params for child temporary track.
const string & GetKey() const
void SetNAdata(CAnnotMetaData &na)
const string & GetHighlightsColor() const
const string & GetHighlights() const
void SetTrackProfile(const string &profile)
const TAnnots & GetAnnots() const
void SetKey(const string &key)
const string & GetTrackProfile() const
const TTrackProxies & GetChildren() const
void SetOrder(int order)
CTempTrackProxy class implementation.
const string & GetStoredScale() const
const string & GetRemotePath() const
void SetAnnots(const TAnnots &annots)
const string & GetName() const
void SetDisplayName(const string &name)
const string & GetComments() const
const CLayoutTrack * GetTrack() const
const TSubTracks & GetSubTracks() const
const string & GetSource() const
CRef< CTempTrackProxy > AddTempTrack(const string &name, const string &title)
add a new template track params.
void SetVisitedRange(const TSeqRange &range)
const string & GetFilter() const
CTrackConfigManager a help class to manage layout track configuration.
const ILayoutTrackFactory * GetTrackFactory(const string &key) const
static void AdjustTrackOrder(CTempTrackProxy *t_proxy)
void x_OnMore(wxCommandEvent &)
CTrackContainer * m_Track
void x_OnSelectAll(wxCommandEvent &)
void x_OnToggleTrack(wxCommandEvent &event)
void x_OnTrackSettings(wxCommandEvent &event)
CTrackContainerEvtHandler(CTrackContainer *track)
void x_OnDeselectAll(wxCommandEvent &)
void x_OnRevertSelection(wxCommandEvent &)
void OnContextMenu(wxContextMenuEvent &anEvent)
virtual TTrackMap CreateTracks(SConstScopedObject &object, ISGDataSourceContext *ds_context, CRenderingContext *r_cntx, const SExtraParams ¶ms=SExtraParams(), const TAnnotMetaDataList &src_annots=TAnnotMetaDataList()) const
create a layout track based on the input objects and extra parameters.
static const CTrackTypeInfo & GetTypeInfo()
virtual string GetExtensionIdentifier() const
returns the unique human-readable identifier for the extension the id should use lowercase letters se...
virtual string GetExtensionLabel() const
returns a displayable label for this extension ( please capitalize the key words - "My Extension" )
CTrackContainer - a track container in the form of layout track.
void SortChildTracksByOrder()
void ExpandAll(bool expand)
expand or collapse this track and its subtracks recursively.
void OnMenuTrackSettings(int index)
void SetSkipGenuineCheck(bool flag)
virtual void RenameChildTrack(int order, const string &new_name)
Rename a child track.
void LoadNATracks(CTempTrackProxy *t_proxy, const vector< string > &accessions)
void ToggleTracks(vector< string > &naAccessions)
void x_ShowTrack(CLayoutTrack *track, bool on)
void ShowAll(bool shown, bool recursive=true)
turn on/off all children tracks (recursively).
virtual bool NoSubtrackEver() const
Will have no subtrack for ever.
void RemoveEmptyTracks()
remove the empty tracks recursively from bottom to top.
virtual bool IsOverlay() const
virtual void x_OnJobCompleted(CAppJobNotification ¬ify)
bool AllTracksCreated() const
bool x_HasToggleTracks() const
virtual void GetHTMLActiveAreas(TAreaVector *p_areas) const
Get html active areas.
virtual const CTrackTypeInfo & GetTypeInfo() const
virtual void ResetSearch()
virtual void x_UpdateData()
update track content.
CTrackContainer(CRenderingContext *r_cntx, CFeaturePanelDS *ds=NULL)
void SaveTrackStates(int order)
Save track states to it proxy.
virtual bool HasSubtracks() const
Has any real subtracks.
void AddTrackProxy(CTempTrackProxy *proxy, bool upgateMsg=true)
Add a track proxy.
virtual void DeleteAllJobs()
bool IsTrackInitDone() const
CTrackContainer * GetChildContainerTrack(const string &name)
Get a child track container track.
CTrackProxy * AddNewTrack(const string &track_key, const CTrackProxy::TAnnots &annots, const string &disp_name, const string &name="", const string &filter="", const string &sub_key="")
Add a new empty track proxy.
virtual void OnToggleTrack(int order)
void SetAdaptive(bool flag)
CTrackConfigManager * GetConfigMgr()
int GetAnnotLevel() const
static CTrackTypeInfo m_TypeInfo
CLayoutTrack required track type info.
void SetAnnotLevel(int level)
void ClearTracks()
Remove all tracks.
virtual void x_OnIconClicked(TIconID id)
override method in CLayoutTrack to handle speical cases.
void x_MakeTopLevelTracks(CGlyphContainer *featurePanel, TTrackProxies &dst_proxies, int &order, const string &base_name, int indent)
Make all the tracks at different levels as top-level tracks.
virtual bool AllJobsFinished() const
virtual void MoveTrackToTop(int order)
move a track up by 1.
bool x_HasToBeShown() const
void x_UpdateMsg()
udpate message in track title bar.
virtual void RemoveTrack(int order, bool immediately=true)
completely remove a track from the hierachical tree.
void SyncSettings(TTrackProxies &dst_proxies, int level) const
synchronize and merge track settings.
void MoveTrack(int from, int to)
virtual CRef< CSGGenBankDS > GetDataSource()
Method for accessing the data source.
void AddTracks(CTempTrackProxy *t_proxy, TTrackMap &tracks)
add sub tracks after tracks get created.
CRef< CFeaturePanelDS > m_DS
void x_CreateTracksMenu(wxMenu &menu, TIconID id)
virtual bool x_ShowTitle() const
Need to preserve title space and show the title.
void x_AddSubtrack(CTrackContainer *parent, CLayoutTrack *track, CTempTrackProxy *proxy)
bool m_Adaptive
Adpative/Exact selector.
virtual void SetTrack(CLayoutTrack *track, int order, bool shown=true)
Replace the track by the given track order.
virtual void x_ReinitSubtracks()
reinitialize all subtracks if necessary.
void SetTrackInitDone(bool f)
CTempTrackProxy::TTrackProxies TTrackProxies
virtual void MoveTrackToBottom(int order)
move a track down by 1.
void x_ReinitNATrack(CTempTrackProxy *t_proxy, TAnnotMetaDataList &annots, bool makeContainersVisible)
void OnMenuToggleTrack(int index)
int m_AnnotLevel
Annotation selector depth.
TTrackProxies m_TrackProxies
all the tracks including on and off.
virtual void x_OnAllJobsFinished()
actions to take on all job finished.
virtual void CloneTrack(int order, const string &track_tile)
Duplicate an existing track.
string GetUniqueTrackName(const string &name) const
CRef< CTempTrackProxy > x_GetMenuTrack(int index)
void x_ReinitTrack(CTrackProxy *t_proxy)
reinitialize a given subtrack
virtual ~CTrackContainer()
virtual void MoveDown(int order)
move a track down by 1.
CTrackContainer * x_ConvertToContainer(CTempTrackProxy *proxy)
virtual void CloseTrack(int order)
Close a track.
virtual void MoveUp(int order)
move a track up by 1.
virtual void ReinitNASubtracks(TAnnotMetaDataList &, bool)
void SetSubtrackProxies(const TTrackProxies &proxies)
void InitNATracks(const TAnnotMetaDataList &annots, bool makeContainersVisible)
virtual bool x_Empty() const
wxEvtHandler * m_Handler
wx-related event handler.
bool GetSkipGenuineCheck() const
virtual void OnTrackSettings(int order)
CTrackProxy data structure contains information about the position of a track in its parent scope,...
void SetContShown(bool contShown)
bool GetContShown() const
CTrackTypeInfo - holds description of a layout track type.
const string & GetDescr() const
const string & GetId() const
virtual void CloneTrack(const CLayoutTrack *, CTempTrackProxy *) const
duplicate any track setting from a given track instance to a proxy.
static string ExtractFilterName(const string &source)
extract filter name from a source string.
static string ExtractAnnotName(const string &source)
extract anntation name from a source string.
static string MergeAnnotAndFilter(const string &annot, const string &filter)
create a new name based on annotation name and fitler string.
static void GetMatchedAnnots(const TAnnotMetaDataList &src_annots, const vector< string > &target_annots, const string &annot_type, const string &track_type, TAnnotNameTitleMap &out_annots)
Help function to find matched annotations.
virtual bool NeedBackgroundInit() const =0
Background track initialization.
virtual void LTH_ConfigureTracksDlg(const string &category)
virtual void LTH_PopupMenu(wxMenu *menu)=0
show track-specific context menu.
virtual void LTH_PushEventHandler(wxEvtHandler *handler)=0
virtual void LTH_PopEventHandler()=0
ISGDSManager is seqgraphic data source manage that serves as an data source context.
virtual CIRef< ISGDataSource > GetDS(const string &type, SConstScopedObject &object)=0
Get a seqgraphic data source instance of the specified type.
ITrackInitObserver: interface class work as an observer of a track that is responsible of intializing...
virtual void OnTrackInitFinished(const CLayoutTrack *sender)=0
container_type::iterator iterator
const_iterator begin() const
const_iterator end() const
iterator_bool insert(const value_type &val)
const_iterator find(const key_type &key) const
#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)
#define NCBI_THROW(exception_class, err_code, message)
Generic macro to throw an exception, given the exception class, error code and message string.
CRef< CObject > GetResult() const
returns non-null pointer only if Completed or Running and has temporary results available
TObjectType * GetPointer(void) THROWS_NONE
Get pointer,.
void Reset(void)
Reset reference object.
TObjectType * GetPointerOrNull(void) THROWS_NONE
Get pointer value.
bool IntersectingWith(const TThisType &r) const
TThisType & CombineWith(const TThisType &r)
TThisType IntersectionWith(const TThisType &r) const
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
static string SizetToString(size_t value, TNumToStringFlags flags=0, int base=10)
Convert size_t to string.
static string & Replace(const string &src, const string &search, const string &replace, string &dst, SIZE_TYPE start_pos=0, SIZE_TYPE max_replace=0, SIZE_TYPE *num_replace=0)
Replace occurrences of a substring within a string.
static string JsonEncode(const CTempString str, EJsonEncode encoding=eJsonEnc_UTF8)
Encode a string for JSON.
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.
@ fConvErr_NoThrow
Do not throw an exception on error.
unsigned int
A callback function used to compare two keys in a database.
const struct ncbi::grid::netcache::search::fields::KEY key
EVT_MENU_RANGE(MID_SHOW_TITLES, MID_HIDE_TITLES, ViewerWindowBase::OnTitleView) EVT_MENU_RANGE(MID_ENABLE_EDIT
ViewerWindowBase::OnEditMenu ViewerWindowBase::OnJustification EVT_MENU(MID_SHOW_GEOM_VLTNS, ViewerWindowBase::OnShowGeomVltns) EVT_MENU(MID_FIND_PATTERN
static SLJIT_INLINE sljit_ins msg(sljit_gpr r, sljit_s32 d, sljit_gpr x, sljit_gpr b)
A help struct for storing information about a icon.
static bool s_CompareCRefs(const CRef< CTempTrackProxy > &t1, const CRef< CTempTrackProxy > &t2)
static const size_t kMaxMenuTracks
static bool s_GetMenuTracks(CTempTrackProxy::TTrackProxies &dst_proxies, const CTempTrackProxy::TTrackProxies &src_proxies)
static void s_UpdateTitle(CTempTrackProxy *proxy, CLayoutTrack *track)
static const size_t kMaxNameLen
static bool s_TrackByOrder(const CRef< CSeqGlyph > &t1, const CRef< CSeqGlyph > &t2)
help functor for sorting CSeqGlyphs (known as CLayoutTrack) by order.
static const int kBaseID_Settings
static string s_GetBestTrackTitle(const CTempTrackProxy *proxy, const CLayoutTrack *track)
wxString ToWxString(const string &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