121 if ((
delta==1 ||
delta==0) && !(*node).GetSeqID().Empty()){
145 size_t len = s.size();
161 size_t len = s.size();
179 size_t uncompressed_len;
198 size_t uncompressed_len;
209 virtual string GetLabel() {
return "Phylogenetic tree edit"; }
266 uo_id->
SetStr(
"Tree Metadata");
290 virtual string GetLabel() {
return "Phylogenetic tree SelectionSets update"; }
333 typedef TNodeList::value_type::element_type
TCNode;
344 if (sel_cmd !=
NULL &&
true) {
387 const string& fvalue = it->second;
394 feat_list.push_back(d);
409 int update_count = 0;
417 TCNode::TId uid = cnode->GetId();
436 (*node)->GetBioTreeFeatureList() = iter->GetPrevFeatures();
438 (*node)->GetBioTreeFeatureList() = iter->GetFeatures();
444 cnode->ResetFeatures();
449 const string& fvalue = (*it).value;
452 cfeat->SetFeatureid(fid);
453 cfeat->SetValue(fvalue);
455 fset.Set().push_back(cfeat);
459 LOG_POST(
Error <<
"Execute properties update error on node ID: " <<
511 virtual string GetLabel() {
return "Phylogenetic tree feature update"; }
534 typedef TNodeList::value_type::element_type
TCNode;
561 bool has_feature =
false;
570 if (fdesc->GetName() ==
"$NODE_COLLAPSED") {
572 collapse_fid = fdesc->GetId();
574 max_fid =
std::max(max_fid, fdesc->GetId());
578 collapse_fid = max_fid + 1;
581 d->SetId(collapse_fid);
582 d->SetName(
"$NODE_COLLAPSED");
584 feat_list.push_back(d);
593 std::sort(node_ids.begin(), node_ids.end());
594 int nodes_updated = 0;
602 TCNode::TId uid = cnode->GetId();
603 if (std::binary_search(node_ids.begin(), node_ids.end(), uid)) {
608 _TRACE(
"Node not found for id: " << uid);
617 bool collapse_feature_found =
false;
621 if (feature->GetFeatureid() == collapse_fid) {
623 feature->SetValue(collapse_value);
624 collapse_feature_found =
true;
630 if (!collapse_feature_found) {
632 cfeat->SetFeatureid(collapse_fid);
633 cfeat->SetValue(collapse_value);
635 features.push_back(cfeat);
639 if (nodes_updated != node_ids.size()) {
640 _TRACE(
"Execute properties update error - CBioTreeContainer collapse node update count did not match");
651 string feature_value =
"0";
665 string feature_value;
681 virtual string GetLabel() {
return "Phylogenetic tree expand/collapse update"; }
712 "View
for graphical presentation of hierarchical
data (phylogenetic
tree, taxonomy
tree, etc.) using various layout methods",
722 , m_EditUpdate(
false)
725 #ifdef ATTRIB_MENU_SUPPORT
742 #ifdef ATTRIB_MENU_SUPPORT
757 wxMenu* view_menu =
new wxMenu();
759 view_menu->Append( wxID_SEPARATOR,
wxT(
"Actions") );
761 wxMenu* bar_menu =
new wxMenu();
762 bar_menu->Append(
wxID_ANY,
wxT(
"&View"), view_menu );
779 if (event.IsCommandEvent()) {
780 wxEventType
type =
event.GetEventType();
784 wxEvtHandler* evtHandler = child->GetEventHandler();
785 if (evtHandler && evtHandler->ProcessEventLocally(event))
790 return wxPanel::ProcessEvent(event);
806 wxBoxSizer* sizer =
new wxBoxSizer(wxVERTICAL);
809 sizer->Add(queryPanel, 0, wxEXPAND);
810 sizer->Add(phyWidget, 1, wxEXPAND);
846 const CObject*
object = it->object.GetPointer();
867 if (!ws)
return false;
975 bool first_update = (phyWidget->
GetDS() ==
NULL);
1007 label_format ==
"" &&
1019 label_format ==
"" &&
1025 if (label_format ==
"")
1052 label_format ==
"") {
1126 m_Cont->SetTreetype(
"Phylogenetic Tree");
1131 vector<CPhyloTree::TTreeIdx> sel_nodes;
1134 ITERATE(vector<CPhyloTree::TTreeIdx>, it, sel_nodes) {
1136 if (!(*n).GetSeqID().Empty()) {
1152 vector<CPhyloTree::TTreeIdx> sel_nodes;
1154 if (sel_nodes.size() > 0) {
1166 ITERATE(vector<CPhyloTree::TTreeIdx>, it, sel_nodes) {
1168 if (!(*n).GetSeqID().Empty()) {
1181 ITERATE(vector<CPhyloTree::TTreeIdx>, it, sel_nodes) {
1183 const string& tax_id = (*n).GetBioTreeFeatureList()[feature_id];
1205 const string& tax_id = (*tree_node).GetBioTreeFeatureList()[
m_TaxFeatureId];
1242 const string& feat_val = (*tree_node).GetBioTreeFeatureList()[
m_FeatureId];
1243 if (feat_val !=
"") {
1268 if (phyWidget ==
NULL)
1271 vector<TTreeIdx> sel_nodes;
1272 vector<CPhyloTree::TID> sel_node_ids;
1286 bool select_seqids =
true;
1287 bool select_taxids =
true;
1290 if (objs.size() > 0) {
1291 select_seqids =
false;
1292 select_taxids =
false;
1294 bioTreeSelection =
dynamic_cast<const CBioTreeSelection*
>(objs[0].GetNonNullPointer());
1296 if (bioTreeSelection !=
NULL && bioTreeSelection->
GetNodeIds().size()) {
1303 bool select_by_id =
false;
1306 select_by_id =
true;
1312 if (!select_by_id && bioTree->IsSetFdict()) {
1317 feature_id = bioTreeSelection->
GetFeatureId(feat_name);
1328 sel_node_ids.reserve(nodeIds.size());
1329 std::copy(nodeIds.begin(), nodeIds.end(), back_inserter(sel_node_ids));
1331 else if (feature_id != -1) {
1332 if (feat_name ==
"seq-id")
1333 select_seqids =
true;
1334 if (feat_name ==
"tax-id" || feat_name ==
"taxid")
1335 select_taxids =
true;
1337 if (!select_seqids && !select_taxids) {
1341 std::vector<size_t>::iterator iter;
1343 string feat_val = bioTreeSelection->
GetFeatureValue(*iter,feature_id);
1344 if (feat_val.empty())
1346 selected_feature_values.
insert(feat_val);
1367 ids.push_back((*it_loc)->m_Id);
1370 if (ids.size() != 0 && select_seqids) {
1388 else if (select_taxids) {
1401 if (feature_id != -1) {
1412 if (!sel_nodes.empty()) {
1421 if (!sel_node_ids.empty()) {
1426 if (bioTreeSelection !=
NULL) {
1509 phyWidget->SetCursor(*wxHOURGLASS_CURSOR);
1526 sb_srv->SetStatusMessage(
"No selected nodes found");
1540 sb_srv->SetStatusMessage(
"No selected nodes found");
1557 phyWidget->SetCursor(*wxSTANDARD_CURSOR);
1577 if (dlgExport.ShowModal() != wxID_OK)
1607 uo_id->
SetStr(
"Tree Metadata");
1617 uo.
AddField(
"layout", current_layout);
1622 if (uo.
HasField(
"use-distances") &&
1627 uo.
AddField(
"use-distances", use_distances);
1631 if (uo.
HasField(
"rotate-labels") &&
1636 uo.
AddField(
"rotate-labels", rotate_labels);
1646 if (sel_edit !=
NULL) {
1669 uo_id->
SetStr(
"Tree Metadata");
1681 uo.
AddField(
"label-format", label_format);
1696 uo_id->
SetStr(
"Tree Metadata");
1711 if (fedit !=
NULL) {
1737 if (expand_collapse !=
NULL) {
1811 in_project->
Reset();
1821 if (!queryEvt)
return;
1824 sb_srv->SetStatusMessage(queryEvt->
GetStatus());
1831 static string sid(
"phy_tree_view_factory");
1838 static string slabel(
"Phylogenetic Tree View Factory");
1879 bool found_good =
false;
1880 bool found_bad =
false;
1881 for(
size_t i = 0;
i <
objects.size();
i++) {
1883 const type_info&
type =
typeid(*obj);
1900 m_Btc.
Reset(
const_cast<objects::CBioTreeContainer*
>(btc));
1901 m_Descr =
"Phylogenetic Tree Cutter Tool";
1912 item->SetItem().SetOther().Set(*
m_Btc);
1913 item->SetLabel(
label);
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
Defines CBioTreeSelection, class used to broadcast selected tree nodes between views.
CAppJobTask CAppJobTask is an adapter that allows for running IAppJobs as Tasks in App Task Service.
const TNodeIdsVector & GetNodeIds() const
Returns const list of selected nodes.
std::vector< objects::CNode::TId > TNodeIdsVector
Vector of node IDs.
const TNodeIdsVector & GetExplicitlySelectedNodeIds() const
Returns const list of explicitly selected nodes.
std::string GetFeatureValue(objects::CNode::TId nodeId, objects::CFeatureDescr::TId featureId) const
Gets the value of a feature for the specified node id.
objects::CFeatureDescr::TId GetFeatureId(const std::string &feature) const
Gets the id of the specified feature.
bool HasFeature(const std::string &feature) const
Checks if the BioTree has the specified feature.
CConstRef< objects::CBioTreeContainer > GetBioTree() const
Returns the BioTree.
CBioTreeContainer::TFdict TContainerDict
TCNode::TFeatures TCNodeFeatureSet
virtual void Execute()
Do the editing action.
TNodeList::value_type::element_type TCNode
CChangePhyloExpandCollapseCmd(CPhyTreeView *view, CExpandCollapseNodes *ec_edit, CRef< CPhyloTreeDataSource > ds, CConstRef< objects::CBioTreeContainer > bio_tree)
TCNodeSet::Tdata TNodeList
CConstRef< objects::CBioTreeContainer > m_BioTree
virtual string GetLabel()
CBioTreeContainer::TNodes TCNodeSet
CRef< CPhyloTreeDataSource > m_DS
TCNodeFeatureSet::Tdata TNodeFeatureList
CRef< CExpandCollapseNodes > m_ExpandCollapseEdit
TNodeFeatureList::value_type::element_type TCNodeFeature
virtual void Unexecute()
Undo (opposite to Execute())
TContainerDict::Tdata::value_type::element_type TCFeatureDescr
void PerformEdit(CPhyloNodeData::TDisplayChildren ec, CNodeFeature_Base::TValue &collapse_value)
virtual bool CanMerge(IEditCommand *cmd)
IEditCommand merge commands (macros allow changes to both properties and selection sets,...
CBioTreeContainer::TFdict TContainerDict
TCNodeFeatureSet::Tdata TNodeFeatureList
virtual void Unexecute()
Undo (opposite to Execute())
TNodeFeatureList::value_type::element_type TCNodeFeature
virtual void Execute()
Do the editing action.
CRef< CChangePhyloSelectionSetCmd > m_MergedCmd
TCNode::TFeatures TCNodeFeatureSet
virtual string GetLabel()
CRef< CFeatureEdit > m_FeatureEdit
CChangePhyloPropertyCmd(CPhyTreeView *view, CFeatureEdit *fedit, CRef< CPhyloTreeDataSource > ds, CConstRef< objects::CBioTreeContainer > bio_tree)
CRef< CPhyloTreeDataSource > m_DS
TCNodeSet::Tdata TNodeList
CBioTreeContainer::TNodes TCNodeSet
TContainerDict::Tdata::value_type::element_type TCFeatureDescr
virtual void Merge(IEditCommand *cmd)
CConstRef< objects::CBioTreeContainer > m_BioTree
void PerformFeatureDictEdit(CBioTreeFeatureDictionary &dict)
void PerformEdit(CBioTreeFeatureDictionary &dict, bool prev_features)
TNodeList::value_type::element_type TCNode
SelectionSets are stored in the biotreecontainer's user-data object so we need a special change comma...
CConstRef< objects::CBioTreeContainer > m_BioTree
CRef< CSelectionSetEdit > m_SelectionEdit
CChangePhyloSelectionSetCmd(CPhyTreeView *view, CSelectionSetEdit *sel_edit, CRef< CPhyloTreeDataSource > ds, CConstRef< objects::CBioTreeContainer > bio_tree)
virtual void Execute()
Do the editing action.
CRef< CPhyloTreeDataSource > m_DS
virtual void Unexecute()
Undo (opposite to Execute())
virtual string GetLabel()
static CLZOCompression m_Compressor
CChangePhyloTreeCommand(CPhyTreeView *view, CConstRef< CBioTreeContainer > prev_tree, CRef< CBioTreeContainer > new_tree)
virtual string GetLabel()
struct CChangePhyloTreeCommand::SBTree TBTree
static vector< char > m_UtilVec
virtual void Unexecute()
Undo (opposite to Execute())
virtual void Execute()
Do the editing action.
CDataLoadingAppJob - a base class for Jobs loading data into projects.
void AddProjectItem(objects::CProjectItem &item)
CRef< objects::CScope > m_Scope
CDataLoadingAppTask - a task that executes CDataLoadingAppJob.
CEvent - generic event implementation TODO TODO - Attachments.
CPhyExportParams & GetData()
Data access.
CNcbiOstrstreamToString class helps convert CNcbiOstrstream to a string Sample usage:
void Clear(objects::CScope *scope)
void Add(ISelObjectHandle *obj_handle, CObject &obj)
void GetMatches(const CObject &object, objects::CScope &scope, TResults &results) const
void SetLabelFormat(const wxString &value)
void SetBioTree(CBioTreeContainer *value)
CPhyRebuildIndexVisitor(CObjectIndex &idx)
ETreeTraverseCode operator()(CPhyloTree &tree, CPhyloTree::TTreeIdx node_idx, int delta)
CPhyTreePanel(wxWindow *parent, long childId)
virtual bool ProcessEvent(wxEvent &event)
vector< CPhyloSelectionSet > & GetSets()
void SetSelectionSetProperty(CPhyloTree *tree_model)
void RenumberClusterIDs(int start_id)
Update all cluster ids using the starting-id as the lowest value.
void SaveToUserObject(objects::CBioTreeContainer_Base::TUser &uo)
void Init(const objects::CBioTreeContainer &tree, objects::CScope &scope, bool expand_all=false)
Throws exception if tree is empty - at least 1 node is required.
CTreeLabel GetTreeLabel() const
TClusterID GetMaxClusterID()
void Relabel(CPhyloTreeScheme *scheme, string labelFmt)
void Sort(bool ascending)
CPhyloSelectionSetMgr & GetSelectionSets()
const CBioTreeFeatureDictionary & GetDictionary() const
CTreeGraphicsModel & GetModel()
Get model for rendering.
string GenerateTooltipFormat()
string GetLabelForNode(const CPhyloTree &tree, const CPhyloTreeNode &node, const string &format)
void SetScheme(CPhyloTreeScheme &sl, const CPhyloTree *tree)
void ExpandCollapse(CBioTreeFeatureDictionary &dict, CPhyloNodeData::TDisplayChildren chds)
Set this node to be expanded/collapsed.
void SetLabel(CBioTreeFeatureDictionary &dict, const string &label)
Set label string and synch value to the feature list for this ndoe.
virtual bool LoadCurrentSettings()
string & SetTooltipFormat(void)
void SetLabelStyle(const TLabelStyle &ls)
string & SetLabelFormat(void)
void SetLabelVisibility(const TLabelsVisibility &lv)
CPhyloTreeSelectionRoot()
int m_CurrentRootDistance
int m_SelectionRootDistance
ETreeTraverseCode operator()(CPhyloTree &tree, CPhyloTree::TTreeIdx node_idx, int delta)
TTreeIdx GetSelectionRootIdx() const
TTreeIdx m_SelectionRootIdx
Tree subclass also has functions and data needed for rendering and selection.
void SetExplicitlySelected(const vector< TID > &esel)
Reset explicitly selected nodes to those currently selected nodes that are also found in the vector '...
void SetSelectionIDs(const vector< TID > &ids, bool sel=true, bool sel_children=true)
Select a set of nodes - equivalent to calling SetSelection(idx, true, true, true) on each of the node...
void SetLeavesExplicitlySelected()
Set the nodes used for iteration to default to the leaf nodes.
void ClearSelection()
Sets selection state of all nodes to eNotSelected and clears m_Selected.
void GetSelectedIDs(vector< TID > &sel) const
Returns the node ids of selected nodes.
CPhyloNodeData::TClusterID TClusterID
CPhyloSelectionSetMgr & GetSelectionSets()
void SetSelection(TTreeIdx idx, bool sel, bool sel_children=true, bool sel_parents=true)
Select or deselect the node at the specified index and, optionally, its parents and children as well.
TTreeIdx GetCurrentNodeIdx() const
Return the index of the currently active node (may be Null()).
bool HasCurrentNode() const
Return true if the currently active node is not Null()
void GetExplicitlySelectedIDs(vector< TID > &esel) const
Returns only ids of nodes explicitly selected, not their parents or children, i.e.
TTreeIdx FindNodeById(TID id) const
Return index of the node with the given id or Null().
CBioTreeFeatureDictionary & GetFeatureDict()
Return feature dictionary.
void GetSelected(vector< TTreeIdx > &sel) const
Returns indices of selected nodes.
size_t GetNumSelected() const
Returns the number of selected nodes.
CProjectService - a service providing API for operations with Workspaces and Projects.
virtual void x_ReportInvalidInputData(TConstScopedObjects &objects)
use this function to report incompatible data in InitView()
virtual void OnProjectChanged()
virtual void x_UpdateContentLabel()
unique_ptr< const wxMenu > m_MenuBarMenu
virtual objects::CScope * x_GetScope() const
virtual void x_AttachToProject(CGBDocument &doc)
virtual bool x_HasProject() const
EEventSubtype GetSubtype() const
CProjectViewTypeDescriptor - holds description of a project view type.
virtual CUndoManager * x_GetUndoManager()
gets undo manager
const string & GetStatus() const
virtual void Create(wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize)
Create window.
TTreeIdx GetNodeIdx() const
CSelNodeHandle(CPhyloTree::TTreeIdx node_idx)
CProjectSelectOptions - describes how new Project Items shall be added to a workspace.
void Set_AddToExistingProject(TProjectId &project_id, const string &folder=kEmptyStr)
CSelectionEvent CSelectionEvent is used for broadcasting selection between views.
vector< CConstRef< objects::CSeq_id > > TIds
const TIdLocs & GetIdLocs() const
const TTaxIds & GetTaxIDs() const
static bool sm_TreeBroadcastOneToOne
Node properties used to compare trees when broadcasting.
void AddTaxIDSelection(TTaxId tid)
void GetIndexed(const string &area_name, TConstObjects &objs) const
Get Objects from the private broadcasting area (caller has to make sure output objs is empty)
static vector< string > sm_TreeBroadcastProperties
broadcast sel. between documents
vector< CConstRef< CIdLoc > > TIdLocs
void AddIndexed(const string &area_name, const CObject &obj)
Add private selection broadcasting info.
objects::CScope & GetScope()
const TIds & GetIds() const
bool HasObjectSelection()
Object Selection - represents select Objects (such as features, alignments, etc)
bool AddObjectSelection(const CObject &obj)
Class designed to hold a set of tax-ids represented as (on) bits in a bit vector.
bool IsSelected(TTaxId tid) const
CRgbaGradColorTable * GetColorTable()
Get color table used a 1D texture map for edges and nodes.
void SaveToUserObject(CBioTreeContainer_Base::TUser &uo)
static TTreeIdx Null()
Return the index value that represents a NULL node.
TNodeType & GetNode(TTreeIdx idx)
Return a reference to the node at the given index.
TTreeIdx GetRootIdx() const
Return the index of the root node.
CUICommandRegistry is a centralized registry where all application commands should be registered.
bool HasField(const string &str, const string &delim=".", NStr::ECase use_case=NStr::eCase) const
Verify that a named field exists.
CUser_object & AddField(const string &label, const string &value, EParseField parse=eParse_String)
add a data field to the user object that holds a given value
CUser_field & SetField(const string &str, const string &delim=".", const string &obj_subtype=kEmptyStr, NStr::ECase use_case=NStr::eCase)
Access a named field in this user object.
const CUser_field & GetField(const string &str, const string &delim=".", NStr::ECase use_case=NStr::eCase) const
Access a named field in this user object.
CViewTypeDescriptor - holds description of a view type.
Undo/Redo interface for editing operations.
virtual void Execute(IEditCommand *command, wxWindow *window=0)=0
Interface (functor) for object editing.
object, that will be attached to event
virtual const CViewTypeDescriptor & GetViewTypeDescriptor() const
returns a Descriptor for the View Type supported by the Factory
IRegSettings An interface for objects that save / restore settings using CGuiRegistry.
virtual void SaveSettings() const =0
virtual void LoadSettings()=0
virtual void SetRegistryPath(const string &path)=0
IView - represents a standard visual part of Workbench UI.
CFingerprint identifies an instance of IWMClient and is used for labeling layout positions.
bool operator()(const CUpdatedFeature &lhs, const CUpdatedFeature &rhs) const
SUpdateFeatureCompare(const CPhyloNodeData::TID id)
iterator_bool insert(const value_type &val)
const_iterator find(const key_type &key) const
const_iterator end() const
TBioTreeFeatureId m_FeatureId
const set< string > & m_FeatureValues
visitor_string_query(TBioTreeFeatureId feat_id, const set< string > &feat_values)
ETreeTraverseCode operator()(CPhyloTree &tree, CPhyloTree::TTreeIdx node_idx, int delta)
const vector< CPhyloTree::TTreeIdx > & GetNodes()
visitor_string_query & operator=(const visitor_string_query &rhs)
vector< CPhyloTree::TTreeIdx > m_SelNodes
ETreeTraverseCode operator()(CPhyloTree &tree, CPhyloTree::TTreeIdx node_idx, int delta)
visitor_taxid_query & operator=(const visitor_taxid_query &rhs)
visitor_taxid_query(const CSelectionEvent::TTaxIds &tids, TBioTreeFeatureId tax_feat_id)
const vector< CPhyloTree::TTreeIdx > & GetNodes()
vector< CPhyloTree::TTreeIdx > m_SelNodes
TBioTreeFeatureId m_TaxFeatureId
const CSelectionEvent::TTaxIds & m_TaxIds
virtual void RegisterFileAlias(const wxArtID &anId, const wxArtClient &aClient, const wxSize &aSize, const wxString &aName, long aType=wxBITMAP_TYPE_ANY, int anIndex=-1)
static ulg compressed_len
#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.
virtual bool DecompressBuffer(const void *src_buf, size_t src_len, void *dst_buf, size_t dst_size, size_t *dst_len)
Decompress data in the buffer.
virtual bool CompressBuffer(const void *src_buf, size_t src_len, void *dst_buf, size_t dst_size, size_t *dst_len)
Compress data in the buffer.
virtual size_t EstimateCompressionBufferSize(size_t src_len)
Estimate buffer size for data compression.
#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.
CIRef< T > GetServiceByType()
retrieves a typed reference to a service, the name of C++ type is used as the name of the service.
void AddTask(IAppTask &task)
Add a task to the queue.
virtual CAppTaskService * GetAppTaskService()=0
virtual void RegisterCommands(CUICommandRegistry &cmd_reg, wxFileArtProvider &provider)
called by the framework to give Factory a chance to register commands used by view
CPhyloTree::TTreeIdx m_CurrentNode
void RebuildObjectIndex()
CRef< CPhyloTreeDataSource > m_DataSource
int m_InitialRotateLabels
If rendering parms are stored in biotreecontainer, set them first time.
virtual string GetExtensionIdentifier() const
CPhyTreeViewFactory.
virtual void x_OnSetSelection(CSelectionEvent &evt)
override in derived classes in order to handle selection broadcast
CObjectIndex m_ObjectIndex
CPhyloTreeJob(const objects::CBioTreeContainer *btc)
virtual int TestInputObjects(TConstScopedObjects &objects)
tests input objects (not using object conversion) and returns a combination of ETestResult flags bett...
virtual const CProjectViewTypeDescriptor & GetProjectViewTypeDescriptor() const
returns a Descriptor for the View Type supported by the Factory
void OnCreateSelectedSubtree(CEvent *evt)
virtual IView * CreateInstance() const
creates a view instance
int m_InitialUseDistances
virtual void RegisterIconAliases(wxFileArtProvider &provider)
called by the framework to give Factory a chance to register images used by view
virtual void SetRegistryPath(const string ®_path)
CPhyloTreeWidget * GetWidget() const
virtual bool InitView(TConstScopedObjects &objects, const objects::CUser_object *params)
initialize view with data, inside this function the view must call CProjectService::AttachView to con...
virtual string GetExtensionLabel() const
returns a displayable label for this extension ( please capitalize the key words - "My Extension" )
virtual void GetVisibleRanges(CVisibleRange &vrange) const
populate a visible range event for broadcasting
CRef< objects::CBioTreeContainer > m_Cont
virtual void SaveSettings() const
void OnSomethingEdited(CEvent *evt)
void AppliedEditToDataSource()
virtual const CObject * x_GetOrigObject() const
virtual void x_CreateMenuBarMenu()
initializes m_MenuBarMenu; override in derived classes
virtual IView * CreateInstanceByFingerprint(const TFingerprint &fingerprint) const
if fingerprint is recognized - creates and returns a new instance
CRef< CPhyloTreeScheme > m_Scheme
CRef< objects::CBioTreeContainer > m_Btc
virtual void x_CreateProjectItems()
override this function in derived classes and populate m_Items.
CConstRef< objects::CBioTreeContainer > m_BioTreeContainer
void x_QueryStatusChange(CEvent *evt)
void GetSelection(CSelectionEvent &evt) const
get selection for broadcasting
virtual const CViewTypeDescriptor & GetTypeDescriptor() const
return an object providing meta information about thei view type
virtual void DestroyViewWindow()
destroy Window corresponding to the view
virtual void LoadSettings()
void OnExportTree(CEvent *evt)
void CommitTheChanges(CNcbiIstrstream &istr)
virtual void CreateViewWindow(wxWindow *parent)
create Window corresponding to the view
virtual wxWindow * GetWindow()
returns a pointer to the wxWindow representing the client
static void GetLabel(const CObject &obj, string *label, ELabelType type=eDefault)
const TEventID GetID(void) const
Inline Implementation.
string m_Descr
mutex to sync our internals
vector< CConstRef< CObject > > TConstObjects
virtual const string & GetIconAlias() const
#define ON_EVENT(type, id, handler)
#define END_EVENT_MAP()
Ends definition of Command Map.
#define BEGIN_EVENT_MAP(thisClass, baseClass)
Begins definition of Command Map for CEventHandler-derived class.
virtual void AddListener(CEventHandler *listener, int pool_name=ePool_Default)
Add a listener.
vector< SConstScopedObject > TConstScopedObjects
virtual IEventAttachment * GetAttachment(void)
#define MSerial_AsnText
I/O stream manipulators –.
bool Empty(void) const THROWS_NONE
Check if CConstRef is empty – not pointing to any object which means having a null value.
TObjectType * GetPointer(void) const THROWS_NONE
Get pointer,.
TObjectType * GetPointer(void) THROWS_NONE
Get pointer,.
void Reset(void)
Reset reference object.
void Reset(void)
Reset reference object.
bool IsNull(void) const THROWS_NONE
Check if pointer is null – same effect as Empty().
TObjectType * GetPointerOrNull(void) THROWS_NONE
Get pointer value.
TObjectType * GetNonNullPointer(void) const
Get pointer value and throw a null pointer exception if pointer is null.
bool Empty(void) const THROWS_NONE
Check if CRef is empty – not pointing to any object, which means having a null value.
int32_t Int4
4-byte (32-bit) signed integer
#define numeric_limits
Pre-declaration of the "numeric_limits<>" template Forcibly overrides (using preprocessor) the origin...
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
static unsigned int StringToUInt(const CTempString str, TStringToNumFlags flags=0, int base=10)
Convert string to unsigned int.
double Restart(void)
Return time elapsed since first Start() or last Restart() call (in seconds).
double Elapsed(void) const
Return time elapsed since first Start() or last Restart() call (in seconds).
void Start(void)
Start the timer.
ETreeTraverseCode
Tree traverse code returned by the traverse predicate function.
unsigned int TBioTreeFeatureId
Feature Id.
TBioTreeFeatureId GetId(const string &feature_name) const
If feature is already registered returns its id by name.
bool HasFeature(const string &feature_name) const
Check if feature is listed in the dictionary.
const TFeatureDict & GetFeatureDict() const
Get reference on the internal map.
vector< CBioTreeFeaturePair > TFeatureList
@ eTreeTraverse
Keep traversal.
static const char label[]
list< CRef< CFeatureDescr > > Tdata
const TTreetype & GetTreetype(void) const
Get the Treetype member data.
void SetNodes(TNodes &value)
Assign a value to Nodes data member.
void SetFdict(TFdict &value)
Assign a value to Fdict data member.
list< CRef< CNodeFeature > > Tdata
virtual void Reset(void)
Reset the whole object.
void Reset(void)
Reset data member.
void SetTreetype(const TTreetype &value)
Assign a value to Treetype data member.
list< CRef< CNode > > Tdata
bool IsSetTreetype(void) const
hint on what kind of tree this is Check if a value has been assigned to Treetype data member.
Tdata & Set(void)
Assign a value to data member.
void SetUser(TUser &value)
Assign a value to User data member.
const TStr & GetStr(void) const
Get the variant data.
bool CanGetType(void) const
Check if it is safe to call GetType method.
bool IsSetType(void) const
type of object within class Check if a value has been assigned to Type data member.
const TData & GetData(void) const
Get the Data member data.
TBool GetBool(void) const
Get the variant data.
E_Choice Which(void) const
Which variant is currently selected.
bool IsInt(void) const
Check if variant Int is selected.
bool IsStr(void) const
Check if variant Str is selected.
TInt GetInt(void) const
Get the variant data.
TStr & SetStr(void)
Select the variant.
void SetType(TType &value)
Assign a value to Type data member.
void SetData(TData &value)
Assign a value to Data data member.
const TType & GetType(void) const
Get the Type member data.
bool IsBool(void) const
Check if variant Bool is selected.
@ e_not_set
No variant selected.
unsigned int
A callback function used to compare two keys in a database.
for(len=0;yy_str[len];++len)
constexpr auto sort(_Init &&init)
Defines: CTimeFormat - storage class for time format.
Int4 delta(size_t dimension_, const Int4 *score_)
void copy(Njn::Matrix< S > *matrix_, const Njn::Matrix< T > &matrix0_)
CProjectViewTypeDescriptor s_PhyTreeViewTypeDescr("Tree View", "phylo_tree_view", "Tree View", "View for graphical presentation of hierarchical data (phylogenetic tree, taxonomy tree, etc.) using various layout methods", "PHY_TREE_VIEW", "Alignment", false, "BioTreeContainer", eOneObjectAccepted)
float m_ExecOnBioTreeChanged
float m_CreateProperyUndoCommand
float m_DataSourceInitTimer
float m_ExecutePropertyCommand
float m_ExecuteUndoCommand
float m_CreateUndoCommand
Timers:
void TreeConvert2Container(TBioTreeContainer &tree_container, TPhyloTree &phylo_tree, typename TPhyloTree::TTreeIdx node_idx=TPhyloTree::Null())
Convert tree to ASN.1 BioTree container.
void TreeConvertSelected2Container(TBioTreeContainer &tree_container, TPhyloTree &phylo_tree, typename TPhyloTree::TTreeIdx node_idx=TPhyloTree::Null())
Convert selected nodes from tree to ASN.1 BioTree container.
@ eCmdRenderingOptionsChanged
wxEVT_COMMAND_MENU_SELECTED
CPhyloNodeData::TDisplayChildren GetExpanded() const
vector< CPhyloNodeData::TID > & GetIds()
Edits for one or more nodes.
CBioTreeFeatureDictionary & GetPrevDictionary()
vector< CUpdatedFeature > & GetUpdated()
CBioTreeFeatureDictionary & GetDictionary()
Edits for one or more nodes.
CPhyloSelectionSetMgr & GetUpdatedSet()
CPhyloSelectionSetMgr & GetPrevSet()
CPhyloNodeData::TID m_NodeId
Node id to find node in either tree or biotree.
Fun TreeDepthFirst(TTreeModel &tree_model, typename TTreeModel::TTreeIdx node_idx, Fun func)
Depth-first tree traversal algorithm.
size_t TTreeIdx
Bi-directionaly linked N way tree allocated in a contiguous memory block.
wxString ToWxString(const string &s)