58 for (
unsigned i=0; i<mWidgets.size(); ++i)
60 boost::shared_ptr<SingleMetricWidget> w = boost::dynamic_pointer_cast<
SingleMetricWidget>(mWidgets[i]);
61 if(w && w->getData() && data && w->getData()->getUid() == data->getUid())
64 return boost::shared_ptr<QWidget>();
69 mWidgets.push_back(widget);
79 retval->mSelf = retval;
80 retval->insertTopNode();
89 this->createVisibilityProperty();
90 this->createModeProperty();
97 void TreeRepository::createVisibilityProperty()
99 QStringList allNodeTypes = QStringList() <<
"data" <<
"metric" <<
"image" <<
"model" <<
"tool" <<
"view";
102 "Select visible node types",
105 mOptions.getElement());
109 void TreeRepository::createModeProperty()
111 QStringList allModes = QStringList() <<
"spaces" <<
"flat";
118 mOptions.getElement());
142 void TreeRepository::startListen()
150 void TreeRepository::stopListen()
165 for (
unsigned i=0; i<mNodes.size(); ++i)
167 if (mNodes[i]->getUid()==uid)
175 std::vector<TreeNodePtr> all = this->getNodes();
176 for (
unsigned i=0; i<all.size(); ++i)
177 if (all[i]->getUid() ==
"node::invisible_top")
190 return mWidgetTypeRepository;
195 return mModeProperty->getValue();
200 return mVisibilityProperty->getValue();
205 return mVisibilityProperty->getValueRange();
208 void TreeRepository::insertTopNode()
216 void TreeRepository::rebuild()
219 for (
unsigned i=0; i<mNodes.size(); ++i)
220 disconnect(mNodes[i].
get(), &
TreeNode::changed,
this, &TreeRepository::onChanged);
223 this->insertTopNode();
225 QStringList groups = QStringList() <<
"tool" <<
"data" <<
"space" <<
"view";
226 for (
unsigned i=0; i<groups.size(); ++i)
227 this->insertGroupNode(groups[i]);
231 std::map<QString, DataPtr> source = this->getServices()->patient()->getDatas();
232 for (std::map<QString, DataPtr>::const_iterator iter = source.begin(); iter != source.end(); ++iter)
234 this->insertDataNode(iter->second);
236 for (std::map<QString, DataPtr>::const_iterator iter = source.begin(); iter != source.end(); ++iter)
238 QString space = iter->second->getParentSpace();
241 if (source.count(space))
248 std::map<QString, ToolPtr> tools = this->getServices()->tracking()->getTools();
249 for (std::map<QString, ToolPtr>::const_iterator iter = tools.begin(); iter != tools.end(); ++iter)
251 this->insertToolNode(iter->second);
254 for (
unsigned i=0; i<this->getServices()->view()->groupCount(); ++i)
263 void TreeRepository::insertGroupNode(QString groupname)
265 if (this->getNodeForGroup(groupname))
267 if (groupname==
"view")
275 return this->getNode(QString(
"group_%1").arg(groupname));
278 void TreeRepository::insertToolNode(
ToolPtr tool)
280 if (this->getNode(tool->getUid()))
285 void TreeRepository::insertDataNode(
DataPtr data)
287 if (this->getNode(data->getUid()))
297 void TreeRepository::appendNode(
TreeNode* rawNode)
302 if (!this->getNode(node->getUid()))
308 mNodes.push_back(node);
312 void TreeRepository::onChanged()
boost::shared_ptr< class TreeRepository > TreeRepositoryPtr
TreeNodePtr getNodeForGroup(QString groupname)
boost::shared_ptr< TreeNode > TreeNodePtr
void dataAddedOrRemoved()
boost::shared_ptr< class VisServices > VisServicesPtr
csREF
the data reference space (r) using LPS (left-posterior-superior) coordinates.
static StringListPropertyPtr initialize(const QString &uid, QString name, QString help, QStringList value, QStringList range, QDomNode root=QDomNode())
csPATIENTREF
the patient/tool reference space (pr)
boost::shared_ptr< class Data > DataPtr
QStringList getVisibleNodeTypes() const
std::vector< TreeNodePtr > getNodes()
void activeDataChanged(const QString &uId)
#define CX_LOG_CHANNEL_DEBUG(channel)
boost::shared_ptr< class WidgetTypeRepository > WidgetTypeRepositoryPtr
Identification of a Coordinate system.
static TreeRepositoryPtr create(XmlOptionFile options, VisServicesPtr services)
QString mRefObject
for tool, sensor and data we need a object uid to define the coordinate system
void changed()
emit when the underlying data value is changed: The user interface will be updated.
static StringPropertyPtr initialize(const QString &uid, QString name, QString help, QString value, QStringList range, QDomNode root=QDomNode())
QStringList getAllNodeTypes() const
VisServicesPtr getServices()
WidgetTypeRepositoryPtr getWidgetTypeRepository()
Helper class for xml files used to store ssc/cx data.
TreeNodePtr getNode(QString uid)
Namespace for all CustusX production code.
boost::shared_ptr< class Tool > ToolPtr