package org.herac.tuxguitar.gui.tools.browser.filesystem;
import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.herac.tuxguitar.gui.tools.browser.base.TGBrowser;
import org.herac.tuxguitar.gui.tools.browser.base.TGBrowserElement;
public class TGBrowserImpl extends TGBrowser {
private TGBrowserDataImpl data;
private TGBrowserElementImpl element;
private File root;
public TGBrowserImpl(TGBrowserDataImpl data) {
this.data = data;
}
public void cdElement(TGBrowserElement element) {
this.element = (TGBrowserElementImpl) element;
}
public void cdRoot() {
this.element = null;
}
public void cdUp() {
if (this.element != null) {
this.element = this.element.getParent();
}
}
public void close() {
this.root = null;
}
public List listElements() {
List elements = new ArrayList();
File file = ((this.element != null) ? this.element.getFile() : this.root);
if (file.exists() && file.isDirectory()) {
File[] files = file.listFiles();
for (int i = 0; i < files.length; i++) {
elements.add(new TGBrowserElementImpl(this.element, files[i]));
}
}
if (!elements.isEmpty()) {
Collections.sort(elements, new TGBrowserElementComparator());
}
return elements;
}
public void open() {
this.root = new File(this.data.getPath());
}
}