Merge branch 'Jalview-JS/develop' of https://source.jalview.org/git/jalview into...
authorsoares <bsoares@dundee.ac.uk>
Thu, 28 May 2020 21:07:28 +0000 (22:07 +0100)
committersoares <bsoares@dundee.ac.uk>
Thu, 28 May 2020 21:07:28 +0000 (22:07 +0100)
13 files changed:
src/jalview/util/ColorUtils.java
src/jalview/util/StringUtils.java
srcjar/fr/orsay/lri/varna/applications/fragseq/FragSeqTreeModel.java
swingjs/SwingJS-site.zip
swingjs/net.sf.j2s.core-j11.jar
swingjs/net.sf.j2s.core.jar
swingjs/timestamp
swingjs/ver/3.2.9-j11/SwingJS-site.zip
swingjs/ver/3.2.9-j11/net.sf.j2s.core-j11.jar [new file with mode: 0644]
swingjs/ver/3.2.9-j11/timestamp
swingjs/ver/3.2.9/SwingJS-site.zip
swingjs/ver/3.2.9/net.sf.j2s.core.jar
swingjs/ver/3.2.9/timestamp

index 60129fb..c1feeee 100644 (file)
@@ -219,12 +219,15 @@ public class ColorUtils
     colour = colour.trim();
 
     Color col = null;
-    try
-    {
-      int value = Integer.parseInt(colour, 16);
-      col = new Color(value);
-    } catch (NumberFormatException ex)
+    if (colour.length() == 6 && StringUtils.isHexString(colour))
     {
+      try
+      {
+        int value = Integer.parseInt(colour, 16);
+        col = new Color(value);
+      } catch (NumberFormatException ex)
+      {
+      }
     }
 
     if (col == null)
@@ -252,6 +255,10 @@ public class ColorUtils
 
     return col;
   }
+  
+  public static boolean couldBeHexColor(String n) {
+    return (n.length() > 0 && "abcdefABCDEF".indexOf(n.charAt(0)) >= 0);
+  }
 
   /**
    * Constructs a colour from a text string. The hashcode of the whole string is
index 1f114a8..c6af7f0 100644 (file)
@@ -568,4 +568,29 @@ public class StringUtils
     }
     return enc;
   }
+
+  /**
+   * Answers true if the string is not empty and consists only of digits, or
+   * characters 'a'-'f' or 'A'-'F', else false
+   * 
+   * @param s
+   * @return
+   */
+  public static boolean isHexString(String s)
+  {
+    int j = s.length();
+    if (j == 0)
+    {
+      return false;
+    }
+    for (int i = 0; i < j; i++)
+    {
+      int c = s.charAt(i);
+      if (!(c >= '0' && c <= '9' || c >= 'a' && c <= 'f' || c >= 'A' && c <= 'F'))
+      {
+        return false;
+      }
+    }
+    return true;
+  }
 }
index 6586c04..70b858b 100644 (file)
@@ -6,8 +6,6 @@ import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Enumeration;
 import java.util.Hashtable;
-import java.util.PriorityQueue;
-import java.util.Random;
 import java.util.TreeSet;
 
 import javax.swing.event.TreeExpansionEvent;
@@ -22,11 +20,11 @@ public class FragSeqTreeModel extends DefaultTreeModel implements TreeWillExpand
          private FragSeqNode _rootIDs = new FragSeqNode("IDs");
          private FragSeqNode _rootFolders = new FragSeqNode("Folders");
 
-       private TreeSet<String> _folders = new TreeSet<String>();
-  private Hashtable<String,FragSeqNode> _folderPathToFolderNode = new Hashtable<String,FragSeqNode>();
+       private TreeSet<String> _folders = new TreeSet<>();
+  private Hashtable<String,FragSeqNode> _folderPathToFolderNode = new Hashtable<>();
 
