EN · DE · RU · FR · ES

#318: LantAbstractWizardWindow.kt

projectforge-application/src/main/kotlin/org/projectforge/setup/wizard/lanterna/LantAbstractWizardWindow.kt Tipo: Kotlin · Rol: Asistente de configuración · Fuente: projectforge-application/src/main/kotlin/org/projectforge/setup/wizard/lanterna/LantAbstractWizardWindow.kt 84 líneas · 44 código · 25 comentarios · 15 en blanco
Archivo de código fuente en projectforge-application/src/main/kotlin/org/projectforge/setup/wizard/lanterna/LantAbstractWizardWindow.kt que contiene código Kotlin para la capa del Asistente de configuración.

Estructura del código

Clases: LantAbstractWizardWindow

Super-tipo(s): BasicWindow

Funciones (4): getButtons, getContentPanel, redraw, resize

Propiedades (7): mainPanel, context, contentPanel, buttonPanel, separator, titlePanel, panel

Importaciones: 2 paquetes

Paquete: org.projectforge.setup.wizard.lanterna

Código fuente (resumido)

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
    }

    /**
     * Se llamará cuando la ventana se muestre nuevamente.
     */
    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)
    }
}

Historial de Git

868d6abb7 2025 -> 2026
63081666f Encabezados de archivos fuente: 2024 -> 2025.
b6092df09 Derechos de autor 2023 -> 2024
ab45d51fa Derechos de autor 2001-2022 -> 2001-2023.
5f7ef41b8 Derechos de autor 2021 -> 2022