plugins - IBM ICN 3.0.3 - 内容对话框中单值属性的选择列表的丑陋显示
问题描述
给定一个 Document 类,Entry Template 的一个单值属性与一个 ChoiceList 相关联。如果 ChoiceList 没有“子级别”(Choice),则此方法效果很好。
当添加组选择并且用户尝试填充属性时,对话框变得难看,如下所示:
有没有办法自动展开根 Choices 的树视图,并且删除“none”标签(法语中的“Aucun”)以及 ChoiceList 的符号名称(此处模糊)?
我必须写一个插件来解决这个问题吗?
更新。此处“瓯村”的目的是清空田地。
解决方案
我联系了支持团队,简而言之,“开箱即用”是不可能的。但我找到了解决方法。
我写了一个 ResponseFilter 来捕获请求的响应/p8/openContentClass
。原来它的响应包含 ChoiceList 值:
{
"classes": [{
"parentClassId": "<PARENTCLASSID>",
"template_name": "<ENTRYTEMPLATE>",
/* [...] */
}
],
/* [...] */
"criterias": [/* [...] */, {
"settability": "readWrite",
"defaultOperator": "EQUAL",
"minValue": null,
"uniqueValues": true,
"orderable": false,
"choiceList": {
"choices": /* <----- here */,
"displayName": "CL_ToFilter"
},
/* [...] */
"name": "<propertyName>"
}
]
}
重新格式化"choices"
条目以获得一级选择列表确保在一级显示。下面的相关代码ResponseFilter
:
public class ChoiceListValuesResponseFilter extends PluginResponseFilter {
public String[] getFilteredServices() {
return new String[] { "/p8/openContentClass"/* "/p8/openItem"*/ };
}
public void filter(String serverType, PluginServiceCallbacks callbacks,
HttpServletRequest request, JSONObject jsonResponse) throws Exception {
// [...]
JSONArray jsonProperties =
(JSONArray) jsonResponse.get("criterias");
Iterator it = jsonProperties.iterator();
while (it.hasNext()) {
JSONObject jo = (JSONObject) it.next();
if ("<PROPERTYWITHFILTEREDCL>".equals(jo.get("name"))) {
JSONObject choiceListJo = (JSONObject) jo.get("choiceList");
// do the processing here
break;
}
}
}
// [...]
}
推荐阅读
- android - Android studio - 每次清理然后安装
- sql - oracle 11G如何单独导出数据库
- nginx - 从 nginx 中删除了网站,但仍然可以通过 URL 访问,只需使用 HTTPS
- jenkins - java.io.IOException:无法通过代理隧道。代理返回“HTTP/1.1 403 Forbidden”
- python - 具有分类值的散景 hbar 示例 = 白框
- python - 我将如何处理与 C++ 字典中的字典等效的 pythons?
- python - 如何将特殊字符列表替换为熊猫数据框中的单个字符
- java - NullPointerException at org.bouncycastle.crypto.signers.PSSSigner.generateSignature(未知来源)~[bcprov-ext-jdk15on-1.61.jar:1.61.0.0]
- python - 如何分组和计算其他列。熊猫
- xslt - 根据 XSLT 中的节点值生成新组