Revision: 6986
Author: [email protected]
Date: Wed Nov 18 08:54:38 2009
Log: Merge trunk r6981, r6984-6985 into this branch

Cleanup logging, reduce visibility of SwingUI internals, fix JDK 1.5  
breakage

     svn merge --ignore-ancestry -c6981 \
       https://google-web-toolkit.googlecode.com/svn/trunk/ .
     svn merge --ignore-ancestry -r6983:6985 \
       https://google-web-toolkit.googlecode.com/svn/trunk/ .


http://code.google.com/p/google-web-toolkit/source/detail?r=6986

Modified:
  /releases/2.0/branch-info.txt
  /releases/2.0/dev/core/src/com/google/gwt/dev/DevMode.java
  /releases/2.0/dev/core/src/com/google/gwt/dev/DevModeBase.java
  /releases/2.0/dev/core/src/com/google/gwt/dev/SwingUI.java

=======================================
--- /releases/2.0/branch-info.txt       Wed Nov 18 05:37:52 2009
+++ /releases/2.0/branch-info.txt       Wed Nov 18 08:54:38 2009
@@ -758,3 +758,10 @@
  tr...@6968 was merged into this branch
    Accounting for time difference between host and client in  
CookieTest#testExpires
    svn merge --ignore-ancestry -c 6968  
https://google-web-toolkit.googlecode.com/svn/trunk .
+
+tr...@6981,6984,6985 was merged into this branch
+ Cleanup logging, reduce visibility of SwingUI internals, fix JDK 1.5  
breakage
+    svn merge --ignore-ancestry -c6981 \
+      https://google-web-toolkit.googlecode.com/svn/trunk/ .
+    svn merge --ignore-ancestry -r6983:6985 \
+      https://google-web-toolkit.googlecode.com/svn/trunk/ .
=======================================
--- /releases/2.0/dev/core/src/com/google/gwt/dev/DevMode.java  Mon Nov 16  
19:22:20 2009
+++ /releases/2.0/dev/core/src/com/google/gwt/dev/DevMode.java  Wed Nov 18  
08:54:38 2009
@@ -343,7 +343,7 @@
        ui.setCallback(RestartServerEvent.getType(), this);
        // TODO(jat): find a safe way to get an icon for the servlet  
container
        TreeLogger serverLogger = ui.getWebServerLogger(getWebServerName(),  
null);
-      serverLogger.log(TreeLogger.INFO, "Starting HTTP on port " +  
getPort(),
+      serverLogger.log(TreeLogger.TRACE, "Starting HTTP on port " +  
getPort(),
            null);
        server = options.getServletContainerLauncher().start(serverLogger,
            getPort(), options.getWarDir());
@@ -374,6 +374,7 @@
      return options.getServletContainerLauncher().getName();
    }

