class javafx.scene.control.TreeView$TreeViewFocusModel$1 implements javafx.event.EventHandler<javafx.scene.control.TreeItem$TreeModificationEvent<T>>
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: javafx.scene.control.TreeView$TreeViewFocusModel$1
  super_class: java.lang.Object
{
  final javafx.scene.control.TreeView$TreeViewFocusModel this$1;
    descriptor: Ljavafx/scene/control/TreeView$TreeViewFocusModel;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  void <init>(javafx.scene.control.TreeView$TreeViewFocusModel);
    descriptor: (Ljavafx/scene/control/TreeView$TreeViewFocusModel;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javafx.scene.control.TreeView$TreeViewFocusModel$1 this
         0: .line 1628
            aload 0 /* this */
            aload 1
            putfield javafx.scene.control.TreeView$TreeViewFocusModel$1.this$1:Ljavafx/scene/control/TreeView$TreeViewFocusModel;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // javafx.scene.control.TreeView$TreeViewFocusModel$1 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavafx/scene/control/TreeView$TreeViewFocusModel$1;
    MethodParameters:
        Name  Flags
      this$0  final

  public void handle(javafx.scene.control.TreeItem$TreeModificationEvent<T>);
    descriptor: (Ljavafx/scene/control/TreeItem$TreeModificationEvent;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // javafx.scene.control.TreeView$TreeViewFocusModel$1 this
        start local 1 // javafx.scene.control.TreeItem$TreeModificationEvent e
         0: .line 1632
            aload 0 /* this */
            getfield javafx.scene.control.TreeView$TreeViewFocusModel$1.this$1:Ljavafx/scene/control/TreeView$TreeViewFocusModel;
            invokevirtual javafx.scene.control.TreeView$TreeViewFocusModel.getFocusedIndex:()I
            iconst_m1
            if_icmpne 1
            return
         1: .line 1634
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javafx.scene.control.TreeView$TreeViewFocusModel$1.this$1:Ljavafx/scene/control/TreeView$TreeViewFocusModel;
            getfield javafx.scene.control.TreeView$TreeViewFocusModel.treeView:Ljavafx/scene/control/TreeView;
            aload 1 /* e */
            invokevirtual javafx.scene.control.TreeItem$TreeModificationEvent.getTreeItem:()Ljavafx/scene/control/TreeItem;
            invokevirtual javafx.scene.control.TreeView.getRow:(Ljavafx/scene/control/TreeItem;)I
            istore 2 /* row */
        start local 2 // int row
         2: .line 1636
            iconst_0
            istore 3 /* shift */
        start local 3 // int shift
         3: .line 1637
            aload 1 /* e */
            invokevirtual javafx.scene.control.TreeItem$TreeModificationEvent.getChange:()Ljavafx/collections/ListChangeListener$Change;
            ifnull 5
         4: .line 1638
            aload 1 /* e */
            invokevirtual javafx.scene.control.TreeItem$TreeModificationEvent.getChange:()Ljavafx/collections/ListChangeListener$Change;
            invokevirtual javafx.collections.ListChangeListener$Change.next:()Z
            pop
         5: .line 1642
      StackMap locals: int int
      StackMap stack:
            aload 1 /* e */
            invokevirtual javafx.scene.control.TreeItem$TreeModificationEvent.wasExpanded:()Z
            ifeq 9
         6: .line 1643
            iload 2 /* row */
            aload 0 /* this */
            getfield javafx.scene.control.TreeView$TreeViewFocusModel$1.this$1:Ljavafx/scene/control/TreeView$TreeViewFocusModel;
            invokevirtual javafx.scene.control.TreeView$TreeViewFocusModel.getFocusedIndex:()I
            if_icmpge 39
         7: .line 1645
            iload 3 /* shift */
            aload 1 /* e */
            invokevirtual javafx.scene.control.TreeItem$TreeModificationEvent.getTreeItem:()Ljavafx/scene/control/TreeItem;
            iconst_0
            invokevirtual javafx.scene.control.TreeItem.getExpandedDescendentCount:(Z)I
            iconst_1
            isub
            iadd
            istore 3 /* shift */
         8: .line 1647
            goto 39
      StackMap locals:
      StackMap stack:
         9: aload 1 /* e */
            invokevirtual javafx.scene.control.TreeItem$TreeModificationEvent.wasCollapsed:()Z
            ifeq 13
        10: .line 1648
            iload 2 /* row */
            aload 0 /* this */
            getfield javafx.scene.control.TreeView$TreeViewFocusModel$1.this$1:Ljavafx/scene/control/TreeView$TreeViewFocusModel;
            invokevirtual javafx.scene.control.TreeView$TreeViewFocusModel.getFocusedIndex:()I
            if_icmpge 39
        11: .line 1651
            iload 3 /* shift */
            aload 1 /* e */
            invokevirtual javafx.scene.control.TreeItem$TreeModificationEvent.getTreeItem:()Ljavafx/scene/control/TreeItem;
            getfield javafx.scene.control.TreeItem.previousExpandedDescendentCount:I
            ineg
            iconst_1
            iadd
            iadd
            istore 3 /* shift */
        12: .line 1653
            goto 39
      StackMap locals:
      StackMap stack:
        13: aload 1 /* e */
            invokevirtual javafx.scene.control.TreeItem$TreeModificationEvent.wasAdded:()Z
            ifeq 25
        14: .line 1656
            aload 1 /* e */
            invokevirtual javafx.scene.control.TreeItem$TreeModificationEvent.getTreeItem:()Ljavafx/scene/control/TreeItem;
            astore 4 /* eventTreeItem */
        start local 4 // javafx.scene.control.TreeItem eventTreeItem
        15: .line 1657
            aload 4 /* eventTreeItem */
            invokevirtual javafx.scene.control.TreeItem.isExpanded:()Z
            ifeq 39
        16: .line 1658
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        17: goto 23
        18: .line 1660
      StackMap locals: javafx.scene.control.TreeItem int
      StackMap stack:
            aload 1 /* e */
            invokevirtual javafx.scene.control.TreeItem$TreeModificationEvent.getAddedChildren:()Ljava/util/List;
            iload 5 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast javafx.scene.control.TreeItem
            astore 6 /* item */
        start local 6 // javafx.scene.control.TreeItem item
        19: .line 1661
            aload 0 /* this */
            getfield javafx.scene.control.TreeView$TreeViewFocusModel$1.this$1:Ljavafx/scene/control/TreeView$TreeViewFocusModel;
            getfield javafx.scene.control.TreeView$TreeViewFocusModel.treeView:Ljavafx/scene/control/TreeView;
            aload 6 /* item */
            invokevirtual javafx.scene.control.TreeView.getRow:(Ljavafx/scene/control/TreeItem;)I
            istore 2 /* row */
        20: .line 1663
            aload 6 /* item */
            ifnull 22
            iload 2 /* row */
            iload 3 /* shift */
            aload 0 /* this */
            getfield javafx.scene.control.TreeView$TreeViewFocusModel$1.this$1:Ljavafx/scene/control/TreeView$TreeViewFocusModel;
            invokevirtual javafx.scene.control.TreeView$TreeViewFocusModel.getFocusedIndex:()I
            iadd
            if_icmpgt 22
        21: .line 1664
            iload 3 /* shift */
            aload 6 /* item */
            iconst_0
            invokevirtual javafx.scene.control.TreeItem.getExpandedDescendentCount:(Z)I
            iadd
            istore 3 /* shift */
        end local 6 // javafx.scene.control.TreeItem item
        22: .line 1658
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        23: iload 5 /* i */
            aload 1 /* e */
            invokevirtual javafx.scene.control.TreeItem$TreeModificationEvent.getAddedChildren:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmplt 18
        end local 5 // int i
        end local 4 // javafx.scene.control.TreeItem eventTreeItem
        24: .line 1668
            goto 39
      StackMap locals:
      StackMap stack:
        25: aload 1 /* e */
            invokevirtual javafx.scene.control.TreeItem$TreeModificationEvent.wasRemoved:()Z
            ifeq 39
        26: .line 1669
            iload 2 /* row */
            aload 1 /* e */
            invokevirtual javafx.scene.control.TreeItem$TreeModificationEvent.getFrom:()I
            iconst_1
            iadd
            iadd
            istore 2 /* row */
        27: .line 1671
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        28: goto 34
        29: .line 1672
      StackMap locals: int
      StackMap stack:
            aload 1 /* e */
            invokevirtual javafx.scene.control.TreeItem$TreeModificationEvent.getRemovedChildren:()Ljava/util/List;
            iload 4 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast javafx.scene.control.TreeItem
            astore 5 /* item */
        start local 5 // javafx.scene.control.TreeItem item
        30: .line 1673
            aload 5 /* item */
            ifnull 33
            aload 5 /* item */
            aload 0 /* this */
            getfield javafx.scene.control.TreeView$TreeViewFocusModel$1.this$1:Ljavafx/scene/control/TreeView$TreeViewFocusModel;
            invokevirtual javafx.scene.control.TreeView$TreeViewFocusModel.getFocusedItem:()Ljava/lang/Object;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 33
        31: .line 1674
            aload 0 /* this */
            getfield javafx.scene.control.TreeView$TreeViewFocusModel$1.this$1:Ljavafx/scene/control/TreeView$TreeViewFocusModel;
            iconst_0
            aload 0 /* this */
            getfield javafx.scene.control.TreeView$TreeViewFocusModel$1.this$1:Ljavafx/scene/control/TreeView$TreeViewFocusModel;
            invokevirtual javafx.scene.control.TreeView$TreeViewFocusModel.getFocusedIndex:()I
            iconst_1
            isub
            invokestatic java.lang.Math.max:(II)I
            invokevirtual javafx.scene.control.TreeView$TreeViewFocusModel.focus:(I)V
        32: .line 1675
            return
        end local 5 // javafx.scene.control.TreeItem item
        33: .line 1671
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        34: iload 4 /* i */
            aload 1 /* e */
            invokevirtual javafx.scene.control.TreeItem$TreeModificationEvent.getRemovedChildren:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmplt 29
        end local 4 // int i
        35: .line 1679
            iload 2 /* row */
            aload 0 /* this */
            getfield javafx.scene.control.TreeView$TreeViewFocusModel$1.this$1:Ljavafx/scene/control/TreeView$TreeViewFocusModel;
            invokevirtual javafx.scene.control.TreeView$TreeViewFocusModel.getFocusedIndex:()I
            if_icmpgt 39
        36: .line 1681
            iload 3 /* shift */
            aload 1 /* e */
            invokevirtual javafx.scene.control.TreeItem$TreeModificationEvent.getTreeItem:()Ljavafx/scene/control/TreeItem;
            invokevirtual javafx.scene.control.TreeItem.isExpanded:()Z
            ifeq 37
            aload 1 /* e */
            invokevirtual javafx.scene.control.TreeItem$TreeModificationEvent.getRemovedSize:()I
            ineg
            goto 38
      StackMap locals: javafx.scene.control.TreeView$TreeViewFocusModel$1 javafx.scene.control.TreeItem$TreeModificationEvent int int
      StackMap stack: int
        37: iconst_0
      StackMap locals: javafx.scene.control.TreeView$TreeViewFocusModel$1 javafx.scene.control.TreeItem$TreeModificationEvent int int
      StackMap stack: int int
        38: iadd
            istore 3 /* shift */
        39: .line 1684
      StackMap locals:
      StackMap stack:
            aload 1 /* e */
            invokevirtual javafx.scene.control.TreeItem$TreeModificationEvent.getChange:()Ljavafx/collections/ListChangeListener$Change;
            ifnull 40
            aload 1 /* e */
            invokevirtual javafx.scene.control.TreeItem$TreeModificationEvent.getChange:()Ljavafx/collections/ListChangeListener$Change;
            invokevirtual javafx.collections.ListChangeListener$Change.next:()Z
            ifne 5
        40: .line 1686
      StackMap locals:
      StackMap stack:
            iload 3 /* shift */
            ifeq 44
        41: .line 1687
            aload 0 /* this */
            getfield javafx.scene.control.TreeView$TreeViewFocusModel$1.this$1:Ljavafx/scene/control/TreeView$TreeViewFocusModel;
            invokevirtual javafx.scene.control.TreeView$TreeViewFocusModel.getFocusedIndex:()I
            iload 3 /* shift */
            iadd
            istore 4 /* newFocus */
        start local 4 // int newFocus
        42: .line 1688
            iload 4 /* newFocus */
            iflt 44
        43: .line 1689
            aload 0 /* this */
            iload 4 /* newFocus */
            invokedynamic run(Ljavafx/scene/control/TreeView$TreeViewFocusModel$1;I)Ljava/lang/Runnable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()V
                  javafx/scene/control/TreeView$TreeViewFocusModel$1.lambda$0(I)V (7)
                  ()V
            invokestatic javafx.application.Platform.runLater:(Ljava/lang/Runnable;)V
        end local 4 // int newFocus
        44: .line 1692
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int shift
        end local 2 // int row
        end local 1 // javafx.scene.control.TreeItem$TreeModificationEvent e
        end local 0 // javafx.scene.control.TreeView$TreeViewFocusModel$1 this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   45     0           this  Ljavafx/scene/control/TreeView$TreeViewFocusModel$1;
            0   45     1              e  Ljavafx/scene/control/TreeItem$TreeModificationEvent<TT;>;
            2   45     2            row  I
            3   45     3          shift  I
           15   24     4  eventTreeItem  Ljavafx/scene/control/TreeItem<TT;>;
           17   24     5              i  I
           19   22     6           item  Ljavafx/scene/control/TreeItem<TT;>;
           28   35     4              i  I
           30   33     5           item  Ljavafx/scene/control/TreeItem<TT;>;
           42   44     4       newFocus  I
    Signature: (Ljavafx/scene/control/TreeItem$TreeModificationEvent<TT;>;)V
    MethodParameters:
      Name  Flags
      e     

  public void handle(javafx.event.Event);
    descriptor: (Ljavafx/event/Event;)V
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast javafx.scene.control.TreeItem$TreeModificationEvent
            invokevirtual javafx.scene.control.TreeView$TreeViewFocusModel$1.handle:(Ljavafx/scene/control/TreeItem$TreeModificationEvent;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void lambda$0(int);
    descriptor: (I)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javafx.scene.control.TreeView$TreeViewFocusModel$1 this
         0: .line 1689
            aload 0 /* this */
            getfield javafx.scene.control.TreeView$TreeViewFocusModel$1.this$1:Ljavafx/scene/control/TreeView$TreeViewFocusModel;
            iload 1
            invokevirtual javafx.scene.control.TreeView$TreeViewFocusModel.focus:(I)V
            return
        end local 0 // javafx.scene.control.TreeView$TreeViewFocusModel$1 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavafx/scene/control/TreeView$TreeViewFocusModel$1;
}
Signature: Ljava/lang/Object;Ljavafx/event/EventHandler<Ljavafx/scene/control/TreeItem$TreeModificationEvent<TT;>;>;
SourceFile: "TreeView.java"
EnclosingMethod: javafx.scene.control.TreeView$TreeViewFocusModel
NestHost: javafx.scene.control.TreeView
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Change = javafx.collections.ListChangeListener$Change of javafx.collections.ListChangeListener
  public TreeModificationEvent = javafx.scene.control.TreeItem$TreeModificationEvent of javafx.scene.control.TreeItem
  TreeViewFocusModel = javafx.scene.control.TreeView$TreeViewFocusModel of javafx.scene.control.TreeView
  javafx.scene.control.TreeView$TreeViewFocusModel$1