Just to be clear on my use case this is my java class:

@JsType(namespace = JsPackage.GLOBAL, name = "Object", isNative = true)
public class XXXGWT {

    private String codiceAmministrazione;
    
    @JsConstructor
public DocumentoPAC4DTOGWT() {}

public native String getCodiceAmministrazione();

public native void setCodiceAmministrazione(String codiceAmministrazione);

}

and this is the erorr i'm getting on the setter : 


DesktopApp-0.js:13132 Tue May 21 16:24:02 GMT+200 2024 
com.google.gwt.logging.client.LogConfiguration SEVERE: Exception caught: 
(TypeError) : b.setCodiceAmministrazione is not a function 
com.google.gwt.event.shared.UmbrellaException: Exception caught: 
(TypeError) : b.setCodiceAmministrazione is not a function
Il giorno martedì 21 maggio 2024 alle 14:56:22 UTC+2 Marco Tenti 
(IoProgrammo88) ha scritto:

> Sorry Thomas about your last comment "  I'd rather user fields than 
> getters/setters for such objects "  can you point me out to some example 
> for this ?
>
> Il giorno mercoledì 29 giugno 2022 alle 09:48:49 UTC+2 Thomas Broyer ha 
> scritto:
>
>> Using isNative=true, you're telling GWT that you're only "mapping" in 
>> Java a *type* that exists in JS. The default naming rule is that the 
>> full name of that type is the fully qualified name of the Java class, you 
>> can change the simple name with 'name', and the *prefix* with namespace 
>> (which defaults to the package name for top-level classes, or the enclosing 
>> type's JS name for nested classes). So with namespace=GLOBAL but without 
>> the name="Object", you're saying that you want to basically do a 'new 
>> $wnd.MyPluginConfig()' in JS, and the browser rightfully complains that 
>> there's no such MyPluginConfig. Adding name="Object" means you'll do a 'new 
>> $wnd.Object()' in JS.
>>
>> Fwiw, I'd rather user fields than getters/setters for such objects. YMMV.
>>
>> On Wednesday, June 29, 2022 at 8:38:19 AM UTC+2 Nicolas Chamouard wrote:
>>
>>> Thank you !
>>> It is a bit mysterious to me, but with *name = "Object"* the 
>>> constructor works :)
>>>
>>>
>>> Le mercredi 29 juin 2022 à 00:47:32 UTC+2, [email protected] a écrit :
>>>
>>>> try adding name = "Object" so that it uses an empty javascript Object 
>>>> as the wrapped item.
>>>>
>>>> I found this via Googling:
>>>>
>>>> @JsType(namespace = JsPackage.GLOBAL, isNative = true, name = "Object")
>>>> public class MyPluginConfig {
>>>>     @JsProperty public void setXXXX(String str);
>>>>     @JsProperty public String getXXXX();
>>>>     ...
>>>> }
>>>>
>>>> Ref: https://stackoverflow.com/a/36329387/12407701
>>>>
>>>>
>>>> On Tue, Jun 28, 2022 at 6:24 PM Nicolas Chamouard <
>>>> [email protected]> wrote:
>>>>
>>>>> Yes, it does not change anything : 
>>>>>
>>>>> @JsType(*isNative*=*true*, *namespace* = JsPackage.*GLOBAL*)
>>>>>
>>>>> *public* *class* OptionOverrides {
>>>>>
>>>>>
>>>>>     @JsConstructor
>>>>>
>>>>>     *public* OptionOverrides() {}
>>>>>
>>>>>     
>>>>>
>>>>>     @JsProperty
>>>>>
>>>>>     *public* *native* String getInitialView();
>>>>>
>>>>>     @JsProperty
>>>>>
>>>>>     *public* *native* *void* setInitialView(String initialView);
>>>>>
>>>>> }
>>>>>
>>>>>
>>>>> Still the same error : *$wnd.OptionOverrides is not a constructor*
>>>>>
>>>>> Le mardi 28 juin 2022 à 23:27:08 UTC+2, [email protected] a écrit :
>>>>>
>>>>>> Have you tried giving the class a constructor?
>>>>>>
>>>>>>
>>>>>> On Tue, Jun 28, 2022 at 4:04 PM Nicolas Chamouard <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>> Hello,
>>>>>>>
>>>>>>> I am using JsInterop to integrate FullCalendar to my GWT application.
>>>>>>> As described here https://fullcalendar.io/docs/initialize-globals, 
>>>>>>> I am supposed to create an object literal and pass it to the Calendar() 
>>>>>>> constructor.
>>>>>>>
>>>>>>> I have managed to create this class : 
>>>>>>>
>>>>>>> @JsType(*namespace* = JsPackage.*GLOBAL*)
>>>>>>>
>>>>>>> *public* *class* OptionOverrides {
>>>>>>>
>>>>>>>
>>>>>>>     @JsProperty
>>>>>>>
>>>>>>>     *public* *native* String getInitialView();
>>>>>>>
>>>>>>>     @JsProperty
>>>>>>>
>>>>>>>     *public* *native* *void* setInitialView(String initialView);
>>>>>>>
>>>>>>> }
>>>>>>>
>>>>>>> It works but the FullCalendar complains about all the Java Object 
>>>>>>> stuff that is translated to javascript : equals(), hashCode(), etc
>>>>>>>
>>>>>>> I have tried to add* isNative=true* to my class, but in this case i 
>>>>>>> cannot instantiate it in Java (error : $wnd.OptionOverrides is not a 
>>>>>>> constructor)
>>>>>>>
>>>>>>> Is there an other way to do this, am I missing something here ?
>>>>>>>
>>>>>>> Thanks
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> -- 
>>>>>>> You received this message because you are subscribed to the Google 
>>>>>>> Groups "GWT Users" 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/a03c881a-48d4-4892-9fae-7719bc9a57b8n%40googlegroups.com
>>>>>>>  
>>>>>>> <https://groups.google.com/d/msgid/google-web-toolkit/a03c881a-48d4-4892-9fae-7719bc9a57b8n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>>> .
>>>>>>>
>>>>>> -- 
>>>>> You received this message because you are subscribed to the Google 
>>>>> Groups "GWT Users" 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/4d8099ea-3a37-4026-b459-f228e35ca59bn%40googlegroups.com
>>>>>  
>>>>> <https://groups.google.com/d/msgid/google-web-toolkit/4d8099ea-3a37-4026-b459-f228e35ca59bn%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>> .
>>>>>
>>>>

-- 
You received this message because you are subscribed to the Google Groups "GWT 
Users" 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/e893d708-8c70-4dcd-b2d5-f1100a294f63n%40googlegroups.com.

Reply via email to