From b9299aa50ed203b2b8041b0d9a7573865bb71da9 Mon Sep 17 00:00:00 2001 From: Dolph Flynn <96876199+DolphFlynn@users.noreply.github.com> Date: Sat, 20 Jan 2024 18:31:05 +0000 Subject: [PATCH] Modify distribution of space between split panes within EditorView. --- .../jwteditor/view/editor/EditorView.form | 4 ++-- .../jwteditor/view/editor/EditorView.java | 24 +++++++++++++++++++ 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/blackberry/jwteditor/view/editor/EditorView.form b/src/main/java/com/blackberry/jwteditor/view/editor/EditorView.form index 97f2b05..2d3cbc6 100644 --- a/src/main/java/com/blackberry/jwteditor/view/editor/EditorView.form +++ b/src/main/java/com/blackberry/jwteditor/view/editor/EditorView.form @@ -42,7 +42,7 @@ - + @@ -136,7 +136,7 @@ - + diff --git a/src/main/java/com/blackberry/jwteditor/view/editor/EditorView.java b/src/main/java/com/blackberry/jwteditor/view/editor/EditorView.java index 0e1dfe1..34c71d2 100644 --- a/src/main/java/com/blackberry/jwteditor/view/editor/EditorView.java +++ b/src/main/java/com/blackberry/jwteditor/view/editor/EditorView.java @@ -39,9 +39,13 @@ import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import java.awt.*; +import java.awt.event.HierarchyEvent; +import java.awt.event.HierarchyListener; import java.util.List; import static java.awt.Color.RED; +import static java.awt.EventQueue.invokeLater; +import static java.awt.event.HierarchyEvent.SHOWING_CHANGED; import static org.exbin.deltahex.EditationAllowed.ALLOWED; import static org.exbin.deltahex.EditationAllowed.READ_ONLY; @@ -86,6 +90,8 @@ public abstract class EditorView implements ExtensionProvidedEditor { private JCheckBox checkBoxJWEHeaderCompactJSON; private JButton buttonJWSPayloadFormatJSON; private JCheckBox checkBoxJWSPayloadCompactJSON; + private JSplitPane upperSplitPane; + private JSplitPane lowerSplitPane; private CodeArea codeAreaSignature; private CodeArea codeAreaEncryptedKey; @@ -107,6 +113,8 @@ public abstract class EditorView implements ExtensionProvidedEditor { this.isProVersion = isProVersion; this.presenter = new EditorPresenter(this, collaboratorPayloadGenerator, actionListenerFactory, presenters); + panel.addHierarchyListener(new ResizeSplitPanesOnFirstRenderHierarchyListener()); + // Event handler for Header / JWS payload change events DocumentListener documentListener = new DocumentListener() { @Override @@ -537,4 +545,20 @@ private void createUIComponents() { textAreaJWSHeader = rstaFactory.buildDefaultTextArea(); textAreaPayload = rstaFactory.buildDefaultTextArea(); } + + private class ResizeSplitPanesOnFirstRenderHierarchyListener implements HierarchyListener { + @Override + public void hierarchyChanged(HierarchyEvent e) { + if (e.getChangeFlags() != SHOWING_CHANGED || !e.getComponent().isShowing()) { + return; + } + + invokeLater(() -> { + upperSplitPane.setDividerLocation(0.25); + lowerSplitPane.setDividerLocation(0.75); + }); + + panel.removeHierarchyListener(this); + } + } }