
morechart.chart.renderer.LookupSVGScale.scala Maven / Gradle / Ivy
The newest version!
package morechart.chart.renderer
import org.apache.batik.util.XMLResourceDescriptor
import org.apache.batik.dom.svg.SAXSVGDocumentFactory
import org.w3c.dom.Document
/** Like [[org.jfree.chart.renderer.LookupPaintScale]] but for SVG.
*
* @author myst3r10n
*/
class LookupSVGScale(
lowerBound0: Double,
upperBound0: Double,
defaultSVG0: Document)
extends SVGScale with Serializable {
def this(lowerBound0: Double, upperBound0: Double) =
this(lowerBound0, upperBound0, null)
def this() = this(0.0, 1.0, null)
/** @see [[org.jfree.chart.renderer.LookupPaintScale]]. */
val defaultSVG =
if(defaultSVG0 == null)
new SAXSVGDocumentFactory(XMLResourceDescriptor
.getXMLParserClassName)
.createDocument(null, getClass.getResourceAsStream("/svg/morechart.svg"))
else
defaultSVG0
/** @see [[org.jfree.chart.renderer.LookupPaintScale]]. */
def lowerBound = lowerBound0
/** @see [[org.jfree.chart.renderer.LookupPaintScale]]. */
def upperBound = upperBound0
def add(value: Double, svg: Document) { lookupTable += value -> svg }
/** @see [[org.jfree.chart.renderer.PaintScale]]. */
def svg(value: Double) =
if(value < lowerBound ||
value > upperBound ||
lookupTable.size == 0 ||
!lookupTable.contains(value))
defaultSVG
else
lookupTable(value)
private var lookupTable = Map[Double, Document]()
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy