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(FeatureRendererModel fr)
43 featureGroups = new ConcurrentHashMap();
44 featureColours = new ConcurrentHashMap();
45 featureOrder = new ConcurrentHashMap();
46 if (fr.renderOrder != null)
48 this.renderOrder = new String[fr.renderOrder.length];
49 System.arraycopy(fr.renderOrder, 0, renderOrder, 0,
50 fr.renderOrder.length);
52 if (fr.featureGroups != null)
54 this.featureGroups = new ConcurrentHashMap(fr.featureGroups);
56 if (fr.featureColours != null)
58 this.featureColours = new ConcurrentHashMap(fr.featureColours);
60 Iterator en = fr.featureColours.keySet().iterator();
63 Object next = en.next();
64 Object val = featureColours.get(next);
65 if (val instanceof GraduatedColor)
67 featureColours.put(next, new GraduatedColor((GraduatedColor) val));
70 this.transparency = fr.transparency;
71 if (fr.featureOrder != null)
73 this.featureOrder = new ConcurrentHashMap(fr.featureOrder);