Merge commit 'alpha/update_2_12_for_2_11_2_series_merge^2' into HEAD
[jalview.git] / src / jalview / gui / UserDefinedColours.java
index 9e928d8..317bd08 100755 (executable)
@@ -20,6 +20,8 @@
  */
 package jalview.gui;
 
+import java.util.Locale;
+
 import jalview.bin.Cache;
 import jalview.io.JalviewFileChooser;
 import jalview.io.JalviewFileView;
@@ -32,7 +34,7 @@ import jalview.schemes.UserColourScheme;
 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;
@@ -149,8 +151,8 @@ public class UserDefinedColours extends GUserDefinedColours
     frame = new JInternalFrame();
     frame.setContentPane(this);
     Desktop.addInternalFrame(frame,
-            MessageManager.getString("label.user_defined_colours"),
-            MY_FRAME_WIDTH, MY_FRAME_HEIGHT, true);
+            MessageManager.getString("label.user_defined_colours"), Desktop.FRAME_MAKE_VISIBLE,
+            MY_FRAME_WIDTH, MY_FRAME_HEIGHT, Desktop.FRAME_ALLOW_RESIZE, Desktop.FRAME_SET_MIN_SIZE_300);
   }
 
   /**
@@ -205,8 +207,8 @@ public class UserDefinedColours extends GUserDefinedColours
       {
         int row = i / cols + 1;
         int index = (row * cols) + i;
-        JButton button = makeButton(ResidueProperties.aa[i].toLowerCase(),
-                ResidueProperties.aa[i].toLowerCase(), lowerCaseButtons, i);
+        JButton button = makeButton(ResidueProperties.aa[i].toLowerCase(Locale.ROOT),
+                ResidueProperties.aa[i].toLowerCase(Locale.ROOT), lowerCaseButtons, i);
 
         buttonPanel.add(button, index);
       }
@@ -448,7 +450,7 @@ public class UserDefinedColours extends GUserDefinedColours
   {
     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"),
@@ -485,46 +487,49 @@ public class UserDefinedColours extends GUserDefinedColours
   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();
+        }
       }
     }
   }
@@ -554,7 +559,7 @@ public class UserDefinedColours extends GUserDefinedColours
   {
     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"),
@@ -645,7 +650,7 @@ public class UserDefinedColours extends GUserDefinedColours
     chooser.setDialogTitle(
             MessageManager.getString("label.load_colour_scheme"));
     chooser.setToolTipText(MessageManager.getString("action.load"));
-    chooser.addResponse(0, new RunResponse(JalviewFileChooser.APPROVE_OPTION) 
+    chooser.setResponseHandler(0, new Runnable() 
     {
          @Override
          public void run() 
@@ -738,24 +743,31 @@ public class UserDefinedColours extends GUserDefinedColours
     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;
+        }
       }
     }
 
@@ -768,24 +780,24 @@ public class UserDefinedColours extends GUserDefinedColours
             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();
+      }
     }
   }