Thursday, July 31, 2014

Re: Compiling GWT with Java 8 compiler, but keeping GWT code to only use Java 6 constructs - possible?



On Thursday, July 31, 2014 8:43:04 PM UTC+2, Jean Barmash wrote:
I'd like to upgrade my project to Java 8.  We use GWT 2.0.3.

I have read the updates about full support of Java 8, and understand that to fully support it, the GWT code generator needs to support all Java8 features. 

However, what I need is a bit different I am happy to freeze the code UI code that interacts with GWT to only use Java6 constructs, so I don't need the code generator to support Java8 features.  

Is this possible?   I.e. to get my project compiled with Java 8, if the GWT code is only using Java 6 features.

Absolutely.
AFAICT, you'd have to compile (javac) the classes with "-source 1.6 -target 1.6" too, so you'll have to have your client-side (GWT-compatible) and server-side code clearly separated.
 
Would love to hear some opinions, as well possibly an update on the full Java 8 support timelines.   I saw that there is a fork that tried to move along this path.

Java 8 support will unforteunately won't make it to GWT 2.7 to be released this summer. You'll have to wait for 3.0 (to be released this winter) 

--
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To post to this group, send email to google-web-toolkit@googlegroups.com.
Visit this group at http://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

Compiling GWT with Java 8 compiler, but keeping GWT code to only use Java 6 constructs - possible?

I'd like to upgrade my project to Java 8.  We use GWT 2.0.3.

I have read the updates about full support of Java 8, and understand that to fully support it, the GWT code generator needs to support all Java8 features. 

However, what I need is a bit different I am happy to freeze the code UI code that interacts with GWT to only use Java6 constructs, so I don't need the code generator to support Java8 features.  

Is this possible?   I.e. to get my project compiled with Java 8, if the GWT code is only using Java 6 features.  

Would love to hear some opinions, as well possibly an update on the full Java 8 support timelines.   I saw that there is a fork that tried to move along this path.  

Thanks,

Jean


--
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To post to this group, send email to google-web-toolkit@googlegroups.com.
Visit this group at http://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

Re: GWT, Hibernate and a many to many relationship

The basic answer is you cannot. You will need to transform the Hibernate object into a POJO to make it serial, this is a requirement of any object being passed between the client and the server in GWT.

Tim
 
On Jul 30, 2014, at 5:07 AM, Peter S. <stoffels.peter@googlemail.com> wrote:

Hey all,

after searching the complete web for a solution and didn't find one, I will try to share my problem with you ;)..

Well I have the famous failure with GWT and Hibernate:

java.lang.RuntimeException: com.google.gwt.user.client.rpc.SerializationException: Type 'org.hibernate.collection.PersistentSet' was not included in the set of types which can be serialized by this SerializationPolicy or its Class object could not be loaded. For security purposes, this type will not be serialized.: instance = []

I have a hbm.xml file where Hibernate generates an Entity.

<class abstract="false"
        name="com.egrima.webinfotools.common.entity.PointOfInterest"
        table="witpois">
        <meta attribute="extends">net.sf.gilead.pojo.gwt.LightEntity</meta>  <!-- This was a try but also didn't work. so that line is not implemented in general -->
        <meta attribute="implements">com.egrima.webinfotools.common.entity.BasisEntity</meta>
        <id column="ID" name="id" type="java.lang.Long">
            <generator class="sequence">
                <param name="sequence">SEQ_WITPOIS</param>
            </generator>
        </id>

        <property column="ZALTKN" generated="never" lazy="false"
            name="zaltkn" length="6" type="java.lang.String" />
        <property column="NAME" generated="never" lazy="false" name="name"
            length="255" type="java.lang.String" />
        <property column="ADDRESS" generated="never" lazy="false"
            name="address" length="512" type="java.lang.String" />
        <property column="LONGITUDE" generated="never" lazy="false"
            name="longitude" type="java.lang.Double" />
        <property column="LATITUDE" generated="never" lazy="false"
            name="latitude" type="java.lang.Double" />
        <property column="ANL_DAT_ZEIT" generated="never" lazy="false"
            name="createdDate" type="java.util.Date" />
        <property column="AEN_DAT_ZEIT" generated="never" lazy="false"
            name="changedDate" type="java.util.Date" />
        <property column="TERM" generated="never" name="hostname"
            length="12" type="java.lang.String" />
        <property column="BEN" generated="never" name="username"
            length="8" type="java.lang.String" />

        <many-to-one name="category" foreign-key="fk_poi_category" cascade="all"
            column="category_id" lazy="false"    class="com.egrima.webinfotools.common.entity.generated.PointOfInterestCategory" />
           
        <one-to-one name="poiNameTranslation" lazy="false" cascade="all"  foreign-key="fk_witpoi_translation" class="com.egrima.webinfotools.common.entity.generated.PointOfInterestTranslation"/>
           
        <set name="attributes" inverse="true" table="witpoi_attribute" lazy="false" cascade="all" fetch="select">
          <key column="POI_ID"/>
            <many-to-many  class="com.egrima.webinfotools.common.entity.generated.PointOfInterestAttribute" column="ATTRIBUTE_ID"   fetch="join"/>
        </set>    
       
    </class>



