public class javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel extends javax.swing.AbstractListModel<java.lang.Object> implements javax.swing.ComboBoxModel<java.lang.Object>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel
  super_class: javax.swing.AbstractListModel
{
  java.util.Vector<java.io.File> directories;
    descriptor: Ljava/util/Vector;
    flags: (0x0000) 
    Signature: Ljava/util/Vector<Ljava/io/File;>;

  int[] depths;
    descriptor: [I
    flags: (0x0000) 

  java.io.File selectedDirectory;
    descriptor: Ljava/io/File;
    flags: (0x0000) 

  javax.swing.JFileChooser chooser;
    descriptor: Ljavax/swing/JFileChooser;
    flags: (0x0000) 

  javax.swing.filechooser.FileSystemView fsv;
    descriptor: Ljavax/swing/filechooser/FileSystemView;
    flags: (0x0000) 

  final javax.swing.plaf.metal.MetalFileChooserUI this$0;
    descriptor: Ljavax/swing/plaf/metal/MetalFileChooserUI;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  public void <init>(javax.swing.plaf.metal.MetalFileChooserUI);
    descriptor: (Ljavax/swing/plaf/metal/MetalFileChooserUI;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel this
         0: .line 917
            aload 0 /* this */
            aload 1
            putfield javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.this$0:Ljavax/swing/plaf/metal/MetalFileChooserUI;
            aload 0 /* this */
            invokespecial javax.swing.AbstractListModel.<init>:()V
         1: .line 911
            aload 0 /* this */
            new java.util.Vector
            dup
            invokespecial java.util.Vector.<init>:()V
            putfield javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.directories:Ljava/util/Vector;
         2: .line 912
            aload 0 /* this */
            aconst_null
            putfield javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.depths:[I
         3: .line 913
            aload 0 /* this */
            aconst_null
            putfield javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.selectedDirectory:Ljava/io/File;
         4: .line 914
            aload 0 /* this */
            aload 1
            invokevirtual javax.swing.plaf.metal.MetalFileChooserUI.getFileChooser:()Ljavax/swing/JFileChooser;
            putfield javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.chooser:Ljavax/swing/JFileChooser;
         5: .line 915
            aload 0 /* this */
            aload 0 /* this */
            getfield javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.chooser:Ljavax/swing/JFileChooser;
            invokevirtual javax.swing.JFileChooser.getFileSystemView:()Ljavax/swing/filechooser/FileSystemView;
            putfield javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.fsv:Ljavax/swing/filechooser/FileSystemView;
         6: .line 920
            aload 1
            invokevirtual javax.swing.plaf.metal.MetalFileChooserUI.getFileChooser:()Ljavax/swing/JFileChooser;
            invokevirtual javax.swing.JFileChooser.getCurrentDirectory:()Ljava/io/File;
            astore 2 /* dir */
        start local 2 // java.io.File dir
         7: .line 921
            aload 2 /* dir */
            ifnull 9
         8: .line 922
            aload 0 /* this */
            aload 2 /* dir */
            invokevirtual javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.addItem:(Ljava/io/File;)V
         9: .line 924
      StackMap locals: javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel javax.swing.plaf.metal.MetalFileChooserUI java.io.File
      StackMap stack:
            return
        end local 2 // java.io.File dir
        end local 0 // javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Ljavax/swing/plaf/metal/MetalFileChooserUI$DirectoryComboBoxModel;
            7   10     2   dir  Ljava/io/File;
    MethodParameters:
        Name  Flags
      this$0  final

  private void addItem(java.io.File);
    descriptor: (Ljava/io/File;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=12, args_size=2
        start local 0 // javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel this
        start local 1 // java.io.File directory
         0: .line 933
            aload 1 /* directory */
            ifnonnull 2
         1: .line 934
            return
         2: .line 937
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.chooser:Ljavax/swing/JFileChooser;
            invokestatic sun.swing.FilePane.usesShellFolder:(Ljavax/swing/JFileChooser;)Z
            istore 2 /* useShellFolder */
        start local 2 // boolean useShellFolder
         3: .line 939
            aload 0 /* this */
            getfield javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.directories:Ljava/util/Vector;
            invokevirtual java.util.Vector.clear:()V
         4: .line 941
            iload 2 /* useShellFolder */
            ifeq 6
         5: .line 942
            ldc "fileChooserComboBoxFolders"
            invokestatic sun.awt.shell.ShellFolder.get:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.io.File[]
            goto 7
         6: .line 943
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.fsv:Ljavax/swing/filechooser/FileSystemView;
            invokevirtual javax.swing.filechooser.FileSystemView.getRoots:()[Ljava/io/File;
         7: .line 941
      StackMap locals:
      StackMap stack: java.io.File[]
            astore 3 /* baseFolders */
        start local 3 // java.io.File[] baseFolders
         8: .line 944
            aload 0 /* this */
            getfield javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.directories:Ljava/util/Vector;
            aload 3 /* baseFolders */
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokevirtual java.util.Vector.addAll:(Ljava/util/Collection;)Z
            pop
         9: .line 951
            aload 1 /* directory */
            invokestatic sun.awt.shell.ShellFolder.getNormalizedFile:(Ljava/io/File;)Ljava/io/File;
            astore 4 /* canonical */
        start local 4 // java.io.File canonical
        10: .line 952
            goto 13
        end local 4 // java.io.File canonical
      StackMap locals: javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel java.io.File int java.io.File[]
      StackMap stack: java.io.IOException
        11: pop
        12: .line 954
            aload 1 /* directory */
            astore 4 /* canonical */
        start local 4 // java.io.File canonical
        13: .line 959
      StackMap locals: java.io.File
      StackMap stack:
            iload 2 /* useShellFolder */
            ifeq 14
            aload 4 /* canonical */
            invokestatic sun.awt.shell.ShellFolder.getShellFolder:(Ljava/io/File;)Lsun/awt/shell/ShellFolder;
            goto 15
        14: .line 960
      StackMap locals:
      StackMap stack:
            aload 4 /* canonical */
        15: .line 959
      StackMap locals:
      StackMap stack: java.io.File
            astore 5 /* sf */
        start local 5 // java.io.File sf
        16: .line 961
            aload 5 /* sf */
            astore 6 /* f */
        start local 6 // java.io.File f
        17: .line 962
            new java.util.Vector
            dup
            bipush 10
            invokespecial java.util.Vector.<init>:(I)V
            astore 7 /* path */
        start local 7 // java.util.Vector path
        18: .line 964
      StackMap locals: java.io.File java.io.File java.util.Vector
      StackMap stack:
            aload 7 /* path */
            aload 6 /* f */
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        19: .line 965
            aload 6 /* f */
            invokevirtual java.io.File.getParentFile:()Ljava/io/File;
            dup
            astore 6 /* f */
            ifnonnull 18
        20: .line 967
            aload 7 /* path */
            invokevirtual java.util.Vector.size:()I
            istore 8 /* pathCount */
        start local 8 // int pathCount
        21: .line 969
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        22: goto 33
        23: .line 970
      StackMap locals: int int
      StackMap stack:
            aload 7 /* path */
            iload 9 /* i */
            invokevirtual java.util.Vector.get:(I)Ljava/lang/Object;
            checkcast java.io.File
            astore 6 /* f */
        24: .line 971
            aload 0 /* this */
            getfield javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.directories:Ljava/util/Vector;
            aload 6 /* f */
            invokevirtual java.util.Vector.contains:(Ljava/lang/Object;)Z
            ifeq 32
        25: .line 972
            aload 0 /* this */
            getfield javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.directories:Ljava/util/Vector;
            aload 6 /* f */
            invokevirtual java.util.Vector.indexOf:(Ljava/lang/Object;)I
            istore 10 /* topIndex */
        start local 10 // int topIndex
        26: .line 973
            iload 9 /* i */
            iconst_1
            isub
            istore 11 /* j */
        start local 11 // int j
        27: goto 30
        28: .line 974
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.directories:Ljava/util/Vector;
            aload 7 /* path */
            iload 11 /* j */
            invokevirtual java.util.Vector.get:(I)Ljava/lang/Object;
            checkcast java.io.File
            iload 10 /* topIndex */
            iload 9 /* i */
            iadd
            iload 11 /* j */
            isub
            invokevirtual java.util.Vector.insertElementAt:(Ljava/lang/Object;I)V
        29: .line 973
            iinc 11 /* j */ -1
      StackMap locals:
      StackMap stack:
        30: iload 11 /* j */
            ifge 28
        end local 11 // int j
        31: .line 976
            goto 34
        end local 10 // int topIndex
        32: .line 969
      StackMap locals:
      StackMap stack:
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        33: iload 9 /* i */
            iload 8 /* pathCount */
            if_icmplt 23
        end local 9 // int i
        34: .line 979
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.calculateDepths:()V
        35: .line 980
            aload 0 /* this */
            aload 5 /* sf */
            invokevirtual javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.setSelectedItem:(Ljava/lang/Object;)V
        end local 8 // int pathCount
        end local 7 // java.util.Vector path
        end local 6 // java.io.File f
        end local 5 // java.io.File sf
        36: .line 981
            goto 39
      StackMap locals: javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel java.io.File int java.io.File[] java.io.File
      StackMap stack: java.io.FileNotFoundException
        37: pop
        38: .line 982
            aload 0 /* this */
            invokevirtual javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.calculateDepths:()V
        39: .line 984
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.io.File canonical
        end local 3 // java.io.File[] baseFolders
        end local 2 // boolean useShellFolder
        end local 1 // java.io.File directory
        end local 0 // javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   40     0            this  Ljavax/swing/plaf/metal/MetalFileChooserUI$DirectoryComboBoxModel;
            0   40     1       directory  Ljava/io/File;
            3   40     2  useShellFolder  Z
            8   40     3     baseFolders  [Ljava/io/File;
           10   11     4       canonical  Ljava/io/File;
           13   40     4       canonical  Ljava/io/File;
           16   36     5              sf  Ljava/io/File;
           17   36     6               f  Ljava/io/File;
           18   36     7            path  Ljava/util/Vector<Ljava/io/File;>;
           21   36     8       pathCount  I
           22   34     9               i  I
           26   32    10        topIndex  I
           27   31    11               j  I
      Exception table:
        from    to  target  type
           9    10      11  Class java.io.IOException
          13    36      37  Class java.io.FileNotFoundException
    MethodParameters:
           Name  Flags
      directory  

  private void calculateDepths();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel this
         0: .line 987
            aload 0 /* this */
            aload 0 /* this */
            getfield javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.directories:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            newarray 10
            putfield javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.depths:[I
         1: .line 988
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         2: goto 15
         3: .line 989
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.directories:Ljava/util/Vector;
            iload 1 /* i */
            invokevirtual java.util.Vector.get:(I)Ljava/lang/Object;
            checkcast java.io.File
            astore 2 /* dir */
        start local 2 // java.io.File dir
         4: .line 990
            aload 2 /* dir */
            invokevirtual java.io.File.getParentFile:()Ljava/io/File;
            astore 3 /* parent */
        start local 3 // java.io.File parent
         5: .line 991
            aload 0 /* this */
            getfield javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.depths:[I
            iload 1 /* i */
            iconst_0
            iastore
         6: .line 992
            aload 3 /* parent */
            ifnull 14
         7: .line 993
            iload 1 /* i */
            iconst_1
            isub
            istore 4 /* j */
        start local 4 // int j
         8: goto 13
         9: .line 994
      StackMap locals: java.io.File java.io.File int
      StackMap stack:
            aload 3 /* parent */
            aload 0 /* this */
            getfield javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.directories:Ljava/util/Vector;
            iload 4 /* j */
            invokevirtual java.util.Vector.get:(I)Ljava/lang/Object;
            invokevirtual java.io.File.equals:(Ljava/lang/Object;)Z
            ifeq 12
        10: .line 995
            aload 0 /* this */
            getfield javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.depths:[I
            iload 1 /* i */
            aload 0 /* this */
            getfield javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.depths:[I
            iload 4 /* j */
            iaload
            iconst_1
            iadd
            iastore
        11: .line 996
            goto 14
        12: .line 993
      StackMap locals:
      StackMap stack:
            iinc 4 /* j */ -1
      StackMap locals:
      StackMap stack:
        13: iload 4 /* j */
            ifge 9
        end local 4 // int j
        end local 3 // java.io.File parent
        end local 2 // java.io.File dir
        14: .line 988
      StackMap locals:
      StackMap stack:
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 1 /* i */
            aload 0 /* this */
            getfield javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.depths:[I
            arraylength
            if_icmplt 3
        end local 1 // int i
        16: .line 1001
            return
        end local 0 // javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   17     0    this  Ljavax/swing/plaf/metal/MetalFileChooserUI$DirectoryComboBoxModel;
            2   16     1       i  I
            4   14     2     dir  Ljava/io/File;
            5   14     3  parent  Ljava/io/File;
            8   14     4       j  I

  public int getDepth(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel this
        start local 1 // int i
         0: .line 1004
            aload 0 /* this */
            getfield javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.depths:[I
            ifnull 1
            iload 1 /* i */
            iflt 1
            iload 1 /* i */
            aload 0 /* this */
            getfield javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.depths:[I
            arraylength
            if_icmpge 1
            aload 0 /* this */
            getfield javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.depths:[I
            iload 1 /* i */
            iaload
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // int i
        end local 0 // javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljavax/swing/plaf/metal/MetalFileChooserUI$DirectoryComboBoxModel;
            0    3     1     i  I
    MethodParameters:
      Name  Flags
      i     

  public void setSelectedItem(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel this
        start local 1 // java.lang.Object selectedDirectory
         0: .line 1008
            aload 0 /* this */
            aload 1 /* selectedDirectory */
            checkcast java.io.File
            putfield javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.selectedDirectory:Ljava/io/File;
         1: .line 1009
            aload 0 /* this */
            aload 0 /* this */
            iconst_m1
            iconst_m1
            invokevirtual javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.fireContentsChanged:(Ljava/lang/Object;II)V
         2: .line 1010
            return
        end local 1 // java.lang.Object selectedDirectory
        end local 0 // javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    3     0               this  Ljavax/swing/plaf/metal/MetalFileChooserUI$DirectoryComboBoxModel;
            0    3     1  selectedDirectory  Ljava/lang/Object;
    MethodParameters:
                   Name  Flags
      selectedDirectory  

  public java.lang.Object getSelectedItem();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel this
         0: .line 1013
            aload 0 /* this */
            getfield javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.selectedDirectory:Ljava/io/File;
            areturn
        end local 0 // javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/swing/plaf/metal/MetalFileChooserUI$DirectoryComboBoxModel;

  public int getSize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel this
         0: .line 1017
            aload 0 /* this */
            getfield javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.directories:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            ireturn
        end local 0 // javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/swing/plaf/metal/MetalFileChooserUI$DirectoryComboBoxModel;

  public java.lang.Object getElementAt(int);
    descriptor: (I)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel this
        start local 1 // int index
         0: .line 1021
            aload 0 /* this */
            getfield javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.directories:Ljava/util/Vector;
            iload 1 /* index */
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            areturn
        end local 1 // int index
        end local 0 // javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Ljavax/swing/plaf/metal/MetalFileChooserUI$DirectoryComboBoxModel;
            0    1     1  index  I
    MethodParameters:
       Name  Flags
      index  
}
Signature: Ljavax/swing/AbstractListModel<Ljava/lang/Object;>;Ljavax/swing/ComboBoxModel<Ljava/lang/Object;>;
SourceFile: "MetalFileChooserUI.java"
NestHost: javax.swing.plaf.metal.MetalFileChooserUI
InnerClasses:
  protected DirectoryComboBoxModel = javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel of javax.swing.plaf.metal.MetalFileChooserUI