add: prefs table local example
This commit is contained in:
parent
3c5dd0089c
commit
a8dcf5e310
@ -5,5 +5,7 @@ menupopup.label=Addon Template: Menupopup
|
||||
menuitem.submenulabel=Addon Template
|
||||
menuitem.filemenulabel=Addon Template: File Menuitem
|
||||
prefs.title=Template
|
||||
prefs.table.title=Title
|
||||
prefs.table.detail=Detail
|
||||
tabpanel.lib.tab.label=Lib Tab
|
||||
tabpanel.reader.tab.label=Reader Tab
|
@ -5,5 +5,7 @@ menupopup.label=插件模板: 弹出菜单
|
||||
menuitem.submenulabel=插件模板:子菜单
|
||||
menuitem.filemenulabel=插件模板: 文件菜单
|
||||
prefs.title=插件模板
|
||||
prefs.table.title=标题
|
||||
prefs.table.detail=详情
|
||||
tabpanel.lib.tab.label=库标签
|
||||
tabpanel.reader.tab.label=阅读器标签
|
@ -1,4 +1,5 @@
|
||||
import { config } from "../../package.json";
|
||||
import { getString } from "./locale";
|
||||
|
||||
export function registerPrefsScripts(_window: Window) {
|
||||
// This function is called when the prefs window is opened
|
||||
@ -9,13 +10,13 @@ export function registerPrefsScripts(_window: Window) {
|
||||
columns: [
|
||||
{
|
||||
dataKey: "title",
|
||||
label: "Title",
|
||||
label: "prefs.table.title",
|
||||
fixedWidth: true,
|
||||
width: 100,
|
||||
},
|
||||
{
|
||||
dataKey: "detail",
|
||||
label: "Detail",
|
||||
label: "prefs.table.detail",
|
||||
},
|
||||
],
|
||||
rows: [
|
||||
@ -45,6 +46,18 @@ async function updatePrefsUI() {
|
||||
const renderLock = ztoolkit.getGlobal("Zotero").Promise.defer();
|
||||
const tableHelper = new ztoolkit.VirtualizedTabel(addon.data.prefs?.window!)
|
||||
.setContainerId(`${config.addonRef}-table-container`)
|
||||
// Add locale for table columns
|
||||
.setLocale(
|
||||
Object.fromEntries(
|
||||
new Map(
|
||||
addon.data.prefs?.columns.map((column) => [
|
||||
column.label,
|
||||
getString(column.label),
|
||||
])
|
||||
)
|
||||
)
|
||||
)
|
||||
// id and getRowCount are required, others are optional.
|
||||
.setProp({
|
||||
id: `${config.addonRef}-prefs-table`,
|
||||
columns: addon.data.prefs?.columns,
|
||||
@ -62,6 +75,7 @@ async function updatePrefsUI() {
|
||||
detail: "no data",
|
||||
}
|
||||
)
|
||||
// Show a progress window when selection changes
|
||||
.setProp("onSelectionChange", (selection) => {
|
||||
new ztoolkit.ProgressWindow(config.addonName)
|
||||
.createLine({
|
||||
@ -73,6 +87,8 @@ async function updatePrefsUI() {
|
||||
})
|
||||
.show();
|
||||
})
|
||||
// When pressing delete, delete selected line and refresh table.
|
||||
// Returning false to prevent default event.
|
||||
.setProp("onKeyDown", (event: KeyboardEvent) => {
|
||||
if (event.key == "Delete" || (Zotero.isMac && event.key == "Backspace")) {
|
||||
addon.data.prefs!.rows =
|
||||
@ -89,6 +105,7 @@ async function updatePrefsUI() {
|
||||
"getRowString",
|
||||
(index) => addon.data.prefs?.rows[index].title || ""
|
||||
)
|
||||
// Render the table.
|
||||
.render(-1, () => {
|
||||
renderLock.resolve();
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user