The generated Class looks like this:


package com.egrima.webinfotools.common.entity;
// Generated 30.07.2014 10:56:07 by Hibernate Tools 3.2.2.GA


import com.egrima.webinfotools.common.entity.generated.PointOfInterestAttribute;
import com.egrima.webinfotools.common.entity.generated.PointOfInterestCategory;
import com.egrima.webinfotools.common.entity.generated.PointOfInterestTranslation;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;

/**
 * PointOfInterest generated by hbm2java
 */

public class PointOfInterest  implements com.egrima.webinfotools.common.entity.BasisEntity,java.io.Serializable {


    private static final long serialVersionUID = 42L;


     private Long id;
     private String zaltkn;
     private String name;
     private String address;
     private Double longitude;
     private Double latitude;
     private Date createdDate;
     private Date changedDate;
     private String hostname;
     private String username;
     private PointOfInterestCategory category;
     private PointOfInterestTranslation poiNameTranslation;
     private Set<PointOfInterestAttribute> attributes = new HashSet<PointOfInterestAttribute>(0);


    public PointOfInterest() {
    }

    public PointOfInterest(String zaltkn, String name, String address, Double longitude, Double latitude, Date createdDate, Date changedDate, String hostname, String username, PointOfInterestCategory category, PointOfInterestTranslation poiNameTranslation, Set<PointOfInterestAttribute> attributes) {
       this.zaltkn = zaltkn;
       this.name = name;
       this.address = address;
       this.longitude = longitude;
       this.latitude = latitude;
       this.createdDate = createdDate;
       this.changedDate = changedDate;
       this.hostname = hostname;
       this.username = username;
       this.category = category;
       this.poiNameTranslation = poiNameTranslation;
       this.attributes = attributes;
    }
   

   
    @Override
    public Long getId() {
        return id;
    }
   
    public void setId(Long id) {
        this.id = id;
    }
    public String getZaltkn() {
        return zaltkn;
    }
   
    public void setZaltkn(String zaltkn) {
        this.zaltkn = zaltkn;
    }
    public String getName() {
        return name;
    }
   
    public void setName(String name) {
        this.name = name;
    }
    public String getAddress() {
        return address;
    }
   
    public void setAddress(String address) {
        this.address = address;
    }
    public Double getLongitude() {
        return longitude;
    }
   
    public void setLongitude(Double longitude) {
        this.longitude = longitude;
    }
    public Double getLatitude() {
        return latitude;
    }
   
    public void setLatitude(Double latitude) {
        this.latitude = latitude;
    }
    public Date getCreatedDate() {
        return createdDate;
    }
   
    public void setCreatedDate(Date createdDate) {
        this.createdDate = createdDate;
    }
    public Date getChangedDate() {
        return changedDate;
    }
   
    public void setChangedDate(Date changedDate) {
        this.changedDate = changedDate;
    }
    public String getHostname() {
        return hostname;
    }
   
    public void setHostname(String hostname) {
        this.hostname = hostname;
    }
    public String getUsername() {
        return username;
    }
   
    public void setUsername(String username) {
        this.username = username;
    }
    public PointOfInterestCategory getCategory() {
        return category;
    }
   
    public void setCategory(PointOfInterestCategory category) {
        this.category = category;
    }
    public PointOfInterestTranslation getPoiNameTranslation() {
        return poiNameTranslation;
    }
   
    public void setPoiNameTranslation(PointOfInterestTranslation poiNameTranslation) {
        this.poiNameTranslation = poiNameTranslation;
    }
    public Set<PointOfInterestAttribute> getAttributes() {
        return attributes;
    }
   
