17using namespace std::string_literals;
35 if (use_server_threads)
39 fWebWindow->SetDefaultPage(
"file:rootui5sys/geom/index.html");
58 if (arg.compare(0, 6,
"BRREQ:") == 0) {
61 if (
json.length() > 0)
63 }
else if (arg.compare(0, 7,
"SEARCH:") == 0) {
65 std::string query = arg.substr(7);
68 std::string hjson,
json;
80 auto connids =
fWebWindow->GetConnections(connid);
82 for (
auto id : connids)
85 }
else if (arg.compare(0, 7,
"SETTOP:") == 0) {
86 auto path = TBufferJSON::FromJSON<std::vector<std::string>>(arg.substr(7));
89 auto connids =
fWebWindow->GetConnections(connid);
91 for (
auto id : connids)
94 }
else if (arg.compare(0, 6,
"HOVER:") == 0) {
95 auto path = TBufferJSON::FromJSON<std::vector<std::string>>(arg.substr(6));
101 }
else if (arg.compare(0, 6,
"CLICK:") == 0) {
102 auto path = TBufferJSON::FromJSON<std::vector<std::string>>(arg.substr(6));
108 }
else if ((arg.compare(0, 7,
"SETVI0:") == 0) || (arg.compare(0, 7,
"SETVI1:") == 0)) {
111 auto path = TBufferJSON::FromJSON<std::vector<std::string>>(arg.substr(7));
113 bool on = (arg[5] ==
'1');
118 }
else if ((arg.compare(0, 5,
"SHOW:") == 0) || (arg.compare(0, 5,
"HIDE:") == 0)) {
119 auto path = TBufferJSON::FromJSON<std::vector<std::string>>(arg.substr(5));
122 }
else if (arg.compare(0, 6,
"CLEAR:") == 0) {
123 auto path = TBufferJSON::FromJSON<std::vector<std::string>>(arg.substr(6));
126 }
else if (arg ==
"CLEARALL"s) {
140 fWebWindow->SetUserArgs(
"{ show_columns: true, only_hierarchy: true }");
167 if (kind ==
"HighlightItem") {
174 }
else if (kind ==
"NodeVisibility") {
178 }
else if (kind ==
"ActiveItem") {
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void on
std::string ProcessBrowserRequest(const std::string &req="")
Find description object for requested shape If not exists - will be created.
void IssueSignal(const void *handler, const std::string &kind)
Issue signal, which distributed on all handlers - excluding source handler.
bool SetSearch(const std::string &query, const std::string &json)
Change search query and belongs to it json string Returns true if any parameter was really changed.
bool SetHighlightedItem(const std::vector< int > &stack)
bool SelectTop(const std::vector< std::string > &path)
Select top node by path Used by the client to change active node Returns true if selected node was ch...
bool ChangeNodeVisibility(const std::vector< std::string > &path, bool on)
Change visibility for specified element Returns true if changes was performed.
bool ClearAllPhysVisibility()
Reset all custom visibility settings.
bool SetPhysNodeVisibility(const std::vector< std::string > &path, bool on=true)
Set visibility of physical node by path It overrules TGeo visibility flags - but only for specific ph...
bool ClearPhysNodeVisibility(const std::vector< std::string > &path)
Reset custom visibility of physical node by path.
int SearchVisibles(const std::string &find, std::string &hjson, std::string &json)
Search visible nodes for provided name If number of found elements less than 100, create description ...
std::vector< std::string > MakePathByStack(const std::vector< int > &stack)
Returns path string for provided stack.
void AddSignalHandler(const void *handler, RGeomSignalFunc_t func)
Add signal handler.
std::vector< int > MakeStackByPath(const std::vector< std::string > &path)
Produce stack based on string path Used to highlight geo volumes by browser hover event.
std::vector< int > GetHighlightedItem() const
void RemoveSignalHandler(const void *handler)
Remove signal handler.
std::string GetActiveItem() const
bool SetClickedItem(const std::vector< int > &stack)
void Show(const RWebDisplayArgs &args="")
Show hierarchy in web window.
void Update()
Update client - reload hierarchy.
RGeomHierarchy(RGeomDescription &desc, bool use_server_threads=false)
constructor
std::shared_ptr< RWebWindow > fWebWindow
! web window to show geometry
virtual ~RGeomHierarchy()
destructor
void ClearOnClose(const std::shared_ptr< void > &handle)
Set handle which will be cleared when connection is closed Must be called after window is shown.
void BrowseTo(const std::string &itemname)
Let browse to specified location.
void ProcessSignal(const std::string &kind)
Process signals from geometry description object.
void WebWindowCallback(unsigned connid, const std::string &arg)
Process data from client.
RGeomDescription & fDesc
! geometry description, shared with external
Holds different arguments for starting browser with RWebDisplayHandle::Display() method.
const std::string & GetWidgetKind() const
returns widget kind
static std::shared_ptr< RWebWindow > Create()
Create new RWebWindow Using default RWebWindowsManager.
static unsigned ShowWindow(std::shared_ptr< RWebWindow > window, const RWebDisplayArgs &args="")
Static method to show web window Has to be used instead of RWebWindow::Show() when window potentially...
static TString ToJSON(const T *obj, Int_t compact=0, const char *member_name=nullptr)
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...