From 3c488744e79928be594120311e01640f5985fb3f Mon Sep 17 00:00:00 2001 From: Andrew Auclair Date: Fri, 17 Nov 2023 17:25:08 -0500 Subject: [PATCH] Fixes issue #126 More null checks. --- .../api/RootDockingPanelAPI.java | 28 +++++++++++-------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/docking-api/src/ModernDocking/api/RootDockingPanelAPI.java b/docking-api/src/ModernDocking/api/RootDockingPanelAPI.java index 9ef693fc..b0eede18 100644 --- a/docking-api/src/ModernDocking/api/RootDockingPanelAPI.java +++ b/docking-api/src/ModernDocking/api/RootDockingPanelAPI.java @@ -39,9 +39,9 @@ of this software and associated documentation files (the "Software"), to deal public class RootDockingPanelAPI extends DockingPanel { private DockingAPI docking = null; - private Window window; + private Window window = null; - private DockingPanel panel; + private DockingPanel panel = null; private JPanel emptyPanel = new JPanel(); @@ -51,17 +51,17 @@ public class RootDockingPanelAPI extends DockingPanel { /** * South toolbar of this panel. Only created if pinning is supported. */ - private DockableToolbar southToolbar; + private DockableToolbar southToolbar = null; /** * West toolbar of this panel. Only created if pinning is supported. */ - private DockableToolbar westToolbar; + private DockableToolbar westToolbar = null; /** * East toolbar of this panel. Only created if pinning is supported. */ - private DockableToolbar eastToolbar; + private DockableToolbar eastToolbar = null; - private EnumSet supportedToolbars; + private EnumSet supportedToolbars = EnumSet.noneOf(ToolbarLocation.class); /** * Create root panel with GridBagLayout as the layout @@ -238,10 +238,10 @@ private boolean removeExistingPanel() { @Override public void removeNotify() { - Window rootWindow = (Window) SwingUtilities.getRoot(this); - // this class has a default constructor which could be called and docking would be null if (docking != null) { + Window rootWindow = (Window) SwingUtilities.getRoot(this); + docking.deregisterDockingPanel(rootWindow); } @@ -432,9 +432,15 @@ private void createContents() { * Hide all unpinned panels on the west, south and east toolbars */ public void hideUnpinnedPanels() { - westToolbar.hideAll(); - southToolbar.hideAll(); - eastToolbar.hideAll(); + if (westToolbar != null) { + westToolbar.hideAll(); + } + if (southToolbar != null) { + southToolbar.hideAll(); + } + if (eastToolbar != null) { + eastToolbar.hideAll(); + } } /**