我有一个draw.io图表页面,包含40多个图层。但是,由于我不知道用户在发布的图表上将隐藏/显示哪些图层,因此我想为按钮提供一个包含所有图层的操作集,然后显示3个特定的图层。
是否可以使用通配符或类似字符隐藏所有层,还是我需要手动创建一个巨大的(以手动管理的方式)层ID JSON数组?
据我所知,这是不可能的,这使我感到惊讶,因此我提出了疑问。对于我的图表,这意味着我需要在许多链接中维护巨大的JSON数组。
我尝试使用单元格和标签动作通配符尝试各种自定义链接,但是我的测试表明标签仅适用于形状(不适用于图层),并且单元格同时包含形状和图层。
data:action/json,{"actions":[{"hide":{"cells":["*"]}}]}
我希望使用上面的自定义链接可以使所有图层都被隐藏,就像那样,但是也可以使当前所选图层上的形状被隐藏。这也导致当前选定图层上的形状在编辑器中显示为已删除,因此我需要使用“撤消”功能将形状取回。我想这是一个错误,除非我做错了什么或者我的绘图已经损坏。
类似这样的功能将非常有用:
data:action/json,{"actions":[{"hide":{"layers":["*"]}}]}
我会考虑编写一个插件,但是找不到关于该主题的任何帮助文档。有人可以建议吗?
答案 0 :(得分:1)
我解决了无法使用标签通过通配符隐藏页面上所有层的问题。
可以标记单个形状,或者对形状进行分组并在组级别添加tag属性。只要形状或组在“编辑数据”屏幕中具有“标签”属性并在其中包含一个值,就可以使用以下自定义链接隐藏所有内容:
data:action/json,{"actions":[{"hide":{"tags":[""]}}]}
在页面上显示所有标签的方法相同:
data:action/json,{"actions":[{"show":{"tags":[""]}}]}
要在不使用标签的情况下显示页面上的所有内容,可以只使用:
data:action/json,{"actions":[{"show":{"cells":["*"]}}]}
我还需要向管理层添加两个按钮:
答案 1 :(得分:1)
可以向图层添加标签。为此,编辑图层数据(单击图层,然后单击三个垂直点)并添加“标签”属性:
Add "tags" property to layer
之后,您就可以像这样向图层添加标签:
Add tag "some_tag" to the layer
现在您可以使用以下自定义链接显示或隐藏带有 some_tag
标签的所有图层:
显示带有 some_tag
的所有图层:
data:action/json,{"actions":[{"show":{"tags":["some_tag"]}}]}
使用 some_tag
隐藏所有图层:
data:action/json,{"actions":[{"hide":{"tags":["some_tag"]}}]}