EN · DE · RU · FR · ES

#60: BankingPlugin.kt

plugins/org.projectforge.plugins.banking/src/main/kotlin/org/projectforge/plugins/banking/BankingPlugin.kt Type: Kotlin · Role: Plugin Registration · Source: plugins/org.projectforge.plugins.banking/src/main/kotlin/org/projectforge/plugins/banking/BankingPlugin.kt 69 lines · 33 code · 28 comments · 8 blank
Plugin registration class extending AbstractPlugin. Declares module name, registers DAOs, menu entries, i18n resources, and checkAccess logic for the Banking plugin.

Code Structure

Annotations: author, micromata

Classes: BankingPlugin

Supertype(s): AbstractPlugin

Functions (1): initialize

Properties (3): bankAccountDao, menuCreator, RESOURCE_BUNDLE_NAME

Imports: 8 packages

Package: org.projectforge.plugins.banking

Source Code (abridged)

package org.projectforge.plugins.banking

import mu.KotlinLogging
import org.projectforge.Constants
import org.projectforge.menu.builder.MenuCreator
import org.projectforge.menu.builder.MenuItemDef
import org.projectforge.menu.builder.MenuItemDefId
import org.projectforge.plugins.core.AbstractPlugin
import org.projectforge.plugins.core.PluginAdminService
import org.projectforge.web.WicketSupport

private val log = KotlinLogging.logger {}

/**
 *
 * @author Kai Reinhard (k.reinhard@micromata.de)
 */
class BankingPlugin : AbstractPlugin(
    PluginAdminService.PLUGIN_BANKING_ID,
    "Banking",
    "You may import and browse your bank accounts here."
) {

    override fun initialize() {
        val bankAccountDao = WicketSupport.get(BankAccountDao::class.java)
        val menuCreator = WicketSupport.get(MenuCreator::class.java)
        // Register it:
        register(id, BankAccountDao::class.java, bankAccountDao, "plugins.banking")

        menuCreator.register(
            MenuItemDefId.FIBU,
            MenuItemDef(info.id,
                "plugins.banking.menu",
                "${Constants.REACT_APP_PATH}bankAccount",
                checkAccess =
                { bankAccountDao.hasLoggedInUserSelectAccess(false) }),
        );

        // All the i18n stuff:
        addResourceBundle(RESOURCE_BUNDLE_NAME)
    }

    companion object {
        const val RESOURCE_BUNDLE_NAME = "BankingI18nResources"
    }
}

Git History

868d6abb7 2025 -> 2026
63081666f Source file headers: 2024-> 2025.
3785f8347 Migration stuff in progress...
b6092df09 Copyright 2023 -> 2024
ab45d51fa Copyright 2001-2022 -> 2001-2023.