Hi Dany,

Thank you for your response. In the mean time, I have found a workaround for
this. I have changed the DeliveryMode for VALUE_CHANGED_EVENT_CATEGORY to
ASYNCHRONOUS_MODE and I call requestFocus() for nextFocusableComponent in
ValueChangeListener on server side implementation.

Vlado

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Daniel Grob
Sent: Monday, October 15, 2007 11:00 AM
To: [email protected]; Vyvojava
Subject: Re: [ULC-developer] ULC Mobile Symbol scanner

Hi Vlado,

I finally could identify the root of this issue!
ULC blocks the user interface during each synchronous server round- trip. To
signal the blocking state to the user, ULC displays an hour glass mouse
cursor. At the end of the server round-trip ULC then resets the mouse cursor
to its original state. In ULC Mobile this reset is not done by the AWT Event
Dispatch Thread. This is clearly a violation of Swing's single thread rule.
Sun's JVM seems to be more robust concerning this violation whereas Creme's
JVM just hangs. I created the following JIRA entry for this issue:
http://www.canoo.com/ jira/browse/UMO-65.

As a workaround instead of triggering the focus change with
transferFocus() you can use the following code construct:

                                Container topLevelAncestor =
getBasicTextComponent ().getTopLevelAncestor();
                                long when = System.currentTimeMillis();
                                
                                KeyEvent pressedEvent = new
KeyEvent(topLevelAncestor, KeyEvent.KEY_PRESSED, when, 0, KeyEvent.VK_TAB,
'\t');
                                KeyEvent releasedEvent = new
KeyEvent(topLevelAncestor, KeyEvent.KEY_RELEASED, when, 0, KeyEvent.VK_TAB,
'\t');
                                KeyEvent typedEvent = new
KeyEvent(topLevelAncestor, KeyEvent.KEY_TYPED, when, 0,
KeyEvent.VK_UNDEFINED, '\t');
                                
        
Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent
(pressedEvent);
        
Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent
(releasedEvent);
        
Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent
(typedEvent);


Regards Dany


On 01.10.2007, at 13:22, Vyvojava wrote:

> Hi
>
> I have a problem with extension to ULCMobile TextField for Symbol 
> barcode scanner support. I need to call setValue() when scan button on 
> device is pressed and then to transfer focus to the next focusable 
> component.
>
> As I don't know any other way to test this behaviour, I test it in 
> development mode by KeyboardAction being registered when the focus on 
> textfield is gained and unregistered when the focus is lost.
> Everything's working fine this way, but the code is deployed to the 
> target device (Symbol MC9090), the test application is not responding.
> The test application registers FocusListener and ValueChangeListener 
> in order to log the behaviour.
>
> I think the order of the events in the development mode is different 
> from the one happening on the actual device. In the device log, there 
> are no statements about the focus being transfered.
>
> Log from development mode:
>
> application started
> 1191223496248 client focus gained listener: registered.keyboardaction
> 1191223496264 server focus gained listener: componentName ean8
> 1191223497811 client action listener: getValue null
> 1191223497811 client action listener: setValue value 1
> 1191223497811 client action listener: updateStateULC
> 1191223497811 client action listener: fireValueChangedULC
> 1191223497826 server valuechanged listener: setText 1: 52 - value 1
> 1191223497826 client action listener: transferFocus
> 1191223497826 client focus lost listener: unregistered.keyboardaction
> 1191223497826 server focus lost listener: componentName ean8
> 1191223497826 client focus gained listener: registered.keyboardaction
> 1191223497842 server focus gained listener: componentName ean8_2
> 1191223499045 client action listener: getValue null
> 1191223499045 client action listener: setValue value 1
> 1191223499045 client action listener: updateStateULC
> 1191223499045 client action listener: fireValueChangedULC
> 1191223499061 server valuechanged listener: setText 2: 52 - value 1
> 1191223499061 client action listener: transferFocus
> 1191223499061 client focus lost listener: unregistered.keyboardaction
> 1191223499061 server focus lost listener: componentName ean8_2
> 1191223499061 client focus gained listener: registered.keyboardaction
> 1191223499061 server focus gained listener: componentName ean8 dispose 
> Dispose
>
> Client log from device:
> 1191137864267 client focus gained listener: registered.keyboardaction
> 1191137869603 client action listener: getValue null
> 1191137869776 client action listener: setValue value 1
> 1191137870084 client action listener: updateStateULC
> 1191137870247 client action listener: fireValueChangedULC
> 1191137870627 client focus lost listener: unregistered.keyboardaction
> 1191137871019 client focus gained listener: registered.keyboardaction
>
> Server log (times arent synchronized on client and server):
> 09:37:15,587 INFO  [STDOUT] application started
> 09:37:19,618 INFO  [STDOUT] 1191224239618 server focus gained
> listener:
> componentName ean8
> 09:37:25,431 INFO  [STDOUT] 1191224245431 server valuechanged
> listener:
> setText 1: 52 - value 1
> 09:37:25,837 INFO  [STDOUT] 1191224245837 server focus lost listener:
> componentName ean8
>
> Application was terminated, so dispose messages are missing.
>
> Thanks for reply
>
> Vlado
>
>
> ----------------------------------------------------------------------
> ----
> Tato sprava a vsetky pripojene subory su doverne a urcene vyhradne 
> osobam alebo organizaciam, ktorym boli adresovane. Ak ste dostali 
> tento e- mail omylom, prosim, upovedomte Chemosvit, a.s. 
> ([EMAIL PROTECTED]).
>
> This email and any files transmitted are confidential and intended 
> solely for the use of the individual or entity to which they are 
> addressed. If you have received this email in error, please notify 
> Chemosvit, a.s. ([EMAIL PROTECTED]).
> ----------------------------------------------------------------------
> -----
> <ULCSymbolTextField.java><TestSymbolComponent.java><UISymbolTextField. 
> java>

_______________________________________________
ULC-developer mailing list
[email protected]
http://lists.canoo.com/mailman/listinfo/ulc-developer



--------------------------------------------------------------------------
Tato sprava a vsetky pripojene subory su doverne a urcene vyhradne osobam
alebo organizaciam, ktorym boli adresovane. Ak ste dostali tento e-mail
omylom, prosim, upovedomte Chemosvit, a.s. ([EMAIL PROTECTED]).

This email and any files transmitted are confidential and intended
solely for the use of the individual or entity to which they are
addressed. If you have received this email in error, please notify
Chemosvit, a.s. ([EMAIL PROTECTED]).
--------------------------------------------------------------------------- 

_______________________________________________
ULC-developer mailing list
[email protected]
http://lists.canoo.com/mailman/listinfo/ulc-developer

Reply via email to