I think the IDL->DOM generation stuff will be the easy part since the API
is driven by the IDL. The more tricky (likely to bikeshed) stuff I think is
modeling all of the ES5 APIs that back everything.  e.g. JsObject, JsArray,
etc.

I somewhat like the old Elemental interfaces (ArrayOf, MapFromStringTo...)
at a high level for allowing shared code to continue to work, but at a
lower level, we need basic interfaces that let you write anything you could
write in JS, like

JsObject.hasOwnProperty(), JsObject.keys(), JsObject.defineProperty(), etc

My goal would be to minimize the need to drop to JS snippets to as small as
possible. But we won't be able to do it perfectly (e.g. dealing with
statics and overloads), and so the workarounds will be where the debate is.
:)




On Thu, Aug 21, 2014 at 9:33 AM, 'Goktug Gokdogan' via GWT Contributors <
google-web-toolkit-contributors@googlegroups.com> wrote:

>
>
>
> On Thu, Aug 21, 2014 at 5:29 AM, Cristian Rinaldi <csrina...@gmail.com>
> wrote:
>
>> Thanks +Goktug Gokdogan for response.
>>
>> APT is very good option and java 8 support for GWT 3.0 would be a amazing
>> thing.
>> You have a planning for Elemental 2.0 or initial documentation to share,
>> to how you plan address the desing?
>>
>>
> Nothing planned yet other than the plan to work on it :) My anticipation
> is. initially we will auto generate JsTyped DOM, deal with problems and
> incrementally improve it.
>
>
>> El miércoles, 20 de agosto de 2014 16:38:31 UTC-3, Goktug Gokdogan
>> escribió:
>>
>>>
>>>
>>>
>>> On Wed, Aug 20, 2014 at 6:17 AM, Cristian Rinaldi <csri...@gmail.com>
>>> wrote:
>>>
>>>> Community:
>>>>      I'm playing with JsInterop , and I have two questions:
>>>>
>>>>      1) Are you planning to try the static methods of JS objects, such
>>>> as Object, Promise, etc.?
>>>>
>>>
>>>
>>> There will be some static helpers provided from the SDK. I originally
>>> started the JSNI 2.0 document but it is basically waiting for me to start
>>> on Elemental 2.0 and accumulate more experience to turn it into something
>>> more concrete.
>>>
>>>
>>>
>>>>      2) How do when an instance is mapped to an existing Object, eg
>>>> Promise, has a constructor with parameters?
>>>>
>>>>
>>>
>>> Actually I have new ideas on this derived from how some other APTs work.
>>>
>>> I need to update the JsInterop doc but these are the options that I'm
>>> thinking right now:
>>>
>>> *Option 1 (works better for extending):*
>>>
>>> @JsType(prototype = "Promise")public interface Promise {
>>>   /* Protoype_Promise is an autogenerated package visible class */
>>>   public static class Prototype extends Protoype_Promise {
>>>     public Prototype(Function... functions) {
>>>        super(functions);
>>>     }
>>>   }
>>>
>>>   void then(Function f);
>>>
>>>   void cath(Function f);
>>> }
>>>
>>> 
>>>
>>> *Option 2 (works better for general use):*
>>>
>>> @JsType(prototype = "Promise")public interface Promise {
>>>   /* Protoype_Promise is an autogenerated package visible class */
>>>   public static Promise create(Function... functions) {
>>>      return new Protoype_Promise(functions);
>>>   }
>>>
>>>   void then(Function f);
>>>
>>>   void cath(Function f);
>>> }
>>>
>>> 
>>>
>>> *Of course one can do both:*
>>>
>>> @JsType(prototype = "Promise")public interface Promise {
>>>
>>>   public static class Prototype extends Protoype_Promise {
>>>     public Prototype(Function... functions) {
>>>        super(functions);
>>>     }
>>>   }
>>>
>>>   public static Promise create(Function... functions) {
>>>      return new Prototype(functions);
>>>   }
>>>
>>>   void then(Function f);
>>>
>>>   void cath(Function f);
>>> }
>>>
>>> 
>>>
>>>
>>>>     Currently to resolve this 1) I created the following class Factory:
>>>> JS
>>>> <https://github.com/workingflows/gwt-jscore/blob/master/src/main/java/com/workingflows/js/jscore/client/factory/JS.java>
>>>>
>>>>     But the interfaces define a contract at the level instance of a
>>>> class or object, this way of doing things, I do not know if it is
>>>> semantically correct.
>>>>
>>>>    To solve 2) there are not many options:
>>>>
>>>>      Create a Factory that returns an instance of the object, because
>>>> it has no meaning, only to make the new, implement the interface, because
>>>> the compiler already does.
>>>>      There is some progress in this?
>>>>
>>>>      I saw in one of the post a proposal to do something like this:
>>>>
>>>>      Promise Promise.Prototype p = new (new Function ....., new
>>>> Function ....);
>>>>
>>>>     Where Promise, is the interface defined with prototype = "Promise".
>>>>
>>>>     @JsType(isNative = true, prototype = "Promise")
>>>>     public interface Promise {
>>>>
>>>>       void then(Function f);
>>>>
>>>>       void cath(Function f);
>>>>   }
>>>>
>>>>     Here 'access to jsCore project:
>>>>
>>>>     https://github.com/workingflows/gwt-jscore/
>>>> <https://github.com/workingflows/gwt-jscore/>
>>>>
>>>>
>>> Great work. This kind of stuff is also very valuable as a feedback.
>>>
>>>
>>>> I hope the answers ...
>>>>
>>>> greetings
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "GWT Contributors" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to google-web-toolkit-contributors+unsubscribe@
>>>> googlegroups.com.
>>>> To view this discussion on the web visit https://groups.google.com/d/
>>>> msgid/google-web-toolkit-contributors/3268ccc7-9953-
>>>> 49c9-9079-574096f0d5d3%40googlegroups.com
>>>> <https://groups.google.com/d/msgid/google-web-toolkit-contributors/3268ccc7-9953-49c9-9079-574096f0d5d3%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>>  --
>> You received this message because you are subscribed to the Google Groups
>> "GWT Contributors" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to google-web-toolkit-contributors+unsubscr...@googlegroups.com.
>>  To view this discussion on the web visit
>> https://groups.google.com/d/msgid/google-web-toolkit-contributors/44fbf2d1-d791-4e7b-8078-5e804c3da99e%40googlegroups.com
>> <https://groups.google.com/d/msgid/google-web-toolkit-contributors/44fbf2d1-d791-4e7b-8078-5e804c3da99e%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>  --
> You received this message because you are subscribed to the Google Groups
> "GWT Contributors" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to google-web-toolkit-contributors+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/google-web-toolkit-contributors/CAN%3DyUA24BTLYVB3KyiuV4dLu-ZUT-y%2By-_C128p1Zi_3e%2BnvMA%40mail.gmail.com
> <https://groups.google.com/d/msgid/google-web-toolkit-contributors/CAN%3DyUA24BTLYVB3KyiuV4dLu-ZUT-y%2By-_C128p1Zi_3e%2BnvMA%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups "GWT 
Contributors" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-web-toolkit-contributors+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-web-toolkit-contributors/CAPVRV7eudUi9pHJR2nhMOjoWJ%3Dd57G42aOr5rFU5UUdGTpnX%2BA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to