RemoteGuiAronDataVisitor.cpp
Go to the documentation of this file.
2 
3 #include <SimoxUtility/algorithm/string.h>
4 
6 
7 namespace armarx::armem::server
8 {
9 
10  RemoteGuiAronDataVisitor::Group::Group(const std::string& label)
11  {
12  groupBox.setLabel(label);
14  }
15 
16  bool
17  RemoteGuiAronDataVisitor::visitEnter(const std::string& key,
18  const std::string& type,
19  size_t size)
20  {
21  std::stringstream label;
22  label << key << " (" << type << " of size " << size << ")";
23  Group& group = groups.emplace(label.str());
24  (void)group;
25  return true;
26  }
27 
28  bool
30  {
31  Group group = groups.top();
32  groups.pop();
33  if (groups.size() > 0)
34  {
35  groups.top().groupBox.addChild(group.groupBox);
36  }
37  else
38  {
39  result = group.groupBox;
40  }
41  return true;
42  }
43 
44  void
45  RemoteGuiAronDataVisitor::streamValueText(aron::data::String& n, std::stringstream& ss)
46  {
47  ss << "'" << n.getValue() << "'";
48  }
49 
50  void
51  RemoteGuiAronDataVisitor::streamValueText(aron::data::NDArray& n, std::stringstream& ss)
52  {
53  ss << "shape (" << simox::alg::join(simox::alg::multi_to_string(n.getShape()), ", ") << ")";
54  }
55 
56  void
57  RemoteGuiAronDataVisitor::checkGroupsNotEmpty() const
58  {
59  ARMARX_CHECK_POSITIVE(groups.size()) << "Groups must not be empty.";
60  }
61 
62 
63 } // namespace armarx::armem::server
armarx::RemoteGui::Client::ContainerWidget::addChild
void addChild(Widget const &child)
Definition: Widgets.cpp:95
armarx::armem::server::RemoteGuiAronDataVisitor::Group::Group
Group(const std::string &label={})
Definition: RemoteGuiAronDataVisitor.cpp:10
armarx::aron::data::NDArray
Definition: NDArray.h:48
armarx::armem::server::RemoteGuiAronDataVisitor::groups
std::stack< Group > groups
Definition: RemoteGuiAronDataVisitor.h:31
armarx::aron::data::NDArray::getShape
std::vector< int > getShape() const
Definition: NDArray.cpp:147
armarx::armem::server::RemoteGuiAronDataVisitor::result
GroupBox result
Definition: RemoteGuiAronDataVisitor.h:32
armarx::aron::data::detail::PrimitiveVariant::getValue
ValueT getValue() const
Definition: PrimitiveVariant.h:132
armarx::armem::server::RemoteGuiAronDataVisitor::Group::layout
GridLayout layout
Definition: RemoteGuiAronDataVisitor.h:27
armarx::armem::server::RemoteGuiAronDataVisitor::visitExit
bool visitExit()
Definition: RemoteGuiAronDataVisitor.cpp:29
armarx::aron::data::String
Definition: String.h:41
ARMARX_CHECK_POSITIVE
#define ARMARX_CHECK_POSITIVE(number)
This macro evaluates whether number is positive (> 0) and if it turns out to be false it will throw a...
Definition: ExpressionException.h:145
armarx::RemoteGui::Client::GroupBox::setLabel
void setLabel(std::string const &text)
Definition: Widgets.cpp:420
armarx::armem::server
Definition: GraspMemory.cpp:33
ExpressionException.h
RemoteGuiAronDataVisitor.h
armarx::armem::server::RemoteGuiAronDataVisitor::visitEnter
bool visitEnter(const std::string &key, const std::string &type, size_t size)
Definition: RemoteGuiAronDataVisitor.cpp:17
armarx::armem::server::RemoteGuiAronDataVisitor::Group::groupBox
GroupBox groupBox
Definition: RemoteGuiAronDataVisitor.h:26
armarx::armem::server::RemoteGuiAronDataVisitor::Group
Definition: RemoteGuiAronDataVisitor.h:22