home *** CD-ROM | disk | FTP | other *** search
- package javax.swing.plaf.metal;
-
- import java.io.File;
- import java.io.IOException;
- import java.util.Vector;
- import javax.swing.AbstractListModel;
- import javax.swing.ComboBoxModel;
- import javax.swing.plaf.basic.BasicFileChooserUI;
-
- public class MetalFileChooserUI$DirectoryComboBoxModel extends AbstractListModel implements ComboBoxModel {
- Vector directories;
- int topIndex;
- int pathCount;
- File selectedDirectory;
- // $FF: synthetic field
- private final MetalFileChooserUI this$0;
-
- public MetalFileChooserUI$DirectoryComboBoxModel(MetalFileChooserUI var1) {
- this.this$0 = var1;
- this.directories = new Vector();
- this.topIndex = -1;
- this.pathCount = 0;
- this.selectedDirectory = null;
- File[] var2 = ((BasicFileChooserUI)var1).getFileChooser().getFileSystemView().getRoots();
-
- for(int var3 = 0; var3 < var2.length; ++var3) {
- this.directories.addElement(var2[var3]);
- }
-
- File var4 = ((BasicFileChooserUI)var1).getFileChooser().getCurrentDirectory();
- if (var4 != null) {
- this.addItem(var4);
- }
-
- }
-
- private void removeSelectedDirectory() {
- if (this.topIndex >= 0) {
- for(int var1 = this.topIndex; var1 < this.topIndex + this.pathCount; ++var1) {
- this.directories.removeElementAt(this.topIndex + 1);
- }
- }
-
- this.topIndex = -1;
- this.pathCount = 0;
- this.selectedDirectory = null;
- }
-
- private void addItem(File var1) {
- if (var1 != null) {
- if (this.selectedDirectory != null) {
- this.removeSelectedDirectory();
- }
-
- Object var2 = null;
-
- try {
- var7 = this.this$0.getFileChooser().getFileSystemView().createFileObject(var1.getCanonicalPath());
- } catch (IOException var6) {
- return;
- }
-
- File var3 = var7;
-
- Vector var4;
- for(var4 = new Vector(10); var3.getParent() != null; var3 = this.this$0.getFileChooser().getFileSystemView().createFileObject(var3.getParent())) {
- var4.addElement(var3);
- if (this.directories.contains(var3)) {
- this.topIndex = this.directories.indexOf(var3);
- }
- }
-
- this.pathCount = var4.size();
- if (this.topIndex < 0) {
- if (this.directories.contains(var3)) {
- this.topIndex = this.directories.indexOf(var3);
- } else {
- this.directories.addElement(var3);
- }
- }
-
- for(int var5 = 0; var5 < var4.size(); ++var5) {
- this.directories.insertElementAt(var4.elementAt(var5), this.topIndex + 1);
- }
-
- this.setSelectedItem(var7);
- }
- }
-
- public void setSelectedItem(Object var1) {
- this.selectedDirectory = (File)var1;
- ((AbstractListModel)this).fireContentsChanged(this, -1, -1);
- }
-
- public Object getSelectedItem() {
- return this.selectedDirectory;
- }
-
- public int getSize() {
- return this.directories.size();
- }
-
- public Object getElementAt(int var1) {
- return this.directories.elementAt(var1);
- }
-
- // $FF: synthetic method
- static void access$600(MetalFileChooserUI$DirectoryComboBoxModel var0, File var1) {
- var0.addItem(var1);
- }
- }
-