# Changes related to the framework
2025-01-10
- Allow disabled extra actions for windows

2025-01-09
- Fixed failing online demo on Firefox and Safari

2025-01-04
- Improved default decorated property for windows
- Fixed Linux using default Flat L&F should use undecorated windows

2025-12-29
- Do not list GTK+ as potential skin for CheerpJ
- Fixed CheerpJ default skin to Nimbus
- Disable Exit action for CheerpJ
- Allow pro version when used with CheerpJ 

2025-12-24
- Fixed invalid debug option for Java 25
- Fixed empty window showing when using the file dialog

2025-12-23
- Remove Homebrew button, replaced with text under the buttons for macOS

2025-12-19
- Migrated to Java 25 Azul for Windows
- Include jdk.accessibility module for Windows and Linux

2025-12-14
- Remain on Java 17 for Windows as signing executable still fails
- Remain on Java 17 for macOS as jpackage 25 creates installer for macOS 11 or higher

2025-12-13
- Restore to default setting in general settings should clear old settings before loading the default ones
- Start up with frame maximized when using CheerpJ
- Use default look and feel for applications

2025-12-06
- Added Possibility to have one license key for all Japplis software

2025-11-25
- Try to catch it all if start-up fails

2025-11-24
- Added IOUtil#readFile(model, file, encoding) that ask for encoding if default fails

2025-11-15
- Added ParamComponentFactory#createButtonWithDropdown
- Support for PropertyAction with multiple values for toolbar
- Hide the component if no footer text in Graph
- Added FontUtils#setFontSize(JComponent)
- Fixed AdvancedTextField should use model parameter for .Value property
- Added log if saving image failed
- Added Graph#getClickListeners

2025-11-11
- Added IOUtils#moveFile
- Try to be more stable when saving the settings

2025-11-06
- Added CollectionUtils#timedMap
- Added UIUtils#getParent

2025-10-05
- Do not try to find resources for actions starting with ActionHelp (shit+ctrl+F1 for help windows)

2025-09-28
- Upgraded from Java 17 or Java 25 for installers (jpackage)

2025-09-27
- Added possibility to store table properties only for a specific table
- Added TextField.[name].IsRegExp property

2025-09-26
- Added AdvancedTableModel#setElement
- Added ComponentFactory#createManagementButtons
- Added TableUtils#enableEditing

2025-09-20
- Use resource look and feel if none defined
- Use default look and feel if no property of resource defined
- Added UIUtils#setRaisedLoweredBorder

2025-09-01
- Log action name when it fails with an exception
- Attempt to improve detection of main window on macOS for IntelliJ

2025-08-28
- Added DefaultAction#getValue(key, default)

2025-08-23
- Log if IOUtils#copy method get null input and throw IOException

2025-08-18
- Use undecorated windows when using Flat LnF on Linux
- Fixed transparency not applied at start-up on Linux

2025-08-12
- Improved showing macOS and Windows shortcuts in ActionChooser

2025-08-09
- Use the Application.Icons property to load the application icons
- Use another way to show the license dialog to front on start-up

2025-08-03
- Changed default look and feel to Flat Dark for macOS
- Native and system look and feel only use system look and feel
- New "Default" look and feel: Windows -> native, macOS -> Flat Dark or native, Linux -> Flat Dark or Nimbus, CheerpJ -> Nimbus

2025-08-02
- Retry to copy image to clipboard when clipboard was not available
- Added TransferableUtils#copyToClipboard

2025-07-04
- New command to install for brew as default may fail on macOS

2025-07-03
- Fixed possible error when no event source provided for action
- Log CheerpJ as applet in start-up logs

2025-06-22
- Remember license key when resetting settings
- Remember ini file when resetting settings
- Used parent dir of specified ini file as default directory when browsing

2025-06-21
- Refresh the UI after clear settings

2025-06-19
- Do not show Tip of the day or Welcome video at start-up for CheerpJ
- Moved increase open count at the start-up of the application
- Save settings after show welcome videos dialog
- Be more tolerant when reading the panel property values
- Added -Fullscreen argument support for main frame

2025-06-11
- Do not check for updates when started with CheerpJ

2025-06-07
- Added StringUtils#isNumber

2025-06-01
- Save settings if the license is already accepted at first start-up

2025-05-30
- Use label properties for ComponentFactory#createMultilineLabel
- Fixed incorrect background for multi line labels and selectable label when using Nimbus skin

2025-05-28
- WindowUtils#makeTransparent will make the window undecorated even if transparency is not supported
- Added UIUtils.IS_CHEERPJ variable for https://cheerpj.com/ technology
- Do not show main frame settings when using CheerpJ
- Avoid to check for .portable file in the application directory multiple times after start-up

2025-05-27
- Don't store always on top and undecorated if model is null
- Remember position and size will also remember always on top, undecorated and transparency

2025-05-26
- Make sure translucent window are supported in WindowUtils#makeTransparent

2025-05-24
- Added WindowUtils#getTransparency

2025-05-23
- Made possible to allow empty text in DialogUtils#showTextAreaDialog
- Only set macOS properties for macOS operating system

2025-05-17
- Back to skip key & free for today (instead of one week) due to no sales this year
- Fixed the text sorter to use the correct collator when 2 text are equals (without accents)

2025-05-12
- Added possibility to go to windows help using ctrl + shift + F1

2025-05-08
- Improved speed when repainting menu icons
- Repaint menu icons to white for Synthetica Alu Oxide skin
- Improved repaint of icons with sub icons
- Added LookAndFeelManager#getRepaintToolBarIconColor
- Added ApplicationAction#repaintIcons(JToolBar) for Synthetica Alu Oxide skin

2025-05-06
- Define default size for bookmark text field editor

2025-05-01
- Improved detection of data directory for Windows

2025-04-16
- Only check once if an update version is available in the About dialog

2025-04-14
- Fixed center dialog based on active window when no relative component is defined

2025-04-09
- Added ActionChooser component
- Show window action to use action window as relative component instead of button
- Use specified relative component instead of window of relative component

2025-04-04
- Upgraded WinGet schema's to version 1.10.0

2025-04-01
- Disable assistive technologies if it generates an error

2025-03-19
- Fixed show IntelliJ Theme field for skin even when a restart is needed

2025-03-10
- Made IOUtils.lockSingleUse application specific

2025-03-08
- Added defineListProperty to SettingPanel

2025-03-06
- Use Pro icons for pro versions
- Provide settings menu also in default location for macOS
- Moved start-up info logs to when the application is started
- Added skin info to the start-up logs
- Try to change font style only when different
- No need to trim() in SmartDuration

2025-03-05
- Added possibility to define the menu icons colors on macOS menu in settings
- Added some 5 pixels margin in ComponentFactory#createHeader
- Removed revalidating the window after display due to sometimes button size problems

2025-03-04
- Do not add About and Exit to the menu on macOS, use the special mac menu
- Actions not executed twice when fired from macOS menu item

2025-03-01
- Do not show rating panel in About if limit is reached
- Show Free for this week instead of Free for today
- Added NodeTree#getSelectionPath
- Added NodeTree#selectPath

2025-02-28
- Added GraphicsUtils#getImageSize(InputStream)
- Improved logging of GraphicsUtils#getImageSize errors

2025-02-26
- Fixed possible NullPointerException when using default AdvancedTableModel

2025-02-17
- Made AdvancedTable to create an AdvancedTableModel in default constructor

2025-02-11
- Made GraphicsUtils#withEffect public

2025-02-10
- Added java.sql module to Java runtime image
- Improved script to create Java runtime image for macOS and Linux
- Added StringUtils#removeDiacritics
- Greatly improved performance of StringUtils#compareWithNumbers
- Improved performance of StringUtils#toList(String, String, boolean)

2025-02-06
- Show rating and more software tab sooner for free software

2025-02-05
- Fixed incorrect key for rating bookmarks for not pro software
- Added More software tab in About window

2025-02-03
- Always remember position and size for not modal windows
- Consider a form valid if form error is an empty list

2025-02-02
- Added JGradientChooser#setTransparencyAllowed
- Show message on how to see hidden menu if menu is hidden at start-up

2025-02-01
- Also anonymize files from logs
- Added IOUtils#lockSingleUse to lock applications restricted to one instance
- Improved logging the application name in the logs
- Log Time to start is now before showing video and tip the day windows
- When the menu is hidden at start-up, register the keystrokes
- Added FontUtils#selectDefaultFont
- Fixed Font Awesome and Material Design should be register as font with FontUtils#fontChooser

2025-01-31
- Added ColorUtils#isTransparent

2025-01-30
- Improved TransferableUtils#monitorClipboard

2025-01-29
- Preserve last modified for license files

2025-01-28
- Added UIUtils#getText(JComponent)
- Added UIUtils#setText(JComponent, String)

2025-01-23
- Added StringUtils#toMap with entry and key value separators arguments

2025-01-19
- Fixed AdvancedTextField use last value not working when history is disabled

2025-01-17
- No rating panel in About window when from store

2025-01-16
- Remove .desktop file from dist after the packaging (no jvm) is done

2025-01-14
- Pass more available memory in shortcuts that start the application

2025-01-10
- Made ratings OS specific

2025-01-07
- Added Node#removeElementIf(condition)
- Added possibility to ask the user to rate the software on websites in About window

2025-01-06
- Added Node#findSubElement(breadcrumbs, equals)
- Added Node#getSubNode(breadcrumbs)
- Added Node#moveSubNode(source, destination)

2025-01-05
- Re-enabled restrictions for some countries

2025-01-04
- Added copying the license files for applets

2025-01-03
- Added EventUtils#onFocusGained
- DesktopUtils#execute will execute the command as line if only 1 String is passed

2025-01-02
- Use application directory name for logging when app name is unknown
- Fixed possible NullPointerException when initializing AppletFrame class
- Fixed "Restore to default settings" button in General settings
- Added Node#transform that allow null values
- Various extra checks in IOUtils#monitorFiles to report less duplicate events

2024-12-18
- Added possibility to pass header arguments to DialogUtils#showInputDialog

2024-12-17
- Added possibility to pass header arguments to DialogUtils#showTextAreaDialog

2024-12-16
- Moved AdvancedTable transfer handler to separate class
- Added TableUtils#createTextTransferable

2024-12-13
- Removed starting Dropbox during release as it's starting explorer if it's already started

2024-12-11
- Fixed sometimes failing sorting for large numbers
- Fixed sometimes move event done without window associate with

2024-12-09
- Updated winget template to version 1.9.0
- Updated macOS version to test with for Homebrew

2024-12-05
- Added possibility to report error in applet mode

2024-12-04
- Added IOUtils#findInPath

2024-12-02
- Save settings after sending anonymous data to avoid sending logs twice

2024-12-01
- Do not try to sort table if sorting key is outside table columns count
- Fixed incorrect list type for rearranging columns of an AdvancedTable
- createActionsWithDropdown is more tolerant if an action is null

2024-11-30
- Added IOImage#saveWindow

