EN · DE · RU · FR · ES

#321: LantFinalizeScreen.kt

projectforge-application/src/main/kotlin/org/projectforge/setup/wizard/lanterna/LantFinalizeScreen.kt Kotlin-Klasse, projectforge-application/src/main/kotlin/org/projectforge/setup/wizard/lanterna/LantFinalizeScreen.kt 230 Zeilen · 172 Code · 29 Kommentare · 29 Leerzeichen
Zweck: Quelldatei: setup/wizard/lanterna/LantFinalizeScreen.kt. LantFinalizeScreen.kt ist Teil der Open-Source-Projektmanagement-Anwendung ProjectForge.

Quelltext (erste 100 Zeilen)

/////////////////////////////////////////////////////////////////////////////
//
// Project ProjectForge Community Edition
//         www.projectforge.org
//
// Copyright (C) 2001-2026 Micromata GmbH, Germany (www.micromata.com)
//
// ProjectForge ist dual-lizenziert.
//
// Diese Community-Edition ist freie Software; Sie können sie weiterverbreiten und/oder
// modifizieren unter den Bedingungen der GNU General Public License, wie sie von der
// Free Software Foundation veröffentlicht wurde; Version 3 der Lizenz.
//
// Diese Community-Edition wird in der Hoffnung verteilt, dass sie nützlich sein wird,
// aber OHNE JEGLICHE GEWÄHRLEISTUNG; ohne die stillschweigende Gewährleistung der
// MARKTGÄNGIGKEIT oder EIGNUNG FÜR EINEN BESTIMMTEN ZWECK. Siehe die GNU General
// Public License für weitere Details.
//
// Sie sollten ein Exemplar der GNU General Public License zusammen mit diesem
// Programm erhalten haben; falls nicht, siehe http://www.gnu.org/licenses/.
//
/////////////////////////////////////////////////////////////////////////////

package org.projectforge.setup.wizard.lanterna

import com.googlecode.lanterna.TerminalSize
import com.googlecode.lanterna.gui2.*
import org.projectforge.common.CanonicalFileUtils
import org.projectforge.setup.SetupContext
import org.projectforge.setup.wizard.FinalizeScreenSupport
import org.projectforge.setup.wizard.FinalizeScreenSupport.listOfDatabases
import org.projectforge.setup.wizard.FinalizeScreenSupport.listOfLocales
import org.projectforge.setup.wizard.FinalizeScreenSupport.listOfTimeNotations
import org.projectforge.setup.wizard.FinalizeScreenSupport.listOfWeekdays
import org.projectforge.setup.wizard.Texts
import java.io.File
import java.util.regex.Pattern


class LantFinalizeScreen(context: LantGUIContext) : LantAbstractWizardWindow(context, "Einrichtung des Verzeichnisses abschließen") {
  private lateinit var dirLabel: Label
  private lateinit var domainTextBox: TextBox
  private lateinit var portTextBox: TextBox

  private lateinit var databaseCombobox: ComboBox<String>
  private lateinit var jdbcSettingsButton: Button

  private lateinit var currencyTextBox: TextBox
  private lateinit var defaultLocaleCombobox: ComboBox<String>
  private lateinit var defaultTimeNotationCombobox: ComboBox<String>
  private lateinit var defaultFirstDayOfWeekCombobox: ComboBox<String>

  private lateinit var startCheckBox: CheckBox
  private lateinit var developmentCheckBox: CheckBox

  private lateinit var hintLabel: Label

