Re: mouse vs. touch events on touch systems like iOS/Android/Dukepad

2013-10-23 Thread Assaf Yavnai

Matthias,

Please look inline
On 10/22/2013 07:33 PM, Richard Bair wrote:

Hi Matthias, I think Assaf, one of the embedded engineers, is now on the 
mailing list and can help answer these questions.

Thanks
Richard

On Oct 21, 2013, at 1:58 AM, Matthias Hänel hae...@ultramixer.com wrote:


Hi,


I believe my conceptual question on touch/mouse events has been missed because 
of the other questions
in the JAVAFX on ANDROID thread. That's why I would like to start a new 
discussion about touch events.


1. The main question is how are touch and internal mouse events handled? Javafx 
controls seem to rely on mouse events.
That's why I assume there must be some kind of an emulation layer. Are these 
emulated in Prism, Glass (Java-Glasses)
or even lower? Where is it suppose to emulate the mouse events?

What I've seen right now is that iOS-native glass does the mouse
emulation by itself in GlassViewDelegate.m. Touch events and Mouse events are 
sent from the lowest layer.
In Android there are only touch events passed to the lens implementation. On 
udev which I assume is the implementation
that's used for Dukepad it does only pass touch events. Udev and Android are 
lens implementations so, they are using
the same Java classes which do kind of mouse emulation for toch events. But 
it's not exactly the same as the iOS
codes does.

iOS:
sends Touch, Mouse-Enter and Mouse-Down

Lens (Android/Dukepad):
sends Mouse-Enter and Touch


The major differences in calling order and the missung mouse down leeds me to 
the assumption that the events are actually
missing.
Basically the Glass port resbonsible to simulate mouse events from touch 
events. On Windows, for example, its done automaticaly by the OS, in 
other implementations its emulated in the native layer, in Lens 
currently its done in several  places and layers (the input driver, the 
window manger and the java glass code).
There are currently several issues with the touch support in Lens 
implementaion that effects all the ports that are using it.
You can track the work through the master bug RT-32802. 
https://javafx-jira.kenai.com/browse/RT-32802
I'm curently working on solving those issues, and one of the fixes is to 
make mouse simulation more unified.
Please feal free to open more bugs for specific scenrios and link them 
to the master bug, so we can track it and solve it.




2. Is that mouse emulation supposed to be eliminated due to the latest 
lensWindow changes?
  I believe that must be handled in higher layers not in the input layer itself.
What do you mean by 'latest lensWindow changes'? please clarify the 
question.



3. What is the input layer for the Dukepad? I think it's the udev 
implementation and this does pretty much the same as the current
android implementation. I just want to have a stable reference to look at ;)
The input driver, as we call it, is depend on the system you are running 
and not the application you are running. From Application prespective 
its all the same. So on embedded devices, like the Raspberry PI, it will 
be udevInput, on Windows it will be Window's Glass implementation (not 
Lens based), on Android it will be Android porting + Lens and so on.



4. Has anyone with a Dukepad the opportunity to test the ListView-Example? For 
me on Android, it doesn't scroll at all with any touches.
With the automatic scrolling (from Richard sources) I get around 30fps on the 
Samsung Galaxy Tab 10.1.

I didn't.
Again if you find a problem or a bug please open a JIRA against so we 
will be able to track and fix it.


Thanks,
Assaf




regards
Matthias





Re: mouse vs. touch events on touch systems like iOS/Android/Dukepad

2013-10-23 Thread Oldrich Maticka

Hi Matthias,

I have a small note to mouse emulation.
Windows tablet was chosen as a reference for  touch/mouse events 
emulation in JavaFX, because Windows on tablets had to deal with same 
sort of problems as JavaFX - i.e. support existing 'mouse-driven' 
applications on touch devices.


When we implemented (multi)touch + mouse emulation for JavaFX on iOS we 
followed this model as close as possible.



Regards,
Oldrich

Hi,


I believe my conceptual question on touch/mouse events has been missed because 
of the other questions
in the JAVAFX on ANDROID thread. That's why I would like to start a new 
discussion about touch events.


1. The main question is how are touch and internal mouse events handled? Javafx 
controls seem to rely on mouse events.
That's why I assume there must be some kind of an emulation layer. Are these 
emulated in Prism, Glass (Java-Glasses)
or even lower? Where is it suppose to emulate the mouse events?

What I've seen right now is that iOS-native glass does the mouse
emulation by itself in GlassViewDelegate.m. Touch events and Mouse events are 
sent from the lowest layer.
In Android there are only touch events passed to the lens implementation. On 
udev which I assume is the implementation
that's used for Dukepad it does only pass touch events. Udev and Android are 
lens implementations so, they are using
the same Java classes which do kind of mouse emulation for toch events. But 
it's not exactly the same as the iOS
codes does.

iOS:
sends Touch, Mouse-Enter and Mouse-Down

Lens (Android/Dukepad):
sends Mouse-Enter and Touch


The major differences in calling order and the missung mouse down leeds me to 
the assumption that the events are actually
missing.



2. Is that mouse emulation supposed to be eliminated due to the latest 
lensWindow changes?
I believe that must be handled in higher layers not in the input layer itself.


3. What is the input layer for the Dukepad? I think it's the udev 
implementation and this does pretty much the same as the current
android implementation. I just want to have a stable reference to look at ;)


4. Has anyone with a Dukepad the opportunity to test the ListView-Example? For 
me on Android, it doesn't scroll at all with any touches.
With the automatic scrolling (from Richard sources) I get around 30fps on the 
Samsung Galaxy Tab 10.1.



regards
Matthias





mouse vs. touch events on touch systems like iOS/Android/Dukepad

2013-10-21 Thread Matthias Hänel
Hi,


I believe my conceptual question on touch/mouse events has been missed because 
of the other questions
in the JAVAFX on ANDROID thread. That's why I would like to start a new 
discussion about touch events.


1. The main question is how are touch and internal mouse events handled? Javafx 
controls seem to rely on mouse events.
That's why I assume there must be some kind of an emulation layer. Are these 
emulated in Prism, Glass (Java-Glasses)
or even lower? Where is it suppose to emulate the mouse events? 

What I've seen right now is that iOS-native glass does the mouse
emulation by itself in GlassViewDelegate.m. Touch events and Mouse events are 
sent from the lowest layer.
In Android there are only touch events passed to the lens implementation. On 
udev which I assume is the implementation
that's used for Dukepad it does only pass touch events. Udev and Android are 
lens implementations so, they are using
the same Java classes which do kind of mouse emulation for toch events. But 
it's not exactly the same as the iOS
codes does.

iOS:
sends Touch, Mouse-Enter and Mouse-Down

Lens (Android/Dukepad):
sends Mouse-Enter and Touch


The major differences in calling order and the missung mouse down leeds me to 
the assumption that the events are actually
missing.



2. Is that mouse emulation supposed to be eliminated due to the latest 
lensWindow changes? 
  I believe that must be handled in higher layers not in the input layer itself.


3. What is the input layer for the Dukepad? I think it's the udev 
implementation and this does pretty much the same as the current 
android implementation. I just want to have a stable reference to look at ;)


4. Has anyone with a Dukepad the opportunity to test the ListView-Example? For 
me on Android, it doesn't scroll at all with any touches.
With the automatic scrolling (from Richard sources) I get around 30fps on the 
Samsung Galaxy Tab 10.1.



regards
Matthias