package se.runa.os;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Logger;
import javax.swing.tree.TreePath;
import se.runa.ui.FileTreeModel;
/**
*
* @author frebjo
*/
public class OSX extends OS {
private Logger logger = Logger.getLogger(getClass().getName());
@Override
public boolean showInFileTree(File file) {
return super.showInFileTree(file)
&& !new File(file, "Contents").exists()
&& !file.equals(new File("/Volumes/OSX/net")); // FIXME
}
@Override
public boolean showInFileTable(File file) {
return !file.getName().equals(".DS_Store")
&& super.showInFileTable(file);
}
@Override
public boolean doOpen(File file) {
return super.doOpen(file) || file.getName().endsWith(".app");
}
@Override
public boolean isEditable(File file) {
return super.isEditable(file)
&& !file.getParentFile().getAbsolutePath().equals("/Volumes");
}
@Override
public boolean isMac() {
return true;
}
@Override
public File[] getRootFiles() {
return new File("/Volumes").listFiles();
}
@Override
public TreePath createTreePath(File file) {
logger.info(file.toString());
List<File> files = new ArrayList<File>();
File parent = file;
do {
files.add(0, parent);
parent = parent.getParentFile();
} while (!parent.equals(new File("/Volumes")));
files.add(0, new FileTreeModel());
return new TreePath(files.toArray());
}
public static void main(String[] args) {
System.out.println(new OSX().createTreePath(new File(
"/Volumes/WINXP/tmp")));
}
}