Author: tilman
Date: Sun May 10 08:47:14 2026
New Revision: 1934035
Log:
PDFBOX-5660: refactor, avoid leaking this in constructor; remove unused
Modified:
pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java
pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/treestatus/TreeStatus.java
pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/ui/Tree.java
Modified:
pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java
==============================================================================
---
pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java
Sun May 10 08:47:10 2026 (r1934034)
+++
pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java
Sun May 10 08:47:14 2026 (r1934035)
@@ -244,7 +244,8 @@ public class PDFDebugger extends JFrame
{
jSplitPane = new javax.swing.JSplitPane();
JScrollPane jScrollPaneLeft = new JScrollPane();
- tree = new Tree(this);
+ tree = new Tree();
+ tree.init();
jScrollPaneRight = new JScrollPane();
jTextPane = new javax.swing.JTextPane();
Modified:
pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/treestatus/TreeStatus.java
==============================================================================
---
pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/treestatus/TreeStatus.java
Sun May 10 08:47:10 2026 (r1934034)
+++
pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/treestatus/TreeStatus.java
Sun May 10 08:47:14 2026 (r1934035)
@@ -33,12 +33,8 @@ import org.apache.pdfbox.debugger.ui.Pag
*/
public final class TreeStatus
{
- private Object rootNode;
+ private final Object rootNode;
- private TreeStatus()
- {
- }
-
/**
* Constructor.
*
Modified:
pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/ui/Tree.java
==============================================================================
---
pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/ui/Tree.java
Sun May 10 08:47:10 2026 (r1934034)
+++
pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/ui/Tree.java
Sun May 10 08:47:14 2026 (r1934035)
@@ -17,7 +17,6 @@
package org.apache.pdfbox.debugger.ui;
-import java.awt.Component;
import java.awt.Desktop;
import java.awt.Point;
import java.awt.Toolkit;
@@ -56,17 +55,21 @@ import org.apache.pdfbox.pdmodel.common.
public class Tree extends JTree
{
private final JPopupMenu treePopupMenu;
- private final Object rootNode;
/**
* Constructor.
- * @param parentComponent the main UI where the Tree resides.
*/
- public Tree(Component parentComponent)
+ public Tree()
{
treePopupMenu = new JPopupMenu();
+ }
+
+ /**
+ * Initialization, to be called immediately after construction.
+ */
+ public void init()
+ {
setComponentPopupMenu(treePopupMenu);
- rootNode = getModel().getRoot();
int treeRowHeight =
Integer.parseInt(PDFDebugger.configuration.getProperty(
"treeRowHeight",
Integer.toString(getRowHeight())));
setRowHeight(treeRowHeight);
@@ -154,7 +157,8 @@ public class Tree extends JTree
public void actionPerformed(ActionEvent actionEvent)
{
Clipboard clipboard =
Toolkit.getDefaultToolkit().getSystemClipboard();
- clipboard.setContents(new StringSelection(new
TreeStatus(rootNode).getStringForPath(path)), null);
+ String pathString = new
TreeStatus(getModel().getRoot()).getStringForPath(path);
+ clipboard.setContents(new StringSelection(pathString), null);
}
});
return copyPathMenuItem;