1

私は ICN プラグインに取り組んでおり、このグリッチの修正に問題があります。すべての結果はグリッド ウィジェットで想定どおりにロードされますが、右側のパネルで変更を加えて保存するとすぐに、グリッドはその行をリロードしますが、グリッドを構築するために Java コードで指定した列にバインドされた属性をロードしていないため、空白になります。

ICN プラグイン グリッド 1

ICN プラグイン グリッド 2

例として、ibm redbook の「Chapter 6 Creation a feature with search services and widgets」デモ プラグインを使用していますが、この種のプラグインのどこで、ナビゲーターにこれらのカスタム列とその属性を読み込ませることができますか?編集後?

注: デフォルトの列では、これらの属性を意味します。すべての行には、デフォルトで常に次の属性があります。

row.addAttribute("ID", doc.get_Id().toString(), JSONResultSetRow.TYPE_STRING, null, doc.get_Id().toString());
row.addAttribute("className", doc.getClassName(), JSONResultSetRow.TYPE_STRING, null, doc.getClassName());
row.addAttribute("ModifiedBy", doc.get_LastModifier(), JSONResultSetRow.TYPE_STRING, null, doc.get_LastModifier());
row.addAttribute("LastModified", doc.get_DateLastModified().toString(), JSONResultSetRow.TYPE_TIMESTAMP, null, doc.get_DateLastModified().toString());
row.addAttribute("Version", doc.get_MajorVersionNumber() + "." + doc.get_MinorVersionNumber(), JSONResultSetRow.TYPE_STRING, null, doc.get_MajorVersionNumber() + "." + doc.get_MinorVersionNumber());
row.addAttribute("{NAME}", doc.get_Name(), JSONResultSetRow.TYPE_STRING, null, doc.get_Name());
row.addAttribute("ContentSize", doc.get_ContentSize(), JSONResultSetRow.TYPE_INTEGER, null, null);

カスタムとは、すべてが XML ファイルから読み込まれる、次のようなものを意味します。

ArrayList<PluginProperty> pr = pxs.getResults(contextId);
    for (int i = 0; i < pr.size(); i++) {
        String id = "{" + i + "}";
        String propName = pr.get(i).getName();
        String propType = pr.get(i).getType();
        String prop = "";
    .
    .
    .
else if (propType.equalsIgnoreCase("StringList")) {
    int size = doc.getProperties().get(propName).getStringListValue().size();
    for (int j = 0; j < size; j++) {
        prop += doc.getProperties().get(propName).getStringListValue().get(j).toString() + "; ";
    }
}
else if (propType.equalsIgnoreCase("StringValue")) {
    prop = doc.getProperties().get(propName).getStringValue();
}
    .
    .
    .
    row.addAttribute(id, prop, JSONResultSetRow.TYPE_STRING, null, prop);
}
4

2 に答える 2

1

文書情報データが保存された後、openItem が呼び出されます。これにより、アイテムが最新のデータで更新されます。

ContentList は、_ModelStore.js の getValue メソッドからセル値を取得します。このメソッドは item.getDisplayValue を呼び出して、セルに表示する値を取得します。ほとんどの場合、item.getDisplayValue が null (または空白) を返しているか、この属性に対して _ModelStore の getValue が呼び出されていません。

openItem から返される JSON を調べて、完全に見えることを確認することをお勧めします。

于 2014-07-29T21:11:46.983 に答える