home *** CD-ROM | disk | FTP | other *** search
/ Computer Shopper 144 / DPCS0200.iso / Internet / Supanet / system / swing.jar / javax / swing / plaf / metal / MetalFileChooserUI$DirectoryComboBoxModel.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-11-05  |  2.7 KB  |  103 lines

  1. package javax.swing.plaf.metal;
  2.  
  3. import java.io.File;
  4. import java.io.IOException;
  5. import java.util.Vector;
  6. import javax.swing.AbstractListModel;
  7. import javax.swing.ComboBoxModel;
  8. import javax.swing.plaf.basic.BasicFileChooserUI;
  9.  
  10. public class MetalFileChooserUI$DirectoryComboBoxModel extends AbstractListModel implements ComboBoxModel {
  11.    // $FF: synthetic field
  12.    private final MetalFileChooserUI this$0;
  13.    Vector directories;
  14.    int topIndex;
  15.    int pathCount;
  16.    File selectedDirectory;
  17.  
  18.    public MetalFileChooserUI$DirectoryComboBoxModel(MetalFileChooserUI var1) {
  19.       this.this$0 = var1;
  20.       this.directories = new Vector();
  21.       this.topIndex = -1;
  22.       this.pathCount = 0;
  23.       this.selectedDirectory = null;
  24.       File[] var2 = ((BasicFileChooserUI)var1).getFileChooser().getFileSystemView().getRoots();
  25.  
  26.       for(int var3 = 0; var3 < var2.length; ++var3) {
  27.          this.directories.addElement(var2[var3]);
  28.       }
  29.  
  30.       this.addItem(((BasicFileChooserUI)var1).getFileChooser().getCurrentDirectory());
  31.    }
  32.  
  33.    // $FF: synthetic method
  34.    static void access$0(MetalFileChooserUI$DirectoryComboBoxModel var0, File var1) {
  35.       var0.addItem(var1);
  36.    }
  37.  
  38.    private void addItem(File var1) {
  39.       if (var1 != null) {
  40.          if (this.selectedDirectory != null) {
  41.             this.removeSelectedDirectory();
  42.          }
  43.  
  44.          File var2 = null;
  45.  
  46.          try {
  47.             var2 = this.this$0.getFileChooser().getFileSystemView().createFileObject(var1.getCanonicalPath());
  48.          } catch (IOException var6) {
  49.          }
  50.  
  51.          File var3 = var2;
  52.  
  53.          Vector var4;
  54.          for(var4 = new Vector(10); var3.getParent() != null; var3 = this.this$0.getFileChooser().getFileSystemView().createFileObject(var3.getParent())) {
  55.             var4.addElement(var3);
  56.             if (this.directories.contains(var3)) {
  57.                this.topIndex = this.directories.indexOf(var3);
  58.             }
  59.          }
  60.  
  61.          this.pathCount = var4.size();
  62.          if (this.topIndex < 0 && this.directories.contains(var3)) {
  63.             this.topIndex = this.directories.indexOf(var3);
  64.          }
  65.  
  66.          for(int var5 = 0; var5 < var4.size(); ++var5) {
  67.             this.directories.insertElementAt(var4.elementAt(var5), this.topIndex + 1);
  68.          }
  69.  
  70.          this.setSelectedItem(var2);
  71.       }
  72.    }
  73.  
  74.    public Object getElementAt(int var1) {
  75.       return this.directories.elementAt(var1);
  76.    }
  77.  
  78.    public Object getSelectedItem() {
  79.       return this.selectedDirectory;
  80.    }
  81.  
  82.    public int getSize() {
  83.       return this.directories.size();
  84.    }
  85.  
  86.    private void removeSelectedDirectory() {
  87.       if (this.topIndex >= 0) {
  88.          for(int var1 = this.topIndex; var1 < this.topIndex + this.pathCount; ++var1) {
  89.             this.directories.removeElementAt(this.topIndex + 1);
  90.          }
  91.       }
  92.  
  93.       this.topIndex = -1;
  94.       this.pathCount = 0;
  95.       this.selectedDirectory = null;
  96.    }
  97.  
  98.    public void setSelectedItem(Object var1) {
  99.       this.selectedDirectory = (File)var1;
  100.       ((AbstractListModel)this).fireContentsChanged(this, -1, -1);
  101.    }
  102. }
  103.