Files
processing4/app/PdeSketch.java

114 lines
3.2 KiB
Java

/* -*- mode: jde; c-basic-offset: 2; indent-tabs-mode: nil -*- */
/*
PdeSketch - stores information about files in the current sketch
Part of the Processing project - http://Proce55ing.net
Except where noted, code is written by Ben Fry
Copyright (c) 2001-03 Massachusetts Institute of Technology
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
public class PdeSketch {
String name;
File directory;
int current;
int fileCount;
String names[];
File files[];
boolean modified[];
int hiddenCount;
String hiddenNames[];
File hiddenFiles[];
/**
* path is location of the main .pde file, because this is also
* simplest to use when opening the file from the finder/explorer.
*/
public PdeSketch(String path) {
File mainFile = new File(path);
System.out.println("main file is " + mainFile);
directory = new File(path.getParent());
System.out.println("sketch dir is " + directory);
rebuild();
}
public void rebuild() {
// get list of files in the folder
String list[] = directory.list();
for (int i = 0; i < list.length; i++) {
if (list[i].endsWith(".pde")) fileCount++;
else if (list[i].endsWith(".java")) fileCount++;
else if (list[i].endsWith(".pde.x")) hiddenCount++;
else if (list[i].endsWith(".java.x")) hiddenCount++;
}
names = new String[fileCount];
files = new File[fileCount];
modified = new boolean[fileCount];
hiddenNames = new String[hiddenCount];
hiddenFiles = new File[hiddenCount];
int fileCounter = 0;
int hiddenCounter = 0;
for (int i = 0; i < list.length; i++) {
int sub = 0;
if (list[i].endsWith(".pde")) {
names[fileCounter] = list[i].substring(0, list[i].length() - 4);
files[fileCounter] = new File(directory, list[i]);
fileCounter++;
} else if (list[i].endsWith(".java")) {
names[fileCounter] = list[i].substring(0, list[i].length() - 5);
files[fileCounter] = new File(directory, list[i]);
fileCounter++;
} else if (list[i].endsWith(".pde.x")) {
names[hiddenCounter] = list[i].substring(0, list[i].length() - 6);
files[hiddenCounter] = new File(directory, list[i]);
hiddenCounter++;
} else if (list[i].endsWith(".java.x")) {
names[hiddenCounter] = list[i].substring(0, list[i].length() - 7);
files[hiddenCounter] = new File(directory, list[i]);
hiddenCounter++;
}
}
}
public boolean getModified() {
return modified[current];
}
/**
* Returns path to the main .pde file for this sketch.
*/
public String getPath() {
return files[0].getAbsolutePath();
}
}