2024-11-29
- Added WindowUtils#getLastWindowOpened
- Added SettingsPanel#getIcons
- Do not show welcome videos and tip of the day at the same time on first start-up
- Added internal tool to take screenshots of the different windows, action icons and setting
- Added internal tool to generate help (html + markdown) for the different actions of the application

2024-11-28
- Avoid firing twice the accepted event when closing a window

2024-11-27
- Improved logging error messages when it can be empty
- Fix NPE when exception message is null

2024-11-26
- Pro versions are now free for one week instead of one day
- Moved acceptWindow from DialogUtils to WindowUtils
- Moved acceptOnEnter from DialogUtils to TextComponentUtils

2024-11-24
- Added Bookmark#getRawValue and Bookmark#countAccess

2024-11-23
- Fire an event when a window is close with the accepted value (for not modal windows)
- Possibility to not send errors in anonymous data

2024-11-22
- Added EventUtils.onFocusChanged
- Do not accept window on Enter key if window is invalid

2024-11-21
- Use AbstractMultiResolutionImage instead of BaseMultiResolutionImage when possible
- Added GraphicsUtils#withTransparency

2024-11-20
- Fixed getting the selected node in NodeTree
- Fixed drag 'n drop to update the node in NodeTree
- Added BookmarkEditor component
- No description added to header if description is blank (was null only)
- Added IconUtils#addMark method

2024-11-19
- Added (de)serialization to Bookmark class
- Added created time attribute to Bookmark class
- Fixed sometimes incorrect cleaning up of unused nodes in properties
- Fixed saving empty node with numbers
- Fixed editing of node names in NodeTree

2024-11-18
- Added StringUtils#defaultString

2024-11-12
- Use JMenuBar.getSubElements().length instead of JMenuBar.getMenuCount() as it gives incorrect result with Radiance L&F
- Attempt to improve position after monitor switch

2024-11-11
- Added UnsafePredicate class
- Added CollectionUtils#safeFilter

2024-11-05
- Reposition based on app frame for windows when out of screen
- Small improvements when moving a window to another screen

2024-11-02
- Added StringUtils.replaceInside

2024-11-01
- Better anonymize of the files in home directory

2024-10-30
- Start Dropbox when starting the release process
- Updated url of uptodown website

2024-10-29
- Improved files to include and exclude when creating a back-up of a single application

2024-10-28
- Added java.prefs, java.instrument and jdk.jsobject modules to the included JVM
- Log a warning if no resource bundle is found for a specific name

2024-10-26
- Improved TransferableUtils.combineTransferHandler by implementing more methods

2024-10-23
- Added UnsafeRunnable interface

2024-10-21
- Read application full name for snap for data directory
- Removed UI Scaling option for snap store
- Fixed Sometimes incorrect .desktop file in distribution

2024-10-18
- Start authentication application before creating installer

2024-10-14
- Removed unzipLocation in Chocolatey install script

2024-10-11
- Start authentication application before signing executable

2024-10-08
- Added script to create snap
- Improved detection of snap data directory

2024-10-07
- New way to sign executable for Windows

2024-10-01
- Fixed possible ConcurrentModificationException in LogManager
- Delete the _error.ini during uninstallation on Windows if it exists
- Log text of button when free option is used in license agreement

2024-09-28
- Partial support for null model in ConnectionManager
- Return current logs if no log files yet for all logs
- Added 'fromStore' from the start-up logs
- Do not anonymize file names in logs when logs are sent from user request

2024-09-27
- Support for Snapstore button on homepage for Linux
- Fixed JFontChooser to use the correct type for the font size
- Use MigLayout for JFontChooser for better icon sizes on GTK+ skin
- Fixed sometimes incorrect selected skin in settings

2024-09-26
- Improved anonymization of files before sending logs
- Created privacy policy
- Remove certificate links during creation of snap
- Remove Other separator when installed from store as no settings below

2024-09-25
- Detect Windows store from the application path
- Detection of MacOS store from installed files
- Do not show ProLink when from store
- Hide user name if appearing in the stack trace

2024-09-24
- If Ubuntu snap don't use hidden directory for data directory
- Cache the data directory
- Remove connections (logs & check for updates) when from store
- Hide send logs data and check for updates when from store as always disabled
- Specify trustStore when launching from snap
- Fixed adding icon to Applications for snap

2024-09-23
- Open websites informer and uptodown at the end of the release
- Created macro to open url and copy text to clipboard during release
- Avoid recursion call if failing to write to logs file
- Use the app directory if the data directory cannot be detected or created (e.g. snap strict mode)

2024-09-22
- Copy tgz from website to dropbox for snap release

2024-09-20
- Added desktop file int snap/gui directory for no jvm release
- Support open urls from snap

2024-09-19
- Removed unavailability for some countries due to store policy (and potential bad reviews)
- Added Application#isFromStore
- Avoid checking updates and checking license when installed from store
- Pass the correct arguments for firefox when no desktop API on Linux
- Fixed Java certificates missing in snap

2024-08-03
- Create .desktop file for Linux

2024-08-02
- Create file font if cannot load font from jar file

2024-08-01
- Improved opening URLs when Desktop API is not available
- If xdg-open fails, try with gvfs-open and kde-open
- Improved generated snapcraft.yaml
- Changed default/system look and feel for Linux from Metal to FlatDark (or Nimbus if absent)
- Changed the way special fonts (like FontAwesome) for icons are loaded
- Return a default font if loading font fails instead of throwing an exception
- Improved check on invalid license keys

2024-08-29
- Added Snap Store as potential redistributor in the license
- Removed release-mac-os-x-jarbundler target as no longer used
- Added created a .desktop file in the no Java distribution
- If open fails, try with xdg-open on Linux

2024-08-02
- GradientLabel don't need to clear the background on Windows
- Fire property change event if paint or outline is changed
- Added GradientLabel#duplicate
- Only copy license key from error file if not empty
- Log if online lisence key check failed
- Improved hiding the resize icon of transparent windows when releasing keys

2024-07-19
- Make sure homebrew cask files end with \n instead of \r\n

2024-07-18
- Added IOUtils#copyStreamInParallel

2024-07-16
- Added WindowUtils#getLastWindowClosed

2024-07-15
- Fixed showing history of text fields in Input fields settings panel
- Fixed Clear all history not clearing history in Input fields settings panel
- Save the setting file after Clear all history
- Text fields with bookmarks are also added to the dropdown in Input fields settings panel
- Dropdown sorted alphabetically in Input fields settings panel

2024-07-14
- Improved sorting speed

2024-07-10
- When a license is created, save details in a csv file

2024-07-06
- Load resources from the data directory if present
- Exclude keys ending with .ICON from language table in settings
- Exclude values with numbers from language table in settings
- Added LogManager#showSimpleError
- Added TextComponentUtils#setRegExp to only allow certain regular expression in text field

2024-07-05
- Set maximum window transparency to 90% instead of 100%
- Changed location of VirtualBox for Linux release
- Bug fixes in Cask script
- Added billing possibility on pricing page
- Language table in settings expands to the bottom of the panel
- Resources for which value are 'true' or 'false' shouldn't be in the translation table

2024-07-02
- Added dist-copy-to-dropbox target

2024-07-01
- IOImage#saveImage will try to create the directory for the file if it doesn't exist yet
- Replaced TransferableUtils#getRenderedImageClipboardContent with getBufferedImageClipboardContent
- IOImage#saveImage: Set compression quality to 0.95f when saving as jpg
- Improved rendering of error stack traces in decrypted logs

2024-06-30
- IOImage#saveImage should remove any alpha channel to the image when saving as .bmp or .jpg

2024-06-29
- Added StringUtils#replaceBetween

2024-06-25
- Added script to recreate jlink runtime for Linux and macOS

2024-06-24
- Put link to full version in brew cask as indexed by Google
- Added java.naming to modules for jpackage as needed for https4 in Ant Commander Pro

2024-06-23
- Added Repeat action
- Added ColorUtils#darken
- Added GraphicsUtils#darken
- If button foreground is white, set window icon a bit darker to avoid white on white icon

2024-06-21
- Added TransferableUtils#getRenderedImageClipboardContent

2024-06-05
- Added ColorUtils#diff
- Improved icon rendering in menus and settings for Synthetica BlackStar Look and Feel

2024-06-04
- Added option for YesNoAlwaysNeverQuestion dialog types

2024-06-03
- Added EventUtils#onResizeWidthFinished
- TableFactory rearrange the columns only if the table width has changed

2024-06-01
- Added action text for Japplis and online form links in About window
- Fixed place holder sometimes not deleted on focus in AdvancedTextField

2024-05-31
- AsyncUIUtils#executeWithProgressBar shows progress bar after 300ms instead of 1s
- Use title in thread name

2024-05-30
- Removed Ant Commander Pro free month in May 2024
- Improved unavailability message
- When a setting file is provided in the command line, use it even if it doesn't exist yet

2024-05-29
- Made call to startUpApplication(args) the standard way to start the application

2024-05-25
- Added possibility to pass IntelliJ Theme as start-up parameter
- Created tool to take screenshots of app with IntelliJ themes in directory
- Added Application#startUpApplication
- Moved takeLookAndFeelScreenshots code to ImageIO
- Detect if it should start the application or take screenshots

2024-05-24
- Further improved detecting IntelliJ themes in files

2024-05-21
- Improved detecting IntelliJ themes in zip files
- Do not set mnemonic when creating small button from action
- Removed setting mnemonic from actions for tool bar and status bar
- Removed setting a default mnemonic for all actions
- Improved auto generation of mnemonics for menu to avoid same mnemonics

2024-05-17
- Improved detection of dark LaF

2024-05-15
- Changed github url from master to main in chocolatey release
- Removed checksum in .ps1 file of chocolatey release

2024-05-14
- Fallback to one of the predefined RSyntaxTeaxtArea when no file found

2024-05-13
- Added more colors to theme

2024-05-08
- Added IntelliJTheme class to manage specified JetBrains theme

2024-05-07
- Backup license files when backuping all
- Added possibility to select a Jar file with theme for IntelliJ themes
- Added possibility to select a Zip file with a Jar file with theme for IntelliJ themes

2024-05-04
- Improved icon rendering when on HiDPI for not standard icon size
- Added 'Middle' effect that won't unzoom subicon
- Changed gap with sub icon to max 2 pixels (from 4 pixels)

2024-05-02
- Added IOUtils#monitorFiles

2024-05-01
- Fixed NodeTree#changeNode should update the node field

2024-04-30
- Added FontUtils#resizePercentage

2024-04-29
- Added Graph#setFooter

2024-04-28
- Use double for disc graph values

2024-04-26
- Show extra JFrame always on top when the application is always on top

2024-04-25
- Chocolatey to update version in index.html first
- Added possibility to have 2 level disc graphs
- Disc chart is using float for better precision of the angles

2024-04-24
- Fixed chocolatey application version should contain 3 numbers
- Added GraphScreenshotAction for graph package
- ComponentFactory#createSelectableLabel defines a better component size for IntelliJ LnF

