EN · DE · RU · FR · ES

#321: LantFinalizeScreen.kt

projectforge-application/src/main/kotlin/org/projectforge/setup/wizard/lanterna/LantFinalizeScreen.kt Класс Kotlin, projectforge-application/src/main/kotlin/org/projectforge/setup/wizard/lanterna/LantFinalizeScreen.kt 230 строк · 172 кода · 29 комментариев · 29 пустых
Назначение: Исходный файл: setup/wizard/lanterna/LantFinalizeScreen.kt. LantFinalizeScreen.kt является частью приложения управления проектами с открытым исходным кодом ProjectForge.

Исходный код (первые 100 строк)

/////////////////////////////////////////////////////////////////////////////
//
// Project ProjectForge Community Edition
//         www.projectforge.org
//
// Copyright (C) 2001-2026 Micromata GmbH, Germany (www.micromata.com)
//
// ProjectForge распространяется по двойной лицензии.
//
// Эта общественная редакция является бесплатным программным обеспечением; вы можете распространять ее и/или
// изменять в соответствии с условиями Стандартной общественной лицензии GNU (GNU General Public License) в том виде,
// в каком она опубликована Фондом свободного программного обеспечения; версия 3 Лицензии.
//
// Эта общественная редакция распространяется в надежде, что она будет полезной,
// но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ; даже без подразумеваемой гарантии
// КОММЕРЧЕСКОЙ ЦЕННОСТИ или ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ. Подробнее см. в Стандартной общественной
// лицензии GNU.
//
// Вы должны были получить копию Стандартной общественной лицензии GNU вместе
// с этой программой; если нет, см. 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, "Завершение настройки каталога") {
  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) {
      // В docker-контейнерах настраиваемый порт не поддерживается
      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) {
      // Прослушиватель требуется только если поддерживается встроенная база данных, а также PostgreSQL.
      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

868d6abb7 2025 -> 2026
63081666f Заголовки исходных файлов: 2024-> 2025.
b6092df09 Авторское право 2023 -> 2024
ab45d51fa Авторское право 2001-2022 -> 2001-2023.
5f7ef41b8 Авторское право 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 is dual-licensed.
 //

63081666f

Заголовки исходных файлов: 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 is dual-licensed.
 //

b6092df09

Авторское право 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 is dual-licensed.
 //

ab45d51fa

Авторское право 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 is dual-licensed.
 //

5f7ef41b8

Авторское право 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 is dual-licensed.
 //