1 package jalview.viewmodel.seqfeatures;
3 import jalview.schemes.GraduatedColor;
5 import java.util.Arrays;
6 import java.util.Hashtable;
7 import java.util.Iterator;
9 import java.util.concurrent.ConcurrentHashMap;
11 public class FeatureRendererSettings implements Cloneable
23 public FeatureRendererSettings(String[] renderOrder,
24 Hashtable featureGroups, Hashtable featureColours,
25 float transparency, Hashtable featureOrder)
28 this.renderOrder = Arrays.copyOf(renderOrder,renderOrder.length);
29 this.featureGroups = new ConcurrentHashMap(featureGroups);
30 this.featureColours = new ConcurrentHashMap(featureColours);
31 this.transparency = transparency;
32 this.featureOrder = new ConcurrentHashMap(featureOrder);
36 * create an independent instance of the feature renderer settings
40 public FeatureRendererSettings(
41 jalview.viewmodel.seqfeatures.FeatureRendererModel fr)
44 featureGroups = new ConcurrentHashMap();
45 featureColours = new ConcurrentHashMap();
46 featureOrder = new ConcurrentHashMap();
47 if (fr.renderOrder != null)
49 this.renderOrder = new String[fr.renderOrder.length];
50 System.arraycopy(fr.renderOrder, 0, renderOrder, 0,
51 fr.renderOrder.length);
53 if (fr.featureGroups != null)
55 this.featureGroups = new ConcurrentHashMap(fr.featureGroups);
57 if (fr.featureColours != null)
59 this.featureColours = new ConcurrentHashMap(fr.featureColours);
61 Iterator en = fr.featureColours.keySet().iterator();
64 Object next = en.next();
65 Object val = featureColours.get(next);
66 if (val instanceof GraduatedColor)
68 featureColours.put(next, new GraduatedColor((GraduatedColor) val));
71 this.transparency = fr.transparency;
72 if (fr.featureOrder != null)
74 this.featureOrder = new ConcurrentHashMap(fr.featureOrder);