Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "5 Display"

(Miscellaneous)
(Replaced content with "This page was obsolete and has been deleted. Please see the history if you need to access the content.")
 
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Comparison SWT / RWT|back to table of content]]
+
This page was obsolete and has been deleted. Please see the history if you need to access the content.
 
+
==Display==
+
 
+
The display creation in RWT is slightly different than in SWT. Instead of a main method RWT provides the IEntryPoint Interface in its createUI method. In this method you need to implement the creation of the display and the initial set of widgets to be displayed.
+
 
+
<code>
+
 
+
  public class Example implements IEntryPoint {
+
    public Display createUI() {
+
      Display display = new Display();
+
      final Shell shell = new Shell( display, RWT.NONE );
+
      shell.setBounds( 10, 10, 800, 600 );
+
   
+
      ToolBar toolBar = new ToolBar( shell, RWT.NONE );
+
      ToolItem item1 = new ToolItem( toolBar, RWT.PUSH );
+
   
+
      ...
+
   
+
      return display;
+
    }
+
  }
+
 
+
</code>
+
 
+
===Naming Your Application===
+
Not yet implemented. The HTML title could be used to mimic a minimal application naming.
+
 
+
===Display Life Cycle===
+
Similar, but the display lives as long as the browser session is active.
+
 
+
===Events and Listeners===
+
Will be implemented.
+
 
+
===Event Filters===
+
Not yet implemented. Quote SWT book: "Filters are Powerful and Dangerous".
+
One of the standard use cases for event filtering - large numbers of events - are not a good idea for RWT because of the distributed nature of RAP (and associated network latency).
+
 
+
===Runnable "Execs"===
+
Not yet implemented.
+
 
+
===The Event Loop===
+
Not applicable. We have request / response cycles instead. Please see also the thread topic directly below.
+
 
+
===Multithreaded Programming===
+
Not yet implemented. The UI thread will be represented by the thread that services the browser (ajax) request.
+
 
+
Asynchonous execution requires some effort on the RWT side, as the client needs to be informed of UI changes. As http is a stateless protocol with request/response pushing of data is not intended by the creators of the protocol. There are two workarounds:
+
* Polling (the client polls the server regulary while an async exec is running)
+
* so called Comet - a http response is kept open / alive and can be used to push data to the browser. Latest developments in java servers promise to implement Comet with minimal overhead (Jetty, Glassfish).
+
 
+
Threading requires extra care as we are executing them on a server!
+
 
+
===Timers===
+
Not yet implemented.
+
 
+
===Putting It All Together: Multithreading, Timers, Events, and the Event Loop===
+
* Events are generated by the user and read and dispatched to widgets by the the thread that services the request.
+
* Application code registers interest in events by adding event listeners to widgets. ...
+
* If the user interface thread is busy (in our case a request has not received its response) further events are queued (on the client side).
+
* pushing UI updates to the user by calling a method like readAndDispatch() is not possible
+
* no timers yet ;-)
+
 
+
===Monitors, Bounds, and Client Area===
+
* Very likely no Monitors ...
+
* Bounds / Client Area - implemented as the size of the browser window
+
 
+
===The Active Shell, All Shells, and Focus Control===
+
Not yet implemented
+
 
+
===Cursor Control and Location===
+
Very unlikely to be implemented.
+
 
+
===Display Depth and DPI===
+
Sorry, but no;-)
+
 
+
===Updating the Display===
+
Updating the Display is not an issue in RWT. At the end of the request life cycle all changes are 'rendered' and sent to the client.
+
 
+
===Application Data===
+
Not yet implemented, but will work as in SWT.
+
 
+
===Coordinate Mapping and Mirroring===
+
Not yet fully implemented, but will work as in SWT.
+
Please note that to fully support bidirectional languages there has more to be done than mirroring and it is yet unclear if we can realize this client-side.
+
 
+
===Miscellaneous===
+
* Beep: no :(
+
* Double-Click Time: depends on the JavaScript library (http://qooxdoo.org) we are using on the client side.
+

Latest revision as of 06:22, 7 January 2014

This page was obsolete and has been deleted. Please see the history if you need to access the content.

Back to the top