Merge branch 'develop' into trialMerge
[jalview.git] / src / jalview / gui / UserDefinedColours.java
index 37824fe..c380049 100755 (executable)
@@ -1,6 +1,6 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2)
- * Copyright (C) 2014 The Jalview Authors
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
  * 
  * This file is part of Jalview.
  * 
@@ -21,6 +21,7 @@
 package jalview.gui;
 
 import jalview.api.structures.JalviewStructureDisplayI;
+import jalview.bin.Cache;
 import jalview.datamodel.SequenceGroup;
 import jalview.io.JalviewFileChooser;
 import jalview.jbgui.GUserDefinedColours;
@@ -454,26 +455,41 @@ public class UserDefinedColours extends GUserDefinedColours implements
   @Override
   protected void okButton_actionPerformed(ActionEvent e)
   {
-               //Check if the user have done any selection
-               boolean showWarning = (upperCaseButtons==null) ||
-                                       ((upperCaseButtons!=null) && (upperCaseButtons.size()==0)) ||
-                                       (lowerCaseButtons==null) ||
-                                       ((lowerCaseButtons!=null) && (lowerCaseButtons.size()==0));
-               if (showWarning){
-               JOptionPane.showMessageDialog(Desktop.desktop,
-                       MessageManager.getString("label.no_colour_selection_in_scheme"),MessageManager.getString("label.no_colour_selection_warn"),
-                       JOptionPane.WARNING_MESSAGE);
-                       
-               }else{
-                   applyButton_actionPerformed(null);
-               
-                   try
-                   {
-                     frame.setClosed(true);
-                   } catch (Exception ex)
-                   {
-                   }
-               }
+    if (isNoSelectionMade())
+    {
+      JvOptionPane.showMessageDialog(Desktop.desktop, MessageManager
+              .getString("label.no_colour_selection_in_scheme"),
+              MessageManager.getString("label.no_colour_selection_warn"),
+              JvOptionPane.WARNING_MESSAGE);
+    }
+    else
+    {
+      applyButton_actionPerformed(null);
+
+      try
+      {
+        frame.setClosed(true);
+      } catch (Exception ex)
+      {
+      }
+    }
+  }
+
+  /**
+   * Returns true if the user has not made any colour selection (including if
+   * 'case-sensitive' selected and no lower-case colour chosen).
+   * 
+   * @return
+   */
+  protected boolean isNoSelectionMade()
+  {
+    final boolean noUpperCaseSelected = upperCaseButtons == null
+            || upperCaseButtons.isEmpty();
+    final boolean noLowerCaseSelected = caseSensitive.isSelected()
+            && (lowerCaseButtons == null || lowerCaseButtons.isEmpty());
+    final boolean noSelectionMade = noUpperCaseSelected
+            || noLowerCaseSelected;
+    return noSelectionMade;
   }
 
   /**
@@ -485,18 +501,15 @@ public class UserDefinedColours extends GUserDefinedColours implements
   @Override
   protected void applyButton_actionPerformed(ActionEvent e)
   {
-       //Check if the user have done any selection
-       boolean showWarning = (upperCaseButtons==null) ||
-                               ((upperCaseButtons!=null) && (upperCaseButtons.size()==0)) ||
-                               (lowerCaseButtons==null) ||
-                               ((lowerCaseButtons!=null) && (lowerCaseButtons.size()==0));
-       if (showWarning){
-        JOptionPane.showMessageDialog(Desktop.desktop,
-                MessageManager.getString("label.no_colour_selection_in_scheme"),MessageManager.getString("label.no_colour_selection_warn"),
-                JOptionPane.WARNING_MESSAGE);
-               
-       }
-       UserColourScheme ucs = getSchemeFromButtons();
+    if (isNoSelectionMade())
+    {
+      JvOptionPane.showMessageDialog(Desktop.desktop, MessageManager
+              .getString("label.no_colour_selection_in_scheme"),
+              MessageManager.getString("label.no_colour_selection_warn"),
+              JvOptionPane.WARNING_MESSAGE);
+
+    }
+    UserColourScheme ucs = getSchemeFromButtons();
     ucs.setName(schemeName.getText());
 
     if (seqGroup != null)
@@ -520,17 +533,22 @@ public class UserDefinedColours extends GUserDefinedColours implements
     Color[] newColours = new Color[24];
 
     int length = upperCaseButtons.size();
-    if (length<24){
-       int i = 0;
-       for (JButton btn:upperCaseButtons){
-               newColours[i] = btn.getBackground();
-               i++;
-       }
-    }else{
-       for (int i = 0; i < 24; i++){
-               JButton button = (JButton) upperCaseButtons.get(i);
-               newColours[i] = button.getBackground();
-       }
+    if (length < 24)
+    {
+      int i = 0;
+      for (JButton btn : upperCaseButtons)
+      {
+        newColours[i] = btn.getBackground();
+        i++;
+      }
+    }
+    else
+    {
+      for (int i = 0; i < 24; i++)
+      {
+        JButton button = upperCaseButtons.get(i);
+        newColours[i] = button.getBackground();
+      }
     }
 
     UserColourScheme ucs = new UserColourScheme(newColours);
@@ -539,24 +557,29 @@ public class UserDefinedColours extends GUserDefinedColours implements
     {
       newColours = new Color[23];
       length = lowerCaseButtons.size();
-      if (length<23){
-         int i = 0;
-         for (JButton btn:lowerCaseButtons){
-                 newColours[i] = btn.getBackground();
-                 i++;
-         }
-      }else{
-         for (int i = 0; i < 23; i++){
-                 JButton button = (JButton) lowerCaseButtons.get(i);
-                 newColours[i] = button.getBackground();
-         }
+      if (length < 23)
+      {
+        int i = 0;
+        for (JButton btn : lowerCaseButtons)
+        {
+          newColours[i] = btn.getBackground();
+          i++;
+        }
+      }
+      else
+      {
+        for (int i = 0; i < 23; i++)
+        {
+          JButton button = lowerCaseButtons.get(i);
+          newColours[i] = button.getBackground();
+        }
       }
       ucs.setLowerCaseColours(newColours);
     }
 
     if (ap != null)
     {
-      ucs.setThreshold(0, ap.av.getIgnoreGapsConsensus());
+      ucs.setThreshold(0, ap.av.isIgnoreGapsConsensus());
     }
 
     return ucs;
@@ -575,9 +598,8 @@ public class UserDefinedColours extends GUserDefinedColours implements
     lowerCaseButtons = new ArrayList<JButton>();
 
     JalviewFileChooser chooser = new JalviewFileChooser(
-            jalview.bin.Cache.getProperty("LAST_DIRECTORY"), new String[]
-            { "jc" }, new String[]
-            { "Jalview User Colours" }, "Jalview User Colours");
+            Cache.getProperty("LAST_DIRECTORY"), "jc",
+            "Jalview User Colours", "Jalview User Colours");
     chooser.setFileView(new jalview.io.JalviewFileView());
     chooser.setDialogTitle(MessageManager
             .getString("label.load_colour_scheme"));
@@ -700,8 +722,7 @@ public class UserDefinedColours extends GUserDefinedColours implements
         name = jucs.getColour(i).getName();
         if (ResidueProperties.aa3Hash.containsKey(name))
         {
-          index = ((Integer) ResidueProperties.aa3Hash.get(name))
-                  .intValue();
+          index = ResidueProperties.aa3Hash.get(name).intValue();
         }
         else
         {
@@ -788,23 +809,23 @@ public class UserDefinedColours extends GUserDefinedColours implements
   {
     if (schemeName.getText().trim().length() < 1)
     {
-      JOptionPane.showInternalMessageDialog(Desktop.desktop, MessageManager
+      JvOptionPane.showInternalMessageDialog(Desktop.desktop, MessageManager
               .getString("label.user_colour_scheme_must_have_name"),
               MessageManager.getString("label.no_name_colour_scheme"),
-              JOptionPane.WARNING_MESSAGE);
+              JvOptionPane.WARNING_MESSAGE);
       return;
     }
 
     if (userColourSchemes != null
             && userColourSchemes.containsKey(schemeName.getText()))
     {
-      int reply = JOptionPane.showInternalConfirmDialog(Desktop.desktop,
+      int reply = JvOptionPane.showInternalConfirmDialog(Desktop.desktop,
               MessageManager.formatMessage(
-                      "label.colour_scheme_exists_overwrite", new Object[]
-                      { schemeName.getText(), schemeName.getText() }),
+                      "label.colour_scheme_exists_overwrite", new Object[] {
+                          schemeName.getText(), schemeName.getText() }),
               MessageManager.getString("label.duplicate_scheme_name"),
-              JOptionPane.YES_NO_OPTION);
-      if (reply != JOptionPane.YES_OPTION)
+              JvOptionPane.YES_NO_OPTION);
+      if (reply != JvOptionPane.YES_OPTION)
       {
         return;
       }
@@ -812,12 +833,12 @@ public class UserDefinedColours extends GUserDefinedColours implements
       userColourSchemes.remove(schemeName.getText());
     }
     JalviewFileChooser chooser = new JalviewFileChooser(
-            jalview.bin.Cache.getProperty("LAST_DIRECTORY"), new String[]
-            { "jc" }, new String[]
-            { "Jalview User Colours" }, "Jalview User Colours");
+            Cache.getProperty("LAST_DIRECTORY"), "jc",
+            "Jalview User Colours", "Jalview User Colours");
 
     chooser.setFileView(new jalview.io.JalviewFileView());
-    chooser.setDialogTitle(MessageManager.getString("label.save_colour_scheme"));
+    chooser.setDialogTitle(MessageManager
+            .getString("label.save_colour_scheme"));
     chooser.setToolTipText(MessageManager.getString("action.save"));
 
     int value = chooser.showSaveDialog(this);