17using namespace std::string_literals;
29 fWebWindow->SetDefaultPage(
"file:rootui5sys/geom/index.html");
32 if (use_server_threads)
51 if (arg.compare(0, 6,
"BRREQ:") == 0) {
54 if (
json.length() > 0)
56 }
else if (arg.compare(0, 7,
"SEARCH:") == 0) {
58 std::string query = arg.substr(7);
61 std::string hjson,
json;
73 auto connids =
fWebWindow->GetConnections(connid);
75 for (
auto id : connids)
78 }
else if (arg.compare(0, 7,
"SETTOP:") == 0) {
79 auto path = TBufferJSON::FromJSON<std::vector<std::string>>(arg.substr(7));
82 auto connids =
fWebWindow->GetConnections(connid);
84 for (
auto id : connids)
87 }
else if (arg.compare(0, 6,
"HOVER:") == 0) {
88 auto path = TBufferJSON::FromJSON<std::vector<std::string>>(arg.substr(6));
94 }
else if (arg.compare(0, 6,
"CLICK:") == 0) {
95 auto path = TBufferJSON::FromJSON<std::vector<std::string>>(arg.substr(6));
101 }
else if ((arg.compare(0, 7,
"SETVI0:") == 0) || (arg.compare(0, 7,
"SETVI1:") == 0)) {
104 auto path = TBufferJSON::FromJSON<std::vector<std::string>>(arg.substr(7));
106 bool on = (arg[5] ==
'1');
111 }
else if ((arg.compare(0, 5,
"SHOW:") == 0) || (arg.compare(0, 5,
"HIDE:") == 0)) {
112 auto path = TBufferJSON::FromJSON<std::vector<std::string>>(arg.substr(5));
115 }
else if (arg.compare(0, 6,
"CLEAR:") == 0) {
116 auto path = TBufferJSON::FromJSON<std::vector<std::string>>(arg.substr(6));
119 }
else if (arg ==
"CLEARALL"s) {
133 fWebWindow->SetUserArgs(
"{ show_columns: true, only_hierarchy: true }");
160 if (kind ==
"HighlightItem") {
163 if (stack.size() == 0)
167 }
else if (kind ==
"NodeVisibility") {
171 }
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)
This file contains a specialised ROOT message handler to test for diagnostic in unit tests.