2024-04-23
- Do not try to validate a text field when no validation is provided
- Removed previously created local chocolatey packages
- Fixed chocolatey release
- Removed Windows release test tasks in the build compile target
- Also copy 128x128 icon for chocolatey
- Reset label rendering when rendering node of NodeTree

2024-04-22
- AsyncUIUtils#whenDone to consume value only when not null
- Gradient points for shapes should have a minimum distance of 1
- Graph labels aligned correctly when more than 5

2024-04-21
- IOUtils#copyFile also copies the last modified time
- Added IOUtils#copyDirectory
- Allow Ant Commander Pro free for the month May 2024 in license manager
- UIUtils#showInWindow shouldn't exit when closed in applet mode

2024-04-20
- Added Node#sortNode
- jIconFontAll LazyIcon adapts its size based on the number of glyphs used
- Welcome icons use now LazyIcon
- Removed searching for ".pro" resource keys from always to only for application full name and website
- Cache keys of resources (also not found ones) for faster start-up

2024-04-19
- Added NumberStats
- Added Graph package
- Do no fail when showing window from action with no action event

2024-04-18
- Added IOUtils#getHome

2024-04-17
- Added ColorUtils#stringToColors
- Added possibility to define default action in ComponentFactory#createButtonWithDropdown
- Remove undefined libraries from dropbox dist/lib when creating release

2024-04-16
- Added Node#getSubNode

2024-04-15
- Set Icon as protected value in LazyIcon
- AsyncUIUtils#whenDone will process the value if already done when calling it
- Store alternate color for table in UIDefaults
- Use Table.alternateRowColor for FlatLnF 
- Fixed tables were now showing grid lines for alternate colors in FlatLnF
- Added CollectionUtils#prefixToArray
- Added RendererFactor#createBiColorTableCellRenderer

2024-04-13
- Added Node#findSubNode(breadcrumbs)

2024-04-12
- Made property key for last directory public
- By default put internal frames at the top right corner
- Fixed DialogUtils should use the parent component for relative window when specified

2024-04-10
- Added CollectionUtils#toList to return an ArrayList from an array

2024-04-09
- Added ColorUtils#getInBetween
- AdvancedTable#setCellRenderer should define the default cell renderer for Object.class

2024-04-08
- Added ImagePreview component
- ImagePreview doesn't paint a white background anymore
- When license key is no longer valid, limit processed files to free limit

2024-04-04
- IOUtils#deleteDirectory will retry to delete the directory if failed directly

2024-04-01
- Added Portable as blacklisted setting key for logs

2024-03-29
- Go to pricing page after 'Limit reached' message
- No watermark for images smaller than 10x10
- LinkButton shouldn't be centered by default with FlatLnf

2024-03-27
- Upgraded Bootstrap from 4.3.1 and 4.4.1 to 4.6.2
- Improved consistency in defining stylesheets and JavaScript
- Lazy loading of font css and PhotoSwipe css
- Migrated from lightgallery to PhotoSwipe 5.4.2
- Fixed screenshots out of screen on mobile

2024-03-22
- Added TransferableUtils#combineTransferHandler

2024-03-06
- Improved back-up/restore of Unity apps

2024-03-01
- AdvancedTableModel#addElement will add it at the end if row < 0 (no selection)

2024-02-29
- Added URLUtils#getFullDisplayName(URL)
- Do not send logs for log messages starting with '# '

2024-02-27
- Better filtering which files can drop in TransferableUtils#createFileTransferHandler
- Do not create the Exit action when in applet mode

2024-02-26
- Remember location and size to remember if window was extended
- Save window position and size only when moving and resizing is finished
- Don't apply macOS window shadow if window is full screen (extended & undecorated)
- Added TransferableUtils#createFileTransferHandler
- Added support to define transfer handler in applet
- Added UnsafeConsumer functional interface

2024-02-23
- Do not include pro only libraries in free releases
- Release applet executed before starting OS releases
- Copy only the icons of the current application to the website
- Copy icons from build/images instead of resources directory
- Fixed show chocolatey command on website if winget command is not available

2024-02-22
- Avoid registering icon fonts at initialization of LazyIcon for faster start-up
- Only initialize font when needed for faster start-up
- Improved checking caller from jIconFont-all library
- Various other small improvements in the jIconFont-all library
- Register video actions in ApplicationActions#registerDefaultActions()
- Copy .exe and .dmg to the 'versions' directory after creating the files
- Winget release target to open shell after the web page to get the focus

2024-02-21
- Close input stream of icon fonts

2024-02-20
- Added LookAndFeelManager#isFlatLnf
- Set LinkButton text centered when using Flat LnF
- Release process will ask to upload executable before pushing to chocolatey
- Updated detection of OS in JavaScript

2024-02-19
- All Radiance skins starting with Graphite are dark mode skins
- Added EvenUtils#onMonitorChanged

2024-02-18
- Only offer trial license keys if the current key is valid

2024-02-16
- Center modal dialog windows based on parent even when remember position and size is on

2024-02-15
- Upgraded FlatLaF from 3.2.5 to 3.3
- Do not check license online at start-up unless previously failed
- Check license online in separate thread
- FontUtils#selectFont first check if the name of the font starts with the font family name
- FontUtils#selectFont to load fonts outside EDT for faster start-up
- Added pro text and icons in resources for welcome video actions

2024-02-13
- Do no create sub-menu in Help if only one tutorial video is available
- Show singular sentence if only one tutorial video is available
- Ask to put the video full screen in welcome.html
- In release process copy git command to clipboard when needed
- In release process go to website url when needed
- In release process start command line for winget install
- In release process start git bash for chocolatey git push
- Refresh the entire Settings window when the look and feel changes
- Fire LookAndFeelChanged property if look and feel has changed
- Changing the look and feel (skin) changes the menu bar to the new skin
- Changing the look and feel (skin) changes the tool bar to the new skin
- Added Synthetica Black Eye as dark mode look and feel
- If defined look and feel not available at start-up, use default
- Removed double defined FlatIntelliJ.Theme.json
- Improved showing icon for help videos longer than 2 minutes

2024-02-12
- Migrated winget templates to schema version 1.6.0
- Made LogManager#getStackTrace public and accept Throwable

2024-02-09
- Added JFileChooserUtils#showOpenDialog

2024-02-08
- Migrated back to Java 17 for jpackage due to JDK-8325203
- Fixed missing some license files for Radiance look and feel

2024-02-05
- Migrated from Java 17 to Java 21 for jpackage on Windows and Linux

2024-02-03
- Only show update dialog if main window is active
- Fixed error in checking license expiry date

2024-01-31
- Also resize dialogs when switching screen to keep the same size
- Fixed changing transparency in settings not always applied

2024-01-30
- Added tooltip on how to change the transparency of the main window in settings
- Added tooltip to prefer UI Scaling on Zoom Font buttons in main window settings
- Indicate in the license agreement license key text field that the license has expired
- Added tooltip that the license has expired in the license settings
- If DesktopUtils#open fails try with OS calls on Windows and macOS.

2024-01-26
- About dialog always showing in the middle of the application
- New window to show link to video demos when available at first start-up
- Video demos added to help menu if available
- Possibility to have macOS specific urls for browser actions
- Fixed shared urls when no canonical urls is defined

2024-01-23
- Improved sort to put same text according to lowercase to uppercase

2024-01-14
- No need to show the license after winget install
- Added RendererFactory#createFormatterCellDecorator

2024-01-12
- Renamed AsyncAction#State to AsyncAction#ActionState to avoid conflict with SwingWorker

2024-01-07
- Added save settings when system shutdowns.

2024-01-06
- If part of the title bar is still visible do not recenter the application

2024-01-05
- IOUtils#toFileName should trim the result

2024-01-04
- Do not release beta versions to chocolatey
- Unpack also libraries from back-up files
- Fixed copying the app specific changes file to the website
- Added possibility to pass a default file name in JFileChooserUtils

2024-01-03
- Remember frames size when moving to another screen for all JFrame
- Log app name consistent between error and info
- Log which license agreement button was clicked
- Do not re-ask for license agreement after Windows installer

2023-12-29
- Due to the killing of thousands of children, destruction of hospitals and starvation of people in Gaza,
  applied more restrictions for Israel on free versions.

2023-12-16
- Allow redistribution for commercial software
- Added Chocolatey, Mac App Store and Microsoft Store as authorized redistributors

2023-12-12
- Added GraphicUtils#getMax for Dimension and Rectangle2D
- Fixed sometimes not all components shown when window displayed

2023-12-10
- Simplify getParam to do one look-up instead of two
- Added VectorProperties#put to be consistent with setProperty

2023-12-08
- StringUtils#prefixNotEmpty and StringUtils#appendNotEmpty return empty String is text is null

2023-12-06
- Remove old executable in build directory when creating a new release

2023-12-04
- Fixed buttons sometimes not showing full text
- ParamComponentFactory#getComboBox will use the setting key as prefix for the text

2023-12-02
- Disabled the close window button for the license agreement window
- Log when limit is reached in processed files
- Added template for Scoop
- Added IOUtils#getTempDirectory
- Added IOUtils#createTempFile

2023-11-29
- Entering password in release target uses a password field

2023-11-21
- Added filtering for AdvancedList

2023-11-10
- CollectionUtils#safeConvert should check for null before the mapper

2023-11-08
- Improved About dialog with link text to online form
- Added the possibility to have perpetual license key based on major version

2023-11-06
- Fixed winget description
- Wait a bit more for Dropbox sync
- Fixed chocolatey to use hyphen full name in push and packageSourceUrl
- Removed release-all target (never used)
- Fail if a release with this version already exists before releasing

2023-11-04
- Added comment on how to remove a winget release

2023-11-02
- Show license panel in settings if the license key is invalid
- Also update attribution text after entering license key in license settings
- Added Chocolatey command to the download/install possibility
- Select all text when clicking on brew/chocolatey/winget command
- Changed call to action to also download for pro version

2023-10-30
- Added Moniker, Description, Icons and Author to winget manifest
- Made pro version of software available in Russia
- Upgraded FlatLaF from 3.1.1 to 3.2.5
- Removed icon in License agreement window
- Make the license agreement window to use the application icon for Windows
- Fixed full screen frame shouldn't have drop shadow on MacOS
- Default Error window should not remember previous size

2023-10-29
- Fixed possible ConcurentModificationException when updating Node with properties
- Apple notarization is now using notarytool
- Wait for Apple for approve the application before stappling it and copy to Dropbox
- Apple build script: wait 10 seconds (Dropbox sync) and say "done" at the end

2023-10-28
- Added EventUtils#onSingleClick
- Fixed EventUtils#onClick had the same implementation as EventUtils#onDoubleClick
- EventUtils#onDoubleClick is only for main button (button 1)
- AdvancedList should not select last item when clicked outside the list
- Improved showing shortcuts modifiers for MacOS in websites
- Do not show the dialogue saying you need to accept the license when closing the window (only on Decline)

2023-10-27
- Fixed missing hyphen.full.name filter
- Added possibility to show MacOS screenshot on Mac computers
- Included os.version to the start-up logs
- Fixed incorrect background for multiline labels on MacOS

