public class javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel extends javax.swing.AbstractListModel implements javax.swing.ComboBoxModel
  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 942
            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 936
            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 937
            aload 0 /* this */
            aconst_null
            putfield javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.depths:[I
         3: .line 938
            aload 0 /* this */
            aconst_null
            putfield javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.selectedDirectory:Ljava/io/File;
         4: .line 939
            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 940
            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 945
            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 946
            aload 2 /* dir */
            ifnull 9
         8: .line 947
            aload 0 /* this */
            aload 2 /* dir */
            invokevirtual javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.addItem:(Ljava/io/File;)V
         9: .line 949
      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=11, args_size=2
        start local 0 // javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel this
        start local 1 // java.io.File directory
         0: .line 958
            aload 1 /* directory */
            ifnonnull 2
         1: .line 959
            return
         2: .line 962
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.directories:Ljava/util/Vector;
            invokevirtual java.util.Vector.clear:()V
         3: .line 964
            aload 0 /* this */
            getfield javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.this$0:Ljavax/swing/plaf/metal/MetalFileChooserUI;
            getfield javax.swing.plaf.metal.MetalFileChooserUI.useShellFolder:Z
            ifeq 5
         4: .line 965
            ldc "fileChooserComboBoxFolders"
            invokestatic sun.awt.shell.ShellFolder.get:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.io.File[]
            goto 6
         5: .line 966
      StackMap locals:
      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;
         6: .line 964
      StackMap locals:
      StackMap stack: java.io.File[]
            astore 2 /* baseFolders */
        start local 2 // java.io.File[] baseFolders
         7: .line 967
            aload 0 /* this */
            getfield javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.directories:Ljava/util/Vector;
            aload 2 /* baseFolders */
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokevirtual java.util.Vector.addAll:(Ljava/util/Collection;)Z
            pop
         8: .line 974
            aload 1 /* directory */
            invokestatic sun.awt.shell.ShellFolder.getNormalizedFile:(Ljava/io/File;)Ljava/io/File;
            astore 3 /* canonical */
        start local 3 // java.io.File canonical
         9: .line 975
            goto 12
        end local 3 // java.io.File canonical
      StackMap locals: javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel java.io.File java.io.File[]
      StackMap stack: java.io.IOException
        10: pop
        11: .line 977
            aload 1 /* directory */
            astore 3 /* canonical */
        start local 3 // java.io.File canonical
        12: .line 982
      StackMap locals: java.io.File
      StackMap stack:
            aload 0 /* this */
            getfield javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.this$0:Ljavax/swing/plaf/metal/MetalFileChooserUI;
            getfield javax.swing.plaf.metal.MetalFileChooserUI.useShellFolder:Z
            ifeq 13
            aload 3 /* canonical */
            invokestatic sun.awt.shell.ShellFolder.getShellFolder:(Ljava/io/File;)Lsun/awt/shell/ShellFolder;
            goto 14
        13: .line 983
      StackMap locals:
      StackMap stack:
            aload 3 /* canonical */
        14: .line 982
      StackMap locals:
      StackMap stack: java.io.File
            astore 4 /* sf */
        start local 4 // java.io.File sf
        15: .line 984
            aload 4 /* sf */
            astore 5 /* f */
        start local 5 // java.io.File f
        16: .line 985
            new java.util.Vector
            dup
            bipush 10
            invokespecial java.util.Vector.<init>:(I)V
            astore 6 /* path */
        start local 6 // java.util.Vector path
        17: .line 987
      StackMap locals: java.io.File java.io.File java.util.Vector
      StackMap stack:
            aload 6 /* path */
            aload 5 /* f */
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        18: .line 988
            aload 5 /* f */
            invokevirtual java.io.File.getParentFile:()Ljava/io/File;
            dup
            astore 5 /* f */
            ifnonnull 17
        19: .line 990
            aload 6 /* path */
            invokevirtual java.util.Vector.size:()I
            istore 7 /* pathCount */
        start local 7 // int pathCount
        20: .line 992
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        21: goto 32
        22: .line 993
      StackMap locals: int int
      StackMap stack:
            aload 6 /* path */
            iload 8 /* i */
            invokevirtual java.util.Vector.get:(I)Ljava/lang/Object;
            checkcast java.io.File
            astore 5 /* f */
        23: .line 994
            aload 0 /* this */
            getfield javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.directories:Ljava/util/Vector;
            aload 5 /* f */
            invokevirtual java.util.Vector.contains:(Ljava/lang/Object;)Z
            ifeq 31
        24: .line 995
            aload 0 /* this */
            getfield javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.directories:Ljava/util/Vector;
            aload 5 /* f */
            invokevirtual java.util.Vector.indexOf:(Ljava/lang/Object;)I
            istore 9 /* topIndex */
        start local 9 // int topIndex
        25: .line 996
            iload 8 /* i */
            iconst_1
            isub
            istore 10 /* j */
        start local 10 // int j
        26: goto 29
        27: .line 997
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.directories:Ljava/util/Vector;
            aload 6 /* path */
            iload 10 /* j */
            invokevirtual java.util.Vector.get:(I)Ljava/lang/Object;
            checkcast java.io.File
            iload 9 /* topIndex */
            iload 8 /* i */
            iadd
            iload 10 /* j */
            isub
            invokevirtual java.util.Vector.insertElementAt:(Ljava/lang/Object;I)V
        28: .line 996
            iinc 10 /* j */ -1
      StackMap locals:
      StackMap stack:
        29: iload 10 /* j */
            ifge 27
        end local 10 // int j
        30: .line 999
            goto 33
        end local 9 // int topIndex
        31: .line 992
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        32: iload 8 /* i */
            iload 7 /* pathCount */
            if_icmplt 22
        end local 8 // int i
        33: .line 1002
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.calculateDepths:()V
        34: .line 1003
            aload 0 /* this */
            aload 4 /* sf */
            invokevirtual javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.setSelectedItem:(Ljava/lang/Object;)V
        end local 7 // int pathCount
        end local 6 // java.util.Vector path
        end local 5 // java.io.File f
        end local 4 // java.io.File sf
        35: .line 1004
            goto 38
      StackMap locals: javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel java.io.File java.io.File[] java.io.File
      StackMap stack: java.io.FileNotFoundException
        36: pop
        37: .line 1005
            aload 0 /* this */
            invokevirtual javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.calculateDepths:()V
        38: .line 1007
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.io.File canonical
        end local 2 // java.io.File[] baseFolders
        end local 1 // java.io.File directory
        end local 0 // javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   39     0         this  Ljavax/swing/plaf/metal/MetalFileChooserUI$DirectoryComboBoxModel;
            0   39     1    directory  Ljava/io/File;
            7   39     2  baseFolders  [Ljava/io/File;
            9   10     3    canonical  Ljava/io/File;
           12   39     3    canonical  Ljava/io/File;
           15   35     4           sf  Ljava/io/File;
           16   35     5            f  Ljava/io/File;
           17   35     6         path  Ljava/util/Vector<Ljava/io/File;>;
           20   35     7    pathCount  I
           21   33     8            i  I
           25   31     9     topIndex  I
           26   30    10            j  I
      Exception table:
        from    to  target  type
           8     9      10  Class java.io.IOException
          12    35      36  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 1010
            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 1011
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         2: goto 15
         3: .line 1012
      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 1013
            aload 2 /* dir */
            invokevirtual java.io.File.getParentFile:()Ljava/io/File;
            astore 3 /* parent */
        start local 3 // java.io.File parent
         5: .line 1014
            aload 0 /* this */
            getfield javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.depths:[I
            iload 1 /* i */
            iconst_0
            iastore
         6: .line 1015
            aload 3 /* parent */
            ifnull 14
         7: .line 1016
            iload 1 /* i */
            iconst_1
            isub
            istore 4 /* j */
        start local 4 // int j
         8: goto 13
         9: .line 1017
      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 1018
            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 1019
            goto 14
        12: .line 1016
      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 1011
      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 1024
            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 1027
            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 1031
            aload 0 /* this */
            aload 1 /* selectedDirectory */
            checkcast java.io.File
            putfield javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.selectedDirectory:Ljava/io/File;
         1: .line 1032
            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 1033
            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 1036
            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 1040
            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 1044
            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  
}
SourceFile: "MetalFileChooserUI.java"
NestHost: javax.swing.plaf.metal.MetalFileChooserUI
InnerClasses:
  protected DirectoryComboBoxModel = javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel of javax.swing.plaf.metal.MetalFileChooserUI