MCPcopy Index your code
hub / github.com/benfry/processing4 / ASTViewer

Method ASTViewer

java/src/processing/mode/java/ASTViewer.java:32–84  ·  view source on GitHub ↗
(JavaEditor editor, PreprocService pps)

Source from the content-addressed store, hash-verified

30
31
32 ASTViewer(JavaEditor editor, PreprocService pps) {
33 updateListener = this::buildAndUpdateTree;
34
35 window = new JDialog(editor);
36
37 tree = new JTree() {
38 @Override
39 public String convertValueToText(Object value, boolean selected,
40 boolean expanded, boolean leaf,
41 int row, boolean hasFocus) {
42 if (value instanceof DefaultMutableTreeNode) {
43 DefaultMutableTreeNode treeNode = (DefaultMutableTreeNode) value;
44 Object o = treeNode.getUserObject();
45 if (o instanceof ASTNode) {
46 ASTNode node = (ASTNode) o;
47 return CompletionGenerator.getNodeAsString(node);
48 }
49 }
50 return super.convertValueToText(value, selected, expanded, leaf, row, hasFocus);
51 }
52 };
53 tree.setCellRenderer(new ZoomTreeCellRenderer());
54 window.addComponentListener(new ComponentAdapter() {
55 @Override
56 public void componentHidden(ComponentEvent e) {
57 pps.unregisterListener(updateListener);
58 tree.setModel(null);
59 }
60 });
61 window.setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);
62 window.setBounds(new Rectangle(680, 100, 460, 620));
63 window.setTitle("AST View - " + editor.getSketch().getName());
64 JScrollPane sp = new JScrollPane();
65 sp.setViewportView(tree);
66 window.add(sp);
67 pps.whenDone(updateListener);
68 pps.registerListener(updateListener);
69
70 tree.addTreeSelectionListener(e -> {
71 if (tree.getLastSelectedPathComponent() != null) {
72 DefaultMutableTreeNode treeNode =
73 (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();
74 if (treeNode.getUserObject() instanceof ASTNode) {
75 ASTNode node = (ASTNode) treeNode.getUserObject();
76 pps.whenDone(ps -> {
77 SketchInterval si = ps.mapJavaToSketch(node);
78 if (!ps.inRange(si)) return;
79 EventQueue.invokeLater(() -> editor.highlight(si.tabIndex, si.startTabOffset, si.stopTabOffset));
80 });
81 }
82 }
83 });
84 }
85
86
87 void dispose() {

Callers

nothing calls this directly

Calls 9

getSketchMethod · 0.80
whenDoneMethod · 0.80
registerListenerMethod · 0.80
mapJavaToSketchMethod · 0.80
inRangeMethod · 0.80
highlightMethod · 0.80
setTitleMethod · 0.65
getNameMethod · 0.45
addMethod · 0.45

Tested by

no test coverage detected