Hello Janak.

Thank you for your reply. Unfortunately, using the progress pane community
code is not our solution, because we can't move our operational code into
task classes. I still don't get it, why messages sent from server to client
are not transfered, while doing some processing in a server operation. The
following lines should fire a message "showSplashScreen" first to the
client stub and than process the operation:

    ClientContext.sendMessage("showSplashScreen");

    try {
      System.out.println("Processing data");
      Thread.sleep(6000);
    } catch (InterruptedException e) {
      logger.error(e.getMessage(), e);
    } finally {
      ClientContext.sendMessage("hideSplashScreen");
    }

Unexpected output is:

> Processing data
> showing SplashScreen
> hiding SplashScreen

We registered a MessageService with
"ClientEnvironmentAdapter.setMessageService(splashHandler);" to receive and
handle incoming messages. Hiding a Splash-Screen works fine, but for
showing it, it doesnt come up at time. I understand that this is the
behaviour of a request/response mechanismn - but what i don't understand
is, why it aint possible to send message during processing - so breaking it
up a little. Is there no other way except using the community code to show
processing operations to the client? Could the messaging behaviour be
implemented in future releases of ULC?

Thanks and best regards,
Daniel


-----Original Message-----

Hi Daniel,

>We want our application to show litte loading splashscreens during
>different undetermenistic operations (eg. saving, loading and heavy
>validations). Unfortunately we have a problem creating and showing
>ULCWindow components on server side before executing a task (eg. saving
>data). The splash only shows up a millisecond when the task is already
>completed.

>Another way sending messages ("showSplash", "hideSplash", ...) to the
>client doesnt work either, because a roundtrip is not fired after the
>client confirmed to save the data. It doesn't show up even if we call
>"splash.upload()" after we set it visible. In that way we wanted the
client
>to create a JWindow splashscreen.

ULC executes the presentation logic on the server side.

The server doesnot block, it only responds to the requests from the client.

So showing the splash screen and starting you operation in the same server
roundtrip will not help.

>The third solution we thought to use, was the community snipped
>ULCProgressPane. Unfortunately we have no idea how long the tasks take, so
>we can't set the duration time. By the way, the sample client extension we
>found, uses deprecated methods.

Using the progress pane is the right approach.

Which version of ULC are you using?

The ULCProgressPane contribution on the community has been ported to ULC
6.1.

Moreover you can use ULCPollingTimer. Lets say you start you action by
pressing a button:

In the ActionListener for the button: Start PollingTimer and Show the
splash
window

In the ActionListener of PollingTimer: Do your task and at the end Close
the
splash window.

I hope this helps.

Thanks and regards,

Janak


Disclaimer:
Aus Rechts- und Sicherheitsgruenden ist die in dieser E-Mail gegebene 
Information nicht rechtsverbindlich.
Eine rechtsverbindliche Bestaetigung reichen wir Ihnen gerne auf Anforderung in 
schriftlicher Form nach.
Beachten Sie bitte, dass jede Form der unautorisierten Nutzung, 
Veroeffentlichung, Vervielfaeltigung oder Weitergabe des Inhalts dieser E-Mail 
nicht gestattet ist.
Diese Nachricht ist ausschliesslich fuer den bezeichneten Adressaten oder 
dessen Vertreter bestimmt.
Sollten Sie nicht der vorgesehene Adressat dieser E-Mail oder dessen Vertreter 
sein, so bitten wir Sie, sich mit dem Absender der E-Mail in Verbindung zu 
setzen und/oder diese Nachricht mit allen Anhängen zu loeschen.

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

Reply via email to