B4J Question AS CalendarAdvanced and Gesture Trackpad

MarcoRome

Expert
Licensed User
Longtime User
Hi dear Alexander.
I don't know how as_view works (I haven't looked at the library).
And I don't know if these two examples can help you.

I have prepared 2 examples for you:
The former intercepts whether the mouse is inside the object or if it is outside the object. You could eventually "stop" the gesture capability inside as_view.

B4X:
Sub AppStart (Form1 As Form, Args() As String)
    MainForm = Form1
MainForm.RootPane.LoadLayout("Layout1")
    MainForm.Show
  
'First Example if the mouse is inside the object ( example calendar )
Dim JO As JavaObject = Pane1 'or Whichever Node you are tracking
Dim O As Object = JO.CreateEventFromUI("javafx.event.EventHandler","MouseEntered",Null)
JO.RunMethod("setOnMouseEntered",Array(O))
Dim O As Object = JO.CreateEventFromUI("javafx.event.EventHandler","MouseExited",Null)
JO.RunMethod("setOnMouseExited",Array(O))


End Sub


Private Sub MouseEntered_Event (MethodName As String, Args() As Object)
Log("Mouse inside")

End Sub

Private Sub MouseExited_Event (MethodName As String, Args() As Object)
Log("Mouse Out")
End Sub



The second intercept right if you use the SWIPE (trackpad) to the right or left

B4X:
Sub AppStart (Form1 As Form, Args() As String)
    MainForm = Form1
MainForm.RootPane.LoadLayout("Layout1")
    MainForm.Show
 

'Next Example if SWIPE LEFT O RIGHT
Dim R As Reflector
    R.Target = MainForm.RootPane
R.AddEventFilter("SwipeLeft","javafx.scene.input.SwipeEvent.SWIPE_LEFT")
R.AddEventFilter("SwipeRight","javafx.scene.input.SwipeEvent.SWIPE_RIGHT")
End Sub

Private Sub SwipeLeft_Filter (E As Event)
Dim MouseEvent As JavaObject = E
Log("SWIPE_LEFT")
End Sub

Private Sub SwipeRight_Filter (E As Event)
Dim MouseEvent As JavaObject = E
Log("SWIPE_RIGHT")
End Sub
 

Alexander Stolte

Expert
Licensed User
The code also responds my scrolling, but unfortunately only when I am at the top and scroll further up. The same at the bottom when I scroll further down. Unfortunately not when I scroll normally in the list.
B4X:
Dim R As Reflector
R.Target = xclv_main.sv
R.AddEventHandler("ScrollPaneScroll","javafx.scene.input.ScrollEvent.SCROLL")

Sub ScrollPaneScroll_Event(e As Event)
    Log("Scrolled")
    e.Consume
End Sub
 
Upvote 0

MarcoRome

Expert
Licensed User
Longtime User
Do you have tried these alternatives ( SCROLL_STARTED, ROTATION_STARTED ) ?

B4X:
R.AddEventHandler("ScrollPaneScroll","javafx.scene.input.ScrollEvent.SCROLL_STARTED")

B4X:
R.AddEventHandler("ScrollPaneScroll","javafx.scene.input.RotateEvent.ROTATION_STARTED")


1675232968649.png
 
Upvote 0

DonManfred

Expert
Licensed User
Longtime User
Do you have tried these alternatives ( SCROLL_STARTED, ROTATION_STARTED ) ?
you have in mind that you are refering to javaFX Objects? They are probably not existent in Android. In B4J they probably work.
 
Upvote 0

MarcoRome

Expert
Licensed User
Longtime User
you have in mind that you are refering to javaFX Objects. They are probably not existent in Android. In B4J they probably work.

Yes dear don Manfred we are looking for the solution to manage the trackPad only for B4J as we have an unwanted effect on the AsCalendar library

 
Upvote 0

MarcoRome

Expert
Licensed User
Longtime User
I develop my own B4J pager without relying on the xCustomListView. There is another problem where I had not found a solution at that time either.

A custom development is probably the best solution.
I made the change. And on Trackpad it works fine. Basically, not being able to manage the trackpad (to lock it only in the object of interest) I managed to add an "if using a trackpad" property in the design. This eliminates the header and adds the month/day for the days so as to have, for example, Feb/Mon and so on.
On the test that we have carried out using the Trackpad ( of a MAC ) it works without any problem.


This is the result using a TrackPad

 
Upvote 0
Top