git://source.jalview.org
/
jalview.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
JAL-3691 toUpperCase(Locale.ROOT) for all standard file format operations
[jalview.git]
/
src
/
jalview
/
util
/
ColorUtils.java
diff --git
a/src/jalview/util/ColorUtils.java
b/src/jalview/util/ColorUtils.java
index
d4be322
..
60129fb
100644
(file)
--- a/
src/jalview/util/ColorUtils.java
+++ b/
src/jalview/util/ColorUtils.java
@@
-25,10
+25,17
@@
package jalview.util;
import java.awt.Color;
package jalview.util;
import java.awt.Color;
+import java.util.HashMap;
+import java.util.Map;
import java.util.Random;
public class ColorUtils
{
import java.util.Random;
public class ColorUtils
{
+ private static final int MAX_CACHE_SIZE = 1729;
+ /*
+ * a cache for colours generated from text strings
+ */
+ static Map<String, Color> myColours = new HashMap<>();
/**
* Generates a random color, will mix with input color. Code taken from
/**
* Generates a random color, will mix with input color. Code taken from
@@
-260,6
+267,10
@@
public class ColorUtils
{
return Color.white;
}
{
return Color.white;
}
+ if (myColours.containsKey(name))
+ {
+ return myColours.get(name);
+ }
int lsize = name.length();
int start = 0;
int end = lsize / 3;
int lsize = name.length();
int start = 0;
int end = lsize / 3;
@@
-291,6
+302,11
@@
public class ColorUtils
Color color = new Color(r, g, b);
Color color = new Color(r, g, b);
+ if (myColours.size() < MAX_CACHE_SIZE)
+ {
+ myColours.put(name, color);
+ }
+
return color;
}
return color;
}