add: example for custom cell patch
This commit is contained in:
		
							parent
							
								
									4ff9c79263
								
							
						
					
					
						commit
						206961fa9a
					
				@ -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",
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										56
									
								
								src/views.ts
									
									
									
									
									
								
							
							
						
						
									
										56
									
								
								src/views.ts
									
									
									
									
									
								
							@ -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(
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user