Inspector | Message | Severity | Location |
---|---|---|---|
Java Inspector 048 | Copyrights information should be present in each file. | 1 | |
Java Inspector 058 | Make inner classes "private" | 1 | 32:9 |
Java Inspector 058 | Make inner classes "private" | 1 | 57:9 |
Java Inspector 086 | Use equals() instead of == or != to compare objects. | 1 | 139:39 |
Java Inspector 086 | Use equals() instead of == or != to compare objects. | 1 | 143:23 |
Java Inspector 049 | Use a Collection instead of arrays Object[] | 2 | 84:17 |
Java Inspector 068 | Do not use System.out and System.err to output logging messages. Use loggers instead. | 2 | 165:35 |
Java Inspector 089 | Undocumented top level type | 2 | 30:1 |
Java Inspector 089 | Non-private, non-local types shall be documented | 2 | 32:9 |
Java Inspector 089 | Undocumented constructor | 2 | 35:13 |
Java Inspector 089 | Non-private, non-local types shall be documented | 2 | 57:9 |
Java Inspector 089 | Constructor is not properly documented | 2 | 65:25 |
Java Inspector 089 | Parameter master is not documented | 2 | 65:25 |
Java Inspector 089 | Undocumented method | 2 | 70:25 |
Java Inspector 089 | Undocumented method | 2 | 74:25 |
Java Inspector 089 | Undocumented method | 2 | 78:25 |
Java Inspector 089 | Undocumented constructor | 2 | 86:13 |
Java Inspector 089 | Undocumented method | 2 | 94:13 |
Java Inspector 089 | Undocumented method | 2 | 97:13 |
Java Inspector 089 | Undocumented method | 2 | 115:13 |
Java Inspector 089 | Undocumented method | 2 | 129:13 |
Java Inspector 089 | Undocumented method | 2 | 149:13 |
Java Inspector 089 | Undocumented method | 2 | 153:13 |
Java Inspector 089 | Undocumented method | 2 | 161:13 |
Java Inspector 089 | Undocumented method | 2 | 164:13 |
Java Inspector 089 | Undocumented constructor | 2 | 173:5 |
Java Inspector 089 | Undocumented method | 2 | 180:13 |
Java Inspector 003 | do, while, if, and for statements need a brace enclosed block | 3 | 47:50 |
Java Inspector 026 | Avoid hardwired string literals. Allowed literals: [] | 3 | 43:40 |
Java Inspector 026 | Avoid hardwired string literals. Allowed literals: [] | 3 | 43:59 |
Java Inspector 026 | Avoid hardwired string literals. Allowed literals: [] | 3 | 71:40 |
Java Inspector 026 | Avoid hardwired string literals. Allowed literals: [] | 3 | 71:73 |
Java Inspector 026 | Avoid hardwired string literals. Allowed literals: [] | 3 | 71:94 |
Java Inspector 026 | Avoid hardwired string literals. Allowed literals: [] | 3 | 71:117 |
Java Inspector 026 | Avoid hardwired string literals. Allowed literals: [] | 3 | 88:56 |
Java Inspector 026 | Avoid hardwired string literals. Allowed literals: [] | 3 | 104:62 |
Java Inspector 026 | Avoid hardwired string literals. Allowed literals: [] | 3 | 117:56 |
Java Inspector 026 | Avoid hardwired string literals. Allowed literals: [] | 3 | 131:56 |
Java Inspector 026 | Avoid hardwired string literals. Allowed literals: [] | 3 | 136:62 |
Java Inspector 026 | Avoid hardwired string literals. Allowed literals: [] | 3 | 146:60 |
Java Inspector 026 | Avoid hardwired string literals. Allowed literals: [] | 3 | 155:56 |
Java Inspector 026 | Avoid hardwired string literals. Allowed literals: [] | 3 | 165:36 |
Java Inspector 051 | It is good practice to call in any case super() in a constructor. | 3 | 35:13 |
Java Inspector 051 | It is good practice to call in any case super() in a constructor. | 3 | 86:13 |
1/**
2 * Borrowed from Terence Parr
3 */
4package biz.hammurapi.antlr;
5
6/* ANTLR Translator Generator
7 * Project led by Terence Parr at http://www.jGuru.com
8 * Software rights: http://www.antlr.org/license.html
9 *
10 * $Id: //depot/code/org.antlr/release/antlr-2.7.5/antlr/debug/misc/ASTFrame.java#1 $
11 */
12
13import java.awt.BorderLayout;
14import java.awt.Container;
15import java.awt.Frame;
16import java.awt.event.WindowAdapter;
17import java.awt.event.WindowEvent;
18
19import javax.swing.JFrame;
20import javax.swing.JPanel;
21import javax.swing.JScrollPane;
22import javax.swing.JTree;
23import javax.swing.event.TreeModelListener;
24import javax.swing.event.TreeSelectionListener;
25import javax.swing.tree.TreeModel;
26import javax.swing.tree.TreePath;
27
28import antlr.collections.AST;
29
30public class ASTFrame extends JFrame {
31
32 public static class JTreeASTPanel extends JPanel {
33 JTree tree;
34
35 public JTreeASTPanel(TreeModel tm, TreeSelectionListener listener) {
36 // use a layout that will stretch tree to panel size
37 setLayout(new BorderLayout());
38
39 // Create tree
40 tree = new JTree(tm);
41
42 // Change line style
43 tree.putClientProperty("JTree.lineStyle", "Angled");
44
45 // Add TreeSelectionListener
46 if (listener != null)
47 tree.addTreeSelectionListener(listener);
48
49 // Put tree in a scrollable pane's viewport
50 JScrollPane sp = new JScrollPane();
51 sp.getViewport().add(tree);
52
53 add(sp, BorderLayout.CENTER);
54 }
55 }
56
57 public static class JTreeASTModel implements TreeModel {
58
59 private class Node {
60 AST master;
61
62 /**
63 * @param master
64 */
65 public Node(AST master) {
66 super();
67 this.master = master;
68 }
69
70 public String toString() {
71 return "["+tokenNames[master.getType()]+" "+master.getLine()+":"+master.getColumn()+"] "+ master.getText();
72 }
73
74 public int hashCode() {
75 return master.hashCode();
76 }
77
78 public boolean equals(Object obj) {
79 return obj instanceof Node && master.equals(((Node) obj).master);
80 }
81 }
82
83 AST root = null;
84 private String[] tokenNames;
85
86 public JTreeASTModel(AST t, String[] tokenNames) {
87 if (t == null) {
88 throw new IllegalArgumentException("root is null");
89 }
90 root = t;
91 this.tokenNames=tokenNames;
92 }
93
94 public void addTreeModelListener(TreeModelListener l) {
95 }
96
97 public Object getChild(Object parent, int index) {
98 if (parent == null) {
99 return null;
100 }
101 AST p = ((Node) parent).master;
102 AST c = p.getFirstChild();
103 if (c == null) {
104 throw new ArrayIndexOutOfBoundsException("node has no children");
105 }
106 int i = 0;
107 while (c != null && i < index) {
108 c = c.getNextSibling();
109 i++;
110 }
111
112 return new Node(c);
113 }
114
115 public int getChildCount(Object parent) {
116 if (parent == null) {
117 throw new IllegalArgumentException("root is null");
118 }
119 AST p = ((Node)parent).master;
120 AST c = p.getFirstChild();
121 int i = 0;
122 while (c != null) {
123 c = c.getNextSibling();
124 i++;
125 }
126 return i;
127 }
128
129 public int getIndexOfChild(Object parent, Object child) {
130 if (parent == null || child == null) {
131 throw new IllegalArgumentException("root or child is null");
132 }
133 AST p = ((Node) parent).master;
134 AST c = p.getFirstChild();
135 if (c == null) {
136 throw new ArrayIndexOutOfBoundsException("node has no children");
137 }
138 int i = 0;
139 while (c != null && c != ((Node) child).master) {
140 c = c.getNextSibling();
141 i++;
142 }
143 if (c == ((Node) child).master) {
144 return i;
145 }
146 throw new java.util.NoSuchElementException("node is not a child");
147 }
148
149 public Object getRoot() {
150 return new Node(root);
151 }
152
153 public boolean isLeaf(Object node) {
154 if (node == null) {
155 throw new IllegalArgumentException("node is null");
156 }
157 AST t = ((Node) node).master;
158 return t.getFirstChild() == null;
159 }
160
161 public void removeTreeModelListener(TreeModelListener l) {
162 }
163
164 public void valueForPathChanged(TreePath path, Object newValue) {
165 System.out.println("heh, who is calling this mystery method?");
166 }
167 }
168
169 // The initial width and height of the frame
170 static final int FRAME_WIDTH = 400;
171 static final int FRAME_HEIGHT = 600;
172
173 public ASTFrame(String lab, AST r, String[] tokenNames) {
174 super(lab);
175
176 JTreeASTPanel tp = new JTreeASTPanel(new JTreeASTModel(r, tokenNames), null);
177 Container content = getContentPane();
178 content.add(tp, BorderLayout.CENTER);
179 addWindowListener(new WindowAdapter() {
180 public void windowClosing(WindowEvent e) {
181 Frame f = (Frame)e.getSource();
182 f.setVisible(false);
183 f.dispose();
184 // System.exit(0);
185 }
186 });
187 setSize(FRAME_WIDTH, FRAME_HEIGHT);
188 }
189}
190