2023-10-26
- Do not log when history of an AdvancedTextField is modified
- Various improvements in generated Chocolatey .nuspec file

2023-10-25
- Improved template for help pages
- Improved template for welcome pages

2023-10-24
- Avoid StackOverflowError in GradientLabel#getSize
- EventUtils#onPopupTrigger won't trigger event if shift or alt key is pressed at the same time

2023-10-23
- Improved Help template

2023-10-22
- TextComponentUtils#link will also update text when Enter key is typed for text fields

2023-10-21
- If transparency is set, do not decorate the window
- Added TextComponentUtils#addHiddenTypeListeners

2023-10-18
- Fixed winget command line to install package
- Fixed loading pad file should use hyphen name
- Added commit chocolatey package source url to github
- Fixed program version in PAD files sometimes not updated

2023-10-16
- Updated Chocolatey to push package to https://push.chocolatey.org/
- Updated Chocolatey template to include limitation for shareware
- Added release-directories target

2023-10-14
- Enable Chocolatey packaging

2023-10-12
- Show splash screen if not displayed by jpackage

2023-10-07
- Indicate where to enter the license key when approaching limit
- Show license settings when limit is reached
- Do not change main window size when moving it to another screen

2023-10-06
- Fixed always on top disabled when showing a dialogue window
- Added RefreshableListModel#toList

2023-10-02
- Added IOImage class to save application metadata with images
- Added GraphicsUtils#getImageSize(URL)

2023-09-28
- Undecorated windows have a minimum size of 16 x 16

2023-09-27
- Check if window is displayable before changing undecorated
- Apply always on top after transparency and undecorated
- Added RefreshableListModel#getFirstSelectedRow
- ParamComponentFactory#getNumberComponent will update the number if the parameter is changed
- Added software name and version in start-up error details

2023-09-20
- onStop argument for AsyncUIUtils.executeWithProgressBar can be null
- Added EventUtils#OnClick

2023-09-15
- Do not show popup if unable to access server for license check

2023-09-06
- Added possibility to pass a time-out to AsyncUIUtils#waitFor

2023-09-04
- Added navigating history in advanced text field using ctrl down/up

2023-09-03
- Fixed 'Skip key for today' not showing on Mac OS X

2023-09-02
- Added possibility to force sending logs
- Fixed exceptions logged twice in logs
- Added 'Send log data now' button in connection settings

2023-09-01
- Added name to JFontChooser component
- Set name to panel for AdvancedList#createListPanel
- Fixed incorrect model type for Settings input fields lists

2023-08-31
- Added possibility to exclude directories from GenericFileFilter

2023-08-30
- Loading settings reloads the UI
- Typing enter in settings for setting file loads the setting file
- Changing setting file updates main frame title
- Fixed Application#refreshUI to refresh the UI correctly
- Fixed setting file setting to show the currently used setting file

2023-08-15
- Fixed signing executable files
- Show uninstall feedback form only for last uninstall
- Upgraded winget yaml to 1.5.0 specifications
- Fixed setting application type in winget

2023-08-14
- Added possibility to create website for application variant

2023-08-12
- Added ApplicationActions#createMinimalMenuBar
- Added GraphicsUtils

2023-08-08
- Added possibility to define specific mac placeholder and tooltip for advanced text fields

2023-08-01
- Fixed meta download for Linux
- Removed logging of using default settings
- Use first model app name for logging app name instead of settings directory name
- Log if the portable version is used or not at start-up

2023-07-31
- Improved anchor links to show the section title

2023-07-23
- Improve possible race condition when showing progress internal frame

2023-07-22
- Added link to send feedback form in About dialog

2023-07-21
- Removed FeedbackPanel in settings as not used

2023-07-07
- Use the application icon for dialogs if none are defined

2023-07-06
- Fixed do not regenerate JapplisAppFramework.jar when no file has changed

2023-07-05
- Define correct application type for winget based on pad file

2023-07-03
- IOUtils#monitorFile now returns an IOUtils#AutoReload class
- Fixed IOUtils#monitorFile to compare the correct file has changed

2023-07-02
- Control + Enter can be used to validate a dialog with text area (like OK button)

2023-07-01
- Screenshot image is now hyphen-name-screenshot.png

2023-06-30
- Windows installer to use lzma2 compression
- Added possibility to install when not admin on Windows
- Recreate executable if template_build.iss is modified
- Upgraded to Inno Setup 6.2.2
- Allow Scope: machine and Scope: user for winget

2023-06-29
- Improved pricing page
- Less output when executing Proguard

2023-06-26
- Added possibility to release for winget under a subdirectory of another project

2023-06-24
- Added NodeTree#reload

2023-06-23
- For Mac OS X, show toggle buttons in 3D when in toolbar due to bug
- Save settings before refreshing the UI
- Do not set column size of setting field if already set in resources
- PropertyAction listens to property changes for selection

2023-06-21
- Re-added java.scripting module as used

2023-06-17
- Default hyphen.full.name to hyphen.name if set in variant

2023-06-16
- Use move instead of copy for binaries in Dropbox to website

2023-06-15
- Winget validate should fail the script if execution fails
- Removed AdvanceTable#createDefaultComparator as never used
- Added shortcut in toolbar buttons tooltip

2023-06-14
- StringUtils#flat returns empty string if input is null
- Improve gitbash command for release

2023-06-09
- Copy the changes-${hyphen.name}.txt file to website if it exists

2023-06-08
- Fixed StringUtils#toArray shouldn't convert empty strings to integers
- Fixed double "download" attribute in download links
- Fixed rename app target should rename hyphen name files instead of lowercase name files

2023-06-06
- Increased maximum memory from 25% (default) to 70% of computer memory
- Improved automatization of winget release
- Improved showing correct directory for gitbash

2023-06-01
- Fixed hyphen.full.name property not always set correctly

2023-05-30
- Statistics are sent for free licenses
- Fixed StringUtils#byteToUnicode can contains \utext and should not throw an NumberFormatException

2023-05-13
- Fixed linking to the correct pricing page for the pro version

2023-05-12
- Fixed possible NPE when validating the license key
- Improved centering text for time in GradientLabel
- Added input handler in case git push failed
- A few fixes for winget release
- Prompt for creating homebrew pull request
- Added code-analysis target to analyse code with PMD
- Fixed SmartDurationFormatter substracting unnecessary values
- Cosmetic improvements of the code based on PMD feedback

2023-05-09
- Show winget command in homepage is on Windows
- Updated PAD version for Mac and Linux

2023-05-08
- Various fixes in creating homebrew script
- Added Homebrew button to template homepage
- Upgraded winget manifests to 1.4.0 specs
- Various bug fixes in the template pad files

2023-05-07
- Improve git tasks
- Define a default hyphen.full.name value for variants

2023-05-05
- Upgraded from Java 17.0.4.1 to Java 17.0.7+7 on Windows, Mac and Linux
- Removed java.scripting module from runtime as no longer used
- Small fix for Java location on Mac
- Fixed logging wrong branch name for git create-branch macro

2023-05-04
- Slightly improved StringUtils#flat performance

2023-04-30
- Fixed set correct version in pad file when containing letters
 
2023-04-29
- Update the applet-for-applet-runner.html if the library has changed
- Fixed incorrect codebase applet-for-applet-runner.html for Windows release
- Excluded Synthetica library to be copied for applets
- ComponentFactory#createSmallButton set the background transparent as some look and feels don't respect opacity
- Added Flat macOS Light and Flat macOS Dark look and feels
- Upgraded FlatLaF from 2.6 to version 3.1.1

2023-04-28
- Fixed AsyncUIUtils#processInBackground should pass the cause exception when receiving an ExcecutionException

2023-04-26
- Added preservelastmodified to most of the <copy> task of the build & release files

2023-04-25
- Added DialogUtils#acceptWindow

2023-04-22
- Added AsyncUIUtils#executeWithProgressBar
- AdvancedTable do not return more visible elements that the table model contains

2023-04-19
- Be more tolerant for trailing spaces in the setting file for actions

2023-04-18
- Improved template for online applet HTML file
- Fixed constructor of the application should be public to work as applet
- Fixed store property values that have multiple lines in the settings

2023-04-15
- Use HTTP 1.1 for checking the license (to avoid GOAWAY received errors)

2023-04-12
- Use root pane instead of JFrame as parent component for JFileChooser
- DialogUtils uses the root pane as default parent component instead of the main Frame

2023-04-05
- Possibility to turn off release for winget, chocolatey and brew-cask in properties

2023-04-04
- Possibility to show dropdown menu above button (PopupMenu.displayAbove client property)

2023-03-22
- Added TextComponentUtils#createTextAreaEditor

2023-03-17
- UIUtils#showInWindow should pack before setting the location

2023-03-16
- Use <applet> instead of deployJava.js for applet
- Added possibilities to show all file for open/save dialog

2023-03-14
- Added CollectionUtils#toList(Iterable)

2023-03-13
- Added possibility to have breadcrumbs to the NodeTree
- Added StringUtils#toInt

2023-03-12
- Removed TipsOfTheDay.properties file

2023-03-05
- Improved pricing details with more free options

2023-03-04
- Uninstall feedback form also include the name of the software

2023-02-20
- Detect main frame for exit based on MainFrame class instead of empty property
- Log if a frame/dialog is shown that doesn't have a property
- Added StringUtils#prefixNotEmpty
- Fixed ComponentFactory#createSelectableLabel sometimes hides the first character

2023-02-19
- Fixed same log than previous one shouldn't be logged
- Fixed recording column width after resizing from the header with the mouse

2023-02-15
- Removed icon for DialogUtils#showOkCancelDialog 

2023-02-13
- Fixed incorrect computation to check if window is out of screen
- EventUtils#addShortcut method won't return Action object anymore
- Added EventUtils#addShortcuts(Model, JComponent, int, String...)

2023-02-12
- Enabled Winget per default for stable releases

2023-02-11
- Re-added java.scripting module as used for lua
- Do not save the window size if width or height is 0 or 1
- Added GenericFileFilter#fileWithExtension
- Added support for control(Windows)/Command(Mac) shortcuts using "ctrl" in value

2023-02-10
- Various fixes in pro template website
- Save visible time for undecorated main frame
- Do not take shadow of window when taking a screenshot
- Fixed application not always exiting when license was shown
- Show using limited free license in license panel when used

2023-02-09
- Added LinkButton#setAlwaysUnderlined method
- Fixed not remembering window size

2023-02-08
- DialogUtils#showComboBoxDialog can use resources for choice values

2023-02-03
- Fixed when the limit of processed files is reached shows 0 instead of negative number

2023-02-01
- Fixed possibility to use free application when no/invalid license key
- Possibility to have multiple galleries on same webpage
- Changed section titles from <h1> to <h2>

2023-01-27
- Added button to show application framework changes in About dialog

2023-01-26
- Added possibility to pass a parent component for DialogUtils methods
- Possibility to pass a parent component instead of parent window for new windows

2023-01-25
- Improved location of showing hidden menu using Shift + Alt + Context Menu
- Added possibility to define parent component for DialogUtils#showMessage
- If build.properties is modified, remove jar files of the dist directory

