class javafx.scene.control.TreeView$TreeViewFocusModel<T> extends javafx.scene.control.FocusModel<javafx.scene.control.TreeItem<T>>
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: javafx.scene.control.TreeView$TreeViewFocusModel
  super_class: javafx.scene.control.FocusModel
{
  private final javafx.scene.control.TreeView<T> treeView;
    descriptor: Ljavafx/scene/control/TreeView;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljavafx/scene/control/TreeView<TT;>;

  private final javafx.beans.value.ChangeListener<javafx.scene.control.TreeItem<T>> rootPropertyListener;
    descriptor: Ljavafx/beans/value/ChangeListener;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljavafx/beans/value/ChangeListener<Ljavafx/scene/control/TreeItem<TT;>;>;

  private final javafx.beans.value.WeakChangeListener<javafx.scene.control.TreeItem<T>> weakRootPropertyListener;
    descriptor: Ljavafx/beans/value/WeakChangeListener;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljavafx/beans/value/WeakChangeListener<Ljavafx/scene/control/TreeItem<TT;>;>;

  private final javafx.beans.InvalidationListener showRootListener;
    descriptor: Ljavafx/beans/InvalidationListener;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private javafx.event.EventHandler<javafx.scene.control.TreeItem$TreeModificationEvent<T>> treeItemListener;
    descriptor: Ljavafx/event/EventHandler;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljavafx/event/EventHandler<Ljavafx/scene/control/TreeItem$TreeModificationEvent<TT;>;>;

  private javafx.event.WeakEventHandler<javafx.scene.control.TreeItem$TreeModificationEvent<T>> weakTreeItemListener;
    descriptor: Ljavafx/event/WeakEventHandler;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljavafx/event/WeakEventHandler<Ljavafx/scene/control/TreeItem$TreeModificationEvent<TT;>;>;

  public void <init>(javafx.scene.control.TreeView<T>);
    descriptor: (Ljavafx/scene/control/TreeView;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // javafx.scene.control.TreeView$TreeViewFocusModel this
        start local 1 // javafx.scene.control.TreeView treeView
         0: .line 1594
            aload 0 /* this */
            invokespecial javafx.scene.control.FocusModel.<init>:()V
         1: .line 1616
            aload 0 /* this */
            aload 0 /* this */
            invokedynamic changed(Ljavafx/scene/control/TreeView$TreeViewFocusModel;)Ljavafx/beans/value/ChangeListener;
              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:
                  (Ljavafx/beans/value/ObservableValue;Ljava/lang/Object;Ljava/lang/Object;)V
                  javafx/scene/control/TreeView$TreeViewFocusModel.lambda$0(Ljavafx/beans/value/ObservableValue;Ljavafx/scene/control/TreeItem;Ljavafx/scene/control/TreeItem;)V (7)
                  (Ljavafx/beans/value/ObservableValue;Ljavafx/scene/control/TreeItem;Ljavafx/scene/control/TreeItem;)V
            putfield javafx.scene.control.TreeView$TreeViewFocusModel.rootPropertyListener:Ljavafx/beans/value/ChangeListener;
         2: .line 1620
            aload 0 /* this */
         3: .line 1621
            new javafx.beans.value.WeakChangeListener
            dup
            aload 0 /* this */
            getfield javafx.scene.control.TreeView$TreeViewFocusModel.rootPropertyListener:Ljavafx/beans/value/ChangeListener;
            invokespecial javafx.beans.value.WeakChangeListener.<init>:(Ljavafx/beans/value/ChangeListener;)V
            putfield javafx.scene.control.TreeView$TreeViewFocusModel.weakRootPropertyListener:Ljavafx/beans/value/WeakChangeListener;
         4: .line 1636
            aload 0 /* this */
            new javafx.scene.control.TreeView$TreeViewFocusModel$1
            dup
            aload 0 /* this */
            invokespecial javafx.scene.control.TreeView$TreeViewFocusModel$1.<init>:(Ljavafx/scene/control/TreeView$TreeViewFocusModel;)V
            putfield javafx.scene.control.TreeView$TreeViewFocusModel.treeItemListener:Ljavafx/event/EventHandler;
         5: .line 1595
            aload 0 /* this */
            aload 1 /* treeView */
            putfield javafx.scene.control.TreeView$TreeViewFocusModel.treeView:Ljavafx/scene/control/TreeView;
         6: .line 1596
            aload 0 /* this */
            getfield javafx.scene.control.TreeView$TreeViewFocusModel.treeView:Ljavafx/scene/control/TreeView;
            invokevirtual javafx.scene.control.TreeView.rootProperty:()Ljavafx/beans/property/ObjectProperty;
            aload 0 /* this */
            getfield javafx.scene.control.TreeView$TreeViewFocusModel.weakRootPropertyListener:Ljavafx/beans/value/WeakChangeListener;
            invokevirtual javafx.beans.property.ObjectProperty.addListener:(Ljavafx/beans/value/ChangeListener;)V
         7: .line 1597
            aload 0 /* this */
            aconst_null
            aload 1 /* treeView */
            invokevirtual javafx.scene.control.TreeView.getRoot:()Ljavafx/scene/control/TreeItem;
            invokevirtual javafx.scene.control.TreeView$TreeViewFocusModel.updateTreeEventListener:(Ljavafx/scene/control/TreeItem;Ljavafx/scene/control/TreeItem;)V
         8: .line 1599
            aload 1 /* treeView */
            invokevirtual javafx.scene.control.TreeView.getExpandedItemCount:()I
            ifle 10
         9: .line 1600
            aload 0 /* this */
            iconst_0
            invokevirtual javafx.scene.control.TreeView$TreeViewFocusModel.focus:(I)V
        10: .line 1603
      StackMap locals: javafx.scene.control.TreeView$TreeViewFocusModel javafx.scene.control.TreeView
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokedynamic invalidated(Ljavafx/scene/control/TreeView$TreeViewFocusModel;)Ljavafx/beans/InvalidationListener;
              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:
                  (Ljavafx/beans/Observable;)V
                  javafx/scene/control/TreeView$TreeViewFocusModel.lambda$1(Ljavafx/beans/Observable;)V (7)
                  (Ljavafx/beans/Observable;)V
            putfield javafx.scene.control.TreeView$TreeViewFocusModel.showRootListener:Ljavafx/beans/InvalidationListener;
        11: .line 1609
            aload 1 /* treeView */
            invokevirtual javafx.scene.control.TreeView.showRootProperty:()Ljavafx/beans/property/BooleanProperty;
            new javafx.beans.WeakInvalidationListener
            dup
            aload 0 /* this */
            getfield javafx.scene.control.TreeView$TreeViewFocusModel.showRootListener:Ljavafx/beans/InvalidationListener;
            invokespecial javafx.beans.WeakInvalidationListener.<init>:(Ljavafx/beans/InvalidationListener;)V
            invokevirtual javafx.beans.property.BooleanProperty.addListener:(Ljavafx/beans/InvalidationListener;)V
        12: .line 1611
            aload 0 /* this */
            invokevirtual javafx.scene.control.TreeView$TreeViewFocusModel.focusedIndexProperty:()Ljavafx/beans/property/ReadOnlyIntegerProperty;
            aload 1 /* treeView */
            invokedynamic invalidated(Ljavafx/scene/control/TreeView;)Ljavafx/beans/InvalidationListener;
              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:
                  (Ljavafx/beans/Observable;)V
                  javafx/scene/control/TreeView$TreeViewFocusModel.lambda$2(Ljavafx/scene/control/TreeView;Ljavafx/beans/Observable;)V (6)
                  (Ljavafx/beans/Observable;)V
            invokevirtual javafx.beans.property.ReadOnlyIntegerProperty.addListener:(Ljavafx/beans/InvalidationListener;)V
        13: .line 1614
            return
        end local 1 // javafx.scene.control.TreeView treeView
        end local 0 // javafx.scene.control.TreeView$TreeViewFocusModel this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   14     0      this  Ljavafx/scene/control/TreeView$TreeViewFocusModel<TT;>;
            0   14     1  treeView  Ljavafx/scene/control/TreeView<TT;>;
    Signature: (Ljavafx/scene/control/TreeView<TT;>;)V
    MethodParameters:
          Name  Flags
      treeView  final

  private void updateTreeEventListener(javafx.scene.control.TreeItem<T>, javafx.scene.control.TreeItem<T>);
    descriptor: (Ljavafx/scene/control/TreeItem;Ljavafx/scene/control/TreeItem;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // javafx.scene.control.TreeView$TreeViewFocusModel this
        start local 1 // javafx.scene.control.TreeItem oldRoot
        start local 2 // javafx.scene.control.TreeItem newRoot
         0: .line 1626
            aload 1 /* oldRoot */
            ifnull 2
            aload 0 /* this */
            getfield javafx.scene.control.TreeView$TreeViewFocusModel.weakTreeItemListener:Ljavafx/event/WeakEventHandler;
            ifnull 2
         1: .line 1627
            aload 1 /* oldRoot */
            invokestatic javafx.scene.control.TreeItem.expandedItemCountChangeEvent:()Ljavafx/event/EventType;
            aload 0 /* this */
            getfield javafx.scene.control.TreeView$TreeViewFocusModel.weakTreeItemListener:Ljavafx/event/WeakEventHandler;
            invokevirtual javafx.scene.control.TreeItem.removeEventHandler:(Ljavafx/event/EventType;Ljavafx/event/EventHandler;)V
         2: .line 1630
      StackMap locals:
      StackMap stack:
            aload 2 /* newRoot */
            ifnull 5
         3: .line 1631
            aload 0 /* this */
            new javafx.event.WeakEventHandler
            dup
            aload 0 /* this */
            getfield javafx.scene.control.TreeView$TreeViewFocusModel.treeItemListener:Ljavafx/event/EventHandler;
            invokespecial javafx.event.WeakEventHandler.<init>:(Ljavafx/event/EventHandler;)V
            putfield javafx.scene.control.TreeView$TreeViewFocusModel.weakTreeItemListener:Ljavafx/event/WeakEventHandler;
         4: .line 1632
            aload 2 /* newRoot */
            invokestatic javafx.scene.control.TreeItem.expandedItemCountChangeEvent:()Ljavafx/event/EventType;
            aload 0 /* this */
            getfield javafx.scene.control.TreeView$TreeViewFocusModel.weakTreeItemListener:Ljavafx/event/WeakEventHandler;
            invokevirtual javafx.scene.control.TreeItem.addEventHandler:(Ljavafx/event/EventType;Ljavafx/event/EventHandler;)V
         5: .line 1634
      StackMap locals:
      StackMap stack:
            return
        end local 2 // javafx.scene.control.TreeItem newRoot
        end local 1 // javafx.scene.control.TreeItem oldRoot
        end local 0 // javafx.scene.control.TreeView$TreeViewFocusModel this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Ljavafx/scene/control/TreeView$TreeViewFocusModel<TT;>;
            0    6     1  oldRoot  Ljavafx/scene/control/TreeItem<TT;>;
            0    6     2  newRoot  Ljavafx/scene/control/TreeItem<TT;>;
    Signature: (Ljavafx/scene/control/TreeItem<TT;>;Ljavafx/scene/control/TreeItem<TT;>;)V
    MethodParameters:
         Name  Flags
      oldRoot  
      newRoot  

  protected int getItemCount();
    descriptor: ()I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javafx.scene.control.TreeView$TreeViewFocusModel this
         0: .line 1706
            aload 0 /* this */
            getfield javafx.scene.control.TreeView$TreeViewFocusModel.treeView:Ljavafx/scene/control/TreeView;
            ifnonnull 1
            iconst_m1
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield javafx.scene.control.TreeView$TreeViewFocusModel.treeView:Ljavafx/scene/control/TreeView;
            invokevirtual javafx.scene.control.TreeView.getExpandedItemCount:()I
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // javafx.scene.control.TreeView$TreeViewFocusModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljavafx/scene/control/TreeView$TreeViewFocusModel<TT;>;

  protected javafx.scene.control.TreeItem<T> getModelItem(int);
    descriptor: (I)Ljavafx/scene/control/TreeItem;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javafx.scene.control.TreeView$TreeViewFocusModel this
        start local 1 // int index
         0: .line 1710
            aload 0 /* this */
            getfield javafx.scene.control.TreeView$TreeViewFocusModel.treeView:Ljavafx/scene/control/TreeView;
            ifnonnull 1
            aconst_null
            areturn
         1: .line 1712
      StackMap locals:
      StackMap stack:
            iload 1 /* index */
            iflt 2
            iload 1 /* index */
            aload 0 /* this */
            getfield javafx.scene.control.TreeView$TreeViewFocusModel.treeView:Ljavafx/scene/control/TreeView;
            invokevirtual javafx.scene.control.TreeView.getExpandedItemCount:()I
            if_icmplt 3
      StackMap locals:
      StackMap stack:
         2: aconst_null
            areturn
         3: .line 1714
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javafx.scene.control.TreeView$TreeViewFocusModel.treeView:Ljavafx/scene/control/TreeView;
            iload 1 /* index */
            invokevirtual javafx.scene.control.TreeView.getTreeItem:(I)Ljavafx/scene/control/TreeItem;
            areturn
        end local 1 // int index
        end local 0 // javafx.scene.control.TreeView$TreeViewFocusModel this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Ljavafx/scene/control/TreeView$TreeViewFocusModel<TT;>;
            0    4     1  index  I
    Signature: (I)Ljavafx/scene/control/TreeItem<TT;>;
    MethodParameters:
       Name  Flags
      index  

  public void focus(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javafx.scene.control.TreeView$TreeViewFocusModel this
        start local 1 // int index
         0: .line 1719
            aload 0 /* this */
            getfield javafx.scene.control.TreeView$TreeViewFocusModel.treeView:Ljavafx/scene/control/TreeView;
            getfield javafx.scene.control.TreeView.expandedItemCountDirty:Z
            ifeq 2
         1: .line 1720
            aload 0 /* this */
            getfield javafx.scene.control.TreeView$TreeViewFocusModel.treeView:Ljavafx/scene/control/TreeView;
            aload 0 /* this */
            getfield javafx.scene.control.TreeView$TreeViewFocusModel.treeView:Ljavafx/scene/control/TreeView;
            invokevirtual javafx.scene.control.TreeView.getRoot:()Ljavafx/scene/control/TreeItem;
            invokevirtual javafx.scene.control.TreeView.updateExpandedItemCount:(Ljavafx/scene/control/TreeItem;)V
         2: .line 1723
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* index */
            invokespecial javafx.scene.control.FocusModel.focus:(I)V
         3: .line 1724
            return
        end local 1 // int index
        end local 0 // javafx.scene.control.TreeView$TreeViewFocusModel this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Ljavafx/scene/control/TreeView$TreeViewFocusModel<TT;>;
            0    4     1  index  I
    MethodParameters:
       Name  Flags
      index  

  protected java.lang.Object getModelItem(int);
    descriptor: (I)Ljava/lang/Object;
    flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            iload 1
            invokevirtual javafx.scene.control.TreeView$TreeViewFocusModel.getModelItem:(I)Ljavafx/scene/control/TreeItem;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void lambda$0(javafx.beans.value.ObservableValue, javafx.scene.control.TreeItem, javafx.scene.control.TreeItem);
    descriptor: (Ljavafx/beans/value/ObservableValue;Ljavafx/scene/control/TreeItem;Ljavafx/scene/control/TreeItem;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // javafx.scene.control.TreeView$TreeViewFocusModel this
        start local 1 // javafx.beans.value.ObservableValue observable
        start local 2 // javafx.scene.control.TreeItem oldValue
        start local 3 // javafx.scene.control.TreeItem newValue
         0: .line 1617
            aload 0 /* this */
            aload 2 /* oldValue */
            aload 3 /* newValue */
            invokevirtual javafx.scene.control.TreeView$TreeViewFocusModel.updateTreeEventListener:(Ljavafx/scene/control/TreeItem;Ljavafx/scene/control/TreeItem;)V
         1: .line 1618
            return
        end local 3 // javafx.scene.control.TreeItem newValue
        end local 2 // javafx.scene.control.TreeItem oldValue
        end local 1 // javafx.beans.value.ObservableValue observable
        end local 0 // javafx.scene.control.TreeView$TreeViewFocusModel this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Ljavafx/scene/control/TreeView$TreeViewFocusModel<TT;>;
            0    2     1  observable  Ljavafx/beans/value/ObservableValue<+Ljavafx/scene/control/TreeItem<TT;>;>;
            0    2     2    oldValue  Ljavafx/scene/control/TreeItem<TT;>;
            0    2     3    newValue  Ljavafx/scene/control/TreeItem<TT;>;

  private void lambda$1(javafx.beans.Observable);
    descriptor: (Ljavafx/beans/Observable;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javafx.scene.control.TreeView$TreeViewFocusModel this
        start local 1 // javafx.beans.Observable obs
         0: .line 1604
            aload 0 /* this */
            iconst_0
            invokevirtual javafx.scene.control.TreeView$TreeViewFocusModel.isFocused:(I)Z
            ifeq 3
         1: .line 1605
            aload 0 /* this */
            iconst_m1
            invokevirtual javafx.scene.control.TreeView$TreeViewFocusModel.focus:(I)V
         2: .line 1606
            aload 0 /* this */
            iconst_0
            invokevirtual javafx.scene.control.TreeView$TreeViewFocusModel.focus:(I)V
         3: .line 1608
      StackMap locals:
      StackMap stack:
            return
        end local 1 // javafx.beans.Observable obs
        end local 0 // javafx.scene.control.TreeView$TreeViewFocusModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljavafx/scene/control/TreeView$TreeViewFocusModel<TT;>;
            0    4     1   obs  Ljavafx/beans/Observable;

  private static void lambda$2(javafx.scene.control.TreeView, javafx.beans.Observable);
    descriptor: (Ljavafx/scene/control/TreeView;Ljavafx/beans/Observable;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // javafx.beans.Observable o
         0: .line 1612
            aload 0
            getstatic javafx.scene.AccessibleAttribute.FOCUS_ITEM:Ljavafx/scene/AccessibleAttribute;
            invokevirtual javafx.scene.control.TreeView.notifyAccessibleAttributeChanged:(Ljavafx/scene/AccessibleAttribute;)V
         1: .line 1613
            return
        end local 1 // javafx.beans.Observable o
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     1     o  Ljavafx/beans/Observable;
}
Signature: <T:Ljava/lang/Object;>Ljavafx/scene/control/FocusModel<Ljavafx/scene/control/TreeItem<TT;>;>;
SourceFile: "TreeView.java"
NestHost: javafx.scene.control.TreeView
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  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