add: example for custom cell patch

This commit is contained in:
xiangyu 2023-01-02 18:05:08 +08:00
parent 4ff9c79263
commit 206961fa9a
2 changed files with 55 additions and 3 deletions

View File

@ -31,7 +31,7 @@
}, },
"homepage": "https://github.com/windingwind/zotero-addon-template#readme", "homepage": "https://github.com/windingwind/zotero-addon-template#readme",
"dependencies": { "dependencies": {
"zotero-plugin-toolkit": "^0.0.10" "zotero-plugin-toolkit": "^0.0.11"
}, },
"devDependencies": { "devDependencies": {
"@types/node": "^18.11.17", "@types/node": "^18.11.17",

View File

@ -58,14 +58,66 @@ class AddonViews extends AddonModule {
}); });
// Initialize extra columns // Initialize extra columns
this._Addon.toolkit.ItemTree.registerExample(); this._Addon.toolkit.ItemTree.register(
"test1",
"text column",
(
field: string,
unformatted: boolean,
includeBaseMapped: boolean,
item: Zotero.Item
) => {
return field + String(item.id);
},
{
iconPath: "chrome://zotero/skin/cross.png",
}
);
this._Addon.toolkit.ItemTree.register(
"test2",
"custom column",
(
field: string,
unformatted: boolean,
includeBaseMapped: boolean,
item: Zotero.Item
) => {
return String(item.id);
},
{
renderCellHook(index, data, column) {
const span = document.createElementNS(
"http://www.w3.org/1999/xhtml",
"span"
);
span.style.background = "#0dd068";
span.innerText = "⭐" + data;
return span;
},
}
);
// Customize cells
this._Addon.toolkit.ItemTree.addRenderCellHook(
"title",
(index: number, data: string, column: any, original: Function) => {
const span = original(index, data, column) as HTMLSpanElement;
span.style.background = "rgb(30, 30, 30)";
span.style.color = "rgb(156, 220, 240)";
return span;
}
);
} }
public unInitViews() { public unInitViews() {
this._Addon.toolkit.Tool.log("Uninitializing UI"); this._Addon.toolkit.Tool.log("Uninitializing UI");
this._Addon.toolkit.UI.removeAddonElements(); this._Addon.toolkit.UI.removeAddonElements();
// Remove extra columns // Remove extra columns
this._Addon.toolkit.ItemTree.unregister("test"); this._Addon.toolkit.ItemTree.unregister("test1");
this._Addon.toolkit.ItemTree.unregister("test2");
// Remove title cell patch
this._Addon.toolkit.ItemTree.removeRenderCellHook("title");
} }
public showProgressWindow( public showProgressWindow(