    public void setAttributes(Set<PointOfInterestAttribute> attributes) {
        this.attributes = attributes;
    }




}



In our project we also make use of GILEAD and this description  they also mention the problem I have. But how does this work together with code-generation. Because when I make use of Gilead I can not generate the class. And when I uncomment the class in the hbm.xml the mapping won't work. How can I solve this problem? I really have no clue anymore.. please help me :)

Thank you!
Greetz Peter



--
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To post to this group, send email to google-web-toolkit@googlegroups.com.
Visit this group at http://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

Re: Firing Custom Event in GWT

Depends on what you do in your eventhandler? 
if you do expensive calculations yes, then there will be a performance issue. If not it doesn't matter. 

A common practice is to set a buffer the changes with a Timer. 

On Wednesday, July 23, 2014 7:36:27 AM UTC+2, Mohammed Sameen wrote:
Hi All,
In my GWT application,I have written my own custom event for enabling the button whenever the text box (or some other filed) is edited.The event is keep on  firing whenever there is a change is text box.Is there any performance issue.Is there any way to fire the event only once?Please give your suggestion.Thanks in Advance..

--
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To post to this group, send email to google-web-toolkit@googlegroups.com.
Visit this group at http://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

Firing the Event Using JavaScript Code Internally

Hi,
 I created my own custom event and need to fire that event using Javascript code. See the below code which is from thirdparty API which contain the ItemChangeHandler.
It will fire the event internally using javascript.So i need to implement the same way in GWT.Does any one have any idea on this?Thanks in advance..

 public HandlerRegistration addItemChangeHandler(com.smartgwt.client.widgets.form.events.ItemChangeHandler handler) {
        if(getHandlerCount(com.smartgwt.client.widgets.form.events.ItemChangeEvent.getType()) == 0) setupItemChangeEvent();
        return doAddHandler(handler, com.smartgwt.client.widgets.form.events.ItemChangeEvent.getType());
    }

    private native void setupItemChangeEvent() /*-{
        var obj = null;
        var selfJ = this;
        if(this.@com.smartgwt.client.widgets.BaseWidget::isCreated()()) {
            obj = this.@com.smartgwt.client.widgets.BaseWidget::getJsObj()();
            obj.addProperties({itemChange:$debox($entry(function(){
                        var param = {"item" : arguments[0], "newValue" : arguments[1], "oldValue" : arguments[2]};
                        var event = @com.smartgwt.client.widgets.form.events.ItemChangeEvent::new(Lcom/google/gwt/core/client/JavaScriptObject;)(param);
                        selfJ.@com.smartgwt.client.widgets.BaseWidget::fireEvent(Lcom/google/gwt/event/shared/GwtEvent;)(event);
                        var ret = event.@com.smartgwt.client.event.Cancellable::isCancelled()();
                        return !ret;
                    }))
             });
        } else {
            obj = this.@com.smartgwt.client.widgets.BaseWidget::getConfig()();
            obj.itemChange = $debox($entry(function(){
                   var param = {"item" : arguments[0], "newValue" : arguments[1], "oldValue" : arguments[2]};
                   var event = @com.smartgwt.client.widgets.form.events.ItemChangeEvent::new(Lcom/google/gwt/core/client/JavaScriptObject;)(param);
                   selfJ.@com.smartgwt.client.widgets.BaseWidget::fireEvent(Lcom/google/gwt/event/shared/GwtEvent;)(event);
                   var ret = event.@com.smartgwt.client.event.Cancellable::isCancelled()();
                   return !ret;
               }));
        }
   }-*/;

--
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To post to this group, send email to google-web-toolkit@googlegroups.com.
Visit this group at http://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

Re: Firing Custom Event in GWT

Any Suggestion on this...

On Wednesday, July 23, 2014 11:06:27 AM UTC+5:30, Mohammed Sameen wrote:
Hi All,
In my GWT application,I have written my own custom event for enabling the button whenever the text box (or some other filed) is edited.The event is keep on  firing whenever there is a change is text box.Is there any performance issue.Is there any way to fire the event only once?Please give your suggestion.Thanks in Advance..

--
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To post to this group, send email to google-web-toolkit@googlegroups.com.
Visit this group at http://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

Re: SuperDevMode & external server

After a lot of trial and error we managed to configure our JBoss web server to talk to browsers with the proper CORS headers so that we got REST operations working by running the GWT app locally under Jetty.

--
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To post to this group, send email to google-web-toolkit@googlegroups.com.
Visit this group at http://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.