| 1 42 43 package org.jfree.experimental.chart.renderer; 44 45 import java.awt.Color ; 46 import java.awt.Paint ; 47 import java.io.Serializable ; 48 import java.util.List ; 49 50 import org.jfree.util.PaintUtilities; 51 import org.jfree.util.PublicCloneable; 52 53 61 public class LookupPaintScale 62 implements PaintScale, PublicCloneable, Serializable { 63 64 67 class PaintItem { 68 69 Number value; 70 71 Paint paint; 72 73 79 public PaintItem(Number value, Paint paint) { 80 this.value = value; 81 this.paint = paint; 82 } 83 } 84 85 private Paint defaultPaint; 86 87 private List lookupTable; 88 89 92 public LookupPaintScale() { 93 this.defaultPaint = Color.lightGray; 94 this.lookupTable = new java.util.ArrayList (); 95 } 96 97 103 public void add(Number n, Paint p) { 104 this.lookupTable.add(new PaintItem(n, p)); 105 } 106 107 114 public Paint getPaint(double value) { 115 Paint result = defaultPaint; 116 int index = this.lookupTable.size(); 117 boolean done = false; 118 while (index > 0 && !done) { 119 PaintItem item = (PaintItem) lookupTable.get(--index); 120 if (value >= item.value.doubleValue()) { 121 result = item.paint; 122 done = true; 123 } 124 } 125 return result; 126 } 127 128 135 public boolean equals(Object obj) { 136 if (obj == this) { 137 return true; 138 } 139 if (!(obj instanceof LookupPaintScale)) { 140 return false; 141 } 142 LookupPaintScale that = (LookupPaintScale) obj; 143 if (!PaintUtilities.equal(this.defaultPaint, that.defaultPaint)) { 144 return false; 145 } 146 return true; 147 } 148 149 157 public Object clone() throws CloneNotSupportedException { 158 return super.clone(); 159 } 160 161 } 162 | Popular Tags |