# Changes related to the framework
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