public abstract class javafx.scene.control.skin.VirtualContainerBase<C extends javafx.scene.control.Control, I extends javafx.scene.control.IndexedCell> extends javafx.scene.control.SkinBase<C>
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: javafx.scene.control.skin.VirtualContainerBase
  super_class: javafx.scene.control.SkinBase
{
  private boolean itemCountDirty;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private final javafx.scene.control.skin.VirtualFlow<I> flow;
    descriptor: Ljavafx/scene/control/skin/VirtualFlow;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljavafx/scene/control/skin/VirtualFlow<TI;>;

  private javafx.event.EventHandler<? super javafx.scene.control.ScrollToEvent<java.lang.Integer>> scrollToEventHandler;
    descriptor: Ljavafx/event/EventHandler;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljavafx/event/EventHandler<-Ljavafx/scene/control/ScrollToEvent<Ljava/lang/Integer;>;>;

  public void <init>();
    descriptor: (Ljavafx/scene/control/Control;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // javafx.scene.control.skin.VirtualContainerBase this
        start local 1 // javafx.scene.control.Control control
         0: .line 71
            aload 0 /* this */
            aload 1 /* control */
            invokespecial javafx.scene.control.SkinBase.<init>:(Ljavafx/scene/control/Control;)V
         1: .line 72
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual javafx.scene.control.skin.VirtualContainerBase.createVirtualFlow:()Ljavafx/scene/control/skin/VirtualFlow;
            putfield javafx.scene.control.skin.VirtualContainerBase.flow:Ljavafx/scene/control/skin/VirtualFlow;
         2: .line 74
            aload 0 /* this */
            aload 0 /* this */
            invokedynamic handle(Ljavafx/scene/control/skin/VirtualContainerBase;)Ljavafx/event/EventHandler;
              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/event/Event;)V
                  javafx/scene/control/skin/VirtualContainerBase.lambda$0(Ljavafx/scene/control/ScrollToEvent;)V (7)
                  (Ljavafx/scene/control/ScrollToEvent;)V
            putfield javafx.scene.control.skin.VirtualContainerBase.scrollToEventHandler:Ljavafx/event/EventHandler;
         3: .line 84
            aload 1 /* control */
            invokestatic javafx.scene.control.ScrollToEvent.scrollToTopIndex:()Ljavafx/event/EventType;
            aload 0 /* this */
            getfield javafx.scene.control.skin.VirtualContainerBase.scrollToEventHandler:Ljavafx/event/EventHandler;
            invokevirtual javafx.scene.control.Control.addEventHandler:(Ljavafx/event/EventType;Ljavafx/event/EventHandler;)V
         4: .line 85
            return
        end local 1 // javafx.scene.control.Control control
        end local 0 // javafx.scene.control.skin.VirtualContainerBase this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Ljavafx/scene/control/skin/VirtualContainerBase<TC;TI;>;
            0    5     1  control  TC;
    Signature: (TC;)V
    MethodParameters:
         Name  Flags
      control  final

  protected abstract int getItemCount();
    descriptor: ()I
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract void updateItemCount();
    descriptor: ()V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected javafx.scene.control.skin.VirtualFlow<I> createVirtualFlow();
    descriptor: ()Ljavafx/scene/control/skin/VirtualFlow;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javafx.scene.control.skin.VirtualContainerBase this
         0: .line 126
            new javafx.scene.control.skin.VirtualFlow
            dup
            invokespecial javafx.scene.control.skin.VirtualFlow.<init>:()V
            areturn
        end local 0 // javafx.scene.control.skin.VirtualContainerBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavafx/scene/control/skin/VirtualContainerBase<TC;TI;>;
    Signature: ()Ljavafx/scene/control/skin/VirtualFlow<TI;>;

  public void dispose();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // javafx.scene.control.skin.VirtualContainerBase this
         0: .line 135
            aload 0 /* this */
            invokevirtual javafx.scene.control.skin.VirtualContainerBase.getSkinnable:()Ljavafx/scene/control/Control;
            ifnonnull 1
            return
         1: .line 136
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual javafx.scene.control.skin.VirtualContainerBase.getSkinnable:()Ljavafx/scene/control/Control;
            invokestatic javafx.scene.control.ScrollToEvent.scrollToTopIndex:()Ljavafx/event/EventType;
            aload 0 /* this */
            getfield javafx.scene.control.skin.VirtualContainerBase.scrollToEventHandler:Ljavafx/event/EventHandler;
            invokevirtual javafx.scene.control.Control.removeEventHandler:(Ljavafx/event/EventType;Ljavafx/event/EventHandler;)V
         2: .line 137
            aload 0 /* this */
            invokespecial javafx.scene.control.SkinBase.dispose:()V
         3: .line 138
            return
        end local 0 // javafx.scene.control.skin.VirtualContainerBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljavafx/scene/control/skin/VirtualContainerBase<TC;TI;>;

  protected final javafx.scene.control.skin.VirtualFlow<I> getVirtualFlow();
    descriptor: ()Ljavafx/scene/control/skin/VirtualFlow;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javafx.scene.control.skin.VirtualContainerBase this
         0: .line 147
            aload 0 /* this */
            getfield javafx.scene.control.skin.VirtualContainerBase.flow:Ljavafx/scene/control/skin/VirtualFlow;
            areturn
        end local 0 // javafx.scene.control.skin.VirtualContainerBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavafx/scene/control/skin/VirtualContainerBase<TC;TI;>;
    Signature: ()Ljavafx/scene/control/skin/VirtualFlow<TI;>;

  protected final void markItemCountDirty();
    descriptor: ()V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javafx.scene.control.skin.VirtualContainerBase this
         0: .line 154
            aload 0 /* this */
            iconst_1
            putfield javafx.scene.control.skin.VirtualContainerBase.itemCountDirty:Z
         1: .line 155
            return
        end local 0 // javafx.scene.control.skin.VirtualContainerBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljavafx/scene/control/skin/VirtualContainerBase<TC;TI;>;

  protected void layoutChildren(double, double, double, double);
    descriptor: (DDDD)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=9, args_size=5
        start local 0 // javafx.scene.control.skin.VirtualContainerBase this
        start local 1 // double x
        start local 3 // double y
        start local 5 // double w
        start local 7 // double h
         0: .line 159
            aload 0 /* this */
            invokevirtual javafx.scene.control.skin.VirtualContainerBase.checkState:()V
         1: .line 160
            return
        end local 7 // double h
        end local 5 // double w
        end local 3 // double y
        end local 1 // double x
        end local 0 // javafx.scene.control.skin.VirtualContainerBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljavafx/scene/control/skin/VirtualContainerBase<TC;TI;>;
            0    2     1     x  D
            0    2     3     y  D
            0    2     5     w  D
            0    2     7     h  D
    MethodParameters:
      Name  Flags
      x     
      y     
      w     
      h     

  double getMaxCellWidth(int);
    descriptor: (I)D
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // javafx.scene.control.skin.VirtualContainerBase this
        start local 1 // int rowsToCount
         0: .line 169
            aload 0 /* this */
            invokevirtual javafx.scene.control.skin.VirtualContainerBase.snappedLeftInset:()D
            aload 0 /* this */
            getfield javafx.scene.control.skin.VirtualContainerBase.flow:Ljavafx/scene/control/skin/VirtualFlow;
            iload 1 /* rowsToCount */
            invokevirtual javafx.scene.control.skin.VirtualFlow.getMaxCellWidth:(I)D
            dadd
            aload 0 /* this */
            invokevirtual javafx.scene.control.skin.VirtualContainerBase.snappedRightInset:()D
            dadd
            dreturn
        end local 1 // int rowsToCount
        end local 0 // javafx.scene.control.skin.VirtualContainerBase this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Ljavafx/scene/control/skin/VirtualContainerBase<TC;TI;>;
            0    1     1  rowsToCount  I
    MethodParameters:
             Name  Flags
      rowsToCount  

  double getVirtualFlowPreferredHeight(int);
    descriptor: (I)D
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // javafx.scene.control.skin.VirtualContainerBase this
        start local 1 // int rows
         0: .line 173
            dconst_1
            dstore 2 /* height */
        start local 2 // double height
         1: .line 175
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         2: goto 5
         3: .line 176
      StackMap locals: double int
      StackMap stack:
            dload 2 /* height */
            aload 0 /* this */
            getfield javafx.scene.control.skin.VirtualContainerBase.flow:Ljavafx/scene/control/skin/VirtualFlow;
            iload 4 /* i */
            invokevirtual javafx.scene.control.skin.VirtualFlow.getCellLength:(I)D
            dadd
            dstore 2 /* height */
         4: .line 175
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 4 /* i */
            iload 1 /* rows */
            if_icmpge 6
            iload 4 /* i */
            aload 0 /* this */
            invokevirtual javafx.scene.control.skin.VirtualContainerBase.getItemCount:()I
            if_icmplt 3
        end local 4 // int i
         6: .line 179
      StackMap locals:
      StackMap stack:
            dload 2 /* height */
            aload 0 /* this */
            invokevirtual javafx.scene.control.skin.VirtualContainerBase.snappedTopInset:()D
            dadd
            aload 0 /* this */
            invokevirtual javafx.scene.control.skin.VirtualContainerBase.snappedBottomInset:()D
            dadd
            dreturn
        end local 2 // double height
        end local 1 // int rows
        end local 0 // javafx.scene.control.skin.VirtualContainerBase this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Ljavafx/scene/control/skin/VirtualContainerBase<TC;TI;>;
            0    7     1    rows  I
            1    7     2  height  D
            2    6     4       i  I
    MethodParameters:
      Name  Flags
      rows  

  void checkState();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javafx.scene.control.skin.VirtualContainerBase this
         0: .line 183
            aload 0 /* this */
            getfield javafx.scene.control.skin.VirtualContainerBase.itemCountDirty:Z
            ifeq 3
         1: .line 184
            aload 0 /* this */
            invokevirtual javafx.scene.control.skin.VirtualContainerBase.updateItemCount:()V
         2: .line 185
            aload 0 /* this */
            iconst_0
            putfield javafx.scene.control.skin.VirtualContainerBase.itemCountDirty:Z
         3: .line 187
      StackMap locals:
      StackMap stack:
            return
        end local 0 // javafx.scene.control.skin.VirtualContainerBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljavafx/scene/control/skin/VirtualContainerBase<TC;TI;>;

  void requestRebuildCells();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javafx.scene.control.skin.VirtualContainerBase this
         0: .line 190
            aload 0 /* this */
            getfield javafx.scene.control.skin.VirtualContainerBase.flow:Ljavafx/scene/control/skin/VirtualFlow;
            invokevirtual javafx.scene.control.skin.VirtualFlow.rebuildCells:()V
         1: .line 191
            return
        end local 0 // javafx.scene.control.skin.VirtualContainerBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljavafx/scene/control/skin/VirtualContainerBase<TC;TI;>;

  private void lambda$0(javafx.scene.control.ScrollToEvent);
    descriptor: (Ljavafx/scene/control/ScrollToEvent;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javafx.scene.control.skin.VirtualContainerBase this
        start local 1 // javafx.scene.control.ScrollToEvent event
         0: .line 77
            aload 0 /* this */
            getfield javafx.scene.control.skin.VirtualContainerBase.itemCountDirty:Z
            ifeq 3
         1: .line 79
            aload 0 /* this */
            invokevirtual javafx.scene.control.skin.VirtualContainerBase.updateItemCount:()V
         2: .line 80
            aload 0 /* this */
            iconst_0
            putfield javafx.scene.control.skin.VirtualContainerBase.itemCountDirty:Z
         3: .line 82
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javafx.scene.control.skin.VirtualContainerBase.flow:Ljavafx/scene/control/skin/VirtualFlow;
            aload 1 /* event */
            invokevirtual javafx.scene.control.ScrollToEvent.getScrollTarget:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            invokevirtual javafx.scene.control.skin.VirtualFlow.scrollToTop:(I)V
         4: .line 83
            return
        end local 1 // javafx.scene.control.ScrollToEvent event
        end local 0 // javafx.scene.control.skin.VirtualContainerBase this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Ljavafx/scene/control/skin/VirtualContainerBase<TC;TI;>;
            0    5     1  event  Ljavafx/scene/control/ScrollToEvent<Ljava/lang/Integer;>;
}
Signature: <C:Ljavafx/scene/control/Control;I:Ljavafx/scene/control/IndexedCell;>Ljavafx/scene/control/SkinBase<TC;>;
SourceFile: "VirtualContainerBase.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles