JAL-3141 Object array cast missing
[jalview.git] / src / jalview / jbgui / GPreferences.java
index c132e49..60bf1b7 100755 (executable)
@@ -53,6 +53,8 @@ import java.awt.event.KeyEvent;
 import java.awt.event.KeyListener;
 import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;
+import java.util.Arrays;
+import java.util.List;
 
 import javax.swing.AbstractCellEditor;
 import javax.swing.BorderFactory;
@@ -301,7 +303,7 @@ public class GPreferences extends JPanel
 
   protected JButton revertButton = new JButton();
 
-  protected JComboBox<IntKeyStringValueEntry> backupfilesPresetsCombo = new JComboBox<>();
+  protected JComboBox<Object> backupfilesPresetsCombo = new JComboBox<>();
 
   private int backupfilesPresetsComboLastSelected = 0;
 
@@ -1720,27 +1722,13 @@ public class GPreferences extends JPanel
     setComboIntStringKey(backupfilesPresetsCombo,
             Cache.getDefault(BackupFiles.NS + "_PRESET",
                     BackupFilesPresetEntry.BACKUPFILESSCHEMEDEFAULT));
-    // backupsTabUpdatePresets();
 
-    System.out
-            .println("LOADLASTSAVEDBACKUPSOPTIONS SETTING BACKUPS OPTIONS");
     backupsSetOptions(savedPreset);
 
     backupsOptionsSetEnabled();
     updateBackupFilesExampleLabel();
   }
 
