Noah Lynch 48be38a2d8 Wrap setAliases() in Platform.runLater() (#885)
Fixes issue #884 (see issue for more info).

AliasItemEditor.save() modifies objects that are observed by the
TableView's underlying SortedList.  Thus, the TableView's selection can
change by calling save(), which means the ListChangeListener can be
fired.

This is a problem for two reasons.
1. The alert dialogue that prompts the user to save a modified alias
will show when the user presses the "save" button, because saving
modifies the selected alias and causes the list to update.

2. setAliases() calls Alert.showAndWait().  From the JavaDoc:
"It must not be called during animation or layout processing."
This statement is likely there because it can cause issues like the one
here: TableView's layout processing (and the list updating) is paused
and the list is further modified (by calling save()).  Thus, when the
processing is resumed the list is in a different and unexpected state.

Calling setAliases() from Platform.runLater() will allow the SortedList,
TableView, and any other involved objects to finish processing changes
before more modifications are made.  Additionally, it allows save(),
when called by pressing the save button, to complete and set the
modifiedProperty to false, so setAliases() does not display an
additional save prompt.
2020-07-25 07:08:39 -04:00
2020-06-13 09:35:11 -04:00
2020-05-15 04:39:14 -04:00
2017-12-15 22:45:40 +02:00

sdrtrunk

A cross-platform java application for decoding, monitoring, recording and streaming trunked mobile and related radio protocols using Software Defined Radios (SDR).

sdrtrunk Application Overview - Version 0.3.0 Figure 1: sdrtrunk Version 0.3.0 Application Screenshot

End User Instructions:

If you simply want to download and run the program, please follow these instructions.

Download the latest sdrtrunk release for your operating system

All release versions of sdrtrunk are available from the releases tab.

  • (alpha) These versions are under development feature previews and likely to contain bugs and unexpected behavior.
  • (beta) These versions are currently being tested for bugs and functionality prior to final release.
  • (final) These versions have been tested and are the current release version.

Unzip the release

Use 7-zip or any zip utility to unzip the release file

Start the application

Once unzipped, open a command prompt to where you unzipped the release. Change to the /bin directory and use the launch script to start the application:

  • Windows sdr-trunk.bat
  • Linux/OSX ./sdr-trunk

Optional - P25 Audio

If you're using sdrtrunk with a P25 trunked radio system, the JMBE wiki page contains instructions for downloading the JMBE audio library source code and compiling the JMBE library. Once you have compiled the library, launch the sdrtrunk application. From the menu bar, choose View >> Preferences. In the JMBE Audio Codec section, update the path to where your compiled JMBE library is located. Any channels that are started after you set the path will be able to produce P25 audio.

Minimum System Requirements

  • Operating System: Windows (32 or 64-bit), Linux (32 or 64-bit) or Mac/Linux (64-bit, 10.14 or higher)
  • CPU: 4-core
  • RAM: 8GB or more (preferred). Depending on usage, 4GB may be sufficient.

Developer Instructions:

If you're interested in modifying and/or compiling the source code, please follow these instructions to use gradle to compile the code.

Build the project

sdrtrunk uses the gradle build system. This requires OpenJDK 11 or higher installed on your local compuber. Use the gradle wrapper to build the source code:

Linux

./gradlew clean build

Windows

gradlew.bat clean build

The /build/distributions folder will contain the zip file of the compiled program. Unzip it and launch the program from the scripts in the /bin directory.

Development

All dependencies/versions are controlled from build.gradle. To change the new release version tag of artifact - change property:

version = '0.5.0'
Description
No description provided
Readme GPL-3.0 54 MiB
NXDN-625 Latest
2026-06-25 09:56:10 -04:00
Languages
Java 99.9%