macros.Search.txt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of imagej Show documentation
Show all versions of imagej Show documentation
Image processing and analysis framework. Allows the user to
record/replay macros and can be extended using plug-ins.
The newest version!
// "Search"
// This macro searches for text in files contained in a directory.
// TF, 2011.02 Added support for scripts; Recordable.
str = "";
contents = true;
ignore = false;
search = "Macros";
firstLine = true;
arg = getArgument;
if (arg!="") {
args = split(arg, "|");
if (args.length==4) {
str = args[0];
contents = parseInt(args[1]);
ignore = parseInt(args[2]);
search = args[3];
}
}
extensions = newArray(".java", ".txt", ".ijm", ".js", ".py", ".rb", ".clj", ".bsh", ".html");
IJdir = getDirectory("imagej");
Dialog.create("Search");
Dialog.addString("_", str, 20);
items = newArray("Macros", "Scripts", "Java", "ImageJ folder", "Choose...");
Dialog.setInsets(2,20,0);
Dialog.addRadioButtonGroup("Search:", items, 5, 1, search);
Dialog.setInsets(0, 20, 0);
Dialog.addCheckbox("Search_contents", contents);
Dialog.addCheckbox("Ignore case", ignore);
Dialog.setInsets(10, 0, 0);
Dialog.addMessage("In the Log window, to open a file,\ndouble-click on its file path.");
Dialog.show();
str = Dialog.getString();
contents = Dialog.getCheckbox();
ignore = Dialog.getCheckbox();
search = Dialog.getRadioButton();
if (str=="")
exit("Search string is empty");
sourceExists = File.exists(IJdir+"source");
searchNames = false;
dir1=""; dir2=""; dir3="";
if (search=="Scripts") {
dir1 = getDirectory("macros");
dir2 = getDirectory("plugins");
dir3 = IJdir+"scripts/";
extensions = newArray(".js", ".py", ".rb", ".clj", ".bsh");
} else if (search=="Java") {
dir1 = getDirectory("plugins");
if (sourceExists)
dir2 = IJdir+"source"+"/";
extensions = newArray(".java");
} else if (search=="ImageJ folder") {
dir1 = getDirectory("imagej");
searchNames = true;
} else if (search=="Choose...") {
dir1 = getDirectory("Choose a Directory");
searchNames = true;
} else {
dir1 = getDirectory("macros");
dir2 = getDirectory("plugins");
extensions = newArray(".txt", ".ijm");
}
if (ignore)
str = toLowerCase(str);
count = 0;
if (dir1!="") find(dir1);
if (dir2!="") find(dir2);
if (dir3!="") find(dir3);
if (indexOf(str, "|")==-1)
return ""+str+"|"+contents+"|"+ignore+"|"+search;
exit;
function find(dir) {
list = getFileList(dir);
for (i=0; i