2023-01-24
- Added UIUtils#IS_WINDOWS
- Added Application#defineStartUpProperties
- New resource property Application.UiScaleAllowed
- Never allow to hide menu for Mac OS X
- Copying libraries preserves the last modified date
- Shift + Alt + Context Menu key will show the menu bar when hidden
- Added MenuUtils#isShowMenuEvent
- Added MenuUtils#showPopupMenu
- Fixed shortcuts in menu not working on Mac OS X
- Fixed default focus component not always set correctly
- Added possibility to hide title bar for Mac OS X (Main Window Settings)

2023-01-23
- Fixed renaming files in website directory when renaming project
- Fixed renaming directories when renaming project
- Resizing table will resize columns once
- Specified in license agreement that VM is considered as a computer
- Added EventUtils#addShortcut(Component, Action)
- Added MenuUtils#registerShortcuts
- If menu is hidden shortcut still works
- If the window is transparent, make tool bar buttons also transparent
- Support dynamic list of values for ParamComponentFactory#getComboBox

2023-01-22
- Do not recreate Windows installer if not file has changed
- Do not update shell script for Linux & Mac OS X if no property has changed
- If signing a file fails on Windows the file is deleted
- Fixed license agreement window not appearing on top of other windows
- Added RefreshableListModel#stream
- Removed transparent title bar on Mac OS X as overlapping with tool bar & ui

2023-01-21
- Translate Ctrl, Shift, Alt to the correct keyboard sign for Mac OS X
- Added StringUtils#forMac
- Changed start version from 0.8 to 1.0-beta as Apple doesn't support versions starting with 0.
- Release target copies the distribution files to Dropbox before releasing for Windows

2023-01-20
- Fixed inconsistency in window transparency type (float, String, integer)
- Added DateUtils#toFormattedDateTime
- Improved scrolling to specific rows in AdvancedTable
- Improved download buttons

2023-01-19
- Improved watermark

2023-01-18
- Fixed some window properties were using Windows. instead of Window. prefix
- Specified that the license key is free during the beta phase

2023-01-17
- Added LicenseManager#applyWatermark
- Changed message when limit is reached to show once per application start-up
- Changed message when limit is reached to indicate watermark is applied

2023-01-16
- Fixed rare problem of inconsistency when sorting with numbers
- Added SettingPanel#getLabel that can also handle tooltips
- Use the pro license by default is app.pro is set to true

2023-01-14
- Added FontUtils#encode to encode a font (See Font#decode)
- Added JFontChooser component
- If GradientLabel is focusable, clicking on it will acquire the focus

2023-01-13
- Changed EventUtils#removeShortCut to EventUtils#removeShortcuts to remove multiple actions shortcut
- Changed shortCut to shortcut in EventUtils
- Added Node#getSubElements
- Added ColorUtils#createColorChooserButton and ColorUtils#createGradientChooserButton
- Added WindowUtils#copyProperties and applied from main ui to content pane
- Changed NodeTree#createManagementButtons to NodeTree#addManagementButtons

2023-01-12
- Changed EventUtils#removeKeyStroke to EventUtils#removeKeyStrokes and remove multiple keys
- If Flat IntelliJ look and feel is selected -> unlock the possibility to provide an IntelliJ Theme
- Use chosen from model IntelliJ for start-up look and feel if specified

2023-01-10
- Copy main ui title to content pane and use it by default in main frame for title

2023-01-09
- Added TableUtils#getColumnPreferredWidth
- Cut/copy/paste for advanced list is done using standard control key
- Added EventUtils#removeShortCut
- Added shift alt '+' & shift alt '-' to change transparency when undecorated

2023-01-07
- Added DialogUtils#showComboBoxDialog

2023-01-05
- Added og:url and og:type meta properties to website
- Removed pre-init & post-release targets if empty

2023-01-04
- Improved quality of taking a screenshot of a component

2023-01-03
- Improved support for transparent windows on Mac OS X
- WindowUtils#showDialog replace the content pane with provided component
- GradientLabel shouldn't clear background on Mac OS X
- Set correct application name for Mac OS X Menu

2023-01-02
- Added StringUtils#isBlank
- DialogUtils#showInputDialog returns null if cancelled
- TextField.UseLastValue disabled when text field is param
- Fixed Window.RememberPopupsPositionAndSize shouldn't apply to the main frame
- Added ColorUtils#translateGradient
- Use the content pane to center popups in applet mode

2023-01-01
- Modified release-all target to use app.variant instead of app.pro
- Fixed Mac release: go to the Dmg directory before stapling the file

2022-12-31
- Removed java.scripting module as no software is using it
- Fixed keep the window undecorated if defined as transparent
- EventUtils#onMoveFinished should listen to the window moving and not the component
- Workaround: Dragging an undecorated window to another screen shouldn't resize it
- Slightly improved visibility of the resize undecorated frame widget

2022-12-30
- Improved creating square buttons for IconFontSwing#decorateButton
- Default size for IconFontSwing#decorateButton icons is 16
- Use String[]::new to convert collections to array instead of new String[0]
- Added support for error message type in DialogUtils#showMessage
- Improved centering text in GradientLabel

2022-12-17
- Show message on how to restore menu bar when hiding it

2022-12-16
- Improved rename project
- Catch possible error when getting the clipboard data flavor
- AdvancedTextField use default value if param value is empty

2022-12-15
- Improved generating website for application variants
- Fixed start-up error if FlatLaf not in classpath

2022-12-14
- Fixed showing warning limit reached at the incorrect moment
- Made font chooser maximum size to preferred size
- Fixed handling of license file for application variants

2022-12-13
- Create winget, chocolatey or brew-cask release only when specified
- Added VAqua look and feel support if in classpath
- Added Flat Darcula and Flat IntelliJ look and feels
- Added support for Intellij themes json files with "FlatIntelliJ.Theme.json" property
- AdvancedTextField#setText only executed if the text is different than the current one
- Added GradientLabel#setImageFit (default to true) to zoom the image based on label size or not
- Do not redirect to website when stopping the applet with Applet Runner (Pro)

2022-12-12
- Added target to release software for winget
- Improved releasing process for brew-cask
- Improved releasing process for Chocolatey
- Improved detection of Dark mode for MacOS X
- Enabled transparent title bar for MacOS X
- Enabled full content window for MacOS X

2022-12-11
- Added TextComponentUtils#createPopupMenu(JTextComponent, Node<String>)
- Upgraded Radiance look and feels from 2.5.1 [Coral/Substance] to 6.5.0. (3 new skins)
- Changing the look and feel recreates the application UI
- Sorting text to put '.' before other characters

2022-12-10
- Upgraded Flat Look and Feel from 0.33 to 2.6.
- Fixed possible NullPointerException when changing skin.

2022-12-09
- Renamed WindowUtils#showJDialog to WindowUtils#showDialog and return a boolean
- Added possible Outline effect to the icons from jIconFont
- Added jIconFont to support bold and italic style
- Fixed some build warnings for jIconFont
- Several improvements for licenses with a processed file limit

2022-12-08
- Added DateUtils class

2022-12-07
- Added possibility to skip entering the license key the first day of the installation
- Added scroll bar if the setting panel doesn't fit in the window
- Fixed default settings not loaded in some cases
- Added DialogUtils#showTextAreaDialog to support tooltip and default value
- Fixed StringUtils#escape to not escape correctly for some separators

2022-12-06
- Improved vertical positioning of text in GradientLabel
- Added parent component parameter to DialogUtils#showOkCancelDialog
- Added StringUtils#equalsAny
- Added StringUtils#startsWithAny
- Added StringUtils#endsWithAny
- Fixed TextComponentUtils#addUndoRedoCapability to undo/redo only when the focus is on the component
- Fixed possible NullPointerException when showing a window
- URLUtils#isFullUrl is no longer case sensitive

2022-12-05
- Added possibility to set an outline (size & color/gradient) for the GradientLabel text
- Fixed possible incorrect applet classpath or main class in the applet HTML file

2022-12-04
- Improved support for fixed size columns in AdvancedTable
- Added DialogUtils#showCheckboxDialog

2022-12-03
- Fixed sorting string sometimes not consistent
- Added StringUtils#getDiffStart(String, String)

2022-12-02
- Reset look and feel cached value of JIconFont when look and feel changes
- Do not log parameter changed more than once in a row
- Improved resize window after maximized and exit
- Fixed crash at start-up deleted the settings file instead of renaming it
- If it had crashed at start-up, the license key is retrieved from the error settings
- Start maximized from the correct screen
- Added EventUtils#onSelect(JComboBox<T>, Consumer<T>)
- Fixed when changing skin, old skin was first applied
- Ask for a restart when switching a Substance skin to another not Substance skin

2022-12-01
- Logs use ISO Date/Time instead of epoch millis

2022-11-30
- Improved square buttons for Nimbus and Substance look and feels (Fixed icon not showing)

2022-11-29
- Ignore painting gradient in JGradientTextField if gradient is invalid

2022-11-28
- Fixed incorrect default hyphen name for pro version

2022-11-27
- Added automated Ant target to rename a project

2022-11-26
- Do not show license at start-up for Mac OS X as shown during installation
- Added hyphen.full.name build properties
- Improved default properties for pro version

2022-11-25
- Create a .dmg instead of a .tgz for Mac OS X
- Sign and notarize applications for Mac OS X
- Made a singleton of LicenseManager class

2022-11-23
- Added generate Chocolatey package when releasing
- Offer possibility to run free version for pro not processed limited software
- Added --about-url with website for jpackage

2022-11-18
- Improved skipping some checks and settings for some applications based on resources properties

2022-11-07
- Improved icons to look more like IntelliJ IDEA button when running with Darcula LnF

2022-11-06
- Added StringUtils#stringComparator()

2022-11-05
- Added application directory to Windows portable version
- Made Show license window to use resources to be later multilingual
- Added possibility to use free version of the software when the license key has expired or is missing
- Improved speed of displaying Settings window
- Improved names of the look and feels
- When changing look and feel icon colors will update their color if needed
- Added StringUtils#compareWithNumbers(String,String) and used it in StringUtils#compareStrings

2022-11-04
- Added 717 icons to Google Material Design
- Added StringUtils#stringBetween(String, int, String)

2022-11-01
- Added ApplicationActions#activateAcceleratorForActions(String...) method
- Support for SeaGlass look and feel if in the classpath

2022-10-31
- Added possibility to zoom in and out the application by changing font sizes

2022-10-30
- Default look and feel is native look and feel
- Changed GradientLabel to show text in the center by default
- Changed GradientLabel to use value specified in getHorizontalTextPosition() and getVerticalTextPosition()

2022-10-28
- Added UIUtils#zoom

2022-10-27
- Made the no-jvm release of the software by default portable
- Improved back-up of some projects

2022-10-26
- Added support for premium registration
- Created SitemapGenerator for projects
- Fixed choosing color button icon not always visible
- Fixed size of icon more consistent when using IconFontSwing#buildButton(IcondCode)
- Improved display of numbers in GradientLabel
- Improved Javadoc of some methods

