6
6
import java .awt .event .MouseEvent ;
7
7
import java .util .Objects ;
8
8
9
+ import javax .swing .JPopupMenu ;
9
10
import javax .swing .event .PopupMenuEvent ;
10
11
11
12
import org .fife .ui .rsyntaxtextarea .RSyntaxDocument ;
@@ -53,7 +54,6 @@ public final class CodeArea extends AbstractCodeArea {
53
54
boolean isJavaCode = node instanceof JClass ;
54
55
if (isJavaCode ) {
55
56
((RSyntaxDocument ) getDocument ()).setSyntaxStyle (new JadxTokenMaker (this ));
56
- addMenuItems ();
57
57
}
58
58
59
59
if (node instanceof JResource && node .makeString ().endsWith (".json" )) {
@@ -118,9 +118,18 @@ public void refresh() {
118
118
setText (getCodeInfo ().getCodeStr ());
119
119
}
120
120
121
- private void addMenuItems () {
121
+ @ Override
122
+ protected JPopupMenu createPopupMenu () {
123
+ JPopupMenu popup = super .createPopupMenu ();
124
+ if (node instanceof JClass ) {
125
+ appendCodeMenuItems (popup );
126
+ }
127
+ return popup ;
128
+ }
129
+
130
+ private void appendCodeMenuItems (JPopupMenu popupMenu ) {
122
131
ShortcutsController shortcutsController = getMainWindow ().getShortcutsController ();
123
- JNodePopupBuilder popup = new JNodePopupBuilder (this , getPopupMenu () , shortcutsController );
132
+ JNodePopupBuilder popup = new JNodePopupBuilder (this , popupMenu , shortcutsController );
124
133
popup .addSeparator ();
125
134
popup .add (new FindUsageAction (this ));
126
135
popup .add (new GoToDeclarationAction (this ));
@@ -133,7 +142,7 @@ private void addMenuItems() {
133
142
getMainWindow ().getWrapper ().getGuiPluginsContext ().appendPopupMenus (this , popup );
134
143
135
144
// move caret on mouse right button click
136
- popup . getMenu () .addPopupMenuListener (new DefaultPopupMenuListener () {
145
+ popupMenu .addPopupMenuListener (new DefaultPopupMenuListener () {
137
146
@ Override
138
147
public void popupMenuWillBecomeVisible (PopupMenuEvent e ) {
139
148
CodeArea codeArea = CodeArea .this ;
0 commit comments