EN · DE · RU · FR · ES

#318: LantAbstractWizardWindow.kt

projectforge-application/src/main/kotlin/org/projectforge/setup/wizard/lanterna/LantAbstractWizardWindow.kt Тип: Kotlin · Роль: Мастер настройки · Источник: projectforge-application/src/main/kotlin/org/projectforge/setup/wizard/lanterna/LantAbstractWizardWindow.kt 84 строки · 44 кода · 25 комментариев · 15 пустых
Файл исходного кода в projectforge-application/src/main/kotlin/org/projectforge/setup/wizard/lanterna/LantAbstractWizardWindow.kt, содержащий код Kotlin для слоя мастера настройки.

Структура кода

Классы: LantAbstractWizardWindow

Супертип(ы): BasicWindow

Функции (4): getButtons, getContentPanel, redraw, resize

Свойства (7): mainPanel, context, contentPanel, buttonPanel, separator, titlePanel, panel

Импорты: 2 пакета

Пакет: org.projectforge.setup.wizard.lanterna

Исходный код (сокращён)

package org.projectforge.setup.wizard.lanterna

import com.googlecode.lanterna.TerminalSize
import com.googlecode.lanterna.gui2.*

abstract class LantAbstractWizardWindow(context: LantGUIContext,
                                        title: String) : BasicWindow("ProjectForge setup") {
    protected val mainPanel: Panel

    protected val context: LantGUIContext

    private val contentPanel: Panel

    private val buttonPanel: Panel

    private val separator: Separator

    init {
        this.context = context
        size = context.windowSize
        mainPanel = Panel()
        mainPanel.layoutManager = GridLayout(1)

        val titlePanel = Panel()
        LanternaUtils.addEmptySpace(titlePanel)
        titlePanel.addComponent(Label(title))
        LanternaUtils.addEmptySpace(titlePanel)
        mainPanel.addComponent(titlePanel)

        contentPanel = getContentPanel()
        contentPanel.layoutData = GridLayout.createLayoutData(GridLayout.Alignment.FILL, GridLayout.Alignment.FILL, true, true)
        mainPanel.addComponent(contentPanel)

        separator = Separator(Direction.HORIZONTAL)
        buttonPanel = LanternaUtils.createButtonBar(context, separator, true, *getButtons())
        mainPanel.addComponent(buttonPanel)
        component = mainPanel
        resize()
    }

    open fun getButtons(): Array<Button> {
        return arrayOf()
    }

    open fun getContentPanel(): Panel {
        val panel = Panel()
        panel.addComponent(EmptySpace())
        return panel
    }

    /**
     * Будет вызван, когда окно отображается снова.
     */
    open fun redraw() {}

    open fun resize() {
        size = context.windowSize
        contentPanel.preferredSize = TerminalSize(size.columns, size.rows - 5)
        separator.preferredSize = TerminalSize(context.terminalSize.columns - 8, 0)
    }
}

История Git

868d6abb7 2025 -> 2026
63081666f Заголовки файлов исходного кода: 2024->2025.
b6092df09 Авторские права 2023 -> 2024
ab45d51fa Авторские права 2001-2022 -> 2001-2023.
5f7ef41b8 Авторские права 2021 -> 2022