@@ -8,97 +8,13 @@ export async function registerPrefsScripts(_window: Window) {
8
8
if ( ! addon . data . prefs ) {
9
9
addon . data . prefs = {
10
10
window : _window ,
11
- columns : [
12
- {
13
- dataKey : "title" ,
14
- label : getString ( "prefs-table-title" ) ,
15
- fixedWidth : true ,
16
- width : 100 ,
17
- } ,
18
- {
19
- dataKey : "detail" ,
20
- label : getString ( "prefs-table-detail" ) ,
21
- } ,
22
- ] ,
23
- rows : [
24
- {
25
- title : "Orange" ,
26
- detail : "It's juicy" ,
27
- } ,
28
- ] ,
29
11
} ;
30
12
} else {
31
13
addon . data . prefs . window = _window ;
32
14
}
33
- // updatePrefsUI();
34
15
bindPrefEvents ( ) ;
35
16
}
36
17
37
- async function updatePrefsUI ( ) {
38
- // You can initialize some UI elements on prefs window
39
- // with addon.data.prefs.window.document
40
- // Or bind some events to the elements
41
- const renderLock = ztoolkit . getGlobal ( "Zotero" ) . Promise . defer ( ) ;
42
- if ( addon . data . prefs ?. window == undefined ) return ;
43
- const tableHelper = new ztoolkit . VirtualizedTable ( addon . data . prefs ?. window )
44
- . setContainerId ( `${ config . addonRef } -table-container` )
45
- . setProp ( {
46
- id : `${ config . addonRef } -prefs-table` ,
47
- // Do not use setLocale, as it modifies the Zotero.Intl.strings
48
- // Set locales directly to columns
49
- columns : addon . data . prefs ?. columns ,
50
- showHeader : true ,
51
- multiSelect : true ,
52
- staticColumns : true ,
53
- disableFontSizeScaling : true ,
54
- } )
55
- . setProp ( "getRowCount" , ( ) => addon . data . prefs ?. rows . length || 0 )
56
- . setProp (
57
- "getRowData" ,
58
- ( index ) =>
59
- addon . data . prefs ?. rows [ index ] || {
60
- title : "no data" ,
61
- detail : "no data" ,
62
- } ,
63
- )
64
- // Show a progress window when selection changes
65
- . setProp ( "onSelectionChange" , ( selection ) => {
66
- new ztoolkit . ProgressWindow ( config . addonName )
67
- . createLine ( {
68
- text : `Selected line: ${ addon . data . prefs ?. rows
69
- . filter ( ( v , i ) => selection . isSelected ( i ) )
70
- . map ( ( row ) => row . title )
71
- . join ( "," ) } `,
72
- progress : 100 ,
73
- } )
74
- . show ( ) ;
75
- } )
76
- // When pressing delete, delete selected line and refresh table.
77
- // Returning false to prevent default event.
78
- . setProp ( "onKeyDown" , ( event : KeyboardEvent ) => {
79
- if ( event . key == "Delete" || ( Zotero . isMac && event . key == "Backspace" ) ) {
80
- addon . data . prefs ! . rows =
81
- addon . data . prefs ?. rows . filter (
82
- ( v , i ) => ! tableHelper . treeInstance . selection . isSelected ( i ) ,
83
- ) || [ ] ;
84
- tableHelper . render ( ) ;
85
- return false ;
86
- }
87
- return true ;
88
- } )
89
- // For find-as-you-type
90
- . setProp (
91
- "getRowString" ,
92
- ( index ) => addon . data . prefs ?. rows [ index ] . title || "" ,
93
- )
94
- // Render the table.
95
- . render ( - 1 , ( ) => {
96
- renderLock . resolve ( ) ;
97
- } ) ;
98
- await renderLock . promise ;
99
- ztoolkit . log ( "Preference table rendered!" ) ;
100
- }
101
-
102
18
function bindPrefEvents ( ) {
103
19
const settingsElementsList =
104
20
addon . data . prefs ! . window . document . querySelectorAll (
0 commit comments