package ij.plugin;
import ij.*;
import ij.process.*;
import ij.gui.*;
import ij.io.Opener;
import ij.text.TextWindow;
import java.awt.Frame;
/** This plugin implements the Plugins/Utilities/Unlock, Image/Rename
and Plugins/Utilities/Search commands. */
public class SimpleCommands implements PlugIn {
static String searchArg;
private static String[] choices = {"Locked Image", "Clipboard", "Undo Buffer"};
private static int choiceIndex = 0;
public void run(String arg) {
if (arg.equals("search"))
search();
else if (arg.equals("import"))
Opener.openResultsTable("");
else if (arg.equals("rename"))
rename();
else if (arg.equals("reset"))
reset();
else if (arg.equals("about"))
aboutPluginsHelp();
else if (arg.equals("install"))
installation();
else if (arg.equals("remove"))
removeStackLabels();
}
void reset() {
GenericDialog gd = new GenericDialog("");
gd.addChoice("Reset:", choices, choices[choiceIndex]);
gd.showDialog();
if (gd.wasCanceled()) return;
choiceIndex = gd.getNextChoiceIndex();
switch (choiceIndex) {
case 0: unlock(); break;
case 1: resetClipboard(); break;
case 2: resetUndo(); break;
}
}
void unlock() {
ImagePlus imp = IJ.getImage();
boolean wasUnlocked = imp.lockSilently();
if (wasUnlocked)
IJ.showStatus("\""+imp.getTitle()+"\" is not locked");
else {
IJ.showStatus("\""+imp.getTitle()+"\" is now unlocked");
IJ.beep();
}
imp.unlock();
}
void resetClipboard() {
ImagePlus.resetClipboard();
IJ.showStatus("Clipboard reset");
}
void resetUndo() {
Undo.setup(Undo.NOTHING, null);
IJ.showStatus("Undo reset");
}
void rename() {
ImagePlus imp = IJ.getImage();
GenericDialog gd = new GenericDialog("Rename");
gd.addStringField("Title:", imp.getTitle(), 30);
gd.showDialog();
if (gd.wasCanceled())
return;
else
imp.setTitle(gd.getNextString());
}
void search() {
searchArg = IJ.runMacroFile("ij.jar:Search", searchArg);
}
void installation() {
String url = IJ.URL+"/docs/install/";
if (IJ.isMacintosh())
url += "osx.html";
else if (IJ.isWindows())
url += "windows.html";
else if (IJ.isLinux())
url += "linux.html";
IJ.runPlugIn("ij.plugin.BrowserLauncher", url);
}
void aboutPluginsHelp() {
IJ.showMessage("\"About Plugins\" Submenu",
"Plugins packaged as JAR files can add entries\n"+
"to this submenu. There is an example at\n \n"+
IJ.URL+"/plugins/jar-demo.html");
}
void removeStackLabels() {
ImagePlus imp = IJ.getImage();
int size = imp.getStackSize();
if (size==1)
IJ.error("Stack required");
else {
ImageStack stack = imp.getStack();
for (int i=1; i<=size; i++)
stack.setSliceLabel(null, i);
imp.repaintWindow();
}
}
}