}
// Conduct the dialog to accept a new color profile.
public void actionPerformed(ActionEvent event) {
FileChooser chooser = Platform.getPlatform().getFileChooser();
AlertDialog alert = Platform.getPlatform().getAlertDialog();
String path;
if (text.isEnabled()) {
path = text.getText();
}
else {
path = System.getProperty("user.home");
}
File file = new File(path);
file = chooser.openFile(
"Display Color Profile", file, null, null
);
if (file != null) {
if (! file.isFile()) {
alert.showAlert(
null,
'\"' + file.getName() + "\" is not a file.",
"A color profile is a file, " +
"usually ending with \".icc\" or \".icm\".",
AlertDialog.WARNING_ALERT,
"OK"
);
return;
}
try {
ICC_Profile.getInstance(file.getAbsolutePath());
}
catch (IOException e) {
alert.showAlert(
null,
'\"' + file.getName() + "\" could not be read.",
e.getClass().getName() + ": " + e.getMessage(),
AlertDialog.WARNING_ALERT,
"OK"
);
return;
}
catch (IllegalArgumentException e) {
alert.showAlert(
null,
'\"' + file.getName() + "\" is not a valid color profile.",
e.getClass().getName() + ": " + e.getMessage(),
AlertDialog.WARNING_ALERT,
"OK"
);
return;
}
path = file.getAbsolutePath();
text.setText(path);
text.setEnabled(true);
alert.showAlert(
null,
"Display color profile \"" + file.getName() + "\" accepted.",
"You must now restart LightZone for your new display " +
"profile to take effect.",
AlertDialog.WARNING_ALERT,