import jalview.util.ColorUtils;
import jalview.util.Format;
import jalview.util.MessageManager;
-import jalview.util.dialogrunner.RunResponse;
+import jalview.util.Platform;
import jalview.xml.binding.jalview.JalviewUserColours;
import jalview.xml.binding.jalview.JalviewUserColours.Colour;
import jalview.xml.binding.jalview.ObjectFactory;
private static final Font VERDANA_BOLD_10 = new Font("Verdana", Font.BOLD,
10);
- public static final String USER_DEFINED_COLOURS = "USER_DEFINED_COLOURS";
-
private static final String LAST_DIRECTORY = "LAST_DIRECTORY";
private static final int MY_FRAME_HEIGHT = 440;
{
if (isNoSelectionMade())
{
- JvOptionPane.showMessageDialog(Desktop.desktop,
+ JvOptionPane.showMessageDialog(Desktop.getDesktopPane(),
MessageManager
.getString("label.no_colour_selection_in_scheme"),
MessageManager.getString("label.no_colour_selection_warn"),
protected void warnIfUnsavedChanges()
{
// BH 2018 no warning in JavaScript TODO
-
- if (/** @j2sNative true || */ !changedButNotSaved)
- {
- return;
- }
- String name = schemeName.getText().trim();
- if (oldColourScheme != null && !"".equals(name)
- && name.equals(oldColourScheme.getSchemeName()))
- {
- String message = MessageManager.formatMessage("label.scheme_changed",
- name);
- String title = MessageManager.getString("label.save_changes");
- String[] options = new String[] { title,
- MessageManager.getString("label.dont_save_changes"), };
- final String question = JvSwingUtils.wrapTooltip(true, message);
- int response = JvOptionPane.showOptionDialog(Desktop.desktop,
- question, title, JvOptionPane.DEFAULT_OPTION,
- JvOptionPane.PLAIN_MESSAGE, null, options, options[0]);
-
- if (response == 0)
+ if (!Platform.isJS() && changedButNotSaved)
+ /**
+ * Java only
+ *
+ * @j2sIgnore
+ */
+ {
+ String name = schemeName.getText().trim();
+ if (oldColourScheme != null && !"".equals(name)
+ && name.equals(oldColourScheme.getSchemeName()))
{
- /*
- * prompt to save changes to file; if done,
- * resets 'changed' flag to false
- */
- savebutton_actionPerformed();
- }
+ String message = MessageManager
+ .formatMessage("label.scheme_changed", name);
+ String title = MessageManager.getString("label.save_changes");
+ String[] options = new String[] { title,
+ MessageManager.getString("label.dont_save_changes"), };
+ final String question = JvSwingUtils.wrapTooltip(true, message);
+ int response = JvOptionPane.showOptionDialog(Desktop.getDesktopPane(),
+ question, title, JvOptionPane.DEFAULT_OPTION,
+ JvOptionPane.PLAIN_MESSAGE, null, options, options[0]);
+
+ if (response == 0)
+ {
+ /*
+ * prompt to save changes to file; if done,
+ * resets 'changed' flag to false
+ */
+ savebutton_actionPerformed();
+ }
- /*
- * if user chooses not to save (either in this dialog or in the
- * save as dialogs), treat this as a new user defined colour scheme
- */
- if (changedButNotSaved)
- {
/*
- * clear scheme name and re-apply as an anonymous scheme
+ * if user chooses not to save (either in this dialog or in the
+ * save as dialogs), treat this as a new user defined colour scheme
*/
- schemeName.setText("");
- applyButton_actionPerformed();
+ if (changedButNotSaved)
+ {
+ /*
+ * clear scheme name and re-apply as an anonymous scheme
+ */
+ schemeName.setText("");
+ applyButton_actionPerformed();
+ }
}
}
}
{
if (isNoSelectionMade())
{
- JvOptionPane.showMessageDialog(Desktop.desktop,
+ JvOptionPane.showMessageDialog(Desktop.getDesktopPane(),
MessageManager
.getString("label.no_colour_selection_in_scheme"),
MessageManager.getString("label.no_colour_selection_warn"),
chooser.setDialogTitle(
MessageManager.getString("label.load_colour_scheme"));
chooser.setToolTipText(MessageManager.getString("action.load"));
- chooser.addResponse(new RunResponse(JalviewFileChooser.APPROVE_OPTION) {
- @Override
- public void run() {
- File choice = chooser.getSelectedFile();
- Cache.setProperty(LAST_DIRECTORY, choice.getParent());
-
- UserColourScheme ucs = ColourSchemeLoader
- .loadColourScheme(choice.getAbsolutePath());
- Color[] colors = ucs.getColours();
- schemeName.setText(ucs.getSchemeName());
-
- if (ucs.getLowerCaseColours() != null)
- {
- caseSensitive.setSelected(true);
- lcaseColour.setEnabled(true);
- resetButtonPanel(true);
- for (int i = 0; i < lowerCaseButtons.size(); i++)
- {
- JButton button = lowerCaseButtons.get(i);
- button.setBackground(ucs.getLowerCaseColours()[i]);
- }
- }
- else
- {
- caseSensitive.setSelected(false);
- lcaseColour.setEnabled(false);
- resetButtonPanel(false);
- }
-
- for (int i = 0; i < upperCaseButtons.size(); i++)
- {
- JButton button = upperCaseButtons.get(i);
- button.setBackground(colors[i]);
- }
-
- addNewColourScheme(choice.getPath());
- }});
+ chooser.setResponseHandler(0, new Runnable()
+ {
+ @Override
+ public void run()
+ {
+ File choice = chooser.getSelectedFile();
+ Cache.setProperty(LAST_DIRECTORY, choice.getParent());
+
+ UserColourScheme ucs = ColourSchemeLoader
+ .loadColourScheme(choice.getAbsolutePath());
+ Color[] colors = ucs.getColours();
+ schemeName.setText(ucs.getSchemeName());
+
+ if (ucs.getLowerCaseColours() != null)
+ {
+ caseSensitive.setSelected(true);
+ lcaseColour.setEnabled(true);
+ resetButtonPanel(true);
+ for (int i = 0; i < lowerCaseButtons.size(); i++)
+ {
+ JButton button = lowerCaseButtons.get(i);
+ button.setBackground(ucs.getLowerCaseColours()[i]);
+ }
+ }
+ else
+ {
+ caseSensitive.setSelected(false);
+ lcaseColour.setEnabled(false);
+ resetButtonPanel(false);
+ }
+
+ for (int i = 0; i < upperCaseButtons.size(); i++)
+ {
+ JButton button = upperCaseButtons.get(i);
+ button.setBackground(colors[i]);
+ }
+
+ addNewColourScheme(choice.getPath());
+ }
+ });
chooser.showOpenDialog(this);
}
/**
* Loads the user-defined colour scheme from the first file listed in property
- * "USER_DEFINED_COLOURS". If this fails, returns an all-white colour scheme.
+ * Preferences.USER_DEFINED_COLOURS. If this fails, returns an all-white colour scheme.
*
* @return
*/
{
UserColourScheme ret = null;
- String colours = Cache.getProperty(USER_DEFINED_COLOURS);
+ String colours = Cache.getProperty(Preferences.USER_DEFINED_COLOURS);
if (colours != null)
{
if (colours.indexOf("|") > -1)
String name = schemeName.getText().trim();
if (name.length() < 1)
{
- JvOptionPane.showInternalMessageDialog(Desktop.desktop,
+ JvOptionPane.showInternalMessageDialog(Desktop.getDesktopPane(),
MessageManager
.getString("label.user_colour_scheme_must_have_name"),
MessageManager.getString("label.no_name_colour_scheme"),
JvOptionPane.WARNING_MESSAGE);
}
- if (ColourSchemes.getInstance().nameExists(name))
+ if (!Platform.isJS() && ColourSchemes.getInstance().nameExists(name))
{
- // BH 2018 SwingJS bypasses this question with YES_OPTION
- int reply = /** @j2sNative 0 && */ JvOptionPane.showInternalConfirmDialog(Desktop.desktop,
- MessageManager.formatMessage(
- "label.colour_scheme_exists_overwrite", new Object[]
- { name, name }),
- MessageManager.getString("label.duplicate_scheme_name"),
- JvOptionPane.YES_NO_OPTION);
- if (reply != JvOptionPane.YES_OPTION)
+ /**
+ * java only
+ *
+ * @j2sIgnore
+ */
{
+ int reply = JvOptionPane.showInternalConfirmDialog(Desktop.getDesktopPane(),
+ MessageManager.formatMessage(
+ "label.colour_scheme_exists_overwrite", new Object[]
+ { name, name }),
+ MessageManager.getString("label.duplicate_scheme_name"),
+ JvOptionPane.YES_NO_OPTION);
+ if (reply != JvOptionPane.YES_OPTION)
+ {
+ return;
+ }
}
}
MessageManager.getString("label.save_colour_scheme"));
chooser.setToolTipText(MessageManager.getString("action.save"));
int option = chooser.showSaveDialog(this);
- if (option == JalviewFileChooser.APPROVE_OPTION)
- {
- File file = chooser.getSelectedFile();
- UserColourScheme updatedScheme = addNewColourScheme(file.getPath());
- saveToFile(file);
- changedButNotSaved = false;
-
- /*
- * changes saved - apply to alignment if we are changing
- * the currently selected colour scheme; also make the updated
- * colours the 'backout' scheme on Cancel
- */
- if (oldColourScheme != null
- && name.equals(oldColourScheme.getSchemeName()))
- {
- oldColourScheme = updatedScheme;
- applyButton_actionPerformed();
- }
+ if (option == JalviewFileChooser.APPROVE_OPTION)
+ {
+ File file = chooser.getSelectedFile();
+ UserColourScheme updatedScheme = addNewColourScheme(file.getPath());
+ saveToFile(file);
+ changedButNotSaved = false;
+
+ /*
+ * changes saved - apply to alignment if we are changing
+ * the currently selected colour scheme; also make the updated
+ * colours the 'backout' scheme on Cancel
+ */
+ if (oldColourScheme != null
+ && name.equals(oldColourScheme.getSchemeName()))
+ {
+ oldColourScheme = updatedScheme;
+ applyButton_actionPerformed();
+ }
}
}
* update the delimited list of user defined colour files in
* Jalview property USER_DEFINED_COLOURS
*/
- String defaultColours = Cache.getDefault(USER_DEFINED_COLOURS,
+ String defaultColours = Cache.getDefault(
+ Preferences.USER_DEFINED_COLOURS,
filePath);
if (defaultColours.indexOf(filePath) == -1)
{
}
defaultColours = defaultColours.concat(filePath);
}
- Cache.setProperty(USER_DEFINED_COLOURS, defaultColours);
+ Cache.setProperty(Preferences.USER_DEFINED_COLOURS, defaultColours);
/*
* construct and register the colour scheme