2022-10-24
- Simplified license types

2022-10-21
- Added possibility to define a default for gradient settings
- Renamed UIUtils#showInFrame to UIUtils#showInWindow
- Possibility to define UI scaling in settings

2022-10-20
- Added TransferableUtils#copyToClipboard(Image, ClipboardOwner)

2022-10-19
- Improved usage of JavaScript on pricing.html

2022-10-16
- Fixed copying template website missing files

2022-10-15
- Fixed Renaming Template.properties when creating new project

2022-10-14
- Added possibility to define default value in ParamComponentFactory#getYesNoComponent(Model, String)

2022-10-13
- Added StringUtils.getLine(String, int)
- Added CharacterChooser in jIconFontAll
- Added FontAwesome and Material Icons to possible fonts in drop down

2022-10-11
- Added StringUtils.containsAny(String, String...)

2022-10-10
- Status bar are by default not floatable

2022-10-06
- Updated Java from 17.0.1 to 17.0.4.1 for Windows

2022-10-01
- Improved incremental back-up to exclude more unneeded files

2022-09-27
- Added UIUtils#toImage(Icon)

2022-09-23
- Added TransferableUtils#monitorClipboard

2022-09-22
- External application start-up parameters don't start with "Application." anymore.
- Added button in license settings to get a (new) license key

2022-09-21
- Added WindowUtils#closeWindow(Component)
- Support for Synthetica look and feel for scaling ui

2022-09-18
- Added support for Mac OS X specific keystroke (shortcuts) for actions
- Added AdvancedTable#select method

2022-09-16
- Added Application.LookAndFeel, LookAndFeel and Application.UiScale to allowed parameters
- Added Application#takeLookAndFeelScreenshots that take screenshots of the application with the different look and feels
- Save main frame position and size before exiting app instead on each move

2022-09-15
- Added IOUtils#toFileName that escape invalid file name characters
- Fixed URLUtils#getDisplayName should remove extension when protocol is text:/

2022-09-14
- Fixed StringUtils#toList incorrect handling of empty string

2022-09-13
- Improved template website, more consistent in JavaScript functions
- Show "Select" button with file chooser when selecting a directory
- Added static method Application#defineUiScale to set ui scale as launch argument "-Application.UiScale=x.y"

2022-09-12
- Added documentation on how to scale the user interface

2022-09-11
- Do not paint border for buttons in toolbar for IntelliJ/JetBrains look and feel

2022-09-09
- Added AdvancedTextField#setRegularExpression(boolean) for text fields that are regular expressions

2022-09-08
- jIconFontAll Use preferred size height for square buttons or text size width if larger than preferred size height
- Added FontUtils#makeSize

2022-09-06
- Remove Window.Maximized property instead of setting it to false
- Fixed not detecting the main frame when action was triggered from the menu

2022-09-05
- Changed IconFontSwing#decorateButton to make buttons more square and equal

2022-09-02
- Always remember position and size for the main window

2022-09-01
- Support for null text in GradientLabel
- Improved computation of preferred size for GradientLabel
- Use true and false for Window.Maximized property (instead of -1 and 0)
- Fixed incorrect flag and description in uninstall script for Windows

2022-08-31
- Show when perpetual license cannot upgrade in About dialog
- Improved checking the license
- Improve loading license file in build system

2022-08-30
- Added more security properties at start-up
- Added more license types (perpetual license, free for x processed files)
- Application is free for at least a day (except for free for x processed files licenses)
- Improved checking the license
- Improved the messaging system

2022-08-29
- Cleaned-up unused code

2022-08-28
- Added LogManager#showError(Exception)
- Simplify how the application window is displayed

2022-08-27
- Added WindowUtils#showJDialog method(Model, JComponent) which should replace other show methods
- Added WindowUtils#showDialog method(DefaultAction, JComponent)

2022-08-26
- Do not set preferred size for ThumbnailsList as it messes up the scroll bars
- Use font family name to find font in FontUtils#selectFont
- Fixed do not dispose Graphics2D in GradientLabel#paintComponent as it may need to paint the border with it
- Use setForeground and setBackground in GradientLabel when the Paint object is of type Color

2022-08-15
- Allow shortcuts shift+F12 (always on top) and control+shift+F12 (undecorated) for JDialog

2022-08-14
- Uninstall sends you to a feedback form

2022-08-12
- Added possibility to extends properties (Application.Extends)
- Use default JLabel font as dimension reference for FontUtils#FontListCellRenderer

2022-08-11
- Default if AsyncAction fails is to log the error
- Changed AsyncAction to use generics
- Added constructor in ShowPopUpNodeAction that accepts Node<Action>
- Fixed do not reset the stored ActionEvent in DefaultAction when it's an AsyncAction

2022-08-10
- Added UIUtils#showInFrame

2022-08-08
- Fixed decoding URL using UTF-8
- In AdvancedList, when single selection and line gets deleted, selection moves to next line
- Fixed listening to clipboard in AdvancedList should fire a single event

2022-08-05
- Removed custom choose panel to show in Windows installer

2022-08-04
- For gradient colors, use first color if no dimension is defined
- Added new panel property WindowUtils.MODAL (boolean) for dialog, default true

2022-08-03
- In ParamComponentFactory try to find label with sub-property is not found
- Fixed FontUtils#getFontSize to sometime returning font size less than 1.0 (and causing resize problems)
- ParamComponentFactory#getChooseFilePanel and ParamComponentFactory#getInputComponent by default changes the settingKey

2022-08-02
- Removed extra JPanel in content pane when no toolbar (resize bug with Japplis Watch)
- ColorUtils gradient methods use now NO_CYCLE repeat method
- Changed project source level to Java 11
- Use try () construction where possible.

2022-08-01
- Made logs synchronized to avoid concurrency exceptions
- Fixed possible ConcurrentModificationException when saving logs
- Added LogManager#showError
- Added GradientLabel component
- Added JGradientChooser component
- Added JGradientTextField component
- Added ColorUtils#getRadialGradient with defined center

2022-07-30
- Save settings after closing the settings window

2022-07-29
- Added PopupMenu component

2022-07-28
- Fixed SmartDurationFormatter#format to sometimes returning an extra year, month or day
- Added NodeTree#createFilterField
- NodeTree#getValue(TreePath) is now public
- Set Cancel button in WindowUtils as not default capable
- Make buttons square in toolbar when using JetBrains Intellij Darcula look and feel
- Use BasicButtonUI for LinkButton when using JetBrains Intellij Darcula look and feel
- Improved dropdown button size when using JetBrains Intellij Darcula look and feel

2022-07-27
- Added StringUtils#removeAccents
- Added StringUtils#toCamelCase with option to keep separator
- Added ParamComponentFactory#getNumberComponent
- Added EventUtils#onValueChanged

2022-07-26
- Added CollectionUtils#createWeakCache
- Back-up librairies with license when incremental back-up
- Improved functional keys in tip of the day for mac os X

2022-07-23
- About dialog first check changes-<app name>.txt before using changes.txt

2022-07-21
- Added com.bulenkov.darcula.DarculaLaf as possible look and feel
- Added com.github.weisj.darklaf.DarkLaf as possible look and feel
- Added in AdvancedTable: Insert key will change the selection of the current row and move to the next row

2022-07-20
- Replaced MethodAction with QuickAction

2022-07-19
- Fixed StringUtils#toList and StringUtils#toVector when separator length is > 1
- Changed StringUtils#toArray to use StringUtils#toList instead of StringUtils#toVector
- Removed StringUtils#toStringArray

2022-07-18
- New property Application.HideAtStartUp to not show the interface at start-up

2022-07-17
- Simplified create new project script
- Only use data directory as default dir for ini extension in ParamComponentFactory#getChooseFilePanel
- Fixed AdvancedTable use getColumnCount() instead of getModel().getColumnCount() for some cases
- Not logging when window size or position changed
- Added EventUtils#registerKeyStrokes method

2022-07-16
- Added ParamComponentFactory#getYesNoComponent(model, settingKey)
- Added IOUtils#monitorFile

2022-07-15
- Register the accelerators when action are added in toolbar

2022-07-12
- TransferableUtils#copyToClipboard(Component) now returns the BufferedImage of the component
- WindowUtils#applyWindowProperties apply undecorated and transparency before setting size (.pack())
- WindowUtils#applyWindowProperties apply transparent and transparency before undecorated property
- Added TransferableUtils#copyToClipboard(Component, keepTransparency)
- Fixed incorrect background color for image in TransferableUtils#copyToClipboard(Component)
- WindowUtils apply transparent and transparency before undecorated property
- Added WindowUtils#getContentPane(Component)

2022-07-11
- FontUtils#getFontSize returns default font size when text is empty
- Added EventUtils#onMoveFinished
- Added UIUtils#getFitDimension
- Added NodeTree#getSelectedNodeAndValues
- Added null checks for StringUtils#toString(Dimension/Point)
- Added Node#replaceElement(Predicate<T>, T)

2022-07-10
- Change 'Alt' to 'option' on Mac OS X in tip of the day
- Added AdvancedTable#setAllowEditColumns
- Added table property AllowEditColumns
- Added support for application variant to build other software from same projects

2022-07-03
- When using -SettingFile: command line, do not save in default settings
- Improved editing NodeTree
- Added RefreshableListModel#fireListChanged

2022-07-01
- Added NoteTree#getSelectedNode
- Support multi line messages in DialogUtils#showMessage
- Node#toString return the node name
- Made NodeTree editable

2022-06-29
- Dynamic reload of the menu when node action changes
- Added EventUtils#onComponentExit
- Set com.sun.security.enableAIAcaIssuers to true at start-up to avoid "PKIX path building failed"

2022-06-27
- Avoid showing the gear/cog in the menu bar on Mac OS X

2022-06-26
- Improved documentation on how to install on Mac OS X
- Changed deployJava.js script to <applet> tag in applet-for-applet-runner.html 
  to avoid redirection to java.com when opening in a browser

2022-06-25
- Improved layout of DialogUtils dialogs for PropertyActions
- Use resource value instead of settings for remember size of specific dialogs
- If no category specified for the action, do not fill the category with empty string
- Increased the initial size of the (lazy) icon size by 2 pixels in JIconFont-all
- Keep predefined sorter when column are added to an AdvancedTable
- Adding a column in AdvancedTable keeps the selected rows
- Rename the setting file before showing the start-up error message
- Use the defined location of the setting file as file to rename when start-up fails
- Fixed some missing characters sometimes in the generated license keys.

2022-06-23
- Added execute software with some --add-opens modules to make Synthetica look and feel work
- Added some modules to Add-Opens and Add-Exports in manifest.mf to support Synthetica look and feel
- Fixed show next tip not working when using it from Help -> Show tip of the day
- Reset look and feel if it fails at start-up
- Node#addElement will add at the end if index > size

2022-06-22
- Fixed sometimes incorrect generation of license keys
- Added @com.japplis.util.NoObfuscationName to keep name of the actions

