78 #define MAX_LEVEL numeric_limits<int>::max()
174 return f_iter->second;
186 ttypes.push_back(it->first);
205 configs = factory->
GetSettings(
"Default", settings,
nullptr);
213 if (
config->IsSetSubkey()) {
214 track->SetSubkey(
config->GetSubkey());
216 if (
config->IsSetHelp()) {
217 track->SetHelp(
config->GetHelp());
219 if (
config->IsSetLegend_text()) {
220 track->SetLegend_text(
config->GetLegend_text());
222 if (
config->IsSetChoice_list()) {
244 option->SetConditions().push_back(cond);
266 values.push_back(
value);
269 int optnum =
static_cast<int>(bundle_options.size());
270 options.push_back(optnum);
271 bundle_options.push_back(
option);
274 if (
config->IsSetCheck_boxes()) {
296 option->SetConditions().push_back(cond);
302 int optnum =
static_cast<int>(bundle_options.size());
303 options.push_back(optnum);
304 bundle_options.push_back(
option);
307 if (
config->IsSetText_boxes()) {
330 option->SetConditions().push_back(cond);
336 int optnum =
static_cast<int>(bundle_options.size());
337 options.push_back(optnum);
338 bundle_options.push_back(
option);
341 if (
config->IsSetRange_controls()) {
342 for (
const auto& rc :
config->GetRange_controls()) {
344 option->SetType(
"object");
346 if (rc->CanGetName())
347 name = rc->GetName();
351 if (rc->IsSetDisplay_name())
352 option->SetLabel(rc->GetDisplay_name());
354 option->SetHelp(rc->GetHelp());
355 if (rc->IsSetConditions()) {
356 for (
const auto& c : rc->GetConditions()) {
359 option->SetConditions().push_back(cond);
362 if (rc->IsSetOptional()) {
363 option->SetOptional(rc->GetOptional());
365 int optnum =
static_cast<int>(bundle_options.size());
366 options.push_back(optnum);
367 bundle_options.push_back(
option);
371 if (
config->IsSetHidden_settings()) {
375 option->SetType(
"hidden");
378 int optnum =
static_cast<int>(bundle_options.size());
379 options.push_back(optnum);
380 bundle_options.push_back(
option);
383 bundle_tracks.push_back(track);
393 ITERATE(list<string>, it, keys) {
403 if (level == -1) level = 0;
417 const string& track_name)
const
427 if (find(annots.begin(), annots.end(), track_name) != annots.end() ||
428 (!annots.empty() && annots.front() ==
"NA*")) {
433 if (
nullptr != t_proxy)
458 typedef pair<string, bool> TAnnotStatus;
459 list<TAnnotStatus> all_tracks;
471 all_tracks.push_back(TAnnotStatus(name,
false));
476 if ( !all_tracks.empty() ) {
479 list<TAnnotStatus>::iterator t_iter = all_tracks.begin();
483 if (t_iter == all_tracks.end()) {
487 vector<int> old_orders;
491 const string& name = (*iter)->GetName();
493 if (tt_iter->first == name) {
494 old_orders.push_back((*iter)->GetOrder());
495 tt_iter->second =
true;
502 t_iter = all_tracks.begin();
503 while (t_iter != all_tracks.end()) {
504 if ( !t_iter->second ) {
505 t_iter = all_tracks.erase(t_iter);
511 if (all_tracks.size() > old_orders.size()) {
512 all_tracks.pop_front();
517 t_iter = all_tracks.begin();
518 while (t_iter != all_tracks.end() &&
519 t_iter->first != (*iter)->GetName()) {
523 if (t_iter != all_tracks.end()) {
524 (*iter)->SetOrder(old_orders[idx]);
535 vector<string> key_values;
537 for (
const auto& opt : key_values) {
542 options2hide.
insert(opt.substr(1));
544 options2show.
insert(opt.substr(1));
548 }
catch (exception& e) {
568 if (s_iter == iter->end())
continue;
571 s_iter = track.
begin();
572 while (s_iter != track.
end()) {
573 const string& k_str = s_iter->first;
575 settings.
m_Key = s_iter->second;
585 settings.
m_DB = s_iter->second;
605 vector<string> tokens;
607 if (tokens.size() > 0) {
609 if (tokens.size() > 1) {
633 settings.
m_Help = s_iter->second;
652 settings.
m_Profile[
"stored_scale"] = s_iter->second;
656 settings.
m_UId = s_iter->second;
658 settings.
m_Batch = s_iter->second;
668 settings.
m_HubId = s_iter->second;
685 settings.
m_Profile[k_str] = s_iter->second;
689 config.push_back(settings);
703 else profile_str +=
",";
704 profile_str += iter->first +
":" + iter->second;
769 bool exact_annot_match =
true)
772 if ( !t_track )
return false;
790 if (!src_track.
m_Key.empty()) {
798 if ( !src_track.
m_Name.empty() ) {
805 if ( !exact_annot_match && src_track.
m_Annots.empty()) {
813 std::sort(annots1.begin(), annots1.end());
814 std::sort(annots2.begin(), annots2.end());
815 return std::equal(annots1.begin(), annots1.end(), annots2.begin());
825 static CTrackConfigManager::TTrackProxies::iterator
829 CTrackConfigManager::TTrackProxies::iterator iter = track_list.begin();
830 for(; iter != track_list.end(); ++iter) {
842 int order,
bool update_annots =
true)
868 if (update_annots && !s.
m_Annots.empty()) {
892 if (!s.
m_Id.empty()) {
895 if (!s.
m_DB.empty()) {
944 size_t pos = subtrack_id.find_last_of(
'_');
945 if (pos != string::npos) {
946 track_id = subtrack_id.substr(0, pos);
947 track_attr = subtrack_id.substr(pos + 1);
949 track_id = subtrack_id;
959 if (!track->
GetId().empty()) {
965 if (!track->
GetUId().empty()) {
973 string tr_id = track_id;
974 size_t pos = track_id.find_last_of(
'_');
975 if (pos != string::npos)
976 tr_id = track_id.substr(0, pos);
978 auto it = m_IdIndex.find(tr_id);
979 if (it != m_IdIndex.end())
980 return Ref(it->second);
981 it = m_AnnotIndex.find(tr_id);
982 if (it != m_AnnotIndex.end())
983 return Ref(it->second);
984 it = m_UidIndex.find(tr_id);
985 if (it != m_UidIndex.end())
986 return Ref(it->second);
994 vector<CTrackProxy*> overlays;
997 if (track->
GetKey() ==
"graph_overlay") {
998 overlays.push_back(track);
1001 if (overlays.empty())
1005 (*parent_it)->GetChildren().clear();
1007 string track_id, track_attr;
1012 subtrack_proxy->
SetShown(track_attr !=
"hidden");
1013 subtrack_proxy->
SetUId(*subtr_it);
1014 if (subtrack_proxy->
GetSource().empty()) {
1017 (*parent_it)->GetChildren().push_back(subtrack_proxy);
1061 (*iter)->SetShown(
false);
1067 int last_id = t_settings.back()->GetOrder();
1077 if (t_iter != t_settings.end()) {
1084 if (iter->m_Order >= 0) {
1085 order = iter->m_Order;
1092 if (iter->m_Shown) {
1097 vector<int> order_list;
1101 order_list.push_back(track->
GetOrder());
1107 _ASSERT(order_list.size() == show_list.size());
1110 (*iter)->SetOrder(order_list[idx++]);
1127 int last_id = t_settings.back()->GetOrder();
1135 if (t_iter != t_settings.end()) {
1142 if (iter->m_Order >= 0) {
1143 order = iter->m_Order;
1148 bool was_on = track->GetShown();
1151 if ( !iter->m_Annots.empty() ) {
1154 track->SetAnnots(iter->m_Annots);
1155 }
else if (!track->GetAnnots().empty() ) {
1157 copy(iter->m_Annots.begin(), iter->m_Annots.end(), back_inserter(annots));
1158 track->SetAnnots(annots);
1160 track->SetAnnots(iter->m_Annots);
1163 track->SetAnnots(iter->m_Annots);
1190 const int max_order = INT_MAX;
1194 (*iter)->SetOrder(max_order);
1198 int order = order_offset;
1202 if (order == max_order)
1208 if (t_iter != t_settings.end()) {
1222 TTrackProxies::iterator t_iter = t_settings.begin();
1223 while (t_iter != t_settings.end() && (*t_iter)->GetOrder() < max_order) {
1226 t_settings.erase(t_iter, t_settings.end());
1235 const string& annot_name = temp_proxy.
GetSource();
1239 if (meta_data == 0) {
1243 meta_data = iter->second;
1249 }
else if (meta_data && !meta_data->
m_Title.empty()) {
1250 display_name = meta_data->
m_Title;
1252 if (annot_name.find(display_name) != string::npos) {
1253 display_name = annot_name;
1254 }
else if (display_name.find(annot_name) == string::npos) {
1257 display_name.clear();
1259 if (!display_name.empty())
1260 display_name +=
" - ";
1261 display_name += annot_name;
1266 display_name =
"(R) " + display_name;
1269 display_name =
"(U) " + display_name;
1272 for (
const auto &annot : temp_proxy.
GetAnnots()) {
1279 if (host ==
"ftp.ncbi.nlm.nih.gov")
1282 display_name =
"(R) " + display_name;
1294 if (
config.IsSetChoice_list()) {
1296 const string& choice_name = choice->GetName();
1297 if (choice->IsSetOptional() && choice->GetOptional()) {
1298 if (options2show.count(choice_name) == 0)
1301 if (options2hide.count(choice_name) > 0)
1304 string item_name = choice_name;
1306 item_name += choice_item->GetName();
1307 if (choice_item->IsSetOptional() && choice_item->GetOptional()) {
1308 if (options2show.count(item_name) == 0)
1311 return options2hide.count(item_name) > 0;
1313 return choice->GetValues().
empty();
1316 if (
config.IsSetCheck_boxes()) {
1318 const string& cb_name = cb->GetName();
1319 if (cb->IsSetOptional() && cb->GetOptional()) {
1320 if (options2show.count(cb_name) == 0)
1323 return options2hide.count(cb_name) > 0;
1338 const string& title_base)
const
1360 if (p_iter != settings.
end()) {
1361 profile = p_iter->second;
1362 }
else if ( !settings.
empty() || profile.empty()) {
1363 profile =
"Default";
1366 const string& annot_name = temp_proxy->
GetSource();
1374 meta_data = iter->second;
1388 conf_factory->
GetSettings(profile, settings, temp_proxy);
1389 if ( !configs->
Get().empty() ) {
1403 typedef vector<string> TCommentPos;
1404 TCommentPos cmt_pos;
1406 TCommentPos::const_iterator iter = cmt_pos.begin();
1407 while (iter != cmt_pos.end()) {
1408 const string&
label = *iter;
1409 if (++iter != cmt_pos.end()) {
1410 config->SetComments().push_back(
1419 typedef vector<string> THighlights;
1422 ITERATE(THighlights, h_iter, hls) {
1425 config->SetHighlights().push_back(hl);
1438 config->SetShow_title(
false);
1452 if(!temp_proxy->
GetBatch().empty()) {
1461 if (!temp_proxy->
GetHelp().empty()) {
1465 if (meta_data && !meta_data->
m_Descr.empty() && temp_proxy->
GetHelp().empty()) {
1470 string display_name = title_base;
1472 config->SetDisplay_name(display_name);
1515 if (cat_name.empty()) {
1516 if (meta_data && !meta_data->
m_xClass.empty()) {
1523 cat_name =
"Graphs";
1525 if (
subkey.find(
"RNA") != string::npos ||
1526 subkey.find(
"exon") != string::npos) {
1529 cat_name =
"Features";
1530 sub_cat_name = title_base;
1535 cat_name =
"Alignments";
1537 cat_name =
"Others";
1552 config->SetCategory(*cat);
1554 if ( !sub_cat && !sub_cat_name.empty() ) {
1559 config->SetSubcategory(*sub_cat);
1567 if ( !temp_proxy->
GetFilter().empty() ) {
1570 if ( !temp_proxy->
GetSortBy().empty() ) {
1573 if ( !temp_proxy->
GetId().empty() ) {
1576 if (proxy && !proxy->
GetDB().empty() ) {
1579 if (proxy && !proxy->
GetDataKey().empty() ) {
1584 config->SetAnnots().push_back(annot_name);
1586 if (!temp_proxy->
GetUId().empty())
1597 if (!temp_proxy->
GetHubId().empty()) {
1609 typedef vector< CIRef<ILayoutTrackFactory> > TTrackFactoryVec;
1610 TTrackFactoryVec factories;
1614 ITERATE (TTrackFactoryVec, iter, factories) {
1615 m_Factories[(*iter)->GetThisTypeInfo().GetId()] = *iter;
1631 for (
auto& p : proxies) {
1632 if (p->GetKey() == featKey)
1633 subkeys.
insert(p->GetSubkey());
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
CAggregateFeatureTrackFactory.
static const CTrackTypeInfo & GetTypeInfo()
CAllOtherFeaturesTrackFactory.
CRef< objects::CCategory > GetCategory(const string &cat_name)
CRef< objects::CCategory > GetSubcategory(const string &cat_name, const string &sub_cat)
CEpigenomicsDSType - Epigenomics data source type.
CEpigenomicsTrackFactory.
CExtensionDeclaration - static declaration helper.
CFeatListItem - basic configuration data for one "feature" type.
CConfigurableItems - a static list of items that can be configured.
string GetStoragekey(int type, int subtype) const
Get the key used to store this type of feature.
static const CTrackTypeInfo & GetTypeInfo()
int GetFeatSubtype() const
static const CTrackTypeInfo & GetTypeInfo()
static const CTrackTypeInfo & GetTypeInfo()
virtual const CTrackTypeInfo & GetTypeInfo() const =0
CSFTransDSType - Six-frames translation data source type.
static void ParseProfileString(const string &profile_str, TKeyValuePairs &settings)
static const CFeatList * GetFeatList()
CRef< CCategoryConfig > GetCategoryConfig()
CSeqTableGraphTrackFactory.
CSixFramesTransTrackFactory.
const string & GetSeqDataKey() const
void SetHubId(const string &hub_id)
void SetShown(bool shown)
void SetRemoteId(const string &remote_id)
void SetRemoteData(const string &remote_data)
const string & GetSubkey() const
const string & GetHelp() const
void SetName(const string &name)
void SetCategory(const string &cat)
const string & GetUId() const
const string & GetCategory() const
const string & GetDisplayName() const
const string & GetBatch() const
const string & GetRemoteId() const
const string & GetSortBy() const
bool GetShowTitle() const
void SetTrack(CLayoutTrack *track)
Associated any track already?.
void SetSource(const string &src)
void SetFilter(const string &filter)
const string & GetBigDataIndex() const
void SetHighlights(const string &hl_str)
void SetId(const string &id)
const string & GetKey() const
void SetHelp(const string &help)
void SetComments(const string &comment_str)
void SetUId(const string &uid)
vector< string > TSubTracks
const string & GetHighlightsColor() const
void SetHighlightsColor(const string &hl_str)
const string & GetHighlights() const
void SetTrackProfile(const string &profile)
const TAnnots & GetAnnots() const
void SetKey(const string &key)
static const string kAnonTrackName
CTempTrackProxy class implementation.
void SetSettingGroup(const string &name)
const set< string > & GetOptions2Hide() const
void SetSubcategory(const string &scat)
const string & GetExtraInfo() const
void SetBigDataIndex(const string &big_data_index)
void SetBatch(const string &batch)
const string & GetId() const
const string & GetTrackProfile() const
void SetSortBy(const string &sort_by)
void SetIsPrivate(bool flag)
void SetOptions2Show(const set< string > &options2show)
bool GetIsPrivate() const
void SetOrder(int order)
CTempTrackProxy class implementation.
TSubTracks & SetSubTracks()
void SetRemotePath(const string &remote_path)
void SetSeqDataKey(const string &seq_data_key)
const string & GetStoredScale() const
const set< string > & GetOptions2Show() const
void SetAnnots(const TAnnots &annots)
const string & GetName() const
void SetDisplayName(const string &name)
const string & GetHubId() const
void SetOptions2Hide(const set< string > &options2hide)
const string & GetComments() const
const CLayoutTrack * GetTrack() const
const TSubTracks & GetSubTracks() const
const string & GetSource() const
const string & GetSettingGroup() const
void SetUseGroupDefault(bool flag)
void SetShowTitle(bool flag)
void SetExtraInfo(const string &sExtraInfo)
const string & GetSubcategory() const
void SetErrorStatus(const TTrackErrorStatus &ErrorStatus)
void SetStoredScale(const string &stored_scale)
const string & GetFilter() const
void SetSubkey(const string &sub_key)
const string & GetRemoteData() const
helper class to faciliatet subtrack processing build pseudo compound track index and provides find me...
CTrackIndex(TTrackProxies &t_settings)
CRef< CTrackProxy > FindTrackById(const string &track_id)
CTempTrackProxy::TTrackProxies TTrackProxies
static void SetTrackConfig(TTrackProxies &t_settings, const TTrackSettingsSet &in_settings, int order_offset=0)
Reset the track configuration with input settings.
list< TTrackSettings > TTrackSettingsSet
const ILayoutTrackFactory * GetTrackFactory(const string &key) const
const TAnnotMetaDataList & GetKnownAnnots(int level) const
Get known annotation based on level number.
void CreateDisplayName(const CAnnotMetaData *meta_data, const CTempTrackProxy &temp_proxy, string &display_name) const
void AlignTrackConfig(TTrackProxies &t_settings, const TTrackSettingsSet &in_settings)
list< string > GetTrackTypes() const
static bool ValidFeatureTrack(const objects::CFeatListItem &item)
void MergeTrackConfig(TTrackProxies &t_settings, const TTrackSettingsSet &settings_set, EAnnotMerge merge)
Merge with the existing track configuration.
static void GetUsedFeatureKeys(set< string > &subkeys, const TTrackProxies &proxies)
void x_InitTrackManager()
CRef< objects::CTrackConfig > CreateTrackConfig(CTempTrackProxy *temp_proxy, CSeqGraphicConfig &g_config, const string &title_base) const
Create configuration for a give track proxy.
TKnownAnnotMap m_KnownAnnots
Complete list of known annotations with meta-data.
static void AdjustTrackOrder(CTempTrackProxy *t_proxy)
bool OnShownList(const CTempTrackProxy *p_proxy, const CTempTrackProxy *t_proxy, const string &track_name) const
ILayoutTrackFactory::TAnnotMetaDataList TAnnotMetaDataList
CConstRef< objects::CDisplayOptionsBundle > GetTrackDisplayOptions(const list< string > &keys) const
static void RegisterSGTracks()
void x_AppendKeyDisplayOptions(const string &key, objects::CDisplayOptionsBundle &bundle) const
static CRef< objects::CCategory > CreateCategory(const string &name, const string &disp_name, const string &help, int order)
static CRef< objects::CComment > CreateComment(const string &label, const string &pos_str)
CTrackContainer - a track container in the form of layout track.
void SortChildTracksByOrder()
const TTrackProxies & GetSubtrackProxies() const
CTrackContainer inline methods.
CTrackProxy data structure contains information about the position of a track in its parent scope,...
void SetDataKey(const string &key)
void SetOriginalKey(const string &key)
const string & GetDB() const
const string & GetDataKey() const
void SetDB(const string &db)
const string & GetDescr() const
const string & GetId() const
virtual const CTrackTypeInfo & GetThisTypeInfo() const =0
ITrackConfigurable interface for tracks that are configurable.
virtual CRef< objects::CTrackConfigSet > GetSettings(const string &profile, const TKeyValuePairs &settings, const CTempTrackProxy *track_proxy) const =0
container_type::const_iterator const_iterator
const_iterator begin() const
const_iterator end() const
const_iterator find(const key_type &key) const
iterator_bool insert(const value_type &val)
static DLIST_TYPE *DLIST_NAME() first(DLIST_LIST_TYPE *list)
#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 ERR_POST(message)
Error posting with file, line number information but without error codes.
void Error(CExceptionArgs_Base &args)
static bool IsNAA(const string &annot, bool isStrict=false)
check if a given annotation is a named annotation accession[.version][number] when isSctrict == false...
string m_xClass
annotation category
static const string & GetUnnamedAnnot()
Get the commonly used symbol representing a unnnamed annotation.
string m_Descr
annotation description (or comment)
static bool IsGeneModelFeature(int type, int subtype)
Does feature belong to gene model track Gene, RNA, cdregion, exon, C_region, and VDJ segments.
static bool IsUnnamed(const string &annot)
check if a given annotation is a unnamed annotation.
string m_Title
annotation title
#define EXT_POINT__NONASN_TRACK_DATA_FACTORY
static TAnnotNameType NameTypeStrToValue(const string &type)
EAnnotationNameType
flags for classifying annotation names.
@ eAnnot_Unnamed
unnamed annotation
@ eAnnot_Other
any given named annots
static const string kStdTrackId
prefix for STD (as opposed to TMS) tracks
void GetExtensionAsInterface(const string &ext_point_id, vector< CIRef< I > > &interfaces)
GetExtensionAsInterface() is a helper function that extracts all extensions implementing the specifie...
static const string cTrackSettingKey_ErrorShortMsg
if present contains the short error message
static const string cTrackSettingKey_ErrorMsg
if present contains the error message
static const string cTrackSettingKey_ErrorSeverity
if present and set to anything, but CHTMLActiveArea::eErrorSeverity_NoError, do not attempt to load t...
static string RemoveEscape(const string &str)
remove escape characters ('\') used for escaping special characters in track settings values
static const string kRStdTrackId
prefix for Remote STD (as opposed to TMS) tracks
static const string cTrackSettingKey_PrivatePrefix
some internal reserved track setting keys that are used for internal communication always start with ...
TErrorSeverity m_ErrorSeverity
static void TokenizeWithEscape(const string &str, const string &delim, vector< string > &tokens, bool remove_escape=false)
Tokenize a string using the delim.
static const string cTrackSettingKey_ErrorCode
if present contains the error code
const CSeq_id & GetId(const CSeq_loc &loc, CScope *scope)
If all CSeq_ids embedded in CSeq_loc refer to the same CBioseq, returns the first CSeq_id found,...
CRef< C > Ref(C *object)
Helper functions to get CRef<> and CConstRef<> objects.
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.
static bool StringToBool(const CTempString str)
Convert string to bool.
static int StringToInt(const CTempString str, TStringToNumFlags flags=0, int base=10)
Convert string to int.
static bool EndsWith(const CTempString str, const CTempString end, ECase use_case=eCase)
Check if a string ends with a specified suffix value.
static string Join(const TContainer &arr, const CTempString &delim)
Join strings using the specified delimiter.
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 bool StartsWith(const CTempString str, const CTempString start, ECase use_case=eCase)
Check if a string starts with a specified prefix value.
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 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 string TruncateSpaces(const string &str, ETrunc where=eTrunc_Both)
Truncate spaces in a string.
static string & ToLower(string &str)
Convert string to lower case – string& version.
@ eNocase
Case insensitive compare.
const string & GetHost(void) const
static const char label[]
bool IsSetLegend_text(void) const
Check if a value has been assigned to Legend_text data member.
bool IsSetHelp(void) const
Check if a value has been assigned to Help data member.
bool IsSetOptional(void) const
Check if a value has been assigned to Optional data member.
const TName & GetName(void) const
Get the Name member data.
const TCurr_value & GetCurr_value(void) const
Get the Curr_value member data.
bool IsSetOptional(void) const
Check if a value has been assigned to Optional data member.
TOptions & SetOptions(void)
Assign a value to Options data member.
bool IsSetOptional(void) const
Check if a value has been assigned to Optional data member.
TOptional GetOptional(void) const
Get the Optional member data.
TOptional GetOptional(void) const
Get the Optional member data.
list< CRef< CDisplayOption > > TOptions
TOptional GetOptional(void) const
Get the Optional member data.
const TConditions & GetConditions(void) const
Get the Conditions member data.
const TValue & GetValue(void) const
Get the Value member data.
list< CRef< CDisplayOptionValue > > TValues
const Tdata & Get(void) const
Get the member data.
bool IsSetDisplay_name(void) const
Check if a value has been assigned to Display_name data member.
bool IsSetConditions(void) const
Check if a value has been assigned to Conditions data member.
const THelp & GetHelp(void) const
Get the Help member data.
list< CRef< CChoiceItem > > TValues
list< CRef< CTextBox > > TText_boxes
list< CRef< CDisplayTrack > > TTracks
bool IsSetDisplay_name(void) const
Check if a value has been assigned to Display_name data member.
const TName & GetName(void) const
Get the Name member data.
const THelp & GetHelp(void) const
Get the Help member data.
bool IsSetDisplay_name(void) const
Check if a value has been assigned to Display_name data member.
TValue GetValue(void) const
Get the Value member data.
Tdata & Set(void)
Assign a value to data member.
list< CRef< CTrackConfig > > Tdata
const TDisplay_name & GetDisplay_name(void) const
Get the Display_name member data.
bool IsSetHelp(void) const
Check if a value has been assigned to Help data member.
bool IsSetHelp(void) const
Check if a value has been assigned to Help data member.
const TDisplay_name & GetDisplay_name(void) const
Get the Display_name member data.
const TName & GetName(void) const
Get the Name member data.
bool IsSetDisplay_name(void) const
Check if a value has been assigned to Display_name data member.
const TName & GetName(void) const
Get the Name member data.
bool IsSetConditions(void) const
Check if a value has been assigned to Conditions data member.
list< CRef< CChoice > > TChoice_list
list< CRef< CCheckBox > > TCheck_boxes
const TDisplay_name & GetDisplay_name(void) const
Get the Display_name member data.
bool IsSetConditions(void) const
Check if a value has been assigned to Conditions data member.
const TDisplay_name & GetDisplay_name(void) const
Get the Display_name member data.
const TName & GetName(void) const
Get the Name member data.
const TLegend_text & GetLegend_text(void) const
Get the Legend_text member data.
const TConditions & GetConditions(void) const
Get the Conditions member data.
const TConditions & GetConditions(void) const
Get the Conditions member data.
TOptional GetOptional(void) const
Get the Optional member data.
bool IsSetOptional(void) const
Check if a value has been assigned to Optional data member.
const THelp & GetHelp(void) const
Get the Help member data.
bool IsSetHelp(void) const
Check if a value has been assigned to Help data member.
list< CRef< CHiddenSetting > > THidden_settings
TTracks & SetTracks(void)
Assign a value to Tracks data member.
const TValue & GetValue(void) const
Get the Value member data.
const TValues & GetValues(void) const
Get the Values member data.
const THelp & GetHelp(void) const
Get the Help member data.
#define EXT_POINT__SEQGRAPHIC_LAYOUT_TRACK_FACTORY
FeaturePanel uses the following extension point to obtain registered seqgraphic track factories (inst...
if(yy_accept[yy_current_state])
constexpr auto sort(_Init &&init)
constexpr bool empty(list< Ts... >) noexcept
const struct ncbi::grid::netcache::search::fields::KEY key
const struct ncbi::grid::netcache::search::fields::SUBKEY subkey
const GenericPointer< typename T::ValueType > T2 value
void copy(Njn::Matrix< S > *matrix_, const Njn::Matrix< T > &matrix0_)
#define EXT_POINT__PROJECT_ITEM_EXTENSION
#define EXT_POINT__SEQGRAPHIC_DATA_SOURCE_TYPE
ISGDataSourceManager uses the following extension point to obtain registered seqgraphic data source f...
static bool s_CompareCRefs(const CRef< CTempTrackProxy > &t1, const CRef< CTempTrackProxy > &t2)
help struct for storing track settings
TTrackErrorStatus m_ErrorStatus
CSGConfigUtils::TKeyValuePairs TProfile
vector< STrackSettings > TTrackConfig
set< string > m_Options2Show
vector< string > TSubTracks
static void ParseSettings(const CTrackConfigManager::TTrackSettingsSet &settings_set, TTrackConfig &config)
static string CreateProfileString(const TProfile &profile)
set< string > m_Options2Hide
CTrackProxy::TAnnots m_Annots
void s_ResolveSubTracks(CTrackConfigManager::TTrackProxies &t_settings)
void s_InitTrackFromSettings(CTrackProxy &track, const STrackSettings &s, int order, bool update_annots=true)
static void s_ParseOptionalSettings(const string &optional_settings, set< string > &options2hide, set< string > &options2show)
static CTrackConfigManager::TTrackProxies::iterator s_FindMatchedTrack(const STrackSettings &src_track, CTrackConfigManager::TTrackProxies &track_list)
Helper function to find a matched track from a list of tracks for a given source track.
static bool s_IsStdTrack(const string &track_id)
static bool s_TrackMatch(const STrackSettings &src_track, const CTempTrackProxy &target_track, bool exact_annot_match=true)
The matching logic is 'vague' due to the fact that the user-provided 'tracks' may be ambiguous.
static void s_ParseSubTrackId(const string &subtrack_id, string &track_id, string &track_attr)
void s_ProcessOptionalSettings(CTempTrackProxy &temp_proxy, CTrackConfig &config)