From 17be9007e0572102676a7f21e0cbd9259e5aa94a Mon Sep 17 00:00:00 2001 From: Tianyue Cheng <90072894+tianyue-berkeley@users.noreply.github.com> Date: Thu, 25 Nov 2021 14:29:09 -0800 Subject: [PATCH 1/2] Horizontal Gridlines --- src/main/scala/BTreeChart.scala | 1 + src/main/scala/GridCanvas.scala | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/main/scala/BTreeChart.scala b/src/main/scala/BTreeChart.scala index 881bde3..e86e045 100644 --- a/src/main/scala/BTreeChart.scala +++ b/src/main/scala/BTreeChart.scala @@ -87,6 +87,7 @@ case class ChartParameters(width: Int, height: Int, xMin: Long, xMax: Long, yMin def xValToPos(value: Long): Double = (value - xMin) * xScale def xPosToVal(pos: Double): Long = (pos / xScale).toLong + xMin def yValToPos(value: Double): Double = (yMax - value) * yScale + def yPosToVal(pos: Double): Double = yMax - (pos / yScale) // TODO is this the right place for these functions to live? def timestampFromDateTime(dateTime: ZonedDateTime): Long = { diff --git a/src/main/scala/GridCanvas.scala b/src/main/scala/GridCanvas.scala index 4cb5359..9cf7753 100644 --- a/src/main/scala/GridCanvas.scala +++ b/src/main/scala/GridCanvas.scala @@ -38,6 +38,21 @@ class GridCanvas extends ResizableCanvas { gc.restore() } + + protected def drawValueLines(gc: GraphicsContext, scale: ChartParameters): Unit = { + gc.save() + gc.setStroke(gc.getStroke.asInstanceOf[Color].deriveColor(0, 1, 1, GRIDLINE_ALPHA)) + gc.setLineWidth(CONTEXT_GRIDLINE_WIDTH) + val v_interval = List.range(0,scale.height,64) + v_interval.foreach{ value => + gc.strokeLine(0,value,scale.width,value) +// println(s"DEBUG: value: $value") + RenderHelper.drawContrastText(gc, ChartCommon.CONTRAST_BACKGROUND, scale.yPosToVal(value).toString, + 20, value) + } + gc.restore() + } + protected def drawRulers(gc: GraphicsContext, scale: ChartParameters, priorContextTime: ZonedDateTime, tickTimes: Seq[ZonedDateTime], contextTimes: Seq[ZonedDateTime]): Unit = { @@ -86,6 +101,6 @@ class GridCanvas extends ResizableCanvas { drawGridlines(gc, scale, tickTimes, contextTimes) drawRulers(gc, scale, priorContextTime, tickTimes, contextTimes) - + drawValueLines(gc,scale) } } From 317c91df458f8ac644f00333fce048fe5d98852d Mon Sep 17 00:00:00 2001 From: Tianyue Cheng <90072894+tianyue-berkeley@users.noreply.github.com> Date: Thu, 25 Nov 2021 14:44:53 -0800 Subject: [PATCH 2/2] Rounding up --- src/main/scala/GridCanvas.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/scala/GridCanvas.scala b/src/main/scala/GridCanvas.scala index 9cf7753..9ac744a 100644 --- a/src/main/scala/GridCanvas.scala +++ b/src/main/scala/GridCanvas.scala @@ -47,7 +47,7 @@ class GridCanvas extends ResizableCanvas { v_interval.foreach{ value => gc.strokeLine(0,value,scale.width,value) // println(s"DEBUG: value: $value") - RenderHelper.drawContrastText(gc, ChartCommon.CONTRAST_BACKGROUND, scale.yPosToVal(value).toString, + RenderHelper.drawContrastText(gc, ChartCommon.CONTRAST_BACKGROUND, ((scale.yPosToVal(value) * 100).round / 100.toDouble).toString, 20, value) } gc.restore()