2022-06-15
- Added listener for color chooser panel to react to color changes
- Upgraded to Ubuntu 22 & jdk 17.0.3+7 for Linux

2022-06-13
- Node#transform won't add element to the node if the transformation returns null

2022-06-11
- Fixed adding elements in a table when last line (of the last table)
- Default layout of a SettingPanel is MigLayout()
- Added ParamComponentFactory#createListPanel

2022-06-08
- Improved check for updates for not pro version

2022-06-07
- Added support for SelectAll in AdvancedTextField

2022-06-06
- Changed AdvancedTable to support fixed column widths
- Added Node#filterElements
- Added EventUtils#onResizeFinished
- Added TransferableUtils#getImageClipboardContent

2022-06-03
- More options for check for update between free and pro versions
- Fixed bug not showing the possibility to generate trial licenses
- Added more explanation for generating trial key licenses
- Various fixed for trial licenses

2022-06-02
- Added possibility to set dynamic value for initial text for AdvancedTextField
- Added UIUtils#showInternalFrame
- Added AdvancedTable#AdvancedTransferHandler#importData(JComponent,Transferable)

2022-05-30
- Added new EventUtils#addShortcut
- Fixed error when history index is higher than the list size

2022-05-25
- AdvancedTableModel is no longer an abstract class

2022-05-21
- IconFontSwing.decorateButton now accepts AbstractButton instead of JButton

2022-05-14
- Added ParamComponentFactory#getChooseFilePanel
- Choose first setting panel if previous selected setting panel doesn't exist (anymore)
- Added UIUtils#showToolTip(Component, String) 

2022-05-13
- Added StringUtils#appendNotEmpty

2022-05-12
- Added ComponentFactory#createColorChooserButton
- Added StringUtils#isNotBlank

2022-05-11
- Added support for yes/no questions in DialogUtils
- DialogUtils#showMessage now returns JOptionPane instead of JDialog

2022-05-10
- Skip empty directories when doing back-ups

2022-04-14
- Unpack back-up doesn't overwrite newer files

2022-04-13
- Fixed missing main class and app library when creating project applet
- Simplified JavaScript in index.html
- Added default value of file location for restore back-up task

2022-04-11
- Added StatusBar component
- Added makeUnderline to FontUtils
- Put text below icon for toolbar toggle buttons

2022-04-04
- Fixed remember position and size of dialogs

2022-04-03
- Advanced table, reset RowSorter when a column is added

2022-04-01
- Fixed "What's new" button in About window

2022-03-29
- CollectionUtils#safeConvert to also check for null input
- Moved CollectionUtils#UnsafeFunction to separate file 

2022-03-28
- Added support for drop-down in toolbar with [action1|action2|...]
- Added JFileChooserUtils#showDirectoryChooser
- Do not add actions not found to menu

2022-03-24
- Use the same size for the buttons in OK, Cancel panel and extra actions.

2022-03-23
- DialogUtils#showInputDialog support for escape and enter key to cancel of accept the form.
- Added ParamComponentFactory#createFormComponent(PropertyAction)
- WindowUtils#wrapOkCancel to put PropertyAction before the buttons
- Both wrapper and panel could have the APPROVED setting

2022-03-22
- Simplified unpack-back-up target
- Use -incremental in back-up filename when incremental back-up

2022-03-18
- Added support for Windows.ValidForm client property

2022-03-16
- Added DialogUtils#showInputDialog
- Added DialogUtils#showTextAreaDialog

2022-03-15
- Added CollectionUtils#sortByValues.

2022-03-15
- Japplis software no longer available in Russia due to the war in Ukraine.

2022-03-13
- Use JToggleButton for toolbar for boolean property actions

2022-03-12
- Added DefaultAction#getActionEvent()
- Added possibility to have "pro" as value for resources & settings
- Possibility to validate form with Windows.ValidForm property event name on panel
- Deprecated MethodAction in favor of QuickAction
- Use action name for panel name for ShowDialogAction
- Fixed restore back-ups to correct location
- Fixed keep date time of file for back-up of an application
- Fixed back-up of tools/build.xml

2022-03-06
- Changed Node#propertiesToNode and #propertiesWithNumbersToNode to use lambda instead of VectorProperties

2022-03-05
- Added TranferableUtils#copyToClipboard(JComponent)

2022-02-22:
- Added CollectionUtils#splitAndConvert
- Added StringUtils#stringBetween
- Improved messaging system
- Added application name and description to accessible context

2022-02-21:
- Improved use the correct license file between pro and free versions
- Fixed double jar in release when releasing free and pro versions
- Moved applet-for-applet-runner.html and license.txt files to root directory
- Fixed bug having libraries in wrong Windows directory

2022-02-18:
- Throw an error if createManagementButtons is called before enableEditing for AdvancedList
- Created target to release free and pro versions at the same time
- Different settings for accepting free and pro license
- Added setColumnNames(String...) in AdvancedTableModel
- AdvancedTable uses by default the BiColorTableCellRenderer
- AdvancedTable show sorting chevron when sorting columns

2022-02-17:
- AdvancedTable creates default filter based on cell values when none defined
- Added DefaultAction constructor with only Model class, use action class name for action name
- On/Off toggle component size fits better the size of the icon
- Fixed Theme.Effect.COMPACT to include missing pixels on right and bottom part

2022-02-16:
- EventUtils#onDoubleClick and EventUtils#onPopupTrigger use Component instead of JComponent
- Possibility to show and hide the menu bar in settings
- Possibility to hide the toolbar in the settings
- Application#getToolBar and Application#getMenuBar changed from protected to public
- Slightly improved layout of Main frame settings
- Improved showing the menu with Shift+Alt+Right click when the menu bar is hidden 

2022-02-14:
- Added (possible) setting to make the main frame background transparent
- Made viewport of a JScrollPane transparent in WindowUtils#makeTransparent
- Update Linux JVM from Java 15 to Java 17 (Adoptium jdk-17.0.2+8)

2022-02-11:
- Moved pro website to a specific /pro directory

2022-02-10:
- Added EventUtils#onSelect(JToggleButton, Consumer<Boolean>)
- AdvancedList editing methods are passing a AdvancedList instead of a JList for whenChanged
- ComponentFactory#createButtonGroup selects the first button if none selected

2022-02-09:
- DialogUtils#showMessage use resource instead of settings

2022-02-08:
- Fixed checking several time the license for the pro version
- Removed Application.Title resource property (using Application.FullName)
- Improved build of the pro version of the software
- Moved pro website to /pro/ path
- Attempt to improve showing app name on Mac

2022-02-07:
- Simplified AdvancedTextField bookmarks and history menu
- Fixed loading of applet settings
- Fixed incorrect link on logo image for website

2022-02-05:
- Possibility to have alpha and beta version in version number
- Url starting with 'file:' is considered as full url
- Added IconFontSwing#buildImage(Font,char,Theme)
- Added IconFontSwing#buildIcon(Font,char,Theme)
- Added IconFontSwing#registerFont(Font)
- Added IconFactory to support other fonts if installed on computer or registered in IconFontSwing
  - Syntax: <Font Family Name>.<Letter> or <Font Family Name>.\u<Unicode value in hexa> or <Font Family Name>.<Unicode name>

2022-02-04:
- Added restore back-up Apache Ant target
- Added DialogUtils.showOkCancelDialog method
- Improved application to create license keys

2022-02-03
- Also data coming from network is read with UTF-8 encoding.
- Load settings button in Settings -> General is loading the settings
- Remove previous settings before loading new settings
- Added clear settings button in Settings -> General to restore default settings
- Added tooltip to the setting file buttons in Settings -> General
- Converted changes.txt to use Unix line feed (\n)
- Simplified AdvancedTextField bookmarks and history menu

2022-02-02
- Copy applet and license to test directory
- Added icon font composer application in jIconFont-all
- Improved license key encryption

2022-02-01
- Put default focus on OK button for dialogs.
- New class FontUtils
- New class DialogUtils
- New class EventUtils
- New class MenuUtils
- Fixed saving settings also in UTF-8 character encoding
- IOUtils.readProperties(File) is now using UTF-8
- IOUtils.readFully(InputStream) uses UTF-8 to convert the byte[]
- Source code encoding changed to UTF-8

2022-01-29
- Improved loading of lazy icons for fonts in Applet mode
- Moved Transparent property to Windows properties
- Recursively remove opaque panels when window is transparent
- Added possibility to add an action long description using Action.<name>.longDescription

2022-01-05
- Cache if tip of the day should be shown
- Avoid using lazy icon loading in Applet mode
- Show full url for links as tooltip

2021-12-30
- Improved replacing template with app name.
- Added possibility to have transparent window
- Show resize icon on the bottom right panel of the BetterGlassPanel to know where to resize
- Change icon to resize of move when shift+alt is pressed on the BetterGlassPanel
- Fixed always on top shortcut (Shift + F12) not working when no focused component

2021-12-29
- Fixed website anchors

2021-11-20
- Added Google site verification to website pages
- Added robots index,follow to website pages
- Added social media tags
- Moved back-ups to new file and new destination
- Default target for main build files is debug
- Improved back-up of projects and websites
- Added Model#getParamOrDefault method
- IOUtil#readFile uses UTF-8 as decoding

2021-11-17
- Improved default size computation for FontAwesome icons
- Improved social media links for website
- Fixed incorrect classpath when creating new project

2021-11-16
- Improved the way jIconFont library checks caller
- Added frame icon to jIconFont icon viewer

2021-11-11
- Added ComponentFactory#createButtonGroup
- Added UIUtils#onSelect

2021-11-10
- Fixed create new project wasn't using the specified dir.name and package.name properties
- Fixed incorrect fields in app.properties when creating a new project
- Added possibility to create a quick action based on a ActionFunction
- Added removeElement and removeNode to Node class
- Added add listener to a node

2021-11-07
- Fixed Mac OS X release showing error at start-up
- Added ParamComponentFactory#getRadioButtons
- Added ParamComponentFactory#getChooseDirectoryPanel
- Fixed no trial key generator for free keys

2021-11-06
- Fixed generating version file for website
- Improve software website by added Japplis menu & footer

2021-11-03
- Lazy create icons also for fonts from getRscIcon(String name, int size)
- Added messaging system
- Optimize loading fonts in IconFontSwing
- Optimized setting look and feel to Windows on Windows.

2021-10-31
- Added better cut/copy/paste actions to AdvancedList
- Use varargs instead of arrays for RefreshableListModel
- Improved detection of build.ispro property
- Fix jnlp an applet generation main class

2021-10-23
- Added ParamComponentFactory#getComboBox
- Added CollectionUtils#enumToNames
- Added StringUtils#fromCamelCase
- Improved StringUtils#toCamelCase to support space and hyphen
- Modify Param Component if model value is changed

2021-10-20
- Improved error message if biglogo.bmp is missing
- Content pane is wrapped in a MigLayout

2021-10-16
- Move license agreement dailog to from on start-up
- Added method to quickly create radio choice in settings 
- Added method to select a directory in settings
- Fixed feedback form not showing the name of the application correctly
- Fixed license key not showing in the license settings

