package jalview.schemes;
import jalview.api.AlignViewportI;
-import jalview.bin.Instance;
import jalview.datamodel.AnnotatedCollectionI;
import jalview.datamodel.SequenceCollectionI;
import jalview.datamodel.SequenceI;
-import jalview.util.ColorUtils;
-import java.awt.Color;
import java.util.LinkedHashMap;
import java.util.Map;
public class ColourSchemes
{
+ /*
+ * singleton instance of this class
+ */
+ private static ColourSchemes instance = new ColourSchemes();
+
+ /*
+ * a map from scheme name (lower-cased) to an instance of it
+ */
+ private Map<String, ColourSchemeI> schemes;
/**
* Returns the singleton instance of this class
*/
public static ColourSchemes getInstance()
{
- Instance j = Instance.getInstance();
- return (j.colourSchemes == null ? j.colourSchemes = new ColourSchemes()
- : j.colourSchemes);
+ return instance;
}
private ColourSchemes()
}
/**
- * ColourSchemeProperty "static"
- */
- public Color[] rnaHelices = null;
-
- /**
- * delete the existing cached RNA helices colours
- */
- public static void resetRnaHelicesShading()
- {
- getInstance().rnaHelices = null;
- }
-
- public static void initRnaHelicesShading(int n)
- {
- int i = 0;
- ColourSchemes j = getInstance();
-
- if (j.rnaHelices == null)
- {
- j.rnaHelices = new Color[n + 1];
- }
- else if (j.rnaHelices != null && j.rnaHelices.length <= n)
- {
- Color[] t = new Color[n + 1];
- System.arraycopy(j.rnaHelices, 0, t, 0, j.rnaHelices.length);
- i = j.rnaHelices.length;
- j.rnaHelices = t;
- }
- else
- {
- return;
- }
- // Generate random colors and store
- for (; i <= n; i++)
- {
- j.rnaHelices[i] = ColorUtils.generateRandomColor(Color.white);
- }
- }
-
- /**
- * a map from scheme name (lower-cased) to an instance of it
- */
- private Map<String, ColourSchemeI> schemes;
-
- /**
* Loads an instance of each standard or user-defined colour scheme
*
* @return
{
try
{
- registerColourScheme(cs.getSchemeClass().newInstance());
+ registerColourScheme(
+ cs.getSchemeClass().getDeclaredConstructor().newInstance());
} catch (InstantiationException | IllegalAccessException e)
{
System.err.println("Error instantiating colour scheme for "
+ cs.toString() + " " + e.getMessage());
e.printStackTrace();
+ } catch (ReflectiveOperationException roe)
+ {
+ roe.printStackTrace();
}
}
}