scalafx-extras

Additions to ScalaFX that do not have corresponding concepts in JavaFX

OTHER License

Stars
11

Bot releases are visible (Hide)

scalafx-extras - ScalaFX-Extras v.0.10.0 Latest Release

Published by jpsacha 2 months ago

ScalaFX-Extras Release v.0.10.0

This release of ScalaFX-Extras is a feature release.

New features

  • Add component to display the progress of batch processing tasks [#33]
  • Add helper UI for running batch processing tasks [#34]
  • ShowMessage: allow for resizing all message dialogs [#32]
  • ImageDisplay: add an option to flip image in X or Z axis [#35]

Bug fixes

  • ShowMessage dialogs may display cropped messages [#31]

To post questions, please use Project Discussions or ScalaFX Users Group

Full Changelog: https://github.com/scalafx/scalafx-extras/compare/v.0.9.0...v.0.10.0

scalafx-extras - ScalaFX-Extras v.0.9.0

Published by jpsacha 7 months ago

ScalaFX-Extras Release v.0.9.0

This release of ScalaFX-Extras is mostly a bug fix release. Some small tweak to BusyWorker was required to resolve
the issue with double error dialogs.

New features

  • Add helper method for finding parent windows for nodes [#29]

Bug fixes

  • FileSelectionField - editing text field is difficult - cursor jumps to the end after each keystroke [#27]
  • Error handling implemented in SimpleTask is disabled in BusyWorker#_doTask [#28]

Breaking Changes

  • org.scalafx.extras.BusyWorker.SimpleTask API changed to respect overrides
    of onSucceeded, onCancelled, onFailed that were ignored. Issue [#28].

To post questions, please use Project Discussions or ScalaFX Users Group

scalafx-extras - ScalaFX-Extras v.0.8.0

Published by jpsacha over 1 year ago

This release of ScalaFX-Extras add ability to conveniently add fields and read data from a pane using GenericPane. Add a couple bug fixes

New features

In addition to GenericDialogFX there is a GenericPane that can be used to build a Pane that can be used with more
granularity in designing UIs. It can be used as a part of other, more complex, control. Example:

import scalafx.application.JFXApp3
import scalafx.application.JFXApp3.PrimaryStage
import scalafx.geometry.Insets
import scalafx.scene.Scene
import scalafx.scene.control.Button
import scalafx.scene.layout.VBox
import scalafx.scene.paint.*
import scalafx.scene.paint.Color.*
import scalafx.scene.text.Text

object GenericPaneDemo extends JFXApp3:

  override def start(): Unit =

    val gp = new GenericPane():
      addDirectoryField("Input", "images")
      addDirectoryField("Output", "output")

    stage = new PrimaryStage:
      title = "GenericPane Demo"
      scene = new Scene:
        content = new VBox:
          padding = Insets(7, 7, 7, 7)
          spacing = 7
          children = Seq(
            gp.pane,
            new Button("Print Fields"):
              onAction = (_) =>
                gp.resetReadout()
                println(s"Input dir : ${gp.nextString()}")
                println(s"Output dir: ${gp.nextString()}")
          )

The scalafx-extras-demos subproject has an example.

Additional features:

  • The preferred width (expressed in text columns) of the text field in FileSelectionField can now be controlled. This
    adds similar options to
    • GenericPaneBase.addDirectoryField
    • GenericPaneBase.addFileField

Breaking Changes

  • Package name org.scalafx.extras.generic_dialog was changed to org.scalafx.extras.generic_pane
  • The constructor of GenericDialogFX parameter's name parentWindow was changes to ownerWindow to avoid conflict
    with similarly named parameter in GenericPaneBase

All changes:

  • Add: Generic Pane [#22]
  • Fix: GenericPaneBase.addDirectoryField - is ignoring argument columns [#23]
  • Fix: GenericPaneBase.addFileField is missing argument columns [#24]
  • Fix: IllegalAccessError in AutoDialog (0.7.0) [#25]

To post questions please use Project Discussions or ScalaFX Users Group

Full Changelog: https://github.com/scalafx/scalafx-extras/compare/v.0.7.0...v.0.8.0

scalafx-extras - ScalaFX-Extras v.0.7.0

Published by jpsacha about 2 years ago

ScalaFX-Extras Release v.0.7.0

This release provides a convenient way to generate dialogs from case classes (scala 3).
AutoDialog is used too quickly open auto generated dialog from case class.
After closing, the dialog will return edited version of the input case class:

import org.scalafx.extras.auto_dialog.AutoDialog

case class FilterOptions(kernelSize: Int = 7,
                         start: Double = 3.14,
                         tag: String = "alpha",
                         debugMode: Boolean = false)

val result: Option[FilterOptions] =
  new AutoDialog(FilterOptions())
    .showDialog(
      "AutoDialog Demo",
      "Fields are auto generated from `FilterOptions` object")

println(s"Result: $result")

The scalafx-extras-demos subproject has an example.

Enhancements:

  • [Scala 3] auto generate input dialogs from simple case classes [#18]
  • Update to ScalaFX 18.0.2-R29 [#20]

To post questions please use Project Discussions or ScalaFX Users Group

Full Changelog: https://github.com/scalafx/scalafx-extras/compare/v.0.6.0...v.0.7.0

scalafx-extras - ScalaFX-Extras v.0.6.0

Published by jpsacha over 2 years ago

This release add a new class for convenient creation of input dialogs: GenericDialogFX. You can easily add controls to
he dialog then read their values after the dialog was closed:

// Create a dialog
val dialog =
  new GenericDialogFX(
    title = "GenericDialogFX Demo",
    header = "Fancy description can go here."
  ) {
    // Add fields
    addCheckbox("Check me out!", defaultValue = false)
    addCheckbox("Check me too!", defaultValue = true)
  }

// Show dialog to the user
dialog.showDialog()

// Read input provided by the user
if (dialog.wasOKed) {
  val select1 = dialog.nextBoolean()
  val select2 = dialog.nextBoolean()

  println(s"Selection 1: $select1")
  println(s"Selection 2: $select2")
} else {
  println("Dialog was cancelled.")
}

The scalafx-extras-demos subproject has a more elaborated example.

Enhancements:

  • Support creation of custom dialogs, like ImageJ's GenericDialog #16
  • Let any standard dialog be displayed with a one-liner #17

To post questions please use Project Discussions or ScalaFX Users Group

Full Changelog: https://github.com/scalafx/scalafx-extras/compare/v.0.5.0...v.0.6.0

scalafx-extras - ScalaFX-Extras v.0.5.0

Published by jpsacha almost 3 years ago

Enhancements:

  • Change in ControllerFX trait API of Scala 3 version: add abstract 'initialize()' removing need to manually annotate
    the method with @FXML (Issue #14)
  • Add description of the MVCfx Pattern to project wiki
  • Update ScalaFX dependency to 17.0.1-R26
  • Update "logback-classic" to 1.2.9
  • Scala 3 code in demos is using the new Scala 3 syntax

To post questions please use Project Discussions or ScalaFX Users Group

scalafx-extras - ScalaFX-Extras v.0.4.0

Published by jpsacha almost 3 years ago

Enhancement:

  • Support use in Scala 3 by removing use of ScalaFX (Scala 2 macros) Issue #12. That required some changes in
    MVCfx API (Scala 2 use stays the same). See demos for examples of the new use.
  • Update to ScalaFX 16.0.0-R25

To post questions please use Project Discussions or ScalaFX Users Group

scalafx-extras - ScalaFX-Extras v.0.3.6

Published by jpsacha almost 4 years ago

ScalaFX-Extras Release v.0.3.6

Enhancement:

  • Update to ScalaFX 15.0.1-R21

Bug fix:

  • Issue #10 Wait cursor is not set reliably by the BusyWorker

To post questions please use ScalaFX Users Group or StackOverflow ScalaFX

scalafx-extras - ScalaFX-Extras v.0.3.5

Published by jpsacha almost 4 years ago

Enhancement:

To post questions please use ScalaFX Users Group or StackOverflow ScalaFX

scalafx-extras - ScalaFX-Extras v.0.3.4

Published by jpsacha over 4 years ago

Enhancement:

  • More flexible order of model and view creation in MVCfx #8
scalafx-extras - ScalaFX-Extras Release v.0.3.3

Published by jpsacha over 4 years ago

Bug fix release:

To post questions please use ScalaFX Users Group or StackOverflow ScalaFX

scalafx-extras - ScalaFX-Extras v.0.3.2

Published by jpsacha about 5 years ago

ScalaFX-Extras Release v.0.3.2

Enhancements:

  • Issue #5 Do not include JavaFX as transitive dependency
  • Issue #6 SimpleTask - add more flexibility in handling tasks states

To post questions please use ScalaFX Users Group of StackOverflow ScalaFX

scalafx-extras - ScalaFX-Extras v.0.3.1

Published by jpsacha about 5 years ago

Main objective of this release is to add support for Scala 2.13

Changes:

To post questions please use ScalaFX Users Group of StackOverflow ScalaFX

scalafx-extras - ScalaFX-Extras v.0.3.0

Published by jpsacha almost 6 years ago

Changes:

  • Issue #2 BusyWorker.doTask now disallows use of code blocks, must use lambda notation to avoid execution on incorrect thread.

To post questions please use ScalaFX Users Group of StackOverflow ScalaFX

scalafx-extras - ScalaFX-Extras v.0.2.1

Published by jpsacha almost 6 years ago

ScalaFX-Extras Release v.0.2.1

Changes:

  • Build is done now against ScalaFX 11

To post questions please use ScalaFX Users Group of StackOverflow ScalaFX

scalafx-extras - ScalaFX-Extras v.0.2.0

Published by jpsacha almost 6 years ago

v.0.2.0 is a feature release, several new concepts were added:

  • The mixin ShowMessage makes it easier to display dialogs.
  • The BusyWorker helps running UI tasks a separate threads (other than the JavaFX Application thread).
    It gives an option to show progress and status messages.
  • The ImageDisplay component for showing images with ability to zoom in, zoom out, zoom to fit.
    It can also automatically resizes to parent size.

There were also significant changes to the Model-View-X pattern code.
The View changed name to ControllerFX to match naming used in JavaFX.
Model was renamed to ModelFX.
ModelView was renamed to MVCfx.
There were some other changed for smoother integration with the new ShowMessage and BusyWorker classes.
The ending FX was added to avoid conflicts with ScalaFXML macros clashing with name Controller.

The are new demos, in scalafx-extras-demos project that illustrate the use of the scalafx-extras features.

To post questions please use ScalaFX Users Group of StackOverflow ScalaFX