* fixed https://sonarcloud.io/project/issues?id=org.xmage%3Amage-root&issues=AWIlv32RgrzAwlaaQ7rP&open=AWIlv32RgrzAwlaaQ7rP
* ensure closing of scanner if it was opened
* Refactored method in EmpyrialArchAngel to not always return same value.
* Refactored method in FalkenrathAristocrat to not always return same value.
* Refactored method in GilderBairn to not always return the same value.
* fixed left open resources, ensured quiet closing of the streams
* Refactored method in IceCave to not always return same value.
* Refactored method in KjeldoranRoyalGuard to not always return same value.
* Refactored method in LegionsInitiative to not always return same value.
* Refactored method in NaturesWill to not always return same value.
* added quiet closing method in new streamutils class, used to clean up the connectdialog
* Fix small typo
* added quiet closing to saveobjectutil
* closed resources in savegame method of gamecontroller
* properly close resources in loadGame method of GameReplay class
* further proper resource closing in ServerMessagesUtil
* fixed unclosed resources in copy method in mage framework Copier
* closed unclosed resources in copyCompressed method in Copier
* ensure closing of filewriter in manasymbols
* ensure proper closing of Stream in arcane UI
* ensure closing of datagram socket in arcane Util
* ensure resource closing in deckimport from clipboard
* ensure closing of plugin classloader
* ensured closing of zipinputstream resource
* ensure closing of fileoutputstream in ScryfallSymbolsSource
* ensure closing resources after finishing/canceling download of pictures
* remove commented code
* move locks to try block to ensure unlocking along all execution paths
* remove dangerous instance of double-checked locking
* removed dangerous instance of double checked locking in settingsmanager
* Removed dangerous instance of double-checked locking in ThemePluginImpl
* close resource which did not happen certainly
* close another stream
* ensure closing of inputstream
* Deck editor drag and drop was broken by the window borders change. Still not entirley sure what the root cause is (for some reason SwingUtilities.getDeepestComponentAt won't work correctly with the new setup), but this will fix it by expliticly specifying a deeper root component to start the search from (The MagePane that is active to be specific).
"b" + "r" now changed to 'b' + 'w'. It's more straight-forward, and may cause perfomance improvements - character primitives allocation is faster and less expensive than string creation.
I used Intellij IDEA to automatically refactor code to achive 3 goals.
1) get rid of anonymouse classes, and replace the with lamba to get more readeable and clean code (like in TableWaitingDialog).
2) make effectively final variables actually final to avoid inadvertent changes on it in further releases and keep objects as immutable, as possible.
3) Get rid of unused imports (most of the changes) in whole project classes.
* Fixed cards being blurry. The problem isn't completely fixed, but the fix will suffice in most cases. Card Images are only loaded in once, and the cards were loaded in initially at a small size instead of their eventual size after layout. Really they should reload images when resized, but I will tackle that later, and it's only noticable when significantly resizing cards within one usage of the editor anyways.
* Removed some of the unneeded UI on the sideboard half of the DeckView so that componently are less likely to overlap at a small size. Not sure how to ideally handle this, as Swing doesn't really provide an elegant way to hide components at small sizes, and I'm sure the user would rather the components overlap than be unable to resize the window as small as they want due to a minimum size requirement.
* Shift-Click / Shift-Drag now work as expected as far as multi-selection
* Deck editor saves split pane split positions
* Card layout and sort settings are now saved along side the a deck when saving to the .dck format, so that you have back the exact same deck layout when you re-load the deck.
* Fixed the symbol image downloader to work around some of the large-size symbol images being missing on gatherer. Falls back to the medium sized images currently for those symbols.
* On specific platforms (it seems Windows 7-10, JRT 7+), under our specific configuration, in the case where the user selects the exact same file as they chose during a previous selection, JFileChooser reports that the user selected a file, but returns chosen file = null. This commit works around that by assuming they chose the same file as last time in that case.
* Working standalone proof-of-concept application in DragCardGrid.
* Still needs listener functionality in order to integrate it into the existing DeckEditorPanel class.