]> source.dussan.org Git - gwtquery.git/commitdiff
Define Browser implementation in GQueryMin. Fix NPE when visiting BrowserGenerator...
authorManuel Carrasco Moñino <manuel.carrasco.m@gmail.com>
Mon, 4 Nov 2013 12:07:11 +0000 (13:07 +0100)
committerManuel Carrasco Moñino <manuel.carrasco.m@gmail.com>
Mon, 4 Nov 2013 12:07:11 +0000 (13:07 +0100)
gwtquery-core/src/main/java/com/google/gwt/query/QueryMin.gwt.xml
gwtquery-core/src/main/java/com/google/gwt/query/rebind/BrowserGenerator.java

index 4a9b0fd0b9946355eea054a468b532fea08b474b..385adde85bf0374350d2de06aaa196a1f40d747c 100644 (file)
             <when-property-is name="user.agent" value="safari" />
         </any>
     </set-property>
+    
+    <!-- Browser flags -->
+    <generate-with class="com.google.gwt.query.rebind.BrowserGenerator">
+        <when-type-assignable class="com.google.gwt.query.client.Browser"/>
+    </generate-with>    
 
     <!-- Selector Engines -->
     <replace-with class="com.google.gwt.query.client.impl.SelectorEngineNativeMin">
index a195367744b476493b55e511a45ded9ae1128dc9..6c627cf56e732a30eab90e798e0b477b6531fa47 100644 (file)
@@ -50,30 +50,32 @@ public class BrowserGenerator extends Generator {
     String cName = clz.getName() + "_" + ua;
     
     PrintWriter pWriter = context.tryCreate(logger, pName, cName);
-
-    ClassSourceFileComposerFactory cFact = new ClassSourceFileComposerFactory(pName, cName);
-    cFact.setSuperclass(pName + "." + clz.getName());
-    
-    SourceWriter writer = cFact.createSourceWriter(context, pWriter);
     
-    writer.println("protected boolean isWebkit() {return " + "safari".equals(ua) + ";}");
-    writer.println("protected boolean isSafari() {return " + "safari".equals(ua) + ";}");
-    writer.println("protected boolean isOpera() {return " + "opera".equals(ua) + ";}");
-    writer.println("protected boolean isMozilla() {return " + ua.contains("gecko") + ";}");
-    writer.println("protected boolean isMsie() {return " + ua.contains("ie") + ";}");
-    writer.println("protected boolean isIe6() {return " + "ie6".equals(ua) + ";}");
-    writer.println("protected boolean isIe8() {return " + "ie8".equals(ua) + ";}");
-    writer.println("protected boolean isIe9() {return " + "ie9".equals(ua) + ";}");
-    writer.println("public String toString() {return \"Browser:\"" +
-               " + \" webkit=\" + webkit" +
-        " + \" mozilla=\" + mozilla" +
-        " + \" opera=\" + opera" +
-        " + \" msie=\" + msie" +
-        " + \" ie6=\" + ie6" +
-        " + \" ie8=\" + ie8" +
-        " + \" ie9=\" + ie9" +  
-        ";}");
-    writer.commit(logger);
+    if (pWriter != null) {
+      ClassSourceFileComposerFactory cFact = new ClassSourceFileComposerFactory(pName, cName);
+      cFact.setSuperclass(pName + "." + clz.getName());
+      
+      SourceWriter writer = cFact.createSourceWriter(context, pWriter);
+      
+      writer.println("protected boolean isWebkit() {return " + "safari".equals(ua) + ";}");
+      writer.println("protected boolean isSafari() {return " + "safari".equals(ua) + ";}");
+      writer.println("protected boolean isOpera() {return " + "opera".equals(ua) + ";}");
+      writer.println("protected boolean isMozilla() {return " + ua.contains("gecko") + ";}");
+      writer.println("protected boolean isMsie() {return " + ua.contains("ie") + ";}");
+      writer.println("protected boolean isIe6() {return " + "ie6".equals(ua) + ";}");
+      writer.println("protected boolean isIe8() {return " + "ie8".equals(ua) + ";}");
+      writer.println("protected boolean isIe9() {return " + "ie9".equals(ua) + ";}");
+      writer.println("public String toString() {return \"Browser:\"" +
+               " + \" webkit=\" + webkit" +
+          " + \" mozilla=\" + mozilla" +
+          " + \" opera=\" + opera" +
+          " + \" msie=\" + msie" +
+          " + \" ie6=\" + ie6" +
+          " + \" ie8=\" + ie8" +
+          " + \" ie9=\" + ie9" +  
+          ";}");
+      writer.commit(logger);
+    }
     
     return pName + "." + cName;
   }