Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [e4-dev] Does that mean SWT only exist in desktop ?

Hi,

Doing a full SWT-Port for the Web is a very hard task because some of
the concepts in SWT can't be emulated easily on the browser:

* Event-Loop: Todays browser though HTML5 brings webworkers are still
  single threaded and so you can't e.g open blocking dialogs like you
  do in SWT => SWT would have to introduce API with callbacks so
  that one could write single-source code.

  An example might make this clear:

  Today:
  ----------8<----------
  MessageBox msg = new MessageBox(parent,SWT.ICON_ERROR);
  msg.setText("I'm the message");
  msg.open();  // Blocking call
  System.out.println("I'm running after dialog closed");
  ----------8<----------

  In Future:
  ----------8<----------
  MessageBox msg = new MessageBox(parent,SWT.ICON_ERROR);
  msg.setText("I'm the message");
  msg.open(new Runnable() {
    public void run() {
      System.out.println("I'm running after dialog closed");
    }
  });

  ----------8<----------

* There's no native GC in web-browsers and so stuff like tables/trees
  with owner draw is not possible.

* ...

All those stuff lead me to believe that a SWT-Port is not feasable
(because a full one is not possible with todays SWT/JFace-API) and I
invested time to inventing an API which is compatible with Desktop and
Browser technologies and the result was UFaceKit whose API is designed
with Browser and Desktop-Support in mind:

* All API is none blocking and provides callbacks
* API free from platform natives like gc, fonts, images, ... but
  instead usage of declartive syntax

E.g. Example from above in UFaceKit:
----------8<----------
desktop.showErrorDialog(
  parent,
  "Error",
  "Error Message",
  new Status(IStatus.ERROR,e.getMessage()),
  new DataRunnable<Boolean>() {
      public void run( Boolean data ) {
      }
  }
);

----------8<----------

Currently there's no finished port for GWT available but the
underpinning infrastructure for it is available:
* Eclipse Databinding of "3.5.2" (ready) [1]
* A "native" widget toolkit named QxWT [7] (ready) [2,3,4,5]
* Viewer implementations for structured QxWT controls (in development)
  [1]
* ...

UFaceKit is an Eclipse Project but I haven't brought the GWT [8] stuff
to Eclipse yet because when I started I wasn't sure where all this is
going to.

Anyways to get a first impression on UFaceKit we have "consumeable"
builds [6] for our SWT-Implementation (Disclaimer: Because of whatever
reason p2 believes that it has version mismatches but setting up a
target platform by hand seems to be work).

Because my work in those areas I've indepth knowledge about them but
because of time constraints I can't help with getting such a port of SWT
going (beside questioning whether it makes sense with the current SWT-API).

Tom

[1]http://tomsondev.bestsolution.at/
[2]http://tomsondev.bestsolution.at/2010/01/05/background-to-qxwt-and-gwt-generator-integration/
[3]http://tomsondev.bestsolution.at/2010/01/10/qxwt-explained-part-2/
[4]http://tomsondev.bestsolution.at/2010/01/12/qxwt-explained-part-3/
[5]http://tomsondev.bestsolution.at/2010/01/15/qxwt-explained-part-4/
[6]https://build.eclipse.org/hudson/job/cbi-UFaceKit-nightly/
[7]http://www.ufacekit.org/qxwt/demos/QxDemo-dev/QxDemo.html
[8]http://www.ufacekit.org/


Am 28.01.10 02:31, schrieb Ivan Ooi:
> Hi all,
> 
>    Sorry, I understand that SWT for Java will support css but is there
> any chances that " SWT for e4 " 
> will allow SWT Java users used back whatever they know or existing code
> with some changes,
> turn their applications into web enabled ? or will e4 port SWT to iPhone
> or iPad with the help of GWT or
> convert every things to Cocoa ?
> 
> Thanks 
>   
> 
> 
> 
> _______________________________________________
> e4-dev mailing list
> e4-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/e4-dev


-- 
B e s t S o l u t i o n . a t                        EDV Systemhaus GmbH
------------------------------------------------------------------------
tom schindl                                        geschaeftsfuehrer/CEO
------------------------------------------------------------------------
eduard-bodem-gasse 5/1    A-6020 innsbruck      phone    ++43 512 935834


Back to the top