On Wed, Aug 20, 2014 at 6:17 AM, Cristian Rinaldi <[email protected]>
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 [email protected].
> 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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/google-web-toolkit-contributors/CAN%3DyUA0ZpjT%2Bf%2ByqbwCHsSSPWaawLtJwf%2BPTTvbd68zE2Oxh%2Bw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.