public class com.googlecode.lanterna.gui2.menu.Menu extends com.googlecode.lanterna.gui2.menu.MenuItem
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.googlecode.lanterna.gui2.menu.Menu
super_class: com.googlecode.lanterna.gui2.menu.MenuItem
{
private final java.util.List<com.googlecode.lanterna.gui2.menu.MenuItem> subItems;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Lcom/googlecode/lanterna/gui2/menu/MenuItem;>;
public void <init>(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 // com.googlecode.lanterna.gui2.menu.Menu this
start local 1 // java.lang.String label
0: .line 45
aload 0 /* this */
aload 1 /* label */
invokespecial com.googlecode.lanterna.gui2.menu.MenuItem.<init>:(Ljava/lang/String;)V
1: .line 46
aload 0 /* this */
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield com.googlecode.lanterna.gui2.menu.Menu.subItems:Ljava/util/List;
2: .line 47
return
end local 1 // java.lang.String label
end local 0 // com.googlecode.lanterna.gui2.menu.Menu this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/googlecode/lanterna/gui2/menu/Menu;
0 3 1 label Ljava/lang/String;
MethodParameters:
Name Flags
label
public com.googlecode.lanterna.gui2.menu.Menu add(com.googlecode.lanterna.gui2.menu.MenuItem);
descriptor: (Lcom/googlecode/lanterna/gui2/menu/MenuItem;)Lcom/googlecode/lanterna/gui2/menu/Menu;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 // com.googlecode.lanterna.gui2.menu.Menu this
start local 1 // com.googlecode.lanterna.gui2.menu.MenuItem menuItem
0: .line 55
aload 0 /* this */
getfield com.googlecode.lanterna.gui2.menu.Menu.subItems:Ljava/util/List;
dup
astore 2
monitorenter
1: .line 56
aload 0 /* this */
getfield com.googlecode.lanterna.gui2.menu.Menu.subItems:Ljava/util/List;
aload 1 /* menuItem */
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
2: .line 55
aload 2
monitorexit
3: goto 6
StackMap locals: com.googlecode.lanterna.gui2.menu.Menu com.googlecode.lanterna.gui2.menu.MenuItem java.util.List
StackMap stack: java.lang.Throwable
4: aload 2
monitorexit
5: athrow
6: .line 58
StackMap locals:
StackMap stack:
aload 0 /* this */
areturn
end local 1 // com.googlecode.lanterna.gui2.menu.MenuItem menuItem
end local 0 // com.googlecode.lanterna.gui2.menu.Menu this
LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/googlecode/lanterna/gui2/menu/Menu;
0 7 1 menuItem Lcom/googlecode/lanterna/gui2/menu/MenuItem;
Exception table:
from to target type
1 3 4 any
4 5 4 any
MethodParameters:
Name Flags
menuItem
protected boolean onActivated();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=6, args_size=1
start local 0 // com.googlecode.lanterna.gui2.menu.Menu this
0: .line 63
iconst_1
istore 1 /* result */
start local 1 // boolean result
1: .line 64
aload 0 /* this */
getfield com.googlecode.lanterna.gui2.menu.Menu.subItems:Ljava/util/List;
invokeinterface java.util.List.isEmpty:()Z
ifeq 3
2: .line 65
iload 1 /* result */
ireturn
3: .line 67
StackMap locals: int
StackMap stack:
new com.googlecode.lanterna.gui2.MenuPopupWindow
dup
aload 0 /* this */
invokespecial com.googlecode.lanterna.gui2.MenuPopupWindow.<init>:(Lcom/googlecode/lanterna/gui2/Component;)V
astore 2 /* popupMenu */
start local 2 // com.googlecode.lanterna.gui2.MenuPopupWindow popupMenu
4: .line 68
new java.util.concurrent.atomic.AtomicBoolean
dup
iconst_0
invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:(Z)V
astore 3 /* popupCancelled */
start local 3 // java.util.concurrent.atomic.AtomicBoolean popupCancelled
5: .line 69
aload 0 /* this */
getfield com.googlecode.lanterna.gui2.menu.Menu.subItems:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 8
StackMap locals: com.googlecode.lanterna.gui2.menu.Menu int com.googlecode.lanterna.gui2.MenuPopupWindow java.util.concurrent.atomic.AtomicBoolean top java.util.Iterator
StackMap stack:
6: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.googlecode.lanterna.gui2.menu.MenuItem
astore 4 /* menuItem */
start local 4 // com.googlecode.lanterna.gui2.menu.MenuItem menuItem
7: .line 70
aload 2 /* popupMenu */
aload 4 /* menuItem */
invokevirtual com.googlecode.lanterna.gui2.MenuPopupWindow.addMenuItem:(Lcom/googlecode/lanterna/gui2/menu/MenuItem;)V
end local 4 // com.googlecode.lanterna.gui2.menu.MenuItem menuItem
8: .line 69
StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
9: .line 72
aload 0 /* this */
invokevirtual com.googlecode.lanterna.gui2.menu.Menu.getParent:()Lcom/googlecode/lanterna/gui2/Container;
instanceof com.googlecode.lanterna.gui2.menu.MenuBar
ifeq 12
10: .line 73
aload 0 /* this */
invokevirtual com.googlecode.lanterna.gui2.menu.Menu.getParent:()Lcom/googlecode/lanterna/gui2/Container;
checkcast com.googlecode.lanterna.gui2.menu.MenuBar
astore 4 /* menuBar */
start local 4 // com.googlecode.lanterna.gui2.menu.MenuBar menuBar
11: .line 74
aload 2 /* popupMenu */
new com.googlecode.lanterna.gui2.menu.Menu$1
dup
aload 0 /* this */
aload 4 /* menuBar */
aload 2 /* popupMenu */
invokespecial com.googlecode.lanterna.gui2.menu.Menu$1.<init>:(Lcom/googlecode/lanterna/gui2/menu/Menu;Lcom/googlecode/lanterna/gui2/menu/MenuBar;Lcom/googlecode/lanterna/gui2/MenuPopupWindow;)V
invokevirtual com.googlecode.lanterna.gui2.MenuPopupWindow.addWindowListener:(Lcom/googlecode/lanterna/gui2/WindowListener;)V
end local 4 // com.googlecode.lanterna.gui2.menu.MenuBar menuBar
12: .line 97
StackMap locals: com.googlecode.lanterna.gui2.menu.Menu int com.googlecode.lanterna.gui2.MenuPopupWindow java.util.concurrent.atomic.AtomicBoolean
StackMap stack:
aload 2 /* popupMenu */
new com.googlecode.lanterna.gui2.menu.Menu$2
dup
aload 0 /* this */
aload 3 /* popupCancelled */
aload 2 /* popupMenu */
invokespecial com.googlecode.lanterna.gui2.menu.Menu$2.<init>:(Lcom/googlecode/lanterna/gui2/menu/Menu;Ljava/util/concurrent/atomic/AtomicBoolean;Lcom/googlecode/lanterna/gui2/MenuPopupWindow;)V
invokevirtual com.googlecode.lanterna.gui2.MenuPopupWindow.addWindowListener:(Lcom/googlecode/lanterna/gui2/WindowListener;)V
13: .line 106
aload 0 /* this */
invokevirtual com.googlecode.lanterna.gui2.menu.Menu.getTextGUI:()Lcom/googlecode/lanterna/gui2/TextGUI;
checkcast com.googlecode.lanterna.gui2.WindowBasedTextGUI
aload 2 /* popupMenu */
invokeinterface com.googlecode.lanterna.gui2.WindowBasedTextGUI.addWindowAndWait:(Lcom/googlecode/lanterna/gui2/Window;)Lcom/googlecode/lanterna/gui2/WindowBasedTextGUI;
pop
14: .line 107
aload 3 /* popupCancelled */
invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
ifeq 15
iconst_0
goto 16
StackMap locals:
StackMap stack:
15: iconst_1
StackMap locals:
StackMap stack: int
16: istore 1 /* result */
17: .line 109
iload 1 /* result */
ireturn
end local 3 // java.util.concurrent.atomic.AtomicBoolean popupCancelled
end local 2 // com.googlecode.lanterna.gui2.MenuPopupWindow popupMenu
end local 1 // boolean result
end local 0 // com.googlecode.lanterna.gui2.menu.Menu this
LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lcom/googlecode/lanterna/gui2/menu/Menu;
1 18 1 result Z
4 18 2 popupMenu Lcom/googlecode/lanterna/gui2/MenuPopupWindow;
5 18 3 popupCancelled Ljava/util/concurrent/atomic/AtomicBoolean;
7 8 4 menuItem Lcom/googlecode/lanterna/gui2/menu/MenuItem;
11 12 4 menuBar Lcom/googlecode/lanterna/gui2/menu/MenuBar;
}
SourceFile: "Menu.java"
NestMembers:
com.googlecode.lanterna.gui2.menu.Menu$1 com.googlecode.lanterna.gui2.menu.Menu$2
InnerClasses:
com.googlecode.lanterna.gui2.menu.Menu$1
com.googlecode.lanterna.gui2.menu.Menu$2