  override fun getContentPanel(): Panel {
    val panel = Panel()
    val setupContext = context.setupContext
    panel.layoutManager = GridLayout(3)

    dirLabel = Label("")
    panel.addComponent(Label(Texts.FS_DIRECTORY).setSize(TerminalSize(10, 1)))
      .addComponent(dirLabel.setLayoutData(GridLayout.createHorizontallyFilledLayoutData(2)))

    panel.addComponent(EmptySpace().setLayoutData(GridLayout.createHorizontallyFilledLayoutData(3)))

    domainTextBox = TextBox("http://localhost:8080")
      .setPreferredSize(TerminalSize(30, 1))
    panel.addComponent(Label(Texts.FS_DOMAIN))
      .addComponent(domainTextBox)
      .addComponent(Label(Texts.FS_DOMAIN_DESC))

    portTextBox = TextBox("8080")
      .setValidationPattern(Pattern.compile("[0-9]{1,5}?"))
      .setPreferredSize(TerminalSize(7, 1))
    if (!setupContext.customizedPortSupported) {
      // In Docker-Containern wird der angepasste Port nicht unterstützt.
      panel.addComponent(Label(Texts.FS_PORT))
        .addComponent(portTextBox)
        .addComponent(EmptySpace())
    }

    panel.addComponent(EmptySpace().setLayoutData(GridLayout.createHorizontallyFilledLayoutData(3)))

    databaseCombobox = ComboBox()
    listOfDatabases.forEach { databaseCombobox.addItem(it.label) }
    if (setupContext.embeddedDatabaseSupported) {
      // Listener nur erforderlich, wenn sowohl eingebettete Datenbank als auch PostgreSQL unterstützt werden.
      databaseCombobox.addListener { selectedIndex, previousSelection, _ ->
        if (previousSelection != selectedIndex) {
          if (selectedIndex > 0) {
            jdbcSettingsButton.setEnabled(true)
            showJdbcSettingsDialog()
            context.setupData.useEmbeddedDatabase = false
          } else {
            jdbcSettingsButton.setEnabled(false)
            context.setupData.useEmbeddedDatabase = true
          }

Git-Verlauf

868d6abb7 2025 -> 2026
63081666f Quelltextdatei-Header: 2024 -> 2025.
b6092df09 Copyright 2023 -> 2024
ab45d51fa Copyright 2001-2022 -> 2001-2023.
5f7ef41b8 Copyright 2021 -> 2022

868d6abb7

2025 -> 2026
868d6abb75cd191a892911ac8e45058932cf9074
diff --git a/projectforge-application/src/main/kotlin/org/projectforge/setup/wizard/lanterna/LantFinalizeScreen.kt b/projectforge-application/src/main/kotlin/org/projectforge/setup/wizard/lanterna/LantFinalizeScreen.kt
index b85fe6013..bde487385 100644
--- a/projectforge-application/src/main/kotlin/org/projectforge/setup/wizard/lanterna/LantFinalizeScreen.kt
+++ b/projectforge-application/src/main/kotlin/org/projectforge/setup/wizard/lanterna/LantFinalizeScreen.kt
@@ -3,7 +3,7 @@
 // Project ProjectForge Community Edition
 //         www.projectforge.org
 //
-// Copyright (C) 2001-2025 Micromata GmbH, Germany (www.micromata.com)
+// Copyright (C) 2001-2026 Micromata GmbH, Germany (www.micromata.com)
 //
 // ProjectForge ist dual-lizenziert.
 //

63081666f

Quelltextdatei-Header: 2024 -> 2025.
63081666f620fb87315f01b817e560e0b2f6a33a
diff --git a/projectforge-application/src/main/kotlin/org/projectforge/setup/wizard/lanterna/LantFinalizeScreen.kt b/projectforge-application/src/main/kotlin/org/projectforge/setup/wizard/lanterna/LantFinalizeScreen.kt
index beab538ef..b85fe6013 100644
--- a/projectforge-application/src/main/kotlin/org/projectforge/setup/wizard/lanterna/LantFinalizeScreen.kt
+++ b/projectforge-application/src/main/kotlin/org/projectforge/setup/wizard/lanterna/LantFinalizeScreen.kt
@@ -3,7 +3,7 @@
 // Project ProjectForge Community Edition
 //         www.projectforge.org
 //
-// Copyright (C) 2001-2024 Micromata GmbH, Germany (www.micromata.com)
+// Copyright (C) 2001-2025 Micromata GmbH, Germany (www.micromata.com)
 //
 // ProjectForge ist dual-lizenziert.
 //

b6092df09

Copyright 2023 -> 2024
b6092df0927c4a3b161e888445f31dcab57493f2
diff --git a/projectforge-application/src/main/kotlin/org/projectforge/setup/wizard/lanterna/LantFinalizeScreen.kt b/projectforge-application/src/main/kotlin/org/projectforge/setup/wizard/lanterna/LantFinalizeScreen.kt
index 55c031e9f..beab538ef 100644
--- a/projectforge-application/src/main/kotlin/org/projectforge/setup/wizard/lanterna/LantFinalizeScreen.kt
+++ b/projectforge-application/src/main/kotlin/org/projectforge/setup/wizard/lanterna/LantFinalizeScreen.kt
@@ -3,7 +3,7 @@
 // Project ProjectForge Community Edition
 //         www.projectforge.org
 //
-// Copyright (C) 2001-2023 Micromata GmbH, Germany (www.micromata.com)
+// Copyright (C) 2001-2024 Micromata GmbH, Germany (www.micromata.com)
 //
 // ProjectForge ist dual-lizenziert.
 //

ab45d51fa

Copyright 2001-2022 -> 2001-2023.
ab45d51fa419ede6174b31d69987f96d4b841ff9
diff --git a/projectforge-application/src/main/kotlin/org/projectforge/setup/wizard/lanterna/LantFinalizeScreen.kt b/projectforge-application/src/main/kotlin/org/projectforge/setup/wizard/lanterna/LantFinalizeScreen.kt
index 62e350484..55c031e9f 100644
--- a/projectforge-application/src/main/kotlin/org/projectforge/setup/wizard/lanterna/LantFinalizeScreen.kt
+++ b/projectforge-application/src/main/kotlin/org/projectforge/setup/wizard/lanterna/LantFinalizeScreen.kt
@@ -3,7 +3,7 @@
 // Project ProjectForge Community Edition
 //         www.projectforge.org
 //
-// Copyright (C) 2001-2022 Micromata GmbH, Germany (www.micromata.com)
+// Copyright (C) 2001-2023 Micromata GmbH, Germany (www.micromata.com)
 //
 // ProjectForge ist dual-lizenziert.
 //

5f7ef41b8

Copyright 2021 -> 2022
5f7ef41b8cbbf29b1bff094f0c0b708dcaecb19e
diff --git a/projectforge-application/src/main/kotlin/org/projectforge/setup/wizard/lanterna/LantFinalizeScreen.kt b/projectforge-application/src/main/kotlin/org/projectforge/setup/wizard/lanterna/LantFinalizeScreen.kt
index 74e4fcd61..62e350484 100644
--- a/projectforge-application/src/main/kotlin/org/projectforge/setup/wizard/lanterna/LantFinalizeScreen.kt
+++ b/projectforge-application/src/main/kotlin/org/projectforge/setup/wizard/lanterna/LantFinalizeScreen.kt
@@ -3,7 +3,7 @@
 // Project ProjectForge Community Edition
 //         www.projectforge.org
 //
-// Copyright (C) 2001-2021 Micromata GmbH, Germany (www.micromata.com)
+// Copyright (C) 2001-2022 Micromata GmbH, Germany (www.micromata.com)
 //
 // ProjectForge ist dual-lizenziert.
 //