}
-/**
- * Returns a colour three shades darker.
- *
- * We use darker text to indicate unselected buttons, lighter text for selected. Note you can't
- * guarantee that darkerThan/brighterThan undo each other, as they may result in black/white.
+ /**
+ * Returns a colour three shades darker. Note you can't guarantee that
+ * brighterThan reverses this, as darkerThan may result in black.
*
* @param col
* @return
*/
- public static Color darkerThan(Color col) {
- return col.darker().darker().darker();
+ public static Color darkerThan(Color col)
+ {
+ return col == null ? null : col.darker().darker().darker();
}
-/**
- * Returns a colour three shades brighter.
+ /**
+ * Returns a colour three shades brighter. Note you can't guarantee that
+ * darkerThan reverses this, as brighterThan may result in white.
*
- * We use darker text to indicate unselected buttons, lighter text for selected. Note you can't
- * guarantee that darkerThan/brighterThan undo each other, as they may result in black/white.
* @param col
* @return
*/
- public static Color brighterThan(Color col) {
- return col.brighter().brighter().brighter();
+ public static Color brighterThan(Color col)
+ {
+ return col == null ? null : col.brighter().brighter().brighter();
}
}
--- /dev/null
+package jalview.util;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+
+import java.awt.Color;
+
+import org.junit.Test;
+
+public class ColorUtilsTest
+{
+
+ Color paleColour = new Color(97, 203, 111); // pale green
+
+ Color midColour = new Color(135, 57, 41); // mid red
+
+ Color darkColour = new Color(11, 30, 50); // dark blue
+
+ @Test
+ public void testDarkerThan()
+ {
+ assertEquals("Wrong darker shade", new Color(32, 69, 37),
+ ColorUtils.darkerThan(paleColour));
+ assertEquals("Wrong darker shade", new Color(45, 18, 13),
+ ColorUtils.darkerThan(midColour));
+ assertEquals("Wrong darker shade", new Color(2, 9, 16),
+ ColorUtils.darkerThan(darkColour));
+ assertNull(ColorUtils.darkerThan(null));
+ }
+
+ @Test
+ public void testBrighterThan()
+ {
+ assertEquals("Wrong brighter shade", new Color(255, 255, 255), // white
+ ColorUtils.brighterThan(paleColour));
+ assertEquals("Wrong brighter shade", new Color(255, 164, 117),
+ ColorUtils.brighterThan(midColour));
+ assertEquals("Wrong brighter shade", new Color(30, 85, 144),
+ ColorUtils.brighterThan(darkColour));
+ assertNull(ColorUtils.brighterThan(null));
+ }
+}