From 2ad8abe17eca83ceb34b1088264340c9d5363e3f Mon Sep 17 00:00:00 2001 From: Hiroshi Miura Date: Sun, 22 Sep 2024 06:32:08 +0900 Subject: [PATCH 1/2] refactor: DockingDesktop ## functional chnage - Remove static initialization of DockingUISettings and do it in the constructor ## Improve robustness - Check `currentState` nullity when access - Avoid always running debug logic - Change stateChange condition to be currentState != null ## initialize - Move fields initializer to constructor ## Define with lambda - Define PropertyChangeListener and ActionListener with lambda ## Optimize loop - Optimize if-else if-else blocks - Optimize for-loop ## Style - Remove redundant initializers - Optimize empty check with isEmpty() - clean unused local variable - javadoc: DockingDesktop - Simplify DockingDesktop#splitComponent method's stateChange local variable definition - Replace if block of String comparison to switch block in xmlCreateComponent private method --- .../swing/docking/DockingDesktop.java | 605 ++++++++---------- 1 file changed, 265 insertions(+), 340 deletions(-) diff --git a/src/main/java/com/vlsolutions/swing/docking/DockingDesktop.java b/src/main/java/com/vlsolutions/swing/docking/DockingDesktop.java index 6ace23a..190b922 100644 --- a/src/main/java/com/vlsolutions/swing/docking/DockingDesktop.java +++ b/src/main/java/com/vlsolutions/swing/docking/DockingDesktop.java @@ -47,7 +47,6 @@ import java.awt.Rectangle; import java.awt.Window; import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; import java.awt.event.ComponentAdapter; import java.awt.event.ComponentEvent; import java.awt.event.ComponentListener; @@ -60,10 +59,7 @@ import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.io.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.LinkedList; +import java.util.*; import javax.swing.AbstractAction; import javax.swing.JComponent; import javax.swing.JLayeredPane; @@ -91,7 +87,7 @@ /** * The DockingDesktop is the main class of the VLDocking Framework. *

- * It is the equivalent of what is JDesktopPane for JInternalWindow : a JLayeredPane customized to include : + * It is the equivalent of what is JDesktopPane for JInternalWindow: a JLayeredPane customized to include : *