+  @Override
    protected synchronized void produceOutput(TreeLogger logger,
        StandardLinkerContext linkerStack, ArtifactSet artifacts, ModuleDef  
module)
        throws UnableToCompleteException {
=======================================
--- /releases/2.0/dev/core/src/com/google/gwt/dev/DevModeBase.java      Mon Nov 
 
16 19:22:20 2009
+++ /releases/2.0/dev/core/src/com/google/gwt/dev/DevModeBase.java      Wed Nov 
 
18 08:54:38 2009
@@ -703,7 +703,7 @@
      try {
        for (String prenormalized : options.getStartupURLs()) {
          startupURL = normalizeURL(prenormalized, getPort(), getHost());
-        logger.log(TreeLogger.INFO, "Starting URL: " + startupURL, null);
+        logger.log(TreeLogger.TRACE, "Starting URL: " + startupURL, null);
          launchURL(startupURL);
        }
      } catch (UnableToCompleteException e) {
@@ -764,7 +764,7 @@
     * subclasses that need to change the behavior of ShellModuleSpaceHost.
     *
     * @param logger TreeLogger to use
-   * @param typeOracle
+   * @param compilationState
     * @param moduleDef
     * @return ShellModuleSpaceHost instance
     */
@@ -881,9 +881,6 @@
        getTopLogger().log(TreeLogger.ERROR, "Invalid URL " + url, e);
        throw new UnableToCompleteException();
      }
-    System.err.println("Using a browser with the GWT Developer Plugin,  
please browse to");
-    System.err.println("the following URL:");
-    System.err.println("  " + url);
      final URL helpInfoUrl = parsedUrl;
      getTopLogger().log(TreeLogger.INFO,
          "Waiting for browser connection to " + url, null, new HelpInfo() {
=======================================
--- /releases/2.0/dev/core/src/com/google/gwt/dev/SwingUI.java  Tue Nov 17  
14:54:53 2009
+++ /releases/2.0/dev/core/src/com/google/gwt/dev/SwingUI.java  Wed Nov 18  
08:54:38 2009
@@ -27,11 +27,15 @@
  import com.google.gwt.dev.ui.RestartServerEvent;
  import com.google.gwt.dev.util.collect.HashMap;

+import java.awt.Image;
  import java.awt.event.WindowAdapter;
  import java.awt.event.WindowEvent;
  import java.io.File;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
  import java.net.URL;
-import java.util.Arrays;
+import java.util.ArrayList;
+import java.util.List;
  import java.util.Map;

  import javax.swing.Icon;
@@ -48,11 +52,17 @@
    /**
     * Module handle for Swing UI.
     */
-  public class SwingModuleHandle implements ModuleHandle {
+  protected class SwingModuleHandle implements ModuleHandle {

      private final TreeLogger logger;
      private final ModulePanel tab;

+    /**
+     * Create an immutable module handle.
+     *
+     * @param logger logger to use for this module
+     * @param tab the module panel associated with this instance
+     */
      public SwingModuleHandle(TreeLogger logger, ModulePanel tab) {
        this.logger = logger;
        this.tab = tab;
@@ -62,6 +72,9 @@
        return logger;
      }

+    /**
+     * @return the ModulePanel associated with this module instance.
+     */
      public ModulePanel getTab() {
        return tab;
      }
@@ -70,7 +83,7 @@
    /**
     * Interface to group activities related to adding and deleting tabs.
     */
-  public interface TabPanelCollection {
+  protected interface TabPanelCollection {

      /**
       * Add a new tab containing a ModuleTabPanel.
@@ -208,9 +221,8 @@
          }
        }
      });
-    frame.setIconImages(Arrays.asList(gwtIcon48.getImage(),
-        gwtIcon32.getImage(), gwtIcon64.getImage(), gwtIcon128.getImage(),
-        gwtIcon16.getImage()));
+    setIconImages(topLogger, gwtIcon48, gwtIcon32, gwtIcon64, gwtIcon128,
+        gwtIcon16);
      frame.setVisible(true);
    }

@@ -304,4 +316,46 @@
      }
      return moduleTabPanel;
    }
-}
+
+  /**
+   * Set the images for the frame.  On JDK 1.5, only the last icon  
supplied is
+   * used for all needs.
+   *
+   * @param logger logger to use for warnings
+   * @param icons one or more icons
+   */
+  private void setIconImages(TreeLogger logger, ImageIcon... icons) {
+    if (icons.length == 0) {
+      return;
+    }
+    Exception caught = null;
+    try {
+      // if this fails, we fall back to the JDK 1.5 method
+      Method method = frame.getClass().getMethod("setIconImages",  
List.class);
+      List<Image> imageList = new ArrayList<Image>();
+      for (ImageIcon icon : icons) {
+        Image image = icon.getImage();
+        if (image != null) {
+          imageList.add(image);
+        }
+      }
+      method.invoke(frame, imageList);
+      return;
+    } catch (SecurityException e) {
+      caught = e;
+    } catch (IllegalArgumentException e) {
+      caught = e;
+    } catch (NoSuchMethodException e) {
+      // ignore, expected on JDK 1.5
+    } catch (IllegalAccessException e) {
+      caught = e;
+    } catch (InvocationTargetException e) {
+      caught = e;
+    }
+    if (caught != null) {
+      logger.log(TreeLogger.WARN, "Unexpected exception setting icon  
images",
+          caught);
+    }
+    frame.setIconImage(icons[icons.length - 1].getImage());
+  }
+}

-- 
http://groups.google.com/group/Google-Web-Toolkit-Contributors

Reply via email to