-  private void setBackupfilesCustomPreset()
-  {
-    if (customiseCheckbox.isSelected() && getComboIntStringKey(
-            backupfilesPresetsCombo) == BackupFilesPresetEntry.BACKUPFILESSCHEMECUSTOM)
-    {
-      BackupFilesPresetEntry.backupfilesPresetEntriesValues
-              .put(BackupFilesPresetEntry.BACKUPFILESSCHEMECUSTOM,
-                      getBackupfilesCurrentEntry());
-    }
-  }
-
   private boolean warnAboutSuffixReverseChange()
   {
     BackupFilesPresetEntry bfpe = BackupFilesPresetEntry
@@ -1824,7 +1812,6 @@ public class GPreferences extends JPanel
     gbc.gridy++; // row 1
     backupsTab.add(presetsPanel, gbc);
 
-    // gbc.anchor = GridBagConstraints.NORTHWEST;
     // now using whole row
     gbc.gridwidth = 2;
     gbc.gridheight = 1;
@@ -1850,10 +1837,6 @@ public class GPreferences extends JPanel
   {
 
     String title = MessageManager.getString("label.schemes");
-    // TitledBorder tb = new TitledBorder(new EmptyBorder(0, 0, 0, 0), title);
-    // TitledBorder tb = new TitledBorder(title);
-    // tb.setTitleFont(LABEL_FONT);
-    // presetsPanel.setBorder(tb);
 
     presetsPanel.setLayout(new GridBagLayout());
 
@@ -1872,11 +1855,19 @@ public class GPreferences extends JPanel
     presetsComboLabel = new JLabel(title + ":");
     presetsPanel.add(presetsComboLabel, gbc);
 
+    List<Object> entries = Arrays
+            .asList((Object[]) BackupFilesPresetEntry.backupfilesPresetEntries);
+    List<String> tooltips = Arrays.asList(
+            BackupFilesPresetEntry.backupfilesPresetEntryDescriptions);
+    backupfilesPresetsCombo = JvSwingUtils.buildComboWithTooltips(entries,
+            tooltips);
+    /*
     for (int i = 0; i < BackupFilesPresetEntry.backupfilesPresetEntries.length; i++)
     {
       backupfilesPresetsCombo
               .addItem(BackupFilesPresetEntry.backupfilesPresetEntries[i]);
     }
+    */
 
     backupfilesPresetsCombo.addActionListener(new ActionListener()
     {
@@ -1915,6 +1906,8 @@ public class GPreferences extends JPanel
     presetsPanel.add(backupfilesPresetsCombo, gbc);
 
     revertButton.setText(MessageManager.getString("label.cancel_changes"));
+    revertButton.setToolTipText(
+            MessageManager.getString("label.cancel_changes_description"));
     revertButton.addActionListener(new ActionListener()
     {
       @Override
@@ -1952,6 +1945,8 @@ public class GPreferences extends JPanel
         backupfilesCustomOptionsSetEnabled();
       }
     });
+    customiseCheckbox.setToolTipText(
+            MessageManager.getString("label.customise_description"));
 
     // customise checkbox
     gbc.gridx = 0;
@@ -1968,7 +1963,7 @@ public class GPreferences extends JPanel
   private JPanel initBackupsTabFilenameExamplesPanel()
   {
     String title = MessageManager
-            .getString("label.summary_of_backups_scheme");
+            .getString("label.scheme_examples");
     TitledBorder tb = new TitledBorder(title);
     exampleFilesPanel.setBorder(tb);
     exampleFilesPanel.setLayout(new GridBagLayout());
@@ -1994,8 +1989,8 @@ public class GPreferences extends JPanel
   {
     IntKeyStringValueEntry entry = (IntKeyStringValueEntry) backupfilesPresetsCombo
             .getSelectedItem();
-    int key = entry.getKey();
-    String value = entry.getValue();
+    int key = entry.k;
+    String value = entry.v;
 
     if (BackupFilesPresetEntry.backupfilesPresetEntriesValues
             .containsKey(key))
@@ -2006,7 +2001,7 @@ public class GPreferences extends JPanel
     }
     else
     {
-      System.out.println(
+      Cache.log.error(
               "Preset '" + value + "' [key:" + key + "] not implemented");
     }
 
@@ -2016,21 +2011,42 @@ public class GPreferences extends JPanel
     updateBackupFilesExampleLabel();
   }
 
-  protected int getComboIntStringKey(JComboBox<IntKeyStringValueEntry> c)
+  protected int getComboIntStringKey(
+          JComboBox<Object> backupfilesPresetsCombo2)
   {
-    IntKeyStringValueEntry e = (IntKeyStringValueEntry) c.getSelectedItem();
-    return e != null ? e.getKey() : 0;
+    IntKeyStringValueEntry e;
+    try
+    {
+      e = (IntKeyStringValueEntry) backupfilesPresetsCombo2
+              .getSelectedItem();
+    } catch (Exception ex)
+    {
+      Cache.log.error(
+              "Problem casting Combo entry to IntKeyStringValueEntry.");
+      e = null;
+    }
+    return e != null ? e.k : 0;
   }
 
-  protected void setComboIntStringKey(JComboBox<IntKeyStringValueEntry> c,
+  protected void setComboIntStringKey(
+          JComboBox<Object> backupfilesPresetsCombo2,
           int key)
   {
-    for (int i = 0; i < c.getItemCount(); i++)
+    for (int i = 0; i < backupfilesPresetsCombo2.getItemCount(); i++)
     {
-      IntKeyStringValueEntry e = c.getItemAt(i);
-      if (e.getKey() == key)
+      IntKeyStringValueEntry e;
+      try
+      {
+        e = (IntKeyStringValueEntry) backupfilesPresetsCombo2.getItemAt(i);
+      } catch (Exception ex)
       {
-        c.setSelectedIndex(i);
+        Cache.log.error(
+                "Problem casting Combo entry to IntKeyStringValueEntry. Skipping item. ");
+        continue;
+      }
+      if (e.k == key)
+      {
+        backupfilesPresetsCombo2.setSelectedIndex(i);
         break;
       }
     }
@@ -2081,7 +2097,6 @@ public class GPreferences extends JPanel
       @Override
       public void keyTyped(KeyEvent e)
       {
-        int count = 300;
         char c = e.getKeyChar();
         if (c == ':' || c == '/' || c == '\\')
         {
@@ -2282,13 +2297,6 @@ public class GPreferences extends JPanel
     kgbc.gridwidth = GridBagConstraints.REMAINDER;
     kgbc.fill = GridBagConstraints.HORIZONTAL;
     kgbc.weightx = 1.0;
-    /*
-    keepfilesPanel.add(backupfilesConfirmDelete.getTrueButton(), kgbc);
-    
-    // fourth row (indented)
-    kgbc.gridy = 3;
-    keepfilesPanel.add(backupfilesConfirmDelete.getFalseButton(), kgbc);
-    */
 
     JPanel jp = new JPanel();
     jp.setLayout(new FlowLayout());
@@ -2344,6 +2352,7 @@ public class GPreferences extends JPanel
     int uppersurround = 0;
     StringBuilder exampleSB = new StringBuilder();
     boolean firstLine = true;
+    int lineNumber = 0;
     if (reverse)
     {
 
@@ -2354,6 +2363,7 @@ public class GPreferences extends JPanel
         if (index == min + lowersurround && index < max - uppersurround - 1)
         {
           exampleSB.append("\n...");
+          lineNumber++;
         }
         else if (index > min + lowersurround && index < max - uppersurround)
         {
@@ -2368,6 +2378,7 @@ public class GPreferences extends JPanel
           else
           {
             exampleSB.append("\n");
+            lineNumber++;
           }
           exampleSB.append(BackupFilenameParts.getBackupFilename(index,
                   base, suffix, digits));
@@ -2407,6 +2418,7 @@ public class GPreferences extends JPanel
         if (index == min + lowersurround && index < max - uppersurround - 1)
         {
           exampleSB.append("\n...");
+          lineNumber++;
         }
         else if (index > min + lowersurround && index < max - uppersurround)
         {
@@ -2421,6 +2433,7 @@ public class GPreferences extends JPanel
           else
           {
             exampleSB.append("\n");
+            lineNumber++;
           }
           exampleSB.append(BackupFilenameParts.getBackupFilename(index,
                   base, suffix, digits));
@@ -2449,6 +2462,18 @@ public class GPreferences extends JPanel
 
     }
 
+    // add some extra empty lines to pad out the example files box. ugh, please tell
+    // me how to do this better
+    int remainingLines = lowersurround + uppersurround + 1 - lineNumber;
+    if (remainingLines > 0)
+    {
+      for (int i = 0; i < remainingLines; i++)
+      {
+        exampleSB.append("\n ");
+        lineNumber++;
+      }
+    }
+
     backupfilesExampleLabel.setText(exampleSB.toString());
   }
 
@@ -2463,7 +2488,7 @@ public class GPreferences extends JPanel
         i = Integer.parseInt((String) s.getValue());
       } catch (Exception e)
       {
-        System.out.println(
+        Cache.log.error(
                 "Exception casting the initial value of s.getValue()");
       }
     }
@@ -2495,7 +2520,7 @@ public class GPreferences extends JPanel
       i = (Integer) s.getValue();
     } catch (Exception e)
     {
-      System.out.println("Failed casting (Integer) JSpinner s.getValue()");
+      Cache.log.error("Failed casting (Integer) JSpinner s.getValue()");
     }
     return i;
   }
@@ -2572,11 +2597,7 @@ public class GPreferences extends JPanel
 
   protected void backupfilesCustomOptionsSetEnabled()
   {
-    // int scheme = getComboIntStringKey(backupfilesPresetsCombo);
-    // boolean enabled = scheme == BackupFilesPresetEntry.BACKUPFILESSCHEMECUSTOM &&
-    // enableBackupFiles.isSelected();
     boolean enabled = customiseCheckbox.isSelected();
-    //boolean enabled = customiseCheckbox.isSelected() && enableBackupFiles.isSelected();
 
     backupfilesRevertButtonSetEnabled(enabled);
     backupfilesSuffixTemplateSetEnabled(enabled);