-  private Hashtable<String,FragSeqNode> _idsToNode = new Hashtable<String,FragSeqNode>();
-  private Hashtable<String,ArrayList<FragSeqNode>> _pathToIDFileNodes = new Hashtable<String,ArrayList<FragSeqNode>>();
+  private Hashtable<String,FragSeqNode> _idsToNode = new Hashtable<>();
+  private Hashtable<String,ArrayList<FragSeqNode>> _pathToIDFileNodes = new Hashtable<>();
   
   public enum SORT_MODE{
          PATH,
@@ -77,7 +75,10 @@ public class FragSeqTreeModel extends DefaultTreeModel implements TreeWillExpand
                  if (parent.getChildCount()==0)
                  {
                          parent.removeFromParent();
-                         _folderPathToFolderNode.remove(parent);
+        // BH was just parent --
+        System.out.println("Varna FragSeqTreeModel removing " + parent + " "
+                + parent.toString());
+        _folderPathToFolderNode.remove(parent.toString());
                          if (parent.getUserObject() instanceof String)
                          {
                                  String path = parent.getUserObject().toString();
@@ -105,7 +106,7 @@ public class FragSeqTreeModel extends DefaultTreeModel implements TreeWillExpand
 
   public void removeFolder(String path)
   {
-         ArrayList<FragSeqNode> toBeRemoved = new ArrayList<FragSeqNode>(); 
+         ArrayList<FragSeqNode> toBeRemoved = new ArrayList<>(); 
          Enumeration en = _folderPathToFolderNode.get(path).children();
          while(en.hasMoreElements())
          {
@@ -168,6 +169,7 @@ public class FragSeqTreeModel extends DefaultTreeModel implements TreeWillExpand
          insertFileNode(_folderPathToFolderNode.get(folder), m);
   }
   
+  @Override
   public FragSeqNode getRoot()
   {
          return (FragSeqNode) super.getRoot();
@@ -175,13 +177,14 @@ public class FragSeqTreeModel extends DefaultTreeModel implements TreeWillExpand
   
   public ArrayList<String> getFolders()
   {
-         ArrayList<String> result = new ArrayList<String>(_folders);
+         ArrayList<String> result = new ArrayList<>(_folders);
          return result;
   }
   
   
    FilenameFilter _f = new FilenameFilter(){
-               public boolean accept(File dir, String name) {
+               @Override
+    public boolean accept(File dir, String name) {
                        return name.toLowerCase().endsWith(".dbn") 
                        || name.toLowerCase().endsWith(".ct")
                        || name.toLowerCase().endsWith(".bpseq")
@@ -199,7 +202,7 @@ public class FragSeqTreeModel extends DefaultTreeModel implements TreeWillExpand
   }
 
   
-private Hashtable<FragSeqNode,Boolean> _isExpanded = new Hashtable<FragSeqNode,Boolean>();
+private Hashtable<FragSeqNode,Boolean> _isExpanded = new Hashtable<>();
   
 public boolean isExpanded(FragSeqNode n)
 {
@@ -208,9 +211,12 @@ public boolean isExpanded(FragSeqNode n)
        return _isExpanded.get(n);
   }
   else
-         return false;
+  {
+    return false;
+  }
 }
 
+@Override
 public void treeWillExpand(TreeExpansionEvent event) throws ExpandVetoException {
        if (event.getSource() instanceof FragSeqTree)
        {
@@ -242,6 +248,7 @@ public void treeWillExpand(TreeExpansionEvent event) throws ExpandVetoException
        }
 }
 
+@Override
 public void treeWillCollapse(TreeExpansionEvent event)
                throws ExpandVetoException {
        // TODO Auto-generated method stub
index 78d190b..94c78ea 100644 (file)
Binary files a/swingjs/SwingJS-site.zip and b/swingjs/SwingJS-site.zip differ
index 303fea5..683e1fa 100644 (file)
Binary files a/swingjs/net.sf.j2s.core-j11.jar and b/swingjs/net.sf.j2s.core-j11.jar differ
index 3638222..6e3c4f0 100644 (file)
Binary files a/swingjs/net.sf.j2s.core.jar and b/swingjs/net.sf.j2s.core.jar differ
index 0d6b0a8..96e0221 100644 (file)
@@ -1 +1 @@
-20200408084722 
+20200528082204 
index f644a9f..94c78ea 100644 (file)
Binary files a/swingjs/ver/3.2.9-j11/SwingJS-site.zip and b/swingjs/ver/3.2.9-j11/SwingJS-site.zip differ
diff --git a/swingjs/ver/3.2.9-j11/net.sf.j2s.core-j11.jar b/swingjs/ver/3.2.9-j11/net.sf.j2s.core-j11.jar
new file mode 100644 (file)
index 0000000..683e1fa
Binary files /dev/null and b/swingjs/ver/3.2.9-j11/net.sf.j2s.core-j11.jar differ
index 78d190b..94c78ea 100644 (file)
Binary files a/swingjs/ver/3.2.9/SwingJS-site.zip and b/swingjs/ver/3.2.9/SwingJS-site.zip differ
index 3638222..6e3c4f0 100644 (file)
Binary files a/swingjs/ver/3.2.9/net.sf.j2s.core.jar and b/swingjs/ver/3.2.9/net.sf.j2s.core.jar differ
index 0d6b0a8..8192bae 100644 (file)
@@ -1 +1 @@
-20200408084722 
+20200524153112