2021-09-25
- Fixed setUndecorated changes the screen device when used with second screen

2021-09-20
- Fixed Company website in PAD files
- Added contact info in help web page

2021-09-19
- Added UIUtils#onDoubleClick(JComponent component, Consumer<MouseEvent> onClick)
- Added UIUtils#onListDataChange(ListModel listModel, Runnable onChange)

2021-09-18
- Improved showing the feedback email in About dialog sometimes hiding the first character.

2021-07-15
- Fixed loading some of the third party licenses in the About window

2021-07-13
- Added possibility to have incremental back-up like only last 6 months modified files
- Fixed setting compile.lib to app.lib by default
- Reduced timing to send statistics to 15 seconds after start-up

2021-07-04
- Improved building pro or not version

2021-04-26
- Do not send logs when in directory "test"
- Added log before sending logs

2021-03-28
- Integrated enter license key to license agreement window
- Apply look and feel before showing license agreement window
- Added release pro version target
- Converted some default application settings to "Application."
- Improved logging of application information for logs and feedback
- Fixed logs text area not growing with the About window

2021-03-27
- Various bug fixes in creating and verifying the license key

2021-03-26
- Hide Automator running wheel in Mac OS X menubar
- Save immediately license key in file when correct

2021-03-23
- Added possibility to validate a window because closing for "ok" button

2021-03-20
- Added possibility to use IconFont on existing buttons
- AdvancedList enable/disable buttons when needed
- Added possibility to set no text for a button (using 1 space)

2021-03-16
- Improved detection if window is on screen.
- LazyIcon support other format than ImageIcon.

2021-03-14
- Fixed software statistics not sent to server.
- Fixes only sending start-up statistics to server.

2021-03-09
- Fixed collect website statistics without jQuery.

2021-03-07
- Fixed removing the application jar and license in the lib directory after jpackage
- Removed unneeded file copy for jpackage
- Fixed Cancel button was approving the dialog (same as ok)
- Fixed obfuscation obfuscating too much despite @NoObfuscation

2021-03-06
- Fixed missing java.logging module in obfuscation

2021-02-24
- Prevent obfuscation to remove unused class using @NoObfuscation
- Do not show the license in applet mode
- Just close the start-up error window in applet mode instead of exit

2021-02-23
- Fixed not overwriting the extension in save file dialog when multiple extensions possible.
- Added new build target dist to create the binary distributed files
- NoObfuscation will not obfuscate class implementing an interface using this annotation
- Fixed getting application directory was URL encoded

2021-02-20
- If the license is not accepted, exit the application correctly
- Exit method no longer throw a checked exception
- Added StringUtils#toString(Map)
- Integrated asking for accepting license at the first start
- Added checkbox to accept statistics collection together with license

2021-02-19
- Attempt to check Substance look and feel using a better way
- Default parameters allowed in applet or pro mode

2021-02-18
- Do not change look and feel in applet mode
- Fixed incorrect icon for Settings dialog
- Fixed reposition dialog in applet mode only when out of screen

2021-02-17
- Fixed attempt to load settings in applet when not specified
- Fixed locating application directory when deployed as plug-in
- Possibility to set look and feel as 'default' so no changes will be done at start-up

2021-02-16
- Added LookAndFeelManager#isSubstanceLnF method

2021-02-14
- Split SettingsPanel in 1 class per setting section

2021-02-12
- Optimized memory usage of StringUtils#flat
- Added URLUtils#downloadToFile
- By default Application#getToolBar and Application#getMenuBar returns the toolbar and menu bar if created
- Pro version: show / change main frame location and size in Settings -> Window
- Pro version: License panel in settings to manage license keys

2021-02-12
- Try again after a few ms if the software can't access the system clipboard
- Fixed table not showing if Substance library not in classpath
- Added ApplicationActions#addActions method
- Register ProLink in default action if available
- Added Model#getProParamOrDefault
- StringUtils#toList now trim values
- Added ApplicationActions#addToToolBar

2021-02-08
- Fixed Mac OS X installation missing template files
- Fixed setting file size in pad xml files for Linux and Mac OS X

2021-02-05
- Fixed remember a table column width after resizing it and before resizing container / window
- Deprecated JFileChooserUtils#showSaveDialog for another one saving the directory in the model

2021-02-04
- Fixed performance problem in jIconFont

2021-02-03
- Added StringUtils#deleteLastChar method

2021-02-02
- Added LookAndFeelManager#isDarkTheme method

2021-02-01
- Extracted NoBorderShaper to its own class to make Substance library optional
- Fixed LinkButton to not use Substance in main method to avoid class loading problems
- Fixed dialogs being out of screen
- Improved build of JapplisAppFramework depending on Ant target (only release runs ProGuard)
- Save window status correctly when toggling undecorated window

2021-01-26
- Added option to show / hide setting file name when different of default
- Fixed missing title in Setting window
- Fixed checkbox call event when mouse over instead of click

2021-01-23
- Do not used splash screen if not specified
- Subclass of class with @NoObfuscation are also not obfuscated

2021-01-09
- Standard is portable for Windows as download possibility
- Added download without Java

2021-01-06
- Fixed Windows installer
- Improved release to fail when some executable fails
- Fixed Mac OS packaging, incorrect app name & not updating & icon
- Do not show Exit action if in applet mode
- Default quit handler now execute the exit action (Application#exit)

2021-01-05
- Fixed Linux .deb was missing libraries
- NoObfuscation also keeps class names and interfaces
- Improved build when using Proguard
- Test if Taskbar is supported before using it
- Fail the build if Windows installer fails

2021-01-04
- Log if Applet and Pro at start-up
- Fixed removed transparency before setting the frame decorated
- Send os name,opened time and visible time with feedback
- Added TextComponentUtils#setMaxLength
- Moved full screen code from WindowUtils to FullScreenUtils
- Remember always on top after using control+F12
- Remember transparency after using mouse wheel
- Fixed different errors in Linux build shell script (bin, runtime, license, icon)

2020-12-22
- Standard license is used unless overwritten in build.

2020-12-20
- Added pad files in template

2020-12-19
- Disable text fields for defined proxy when not selected
- LinkButton to use JLabel color as foreground color
- Added WindowUtils.showError(Exception)
- Added store application model in static variable

2020-12-17
- Fixed getBrowseAction to accept relative URLs.

2020-12-16
- Shift+F12 to toggle always on top for main window
- No restart needed when changing transparency of main window
- Fixed dragging the window when undecorated
- Added possibility to resize the window when undecorated
- Added possibility to change transparency of the window when undecorated
- Show correct cursor when moving or resizing an undecorated window
- Added BetterGlassPane license to third party licenses
- Ask for restart when switching from Synthetica look and feel to another one

2020-12-15
- In About panel link Japplis to Japplis website
- Improved layout in About panel
- Added UIUtils#onDoubleClick
- Added UIUtils#hasHiDpi
- Improved quality of application icon in About panel on HiDPI screens

2020-12-12
- Added java.xml and java.scripting modules dependency
- Fixed ProGuard
- Added UIUtils#removeKeyStroke

2020-12-11
- Removed unused jIconFont fonts.
- Added SmartDurationFormatter
- Third parties licenses text file generation for About panel
- Improved independency from application directory for Applet mode
- Improved release of Applets

2020-12-10
- Improved create-tools target to execute single files

2020-12-09
- Substance look and feel is now optional in the classpath (e.g. applets).
- In Applet mode, settings won't offer the option to change the look and feel.
- Added support for DefaultValue in AdvancedTextField
- Added support for UseLastValue in AdvancedTextField

2020-12-08
- Fixed NPE when action had model null (like QuickAction)
- Fixed missing history on popup menu in AdvancedTextField
- Log warning and skip adding node if added node is itself.
- Saving Node in properties with numbers are stored in correct order
- Added Node#forEachElement method
- Added Node#findElement method

2020-12-06
- Allow starting from local files by default for Applets
- Added CollectionUtils#addToArray
- /help, -h, -help, --help prints the help for the possible start-up parameters

2020-12-05
- Do not log parameter changed for common often changed parameters
- Setting text to AdvancedTextField also save it in the history
- If already in the Event Dispatch Thread do not create the interface in the EDT

2020-12-03
- New create-tools target in create-project.xml

2020-12-02
- Made History and Bookmark part of the framework
- Icon for setting panel can now be specified in the properties file

2020-12-01
- Fixed bugs creating new projects
- Added VectorProperties to Node<String> conversion in CollectionUtils
- Added statistic count actions
- Application version is also saved in the setting file
- Added getRscInt to Model
- Improved AdvancedTextField to support properties Columns and History
- Improved release: Also copy template libs for applet

2020-11-29
- Using Synthetica TableCellRenderer for table when Synthetica Look and Feel is used
- Improved method delegation to Applet for AppletFrame
- Performance optimization for LazyIcon
- Added stats: AppOpenedTime and AppVisibleTime

2020-11-28
- Clean up unused properties when saving Node
- Ctrl+click will first sort the column in reverse order

2020-11-27
- Added expandAll to CategoryTree
- Added support for Synthetica look and feel
- Added compact effect in jIconFont library
- Fixed table column width not remaining when model changed

2020-11-25
- Using Substance TableCellRenderer for tables when Substance is used
- Added RendereFactory for TableCellRenderer and TableCellDecorator
- Fixed LinkButton with Substance L&F showing too small button (with ...)

2020-11-24
- If action is null, add separator for NodeAction and Node<Action>
- Added support for drag and drop and clipboard in AdvancedTable

2020-11-22
- Moved IconFactory to jIconFont library

2020-11-21
- Fixed saving order of Node properties
- Added support for flip in jIconFont

2020-11-20
- Updated jIconFont with Font Awesome 5 and Google Material Design Icons 4.0

2020-11-19
- Fixed LinkButton to large when using Substance look and feel

2020-11-18
- Use Crtl+H for filtered history in pro version

2020-11-17
- Improved size of the input field size in Settings -> Feedback
- Setting AdvancedTextField not resizable only prevent it from growing
- Replace VectorMap with Node<T>
- Added WrapLayout component
- Moved groupBy to CollectionUtils and made it generic

2020-11-15
- Added NodeTree
- Fixed show correct leaf in CategoryTree

2020-11-14
- Added toIterable(Enumeration) to CollectionsUtil
- Added IconFactory

2020-11-13
- Added possibility to set and get Node from Model
- Default implementation of getValueAt for AdvancedTableModel is element
- Fix incorrect sorting when using TableFactory
- Added possibility to deny unsorted in AdvancedRowSorter

2020-11-13
- Fixed incorrect logging of action name in DefaultAction

2020-11-13
- QuickAction now can accept a model

2020-11-10
- Moved generic actions to com.japplis.actions package

2020-11-04
- Added groupBy to StringUtils

April 2020 - November 2020
- Many undocumented changes

April 2020
- Creation of (this) Japplis Application Framework to migrate most of Japplis application to it (www.japplis.com)

Before April 2020
This framework is based on the many Swing applications that I (Anthony Goubard - Japplis) have developed since 1998.