#DesignerProperty: Key: BooleanExample, DisplayName: Show Seconds, FieldType: Boolean, DefaultValue: True
#DesignerProperty: Key: TextColor, DisplayName: Text Color, FieldType: Color, DefaultValue: 0xFFFFFFFF, Description: Text color
Sub Class_Globals
#If B4J
Private fx As JFX
#End If
Private xui As XUI 'ignore
Private mEventName As String 'ignore
Private mCallBack As Object 'ignore
Public mBase As B4XView
Public Tag As Object
Private mParent As B4XView
Dim chart As JavaObject
Private mLeft, mTop, mWidth, mHeight As Int
Private pnlSpectrogram As Pane
End Sub
Public Sub Initialize (Callback As Object, EventName As String)
mEventName = EventName
mCallBack = Callback
End Sub
'Base type must be Object
Public Sub DesignerCreateView (Base As Object, Lbl As Label, Props As Map)
Private mDummy As B4XView
pnlSpectrogram.Initialize("pnlSpectEvent")
mDummy = Base
mLeft = mDummy.Left
mTop = mDummy.Top
mWidth = mDummy.Width
mHeight = mDummy.Height
Tag = mDummy.Tag
'we create a new mBase object to get the Touch event
mBase = xui.CreatePanel("eventSpect")
mParent = mDummy.Parent
mParent.AddView(mBase, mLeft, mTop, mWidth, mHeight)
mParent.AddView(pnlSpectrogram, mLeft, mTop, mWidth, mHeight)
mBase.Tag = Me
Tag = mBase.Tag
mBase.Tag = Me
mDummy.RemoveViewFromParent
InitClass
End Sub
Private Sub InitClass
End Sub
Private Sub Base_Resize (Width As Double, Height As Double)
End Sub
Private Sub imgLegend_MouseClicked (EventData As MouseEvent)
End Sub
Private Sub timeSlider_ValueChange (Value As Double)
End Sub
Private Sub AreaHeatMapBuilderFcn(dataPointList)
Dim AreaHeatMapBuilder As JavaObject
Dim width As Double = 1001.0
Dim height As Double = 601.0
Dim colorMapping As JavaObject
colorMapping.InitializeStatic("eu.hansolo.fx.charts.tools.ColorMapping")
Dim color As JavaObject = colorMapping.GetField("BLUE_CYAN_GREEN_YELLOW_RED")
Dim qual As JavaObject
qual.InitializeStatic("eu.hansolo.fx.charts.areaheatmap.AreaHeatMap.Quality")
Dim quality As JavaObject = qual.GetField("FINE")
AreaHeatMapBuilder.InitializeStatic("eu.hansolo.fx.charts.areaheatmap.AreaHeatMapBuilder")
chart = AreaHeatMapBuilder.RunMethodJO("create", Null) _
.RunMethodJO("prefSize", Array(width, height)) _
.RunMethodJO("colorMapping", Array(color)) _
.RunMethodJO("dataPoints", Array(dataPointList)) _
.RunMethodJO("heatMapOpacity", Array(0.9)) _
.RunMethodJO("useColorMapping", Array(True)) _
.RunMethodJO("dataPointsVisible", Array(False)) _
.RunMethodJO("noOfCloserInfluentPoints", Array(1)) _
.RunMethodJO("quality", Array(quality)) _
.RunMethodJO("build", Null)
'add the chart to pnlSpChart
pnlSpectrogram.AddNode(chart, pnlSpectrogram.Width*0.025, pnlSpectrogram.Height*0.025, pnlSpectrogram.Width*0.95, pnlSpectrogram.Height*0.95)
End Sub
public Sub plotSpectrogram(freqX As List, values As List, noSamples)
Dim dataPoints As JavaObject
Dim dataPointList As List
Dim val1, val2, val3 As Double
dataPointList.Initialize
val2 = 0
val1 = 0
val3 = 130
dataPointList.add(dataPoints.InitializeNewInstance("eu.hansolo.fx.charts.data.DataPoint", Array(val1, val2, val3)))
val2 = 130
val1 = 0
val3 = 450
dataPointList.add(dataPoints.InitializeNewInstance("eu.hansolo.fx.charts.data.DataPoint", Array(val1, val2, val3)))
val2 = 0
val1 = 900
val3 = 50
dataPointList.add(dataPoints.InitializeNewInstance("eu.hansolo.fx.charts.data.DataPoint", Array(val1, val2, val3)))
val2 = 130
val1 = 900
val3 = 60
dataPointList.add(dataPoints.InitializeNewInstance("eu.hansolo.fx.charts.data.DataPoint", Array(val1, val2, val3)))
'Ínitialise and plot
Dim areaHeatMapBuilder As JavaObject
Dim width As Double = mWidth
Dim height As Double = mHeight
Dim colorMapping As JavaObject
colorMapping.InitializeStatic("eu.hansolo.fx.charts.tools.ColorMapping")
Dim color As JavaObject = colorMapping.GetField("BLUE_CYAN_GREEN_YELLOW_RED")
Dim qual As JavaObject
qual.InitializeStatic("eu.hansolo.fx.charts.areaheatmap.AreaHeatMap.Quality")
Dim quality As JavaObject = qual.GetField("FINE")
areaHeatMapBuilder.InitializeStatic("eu.hansolo.fx.charts.areaheatmap.AreaHeatMapBuilder")
chart = areaHeatMapBuilder.RunMethodJO("create", Null) _
.RunMethodJO("prefSize", Array(width, height)) _
.RunMethodJO("colorMapping", Array(color)) _
.RunMethodJO("dataPoints", Array(dataPointList)) _
.RunMethodJO("heatMapOpacity", Array(0.99)) _
.RunMethodJO("useColorMapping", Array(True)) _
.RunMethodJO("dataPointsVisible", Array(False)) _
.RunMethodJO("noOfCloserInfluentPoints", Array(1)) _
.RunMethodJO("quality", Array(quality)) _
.RunMethodJO("build", Null)
'add the chart to pnlSpectrogram
pnlSpectrogram.AddNode(chart,pnlSpectrogram.Width*0.025,pnlSpectrogram.Height*0.025,pnlSpectrogram.Width*0.95,pnlSpectrogram.Height*0.95)
End Sub