Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package com.webforj.samples.views.optiondialog.confirm

import com.webforj.component.Composite
import com.webforj.component.Theme
import com.webforj.component.button.ButtonTheme
import com.webforj.component.html.elements.Div
import com.webforj.component.optiondialog.ConfirmDialog
import com.webforj.router.annotation.FrameTitle
import com.webforj.router.annotation.Route

@Route
@FrameTitle("Confirm Dialog Constructor")
class ConfirmDialogConstructorKotlinView: Composite<Div>() {

init {
ConfirmDialog(
"Are you sure you want to delete this file? This action cannot be reverted.",
"Deletion",
ConfirmDialog.OptionType.OK_CANCEL,
// MessageType.QUESTION
).apply {
theme = Theme.DANGER
setButtonTheme(ConfirmDialog.Button.FIRST, ButtonTheme.DANGER)
setButtonTheme(ConfirmDialog.Button.SECOND, ButtonTheme.OUTLINED_GRAY)
show()
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package com.webforj.samples.views.optiondialog.confirm

import com.webforj.component.Composite
import com.webforj.component.button.ButtonTheme
import com.webforj.component.html.elements.Div
import com.webforj.component.optiondialog.ConfirmDialog
import com.webforj.component.optiondialog.OptionDialog
import com.webforj.router.annotation.FrameTitle
import com.webforj.router.annotation.Route

@Route
@FrameTitle("Confirm Dialog Options")
class ConfirmDialogOptionsKotlinView: Composite<Div>() {
private val dialog: ConfirmDialog

init {
dialog = ConfirmDialog(
"There are unsaved changes. Do you want to discard or save them?",
"Unsaved changes",
ConfirmDialog.OptionType.CUSTOM,
// MessageType.WARNING
).apply {
firstButtonText = "Discard"
setFirstButtonTheme(ButtonTheme.WARNING)
secondButtonText = "Save"
setSecondButtonTheme(ButtonTheme.OUTLINED_GRAY)
}
show()
}

private fun show() {
val result = dialog.show()

val (message, title, buttonText) = if (result == ConfirmDialog.Result.FIRST_CUSTOM_BUTTON) {
listOf("Changes discarded", "Discarded", "Got it")
} else {
listOf("Changes saved", "Saved", "Got it")
}

OptionDialog.showMessageDialog(message, title, buttonText)
show()
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
package com.webforj.samples.views.optiondialog.filechooser

import com.webforj.component.Composite
import com.webforj.component.html.elements.Div
import com.webforj.component.optiondialog.FileChooserDialog
import com.webforj.component.optiondialog.OptionDialog
import com.webforj.router.annotation.FrameTitle
import com.webforj.router.annotation.Route

@Route
@FrameTitle("File Chooser Basics")
class FileChooserDialogBasicKotlinView: Composite<Div>() {
private val dialog: FileChooserDialog

init {
dialog = FileChooserDialog(
"Choose Directory to save",
System.getProperty("filechooser-files.path"),
FileChooserDialog.SelectionMode.DIRECTORIES
).apply {
isRestricted = true
}

show()
}

private fun show() {
val directory = dialog.show()

directory?.let {
OptionDialog.showMessageDialog(
"Directory selected: $it",
"Directory Selected"
)
} ?: OptionDialog.showMessageDialog(
"No directory selected",
"Directory Selection Failed",
// MessageType.ERROR
)

show()
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
package com.webforj.samples.views.optiondialog.filechooser

import com.webforj.component.Composite
import com.webforj.component.html.elements.Div
import com.webforj.component.optiondialog.FileChooserDialog
import com.webforj.component.optiondialog.FileChooserFilter
import com.webforj.component.optiondialog.OptionDialog
import com.webforj.router.annotation.FrameTitle
import com.webforj.router.annotation.Route

@Route
@FrameTitle("File Chooser Filters")
class FileChooserDialogFiltersKotlinView: Composite<Div>() {
private val dialog: FileChooserDialog

init {
val filters = listOf(
FileChooserFilter("All Files", "*.*"),
FileChooserFilter("Text Files (*.txt)", "*.txt"),
FileChooserFilter("Java Files (*.java)", "*.java"),
FileChooserFilter("Image Files (*.png, *.jpg, *.jpeg)", "*.png;*.jpg;*.jpeg")
)

dialog = FileChooserDialog(
"Choose a file to download",
System.getProperty("filechooser-files.path"),
filters
).apply {
isRestricted = true
isGridView = true
}

show()
}

private fun show() {
val file = dialog.show()

file?.let {
OptionDialog.showMessageDialog(
"File selected: $it", "File Selected"
)
} ?: OptionDialog.showMessageDialog(
"No file selected",
"File Selection Failed",
// MessageType.ERROR
)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package com.webforj.samples.views.optiondialog.filesave

import com.webforj.component.Composite
import com.webforj.component.html.elements.Div
import com.webforj.component.optiondialog.FileSaveDialog
import com.webforj.component.optiondialog.MessageDialog
import com.webforj.component.optiondialog.OptionDialog
import com.webforj.router.annotation.FrameTitle
import com.webforj.router.annotation.Route

@Route
@FrameTitle("File Save Basics")
class FileSaveDialogBasicKotlinView: Composite<Div>() {
private val dialog: FileSaveDialog

init {
dialog = FileSaveDialog("Save As", "/usr2/bbx/demos", "reports.xls").apply {
isRestricted = true
}

show()
}

private fun show() {
val path = dialog.show()

path?.let {
OptionDialog.showMessageDialog("Saved file to: $path", "Path Selected")
} ?: OptionDialog.showMessageDialog(
"No path is selected",
"Path Selected",
// MessageDialog.MessageType.ERROR
)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package com.webforj.samples.views.optiondialog.filesave

import com.webforj.component.Composite
import com.webforj.component.html.elements.Div
import com.webforj.component.optiondialog.FileChooserFilter
import com.webforj.component.optiondialog.FileSaveDialog
import com.webforj.component.optiondialog.MessageDialog
import com.webforj.component.optiondialog.OptionDialog
import com.webforj.router.annotation.FrameTitle
import com.webforj.router.annotation.Route

@Route
@FrameTitle("File Save Filters")
class FileSaveDialogFiltersKotlinView: Composite<Div>() {
private val dialog: FileSaveDialog

init {
val filters = listOf(
FileChooserFilter("All Files", "*.*"),
FileChooserFilter("Text Files", "*.txt"),
FileChooserFilter("CSV Files", "*.csv"),
FileChooserFilter("Excel Files", "*.xls;*.xlsx")
)
dialog = FileSaveDialog("Save As", "/usr2/bbx/demos", "export.txt", filters).apply {
isRestricted = true
}

show()
}

private fun show() {
val path = dialog.show()

path?.let {
OptionDialog.showMessageDialog("Saved file to: $path", "Path Selected")
} ?: OptionDialog.showMessageDialog(
"No path is selected",
"Path Selected",
// MessageDialog.MessageType.ERROR
)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package com.webforj.samples.views.optiondialog.fileupload

import com.webforj.component.Composite
import com.webforj.component.html.elements.Div
import com.webforj.component.optiondialog.FileUploadDialog
import com.webforj.component.optiondialog.MessageDialog
import com.webforj.component.optiondialog.OptionDialog
import com.webforj.router.annotation.FrameTitle
import com.webforj.router.annotation.Route

@Route
@FrameTitle("File Upload Basics")
class FileUploadDialogBasicKotlinView : Composite<Div?>() {
private val dialog: FileUploadDialog

init {
dialog = FileUploadDialog("Upload a file").apply {
isFileSystemAccess = false
}

show()
}

/**
* Shows the file upload dialog and handles the result.
*/
private fun show() {
val file = dialog.show()

if (file != null) {
file.delete()
OptionDialog.showMessageDialog("File uploaded successfully", "File Uploaded")
} else {
OptionDialog.showMessageDialog(
"No file selected",
"File Selection Failed",
MessageDialog.MessageType.ERROR
)
}
}
}

Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
package com.webforj.samples.views.optiondialog.input

import com.webforj.component.Composite
import com.webforj.component.button.ButtonTheme
import com.webforj.component.html.elements.Div
import com.webforj.component.optiondialog.InputDialog
import com.webforj.component.optiondialog.MessageDialog
import com.webforj.component.optiondialog.OptionDialog
import com.webforj.router.annotation.FrameTitle
import com.webforj.router.annotation.Route

@Route
@FrameTitle("Input Dialog Basics")
class InputDialogBasicKotlinView : Composite<Div?>() {
init {
val message = """
<dwc-alert theme='warning'>
<b style='color: inherit'>Unexpected bad things will happen if you don't read this!</b>
</dwc-alert>
<br/>
This will permanently delete the repository, wiki, issues,
comments, packages, secrets, workflow runs, and remove all collaborator associations.
<br/><br/>
To confirm, type <b>$CONFIRMATION_CODE</b> in the box below
""".trimIndent()

val dialog: InputDialog = InputDialog(message, "Delete Repository", /*InputDialog.MessageType.ERROR*/).apply {
messageType = InputDialog.MessageType.PLAIN
firstButtonText = "Delete Repository"
setSecondButtonTheme(ButtonTheme.OUTLINED_GRAY)
}

var input: String?
do {
input = dialog.show()

when (input) {
null -> {
// User cancelled
OptionDialog.showMessageDialog(
"Aborted repository deletion.",
"Repository Deletion Aborted",
MessageDialog.MessageType.ERROR
)
}
CONFIRMATION_CODE -> {
// Correct code entered
OptionDialog.showMessageDialog(
"Repository was deleted successfully",
"Repository Deleted",
MessageDialog.MessageType.INFO
)
}
else -> {
// Wrong code entered
OptionDialog.showMessageDialog(
"Failed to delete the repository. Code entered is incorrect",
"Repository Deletion Failed",
MessageDialog.MessageType.ERROR
)
}
}
} while (input == null || input != CONFIRMATION_CODE)
}

companion object {
// Confirmation code required for deletion
private const val CONFIRMATION_CODE = "7ANfB"
}
}
Loading
Loading