1 package org.herac.tuxguitar.gui.tools.browser.filesystem; 2 3 import java.io.File; 4 import java.util.ArrayList; 5 import java.util.Collections; 6 import java.util.List; 7 8 import org.herac.tuxguitar.gui.tools.browser.base.TGBrowser; 9 import org.herac.tuxguitar.gui.tools.browser.base.TGBrowserElement; 10 11 public class TGBrowserImpl extends TGBrowser{ 12 13 private File root; 14 private TGBrowserElementImpl element; 15 private TGBrowserDataImpl data; 16 TGBrowserImpl(TGBrowserDataImpl data)17 public TGBrowserImpl(TGBrowserDataImpl data){ 18 this.data = data; 19 } 20 open()21 public void open(){ 22 this.root = new File(this.data.getPath()); 23 } 24 close()25 public void close(){ 26 this.root = null; 27 } 28 cdElement(TGBrowserElement element)29 public void cdElement(TGBrowserElement element) { 30 this.element = (TGBrowserElementImpl)element; 31 } 32 cdRoot()33 public void cdRoot() { 34 this.element = null; 35 } 36 cdUp()37 public void cdUp() { 38 if(this.element != null){ 39 this.element = this.element.getParent(); 40 } 41 } 42 listElements()43 public List listElements() { 44 List elements = new ArrayList(); 45 File file = ((this.element != null)?this.element.getFile():this.root); 46 if(file.exists() && file.isDirectory()){ 47 File[] files = file.listFiles(); 48 for(int i = 0; i < files.length;i ++){ 49 elements.add(new TGBrowserElementImpl(this.element,files[i])); 50 } 51 } 52 if( !elements.isEmpty() ){ 53 Collections.sort(elements,new TGBrowserElementComparator()); 54 } 55 return elements; 56 } 57 58 } 59