ij.gui.SaveChangesDialog 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!
package ij.gui;
import ij.IJ;
import java.awt.*;
import java.awt.event.*;
/** A modal dialog box with a one line message and
"Don't Save", "Cancel" and "Save" buttons. */
public class SaveChangesDialog extends Dialog implements ActionListener, KeyListener {
private Button dontSave, cancel, save;
private boolean cancelPressed, savePressed;
public SaveChangesDialog(Frame parent, String fileName) {
super(parent, "Save?", true);
setLayout(new BorderLayout());
Panel panel = new Panel();
panel.setLayout(new FlowLayout(FlowLayout.LEFT, 10, 10));
Component message;
if (fileName.startsWith("Save "))
message = new Label(fileName);
else {
if (fileName.length()>22)
message = new MultiLineLabel("Save changes to\n" + "\"" + fileName + "\"?");
else
message = new Label("Save changes to \"" + fileName + "\"?");
}
message.setFont(new Font("Dialog", Font.BOLD, 12));
panel.add(message);
add("Center", panel);
panel = new Panel();
panel.setLayout(new FlowLayout(FlowLayout.CENTER, 8, 8));
save = new Button(" Save ");
save.addActionListener(this);
save.addKeyListener(this);
cancel = new Button(" Cancel ");
cancel.addActionListener(this);
cancel.addKeyListener(this);
dontSave = new Button("Don't Save");
dontSave.addActionListener(this);
dontSave.addKeyListener(this);
if (ij.IJ.isMacintosh()) {
panel.add(dontSave);
panel.add(cancel);
panel.add(save);
} else {
panel.add(save);
panel.add(dontSave);
panel.add(cancel);
}
add("South", panel);
if (ij.IJ.isMacintosh())
setResizable(false);
pack();
GUI.center(this);
show();
}
public void actionPerformed(ActionEvent e) {
if (e.getSource()==cancel)
cancelPressed = true;
else if (e.getSource()==save)
savePressed = true;
closeDialog();
}
/** Returns true if the user dismissed dialog by pressing "Cancel". */
public boolean cancelPressed() {
if (cancelPressed)
ij.Macro.abort();
return cancelPressed;
}
/** Returns true if the user dismissed dialog by pressing "Save". */
public boolean savePressed() {
return savePressed;
}
void closeDialog() {
//setVisible(false);
dispose();
}
public void keyPressed(KeyEvent e) {
int keyCode = e.getKeyCode();
IJ.setKeyDown(keyCode);
if (keyCode==KeyEvent.VK_ENTER)
closeDialog();
else if (keyCode==KeyEvent.VK_ESCAPE) {
cancelPressed = true;
closeDialog();
IJ.resetEscape();
}
}
public void keyReleased(KeyEvent e) {}
public void keyTyped(KeyEvent e) {}
}