http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/box/webclient/widget/error/i18n/ErrorMessages_ru.properties
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/box/webclient/widget/error/i18n/ErrorMessages_ru.properties
 
b/wave/src/main/resources/org/waveprotocol/box/webclient/widget/error/i18n/ErrorMessages_ru.properties
new file mode 100644
index 0000000..33e7823
--- /dev/null
+++ 
b/wave/src/main/resources/org/waveprotocol/box/webclient/widget/error/i18n/ErrorMessages_ru.properties
@@ -0,0 +1,27 @@
+#
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+#
+
+everythingShiny =
+errorHasOccurred = \u041f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 
\u043e\u0448\u0438\u0431\u043a\u0430
+please = \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430
+refreshPage = 
\u043f\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0439\u0442\u0435 
\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443
+showErrorDetail = \u0414\u0435\u0442\u0430\u043b\u0438
+stackTrace = \u0421\u0442\u0435\u043a

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/box/webclient/widget/error/i18n/ErrorMessages_sl.properties
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/box/webclient/widget/error/i18n/ErrorMessages_sl.properties
 
b/wave/src/main/resources/org/waveprotocol/box/webclient/widget/error/i18n/ErrorMessages_sl.properties
new file mode 100644
index 0000000..09bae9f
--- /dev/null
+++ 
b/wave/src/main/resources/org/waveprotocol/box/webclient/widget/error/i18n/ErrorMessages_sl.properties
@@ -0,0 +1,27 @@
+#
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+#
+
+everythingShiny = "Brez skrbi, kapitan. Vse je krasno!"
+errorHasOccurred = Pojavila se je napaka
+please = Prosim
+refreshPage = osve??i
+showErrorDetail = Prika??i podrobnosti napake
+stackTrace = Izpis sklada:

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/box/webclient/widget/error/i18n/ErrorMessages_zh_TW.properties
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/box/webclient/widget/error/i18n/ErrorMessages_zh_TW.properties
 
b/wave/src/main/resources/org/waveprotocol/box/webclient/widget/error/i18n/ErrorMessages_zh_TW.properties
new file mode 100644
index 0000000..901c759
--- /dev/null
+++ 
b/wave/src/main/resources/org/waveprotocol/box/webclient/widget/error/i18n/ErrorMessages_zh_TW.properties
@@ -0,0 +1,27 @@
+#
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+#
+
+errorHasOccurred = 發現一個錯誤
+everythingShiny = "Everything's shiny, Cap'n. Not to fret!"
+please = 請
+refreshPage = 重新整理
+showErrorDetail = 顯示錯誤資訊
+stackTrace = 呼叫堆疊:

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/box/webclient/widget/frame/Frame.gwt.xml
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/box/webclient/widget/frame/Frame.gwt.xml
 
b/wave/src/main/resources/org/waveprotocol/box/webclient/widget/frame/Frame.gwt.xml
new file mode 100644
index 0000000..7ddae25
--- /dev/null
+++ 
b/wave/src/main/resources/org/waveprotocol/box/webclient/widget/frame/Frame.gwt.xml
@@ -0,0 +1,27 @@
+<?xml version='1.0'?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+-->
+
+<module>
+  <inherits name="com.google.gwt.user.User" />
+  <inherits name="com.google.common.base.Base" />
+  <source path=""/>
+</module>

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/box/webclient/widget/frame/FramedPanel.css
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/box/webclient/widget/frame/FramedPanel.css
 
b/wave/src/main/resources/org/waveprotocol/box/webclient/widget/frame/FramedPanel.css
new file mode 100644
index 0000000..8fdf08d
--- /dev/null
+++ 
b/wave/src/main/resources/org/waveprotocol/box/webclient/widget/frame/FramedPanel.css
@@ -0,0 +1,107 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ * CSS for FramedPanel.
+ */
+
+@noflip {
+  @sprite .north {
+    gwt-image: 'chromeNorth';
+    position: absolute;
+    top: 0;
+    right: value('chromeNorthEast.getWidth', 'px');
+    left: value('chromeNorthWest.getWidth', 'px');
+    /*
+     * Title-bar styles.
+     */
+    height: value('chromeNorth.getHeight', 'px');
+    line-height: value('chromeNorth.getHeight', 'px');
+    color: white;
+    white-space: nowrap;
+    text-overflow: ellipsis;
+}
+
+  @sprite .northEast {
+    gwt-image: 'chromeNorthEast';
+    position: absolute;
+    top: 0;
+    right: 0;
+  }
+
+  @sprite .east {
+    gwt-image: 'chromeEast';
+    position: absolute;
+    top: value('chromeNorthEast.getHeight', 'px');
+    right: 0;
+    bottom: value('chromeSouthEast.getHeight', 'px');
+  }
+
+  @sprite .southEast {
+    gwt-image: 'chromeSouthEast';
+    position: absolute;
+    right: 0;
+    bottom: 0;
+  }
+
+  @sprite .south {
+    gwt-image: 'chromeSouth';
+    position: absolute;
+    right: value('chromeSouthEast.getWidth', 'px');
+    bottom: 0;
+    left: value('chromeSouthWest.getWidth', 'px');
+  }
+
+  @sprite .southWest {
+    gwt-image: 'chromeSouthWest';
+    position: absolute;
+    bottom: 0;
+    left: 0;
+  }
+
+  @sprite .west {
+    gwt-image: 'chromeWest';
+    position: absolute;
+    top: value('chromeNorthWest.getHeight', 'px');
+    bottom: value('chromeSouthWest.getHeight', 'px');
+    left: 0;
+  }
+
+  @sprite .northWest {
+    gwt-image: 'chromeNorthWest';
+    position: absolute;
+    top: 0;
+    left: 0;
+  }
+}
+
+.frame {
+  position: absolute;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  left: 0;
+}
+
+.contentContainer {
+  position: absolute;
+  right: value('chromeEast.getWidth', 'px');
+  bottom: value('chromeSouth.getHeight', 'px');
+  left: value('chromeWest.getWidth', 'px');
+  top: value('chromeNorth.getHeight', 'px');
+  background-color: white;
+}

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/box/webclient/widget/frame/FramedPanel.ui.xml
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/box/webclient/widget/frame/FramedPanel.ui.xml
 
b/wave/src/main/resources/org/waveprotocol/box/webclient/widget/frame/FramedPanel.ui.xml
new file mode 100644
index 0000000..ab34954
--- /dev/null
+++ 
b/wave/src/main/resources/org/waveprotocol/box/webclient/widget/frame/FramedPanel.ui.xml
@@ -0,0 +1,44 @@
+<?xml version='1.0'?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+-->
+
+<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent";>
+<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
+  xmlns:g="urn:import:com.google.gwt.user.client.ui" 
+  xmlns:w='urn:import:org.waveprotocol.wave.client.widget.common'>
+  <ui:with field="css" 
type="org.waveprotocol.box.webclient.widget.frame.FramedPanel.Css"/>
+  <w:ImplPanel>
+    <div class='{css.frame}'>
+      <div class='{css.north}'/>
+      <div class='{css.northEast}'/>
+      <div class='{css.north}' ui:field='title'/>
+      <div class='{css.east}'/>
+      <div class='{css.southEast}'/>
+      <div class='{css.south}'/>
+      <div class='{css.southWest}'/>
+      <div class='{css.west}'/>
+      <div class='{css.northWest}'/>
+      <div class='{css.contentContainer}' ui:field='contentContainer'>
+        <!-- Content widget goes here -->
+      </div>
+    </div>
+  </w:ImplPanel>
+</ui:UiBinder>

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/box/webclient/widget/frame/panel_e.png
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/box/webclient/widget/frame/panel_e.png
 
b/wave/src/main/resources/org/waveprotocol/box/webclient/widget/frame/panel_e.png
new file mode 100644
index 0000000..9c94eb3
Binary files /dev/null and 
b/wave/src/main/resources/org/waveprotocol/box/webclient/widget/frame/panel_e.png
 differ

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/box/webclient/widget/frame/panel_n.png
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/box/webclient/widget/frame/panel_n.png
 
b/wave/src/main/resources/org/waveprotocol/box/webclient/widget/frame/panel_n.png
new file mode 100644
index 0000000..717e1c6
Binary files /dev/null and 
b/wave/src/main/resources/org/waveprotocol/box/webclient/widget/frame/panel_n.png
 differ

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/box/webclient/widget/frame/panel_ne.png
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/box/webclient/widget/frame/panel_ne.png
 
b/wave/src/main/resources/org/waveprotocol/box/webclient/widget/frame/panel_ne.png
new file mode 100644
index 0000000..5efb9c8
Binary files /dev/null and 
b/wave/src/main/resources/org/waveprotocol/box/webclient/widget/frame/panel_ne.png
 differ

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/box/webclient/widget/frame/panel_nw.png
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/box/webclient/widget/frame/panel_nw.png
 
b/wave/src/main/resources/org/waveprotocol/box/webclient/widget/frame/panel_nw.png
new file mode 100644
index 0000000..db47814
Binary files /dev/null and 
b/wave/src/main/resources/org/waveprotocol/box/webclient/widget/frame/panel_nw.png
 differ

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/box/webclient/widget/frame/panel_s.png
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/box/webclient/widget/frame/panel_s.png
 
b/wave/src/main/resources/org/waveprotocol/box/webclient/widget/frame/panel_s.png
new file mode 100644
index 0000000..150a266
Binary files /dev/null and 
b/wave/src/main/resources/org/waveprotocol/box/webclient/widget/frame/panel_s.png
 differ

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/box/webclient/widget/frame/panel_se.png
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/box/webclient/widget/frame/panel_se.png
 
b/wave/src/main/resources/org/waveprotocol/box/webclient/widget/frame/panel_se.png
new file mode 100644
index 0000000..e3e4e61
Binary files /dev/null and 
b/wave/src/main/resources/org/waveprotocol/box/webclient/widget/frame/panel_se.png
 differ

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/box/webclient/widget/frame/panel_sw.png
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/box/webclient/widget/frame/panel_sw.png
 
b/wave/src/main/resources/org/waveprotocol/box/webclient/widget/frame/panel_sw.png
new file mode 100644
index 0000000..45e1a0e
Binary files /dev/null and 
b/wave/src/main/resources/org/waveprotocol/box/webclient/widget/frame/panel_sw.png
 differ

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/box/webclient/widget/frame/panel_w.png
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/box/webclient/widget/frame/panel_w.png
 
b/wave/src/main/resources/org/waveprotocol/box/webclient/widget/frame/panel_w.png
new file mode 100644
index 0000000..eb7984c
Binary files /dev/null and 
b/wave/src/main/resources/org/waveprotocol/box/webclient/widget/frame/panel_w.png
 differ

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/box/webclient/widget/loading/Loading.css
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/box/webclient/widget/loading/Loading.css
 
b/wave/src/main/resources/org/waveprotocol/box/webclient/widget/loading/Loading.css
new file mode 100644
index 0000000..d59ac37
--- /dev/null
+++ 
b/wave/src/main/resources/org/waveprotocol/box/webclient/widget/loading/Loading.css
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ * CSS for Loading indicator.
+ */
+
+.loading {
+  position: absolute;
+  text-align: center;
+  top: 50%;
+  left: 0;
+  right: 0;
+  color: #666;
+}
+
+@noflip {
+  @sprite .loadingImage {
+    gwt-image: 'loading';
+    margin: auto;  /* Horizontally centered. */
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/box/webclient/widget/loading/Loading.gwt.xml
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/box/webclient/widget/loading/Loading.gwt.xml
 
b/wave/src/main/resources/org/waveprotocol/box/webclient/widget/loading/Loading.gwt.xml
new file mode 100644
index 0000000..f27cf36
--- /dev/null
+++ 
b/wave/src/main/resources/org/waveprotocol/box/webclient/widget/loading/Loading.gwt.xml
@@ -0,0 +1,26 @@
+<?xml version='1.0'?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+-->
+
+<module>
+  <inherits name='com.google.gwt.user.User'/>
+  <source path=""/>
+</module>

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/box/webclient/widget/loading/LoadingIndicator.ui.xml
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/box/webclient/widget/loading/LoadingIndicator.ui.xml
 
b/wave/src/main/resources/org/waveprotocol/box/webclient/widget/loading/LoadingIndicator.ui.xml
new file mode 100644
index 0000000..d404c5c
--- /dev/null
+++ 
b/wave/src/main/resources/org/waveprotocol/box/webclient/widget/loading/LoadingIndicator.ui.xml
@@ -0,0 +1,35 @@
+<?xml version='1.0'?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+-->
+
+<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent";>
+<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder">
+  <ui:with
+    field="css"
+    type="org.waveprotocol.box.webclient.widget.loading.LoadingIndicator.Css"/>
+  <ui:with
+    field="msg"
+    type="org.waveprotocol.box.webclient.widget.loading.i18n.LoadingMessages" 
/>
+  <div class='{css.loading}' ui:field='loading'>
+    <div class='{css.loadingImage}'/>
+    <div><ui:text from="{msg.loading}"/></div>
+  </div>
+</ui:UiBinder>

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/box/webclient/widget/loading/i18n/LoadingMessages_de.properties
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/box/webclient/widget/loading/i18n/LoadingMessages_de.properties
 
b/wave/src/main/resources/org/waveprotocol/box/webclient/widget/loading/i18n/LoadingMessages_de.properties
new file mode 100644
index 0000000..79c83f8
--- /dev/null
+++ 
b/wave/src/main/resources/org/waveprotocol/box/webclient/widget/loading/i18n/LoadingMessages_de.properties
@@ -0,0 +1,21 @@
+#
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+#
+

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/box/webclient/widget/loading/i18n/LoadingMessages_en.properties
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/box/webclient/widget/loading/i18n/LoadingMessages_en.properties
 
b/wave/src/main/resources/org/waveprotocol/box/webclient/widget/loading/i18n/LoadingMessages_en.properties
new file mode 100644
index 0000000..e49b3da
--- /dev/null
+++ 
b/wave/src/main/resources/org/waveprotocol/box/webclient/widget/loading/i18n/LoadingMessages_en.properties
@@ -0,0 +1,22 @@
+#
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+#
+
+loading = Loading

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/box/webclient/widget/loading/i18n/LoadingMessages_es.properties
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/box/webclient/widget/loading/i18n/LoadingMessages_es.properties
 
b/wave/src/main/resources/org/waveprotocol/box/webclient/widget/loading/i18n/LoadingMessages_es.properties
new file mode 100644
index 0000000..3b8023b
--- /dev/null
+++ 
b/wave/src/main/resources/org/waveprotocol/box/webclient/widget/loading/i18n/LoadingMessages_es.properties
@@ -0,0 +1,22 @@
+#
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+#
+
+loading = Cargando

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/box/webclient/widget/loading/i18n/LoadingMessages_fr.properties
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/box/webclient/widget/loading/i18n/LoadingMessages_fr.properties
 
b/wave/src/main/resources/org/waveprotocol/box/webclient/widget/loading/i18n/LoadingMessages_fr.properties
new file mode 100644
index 0000000..6cde0d4
--- /dev/null
+++ 
b/wave/src/main/resources/org/waveprotocol/box/webclient/widget/loading/i18n/LoadingMessages_fr.properties
@@ -0,0 +1,22 @@
+#
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+#
+
+loading = Chargement

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/box/webclient/widget/loading/i18n/LoadingMessages_ru.properties
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/box/webclient/widget/loading/i18n/LoadingMessages_ru.properties
 
b/wave/src/main/resources/org/waveprotocol/box/webclient/widget/loading/i18n/LoadingMessages_ru.properties
new file mode 100644
index 0000000..9c87c1a
--- /dev/null
+++ 
b/wave/src/main/resources/org/waveprotocol/box/webclient/widget/loading/i18n/LoadingMessages_ru.properties
@@ -0,0 +1,22 @@
+#
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+#
+
+loading = \u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/box/webclient/widget/loading/i18n/LoadingMessages_sl.properties
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/box/webclient/widget/loading/i18n/LoadingMessages_sl.properties
 
b/wave/src/main/resources/org/waveprotocol/box/webclient/widget/loading/i18n/LoadingMessages_sl.properties
new file mode 100644
index 0000000..dc1f273
--- /dev/null
+++ 
b/wave/src/main/resources/org/waveprotocol/box/webclient/widget/loading/i18n/LoadingMessages_sl.properties
@@ -0,0 +1,22 @@
+#
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+#
+
+loading = Nalaganje

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/box/webclient/widget/loading/i18n/LoadingMessages_zh_TW.properties
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/box/webclient/widget/loading/i18n/LoadingMessages_zh_TW.properties
 
b/wave/src/main/resources/org/waveprotocol/box/webclient/widget/loading/i18n/LoadingMessages_zh_TW.properties
new file mode 100644
index 0000000..f26900d
--- /dev/null
+++ 
b/wave/src/main/resources/org/waveprotocol/box/webclient/widget/loading/i18n/LoadingMessages_zh_TW.properties
@@ -0,0 +1,22 @@
+#
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+#
+
+loading = 載入中

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/wave/client/Client.gwt.xml
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/wave/client/Client.gwt.xml 
b/wave/src/main/resources/org/waveprotocol/wave/client/Client.gwt.xml
new file mode 100644
index 0000000..2b2aefe
--- /dev/null
+++ b/wave/src/main/resources/org/waveprotocol/wave/client/Client.gwt.xml
@@ -0,0 +1,34 @@
+<?xml version='1.0'?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+-->
+
+<module><inherits name="com.google.gwt.user.User" /><inherits 
name="com.google.common.base.Base" /><inherits 
name="org.waveprotocol.wave.client.common.util.Util" /><inherits 
name="org.waveprotocol.wave.client.scheduler.Scheduler" /><inherits 
name="org.waveprotocol.wave.client.util.ClientFlags" /><inherits 
name="org.waveprotocol.wave.client.wave.Wave" /><inherits 
name="org.waveprotocol.wave.client.wavepanel.impl.Impl" /><inherits 
name="org.waveprotocol.wave.client.wavepanel.render.Render" /><inherits 
name="org.waveprotocol.wave.model.Model" /><inherits 
name="org.waveprotocol.wave.model.account.Account" /> <source path=""/>
+
+<!-- Those comments beginning with the words "comment" or "Uncomment" have
+     special meaning to the PRESUBMIT.py script. -->
+<!-- To avoid name clashes with class names in client-generated and 
server-generated
+     CSS stylesheets, class names are scoped by prefix. -->
+<set-configuration-property name="CssResource.obfuscationPrefix" value="C-" />
+
+<source path="">
+  <exclude name="testing/**" />
+</source>
+</module>

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/wave/client/account/Account.gwt.xml
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/wave/client/account/Account.gwt.xml 
b/wave/src/main/resources/org/waveprotocol/wave/client/account/Account.gwt.xml
new file mode 100644
index 0000000..57bc8bb
--- /dev/null
+++ 
b/wave/src/main/resources/org/waveprotocol/wave/client/account/Account.gwt.xml
@@ -0,0 +1,26 @@
+<?xml version='1.0'?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+-->
+
+<module><inherits name="com.google.gwt.user.User" /><inherits 
name="com.google.common.base.Base" /><inherits 
name="org.waveprotocol.wave.model.Model" /> <source path=""/>
+ <source path="impl"/>
+
+</module>

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/wave/client/autohide/Autohide.gwt.xml
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/wave/client/autohide/Autohide.gwt.xml
 
b/wave/src/main/resources/org/waveprotocol/wave/client/autohide/Autohide.gwt.xml
new file mode 100644
index 0000000..af9e322
--- /dev/null
+++ 
b/wave/src/main/resources/org/waveprotocol/wave/client/autohide/Autohide.gwt.xml
@@ -0,0 +1,25 @@
+<?xml version='1.0'?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+-->
+
+<module><inherits name="com.google.gwt.user.User" /><inherits 
name="org.waveprotocol.wave.client.common.util.Util" /> <source path=""/>
+
+</module>

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/wave/client/build.xml
----------------------------------------------------------------------
diff --git a/wave/src/main/resources/org/waveprotocol/wave/client/build.xml 
b/wave/src/main/resources/org/waveprotocol/wave/client/build.xml
new file mode 100644
index 0000000..8ebfe87
--- /dev/null
+++ b/wave/src/main/resources/org/waveprotocol/wave/client/build.xml
@@ -0,0 +1,30 @@
+<?xml version='1.0'?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+-->
+<project name="client">
+  <import file="${build.common.path}"/>
+  <property name="libname" value="client"/>
+  <patternset id="srcs">
+    <include name="org/waveprotocol/wave/client/**"/>
+    <exclude name="org/waveprotocol/wave/client/common/**"/>
+    <exclude name="org/waveprotocol/wave/client/scheduler/**"/>
+  </patternset>
+</project>

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/wave/client/clipboard/Clipboard.gwt.xml
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/wave/client/clipboard/Clipboard.gwt.xml
 
b/wave/src/main/resources/org/waveprotocol/wave/client/clipboard/Clipboard.gwt.xml
new file mode 100644
index 0000000..8e1f78a
--- /dev/null
+++ 
b/wave/src/main/resources/org/waveprotocol/wave/client/clipboard/Clipboard.gwt.xml
@@ -0,0 +1,25 @@
+<?xml version='1.0'?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+-->
+
+<module><inherits name="com.google.gwt.user.User" /><inherits 
name="org.waveprotocol.wave.client.common.util.Util" /><inherits 
name="org.waveprotocol.wave.client.debug.logger.Logger" /><inherits 
name="org.waveprotocol.wave.client.editor.selection.html.Html" /> <source 
path=""/>
+
+</module>

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/wave/client/common/build.xml
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/wave/client/common/build.xml 
b/wave/src/main/resources/org/waveprotocol/wave/client/common/build.xml
new file mode 100644
index 0000000..e7bdc84
--- /dev/null
+++ b/wave/src/main/resources/org/waveprotocol/wave/client/common/build.xml
@@ -0,0 +1,28 @@
+<?xml version='1.0'?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+-->
+<project name="client-common">
+  <import file="${build.common.path}"/>
+  <property name="libname" value="client-common"/>
+  <patternset id="srcs">
+    <include name="org/waveprotocol/wave/client/common/**"/>
+  </patternset>
+</project>

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/wave/client/common/safehtml/SafeHtml.gwt.xml
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/wave/client/common/safehtml/SafeHtml.gwt.xml
 
b/wave/src/main/resources/org/waveprotocol/wave/client/common/safehtml/SafeHtml.gwt.xml
new file mode 100644
index 0000000..1b37066
--- /dev/null
+++ 
b/wave/src/main/resources/org/waveprotocol/wave/client/common/safehtml/SafeHtml.gwt.xml
@@ -0,0 +1,25 @@
+<?xml version='1.0'?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+-->
+
+<module><inherits name="com.google.gwt.user.User" /> <source path=""/>
+
+</module>

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/wave/client/common/scrub/Scrub.gwt.xml
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/wave/client/common/scrub/Scrub.gwt.xml
 
b/wave/src/main/resources/org/waveprotocol/wave/client/common/scrub/Scrub.gwt.xml
new file mode 100644
index 0000000..5a3e318
--- /dev/null
+++ 
b/wave/src/main/resources/org/waveprotocol/wave/client/common/scrub/Scrub.gwt.xml
@@ -0,0 +1,25 @@
+<?xml version='1.0'?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+-->
+
+<module><inherits name="com.google.gwt.user.User" /><inherits 
name="org.waveprotocol.wave.client.common.safehtml.SafeHtml" /> <source 
path=""/>
+
+</module>

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/wave/client/common/util/Util.gwt.xml
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/wave/client/common/util/Util.gwt.xml 
b/wave/src/main/resources/org/waveprotocol/wave/client/common/util/Util.gwt.xml
new file mode 100644
index 0000000..94830e7
--- /dev/null
+++ 
b/wave/src/main/resources/org/waveprotocol/wave/client/common/util/Util.gwt.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+-->
+
+<module>
+  <inherits name="com.google.gwt.user.User"/>
+  <inherits name="org.waveprotocol.wave.client.common.util.useragents"/>
+  <inherits name="com.google.common.base.Base"/>
+  <inherits name="org.waveprotocol.wave.model.Model"/>
+   
+  <source path=""/>
+    
+  <!-- Allow for conditional compilation per user.agent with a single "if": -->
+   
+  <replace-with 
class="org.waveprotocol.wave.client.common.util.UserAgentStaticProperties.FirefoxImpl">
+    <when-type-is 
class="org.waveprotocol.wave.client.common.util.UserAgentStaticProperties"/>
+     
+    <when-property-is name="user.agent" value="gecko1_8"/>
+  </replace-with>
+   
+  <replace-with 
class="org.waveprotocol.wave.client.common.util.UserAgentStaticProperties.IEImpl">
+    <when-type-is 
class="org.waveprotocol.wave.client.common.util.UserAgentStaticProperties"/>
+     
+    <any>
+      <when-property-is name="user.agent" value="ie6"/>
+      <when-property-is name="user.agent" value="ie8"/>
+    </any>
+  </replace-with>
+   
+  <!-- Following rules are order dependent: android and iphone have to come 
after "simple" safari -->
+  <replace-with 
class="org.waveprotocol.wave.client.common.util.UserAgentStaticProperties.SafariImpl">
+    <when-type-is 
class="org.waveprotocol.wave.client.common.util.UserAgentStaticProperties"/>
+     
+    <when-property-is name="user.agent" value="safari"/>
+  </replace-with>
+   
+  <replace-with 
class="org.waveprotocol.wave.client.common.util.UserAgentStaticProperties.AndroidImpl">
+    <when-type-is 
class="org.waveprotocol.wave.client.common.util.UserAgentStaticProperties"/>
+     
+    <when-property-is name="mobile.user.agent" value="android"/>
+  </replace-with>
+   
+  <replace-with 
class="org.waveprotocol.wave.client.common.util.UserAgentStaticProperties.IPhoneImpl">
+    <when-type-is 
class="org.waveprotocol.wave.client.common.util.UserAgentStaticProperties"/>
+     
+    <when-property-is name="mobile.user.agent" value="iphone"/>
+  </replace-with>
+   
+</module>

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/wave/client/common/util/useragents.gwt.xml
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/wave/client/common/util/useragents.gwt.xml
 
b/wave/src/main/resources/org/waveprotocol/wave/client/common/util/useragents.gwt.xml
new file mode 100644
index 0000000..e5b09ad
--- /dev/null
+++ 
b/wave/src/main/resources/org/waveprotocol/wave/client/common/util/useragents.gwt.xml
@@ -0,0 +1,60 @@
+<?xml version='1.0'?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+-->
+
+<module><inherits name="com.google.gwt.user.User" />
+<!-- This file is embedded into a gwt_module.
+     To use it, add a "deps" on
+     
//third_party/java_src/wave/java/org/waveprotocol/wave/client/common/util:useragents
+
+     Note that we don't like opera, ie6 and ff2, but we don't restrict the user
+     agent here, this will have to be done in the actually application. 
Compilation
+     will likely fail altogether if one fail to do that (or setup a specific 
code path
+     for those unsupported UAs that does not use our code) because of missing 
deferred
+     binding rules.
+
+     Notes about GWT's user.agent values:
+      - ie6 is "ie6 or ie7" (or any upper IE version when running in compat' 
mode)
+      - gecko1_8 is "gecko 1.8+", which includes all firefox versions starting 
with 1.5
+      - safari is any webkit-based browser (including chrome and android)
+  -->
+
+<!-- Copied from
+     http://code.google.com/p/google-web-toolkit/wiki/ConditionalProperties
+  -->
+<define-property name="mobile.user.agent" values="android, iphone, not_mobile" 
/>
+<property-provider name="mobile.user.agent"><![CDATA[
+  {
+    var ua = window.navigator.userAgent.toLowerCase();
+    if (ua.indexOf('android') != -1) { return 'android'; }
+    if (ua.indexOf('iphone') != -1 || ua.indexOf('ipod') != -1) { return 
'iphone'; }
+    return 'not_mobile';
+  }
+]]></property-provider>
+
+<!-- Constrain the value for non-webkit browsers -->
+<set-property name="mobile.user.agent" value="not_mobile" >
+  <none> <!-- Actually means NOR, in this case "not safari" -->
+    <when-property-is name="user.agent" value="safari" />
+  </none>
+</set-property>
+
+</module>

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/wave/client/common/webdriver/Webdriver.gwt.xml
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/wave/client/common/webdriver/Webdriver.gwt.xml
 
b/wave/src/main/resources/org/waveprotocol/wave/client/common/webdriver/Webdriver.gwt.xml
new file mode 100644
index 0000000..5283fa2
--- /dev/null
+++ 
b/wave/src/main/resources/org/waveprotocol/wave/client/common/webdriver/Webdriver.gwt.xml
@@ -0,0 +1,25 @@
+<?xml version='1.0'?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+-->
+
+<module><inherits name="com.google.gwt.user.User" /><inherits 
name="com.google.common.base.Base" /> <source path=""/>
+
+</module>

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/wave/client/concurrencycontrol/ConcurrencyControl.gwt.xml
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/wave/client/concurrencycontrol/ConcurrencyControl.gwt.xml
 
b/wave/src/main/resources/org/waveprotocol/wave/client/concurrencycontrol/ConcurrencyControl.gwt.xml
new file mode 100644
index 0000000..0353e27
--- /dev/null
+++ 
b/wave/src/main/resources/org/waveprotocol/wave/client/concurrencycontrol/ConcurrencyControl.gwt.xml
@@ -0,0 +1,25 @@
+<?xml version='1.0'?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+-->
+
+<module><inherits name="com.google.gwt.user.User" /><inherits 
name="com.google.common.base.Base" /><inherits 
name="org.waveprotocol.wave.client.wave.Wave" /><inherits 
name="org.waveprotocol.wave.concurrencycontrol.Wave" /><inherits 
name="org.waveprotocol.wave.model.util.Util" /> <source path=""/>
+
+</module>

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/wave/client/debug/logger/Logger.css
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/wave/client/debug/logger/Logger.css 
b/wave/src/main/resources/org/waveprotocol/wave/client/debug/logger/Logger.css
new file mode 100644
index 0000000..ebe7734
--- /dev/null
+++ 
b/wave/src/main/resources/org/waveprotocol/wave/client/debug/logger/Logger.css
@@ -0,0 +1,58 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ * CSS for the Log panel.
+ * Author: [email protected] (Luke Macpherson)
+ */
+
+.panel {
+  text-align: left;
+  overflow: auto;
+  width: 100%;
+  height: 100%;
+}
+
+.entry {
+  border-bottom:1px dotted silver;
+  font-family: monospace;
+}
+
+.module {
+  font-weight:bold;
+}
+
+.error {
+  color:red;
+}
+
+.fatal {
+  color:red;
+  font-weight:bold;
+}
+
+.trace {
+  /* Stylename set by Logger but not yet used */
+}
+
+.time {
+  /* Stylename set by Logger but not yet used */
+}
+
+.msg {
+  /* Stylename set by Logger but not yet used */
+}

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/wave/client/debug/logger/Logger.gwt.xml
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/wave/client/debug/logger/Logger.gwt.xml
 
b/wave/src/main/resources/org/waveprotocol/wave/client/debug/logger/Logger.gwt.xml
new file mode 100644
index 0000000..3222ebe
--- /dev/null
+++ 
b/wave/src/main/resources/org/waveprotocol/wave/client/debug/logger/Logger.gwt.xml
@@ -0,0 +1,84 @@
+<?xml version='1.0'?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+-->
+
+<module><inherits name="com.google.gwt.user.User" /><inherits 
name="org.waveprotocol.wave.client.common.util.Util" /><inherits 
name="org.waveprotocol.wave.common.logging.Logging" /> <source path=""/>
+
+<!--
+  There are three levels of logging: none, error, and debug, in that order.
+
+  There are two levels of error handling and defensive validation: noop and 
debug,
+  in that order.
+
+  Both are controlled through the "loglevel" property, as follows:
+
+    loglevel      Logging       Errors & Validation
+    ===============================================
+    none          none          noop
+    error         error         debug
+    debug         debug         debug
+-->
+
+<define-property name="loglevel" values="error,debug,none"/>
+<property-provider name="loglevel">
+  <![CDATA[
+    var logLevel = __gwt_getMetaProperty("loglevel");
+
+    if (logLevel == null) {
+      var args = location.search;
+      var startLogLevel = args.indexOf("ll");
+      if (startLogLevel >= 0) {
+        var value = args.substring(startLogLevel);
+        var begin = value.indexOf("=") + 1;
+        var end = value.indexOf("&");
+        if (end == -1) {
+          end = value.length;
+        }
+        logLevel = value.substring(begin, end);
+      }
+    }
+
+    if (logLevel == null) {
+      logLevel = "none";
+    }
+
+    return logLevel.toLowerCase();
+  ]]>
+</property-provider>
+
+<!--  Allow #ifdef-style guards:  -->
+<!--  e.g. "if (LogLevel.showDebug()) { ... debug code ... }" -->
+
+<replace-with 
class="org.waveprotocol.wave.client.debug.logger.LogLevel.NoneImpl">
+  <when-type-is class="org.waveprotocol.wave.client.debug.logger.LogLevel" />
+  <when-property-is name="loglevel" value="none" />
+</replace-with>
+
+<replace-with 
class="org.waveprotocol.wave.client.debug.logger.LogLevel.ErrorImpl">
+  <when-type-is class="org.waveprotocol.wave.client.debug.logger.LogLevel" />
+  <when-property-is name="loglevel" value="error" />
+</replace-with>
+
+<replace-with 
class="org.waveprotocol.wave.client.debug.logger.LogLevel.DebugImpl">
+  <when-type-is class="org.waveprotocol.wave.client.debug.logger.LogLevel" />
+  <when-property-is name="loglevel" value="debug" />
+</replace-with>
+</module>

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/wave/client/debug/logger/testing/restrict_permutations.gwt.xml
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/wave/client/debug/logger/testing/restrict_permutations.gwt.xml
 
b/wave/src/main/resources/org/waveprotocol/wave/client/debug/logger/testing/restrict_permutations.gwt.xml
new file mode 100644
index 0000000..db0e867
--- /dev/null
+++ 
b/wave/src/main/resources/org/waveprotocol/wave/client/debug/logger/testing/restrict_permutations.gwt.xml
@@ -0,0 +1,27 @@
+<?xml version='1.0'?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+-->
+
+<module><inherits name="com.google.gwt.user.User" />
+<!-- Restricts permutations to reduce code compiled for GWT tests. -->
+
+<set-property name="loglevel" value="error" />
+</module>

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/wave/client/doodad/Doodad.gwt.xml
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/wave/client/doodad/Doodad.gwt.xml 
b/wave/src/main/resources/org/waveprotocol/wave/client/doodad/Doodad.gwt.xml
new file mode 100644
index 0000000..26cf342
--- /dev/null
+++ b/wave/src/main/resources/org/waveprotocol/wave/client/doodad/Doodad.gwt.xml
@@ -0,0 +1,35 @@
+<?xml version='1.0'?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+-->
+
+<module>
+<inherits name="com.google.gwt.user.User" />
+<inherits name="org.waveprotocol.wave.client.doodad.attachment.Attachment" />
+<inherits name="org.waveprotocol.wave.client.editor.Editor" />
+<inherits name="org.waveprotocol.wave.client.gadget.Gadget" />
+<inherits name="org.waveprotocol.wave.client.scheduler.Scheduler" />
+<inherits name="org.waveprotocol.wave.client.widget.button.Button" />
+<inherits name="org.waveprotocol.wave.model.conversation.Conversation" />
+<inherits name="org.waveprotocol.wave.util.escapers.Escapers" />
+
+<source path=""/>
+
+</module>

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/Attachment.gwt.xml
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/Attachment.gwt.xml
 
b/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/Attachment.gwt.xml
new file mode 100644
index 0000000..dfaf5b7
--- /dev/null
+++ 
b/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/Attachment.gwt.xml
@@ -0,0 +1,32 @@
+<?xml version='1.0'?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+-->
+
+<module>
+<inherits name="com.google.gwt.user.User" />
+<inherits name="org.waveprotocol.wave.client.editor.Editor" />
+<inherits name="org.waveprotocol.wave.media.model.Attachment" />
+<inherits name="org.waveprotocol.wave.client.widget.button.Button" />
+<inherits name="org.waveprotocol.wave.client.widget.progress.Progress" />
+
+<source path=""/>
+
+</module>

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/ImageThumbnailWidget.ui.xml
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/ImageThumbnailWidget.ui.xml
 
b/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/ImageThumbnailWidget.ui.xml
new file mode 100644
index 0000000..f1181fd
--- /dev/null
+++ 
b/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/ImageThumbnailWidget.ui.xml
@@ -0,0 +1,94 @@
+<?xml version='1.0'?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+-->
+
+<ui:UiBinder
+    xmlns:ui='urn:ui:com.google.gwt.uibinder'
+    xmlns:gwt='urn:import:com.google.gwt.user.client.ui'
+    xmlns:pw='urn:import:org.waveprotocol.wave.client.widget.progress'
+    >
+
+  <ui:with field='res' 
type='org.waveprotocol.wave.client.doodad.attachment.render.ImageThumbnailWidget.Resources'/>
+  <!--
+    ______________________________________________
+   |      |                               |       |
+   | 6x90 |             *x6               | 15x90 |
+   |      |_______________________________|       |
+   |      |                               |       |
+   |      |                               |       |
+   |______|                               |_______|
+   |      |                               |       |
+   |      |                               |       |
+   | 6x*  |                               | 15x*  |
+   |      |                               |       |
+   |______|_______________________________|_______|
+   |      |                               |       |
+   | 6x4  |             *x4               | 15x4  |
+   |______|_______________________________|_______|
+
+   -->
+  <!-- Firefox requires an extra container div to establish a positioning 
context. -->
+  <!-- The unselectable="on" is required scatter through out the dom 
liberally.  This is to prevent
+       the resizable box to appear in IE. -->
+
+  <gwt:HTMLPanel>
+    <gwt:SimplePanel ui:field='menuButtonContainer' 
styleName='buttonContainer'></gwt:SimplePanel>
+
+    <gwt:HTMLPanel ui:field='chromeContainer' styleName='chromeContainer'>
+      <!-- Framing divs -->
+      <div class='itnw' unselectable="on"></div>
+      <div class='itnc' unselectable="on"></div>
+      <div class='itne' unselectable="on"></div>
+      <div class='itcw' unselectable="on"></div>
+
+      <!-- innards appear here -->
+
+      <div class='itce' unselectable="on"></div>
+      <div class='itsw' unselectable="on"></div>
+      <div class='itsc' unselectable="on"></div>
+      <div class='itse' unselectable="on"></div>
+    </gwt:HTMLPanel>
+
+    <table class='ittt' cellSpacing="0" cellPadding="0" unselectable="on">
+      <tr unselectable="on">
+        <!-- visibility override the bframe td rule which is over zealous  -->
+        <td class='itco' style="visibility: visible" unselectable="on">
+          <div class='itci' unselectable="on">
+            <!-- visibility override the bframe td rule which is over zealous  
-->
+            <gwt:Image ui:field='image' styleName='itimg'></gwt:Image>
+            <gwt:Label ui:field='spin' styleName='itcc'></gwt:Label>
+            <gwt:Label ui:field='errorLabel' styleName='iterr'></gwt:Label>
+            <pw:ProgressWidget ui:field="progressWidget" 
styleName='{res.css.progress}' />
+          </div>
+        </td>
+      </tr>
+      <tr unselectable="on">
+        <!-- visibility override the bframe td rule which is over zealous  -->
+        <td style="visibility: visible" unselectable="on">
+          <gwt:SimplePanel ui:field='captionPanel'>
+               <!-- caption goes here -->
+          </gwt:SimplePanel>
+        </td>
+      </tr>
+    </table>
+
+  </gwt:HTMLPanel>
+</ui:UiBinder>

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/Thumbnail.css
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/Thumbnail.css
 
b/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/Thumbnail.css
new file mode 100644
index 0000000..29a8a1b
--- /dev/null
+++ 
b/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/Thumbnail.css
@@ -0,0 +1,354 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ * CSS Stylesheet for image thumbnails
+ *
+ * author: [email protected] (David Hearnden)
+ */
+
+.imageThumbnail {
+  margin:5px 0 0 2px;
+  display: inline-block;
+}
+
+
+.wave-editor-off .thumbSizeButton {
+  display:none;
+}
+
+.wave-editor-on .thumbSizeButton {
+  display:block;
+}
+
+/** Yuck: 3 level trick to make sure nested editors work correctly */
+.wave-editor-on .wave-editor-off .thumbSizeButton {
+  display:none;
+}
+
+/*
+ * For some reason, the programmatic fixing of whitespace doesn't work for
+ * FF, need to figure out why...
+ */
+@if user.agent gecko1_8 {
+  .imageThumbnail {
+    white-space: normal;
+  }
+}
+
+.buttonContainer {
+  position: absolute;
+  z-index: 100;
+  top: 4px;
+  left: 14px;
+}
+
+.buttonContainer * {
+  position: absolute;
+  top: 0;
+  right: 0;
+}
+
+.chromeContainer {
+  z-index: 10;
+}
+
+/*
+.imageThumbnail img {
+  max-width:120px;
+  max-height:120px;
+}*/
+
+@if !user.agent ie6 {
+  .imageThumbnail {
+    position: relative;
+  }
+
+  .imageThumbnail .w-caption {
+    outline: 0;
+  }
+}
+
+@if user.agent ie6 {
+  .imageThumbnail {
+    display: inline;
+    position: relative;
+    zoom: 1;  /* Gives the .imageThumbnail element layout, to fix IE 
positioning bug. */
+  }
+
+  .imageThumbnail .w-caption {
+    /* Prevents caption from vertically expanding when text is entered. */
+    min-height: 1.35em;
+  }
+}
+
+@if user.agent safari {
+  .imageThumbnail {
+    display: inline-table;
+  }
+}
+
+.image {
+  display: block;
+  /*max-width:120px;
+  max-height:120px;*/
+
+  z-index: 1;
+  /*position: absolute;*/
+}
+
+@if user.agent safari {
+  .image {
+    display: inline;
+  }
+}
+
+@sprite .itnw {
+  gwt-image: 'chromeNorthWest';
+  position: absolute;
+  top: 0;
+  left: 0;
+  width: 6px;
+  height: 90px;
+}
+
+@sprite .itnc {
+  gwt-image: 'chromeNorth';
+  position: absolute;
+  top: 0;
+  left: 6px;
+  right: 15px;
+  width: auto;
+  height: 6px;
+}
+
+@sprite .itne {
+  gwt-image: 'chromeNorthEast';
+  position: absolute;
+  top: 0;
+  right: 0;
+  height: 90px;
+  width: 15px;
+}
+
+@sprite .itcw {
+  gwt-image: 'chromeWest';
+  position: absolute;
+  top: 90px;
+  left: 0;
+  bottom: 4px;
+  width: 6px;
+  height: auto;
+}
+
+.ittt {
+  width: 1px;
+  margin: 6px 15px 4px 6px;
+}
+
+@if user.agent ie6 {
+  .ittt {
+    display: inline;
+  }
+}
+
+.itcc {
+  position: absolute;
+  top: 0px;
+  left: 0px;
+  right: 0px;
+  bottom: 0px;
+  height: auto;
+  width: auto;
+  background-repeat: no-repeat;
+  background-position: center center;
+}
+
+/*
+ * Internet Explorer flickers if there's too much animation going on. So we
+ * need to provide an animated GIF with a lower frame rate.
+ */
+@if user.agent ie6 {
+  @url chromeLoadingSlowUrl chromeLoadingSlow;
+  .itcc {
+    background-image: chromeLoadingSlowUrl;
+  }
+}
+@else {
+  @url chromeLoadingFastUrl chromeLoadingFast;
+  .itcc {
+    background-image: chromeLoadingFastUrl;
+  }
+}
+
+@sprite .iterr {
+  gwt-image: 'errorAttachment';
+  position: absolute;
+  top: 0px;
+  left: 0px;
+  right: 0px;
+  bottom: 0px;
+  height: auto;
+  width: auto;
+  background-repeat: no-repeat;
+  background-position: center center;
+}
+
+.itci {
+  margin: auto auto;
+  position: relative;
+  min-height: 60px;
+}
+
+@sprite .itco {
+  gwt-image: 'chromeCenter';
+  /* these are set to auto to override the image dimensions inserted by style 
injector */
+  height: auto;
+  width: auto;
+}
+
+@sprite .itce {
+  gwt-image: 'chromeEast';
+  position: absolute;
+  top: 90px;
+  right: 0;
+  bottom: 4px;
+  width: 15px;
+  height: auto;
+}
+
+@sprite .itsw {
+  gwt-image: 'chromeSouthWest';
+  position: absolute;
+  bottom: 0;
+  left: 0;
+  height: 4px;
+  width: 6px;
+}
+
+@sprite .itsc {
+  gwt-image: 'chromeSouth';
+  position: absolute;
+  bottom: 0;
+  left: 6px;
+  right: 15px;
+  height: 4px;
+  width: auto;
+}
+
+@sprite .itse {
+  gwt-image: 'chromeSouthEast';
+  position: absolute;
+  bottom: 0;
+  right: 0;
+  height: 4px;
+  width: 15px;
+}
+
+.itimg {
+  cursor: pointer;
+}
+
+/* Specialise the progress widget so that it float on top of the image with a 
white gap */
+.progress {
+  position: absolute;
+  height: 8px;
+  bottom: 0px;
+  left: 0px;
+  right: 0px;
+  z-index: 3;
+  background-color: white;
+}
+
+.imageThumbnail .w-caption {
+  text-align: center;
+  padding: 4px;
+  color: black;  /* Can't assume font color is not changed by the page theme. 
*/
+  background-color: white;
+}
+
+/* Rules for Table-based thumbnails. */
+table.imageThumbnail td.ww {
+  width: 6px;
+}
+
+table.imageThumbnail td.ee {
+  width: 15px;
+}
+
+table.imageThumbnail td.nn {
+  height: 90px;
+}
+
+table.imageThumbnail td.ss {
+  height: 4px;
+}
+
+table.imageThumbnail td.m {
+  vertical-align: top;
+}
+
+@sprite table.imageThumbnail td.n {
+  gwt-image: 'chromeNorth';
+  height: 6px;
+}
+
+@sprite table.imageThumbnail td.nw {
+  gwt-image: 'chromeNorthWest';
+}
+
+@sprite table.imageThumbnail td.ne {
+  gwt-image: 'chromeNorthEast';
+}
+
+@sprite table.imageThumbnail td.w {
+  gwt-image: 'chromeWest';
+}
+
+@sprite table.imageThumbnail td.e {
+  gwt-image: 'chromeEast';
+}
+
+@sprite table.imageThumbnail td.sw {
+  gwt-image: 'chromeSouthWest';
+}
+
+@sprite table.imageThumbnail td.s {
+  gwt-image: 'chromeSouth';
+}
+
+@sprite table.imageThumbnail td.se {
+  gwt-image: 'chromeSouthEast';
+}
+
+@sprite table.imageThumbnail td.c {
+  gwt-image: 'chromeCenter';
+  text-align: center;
+}
+
+@url chromeLoadingAttachmentUrl chromeLoadingAttachment;
+table.imageThumbnail div.l {
+  margin: auto auto;
+  background-image: chromeLoadingAttachmentUrl;
+  background-repeat: no-repeat;
+  background-position: center center;
+}
+
+table.imageThumbnail table.inner {
+  table-layout: auto;
+  width: auto;
+}

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/error.png
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/error.png
 
b/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/error.png
new file mode 100644
index 0000000..155a2aa
Binary files /dev/null and 
b/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/error.png
 differ

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/meta_contract.png
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/meta_contract.png
 
b/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/meta_contract.png
new file mode 100644
index 0000000..3716b3a
Binary files /dev/null and 
b/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/meta_contract.png
 differ

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/meta_expand.png
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/meta_expand.png
 
b/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/meta_expand.png
new file mode 100644
index 0000000..2257570
Binary files /dev/null and 
b/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/meta_expand.png
 differ

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/meta_left.png
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/meta_left.png
 
b/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/meta_left.png
new file mode 100644
index 0000000..b7f3c53
Binary files /dev/null and 
b/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/meta_left.png
 differ

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/meta_mid.png
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/meta_mid.png
 
b/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/meta_mid.png
new file mode 100644
index 0000000..0ebe6fa
Binary files /dev/null and 
b/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/meta_mid.png
 differ

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/meta_more.png
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/meta_more.png
 
b/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/meta_more.png
new file mode 100644
index 0000000..b25f9d5
Binary files /dev/null and 
b/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/meta_more.png
 differ

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/meta_right.png
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/meta_right.png
 
b/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/meta_right.png
new file mode 100644
index 0000000..ca1c5b3
Binary files /dev/null and 
b/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/meta_right.png
 differ

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/thumb-c-2.png
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/thumb-c-2.png
 
b/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/thumb-c-2.png
new file mode 100755
index 0000000..8fea337
Binary files /dev/null and 
b/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/thumb-c-2.png
 differ

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/thumb-e-2.png
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/thumb-e-2.png
 
b/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/thumb-e-2.png
new file mode 100755
index 0000000..9f74df2
Binary files /dev/null and 
b/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/thumb-e-2.png
 differ

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/thumb-n-2.png
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/thumb-n-2.png
 
b/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/thumb-n-2.png
new file mode 100755
index 0000000..ce900ef
Binary files /dev/null and 
b/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/thumb-n-2.png
 differ

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/thumb-ne-2.png
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/thumb-ne-2.png
 
b/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/thumb-ne-2.png
new file mode 100755
index 0000000..08cf297
Binary files /dev/null and 
b/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/thumb-ne-2.png
 differ

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/thumb-nw-2.png
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/thumb-nw-2.png
 
b/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/thumb-nw-2.png
new file mode 100755
index 0000000..b0ab11a
Binary files /dev/null and 
b/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/thumb-nw-2.png
 differ

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/thumb-s-2.png
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/thumb-s-2.png
 
b/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/thumb-s-2.png
new file mode 100755
index 0000000..3549856
Binary files /dev/null and 
b/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/thumb-s-2.png
 differ

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/thumb-se-2.png
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/thumb-se-2.png
 
b/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/thumb-se-2.png
new file mode 100755
index 0000000..1f8b78e
Binary files /dev/null and 
b/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/thumb-se-2.png
 differ

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/thumb-sw-2.png
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/thumb-sw-2.png
 
b/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/thumb-sw-2.png
new file mode 100755
index 0000000..fb6d7e8
Binary files /dev/null and 
b/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/thumb-sw-2.png
 differ

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/thumb-w-2.png
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/thumb-w-2.png
 
b/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/thumb-w-2.png
new file mode 100755
index 0000000..332228d
Binary files /dev/null and 
b/wave/src/main/resources/org/waveprotocol/wave/client/doodad/attachment/render/thumb-w-2.png
 differ

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/603eb520/wave/src/main/resources/org/waveprotocol/wave/client/doodad/experimental/htmltemplate/secureStyles.css
----------------------------------------------------------------------
diff --git 
a/wave/src/main/resources/org/waveprotocol/wave/client/doodad/experimental/htmltemplate/secureStyles.css
 
b/wave/src/main/resources/org/waveprotocol/wave/client/doodad/experimental/htmltemplate/secureStyles.css
new file mode 100644
index 0000000..3707151
--- /dev/null
+++ 
b/wave/src/main/resources/org/waveprotocol/wave/client/doodad/experimental/htmltemplate/secureStyles.css
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ * CSS styles for the HTML template doodad.
+ * author: [email protected] (Jasvir Nagra)
+ */
+
+.outerHull {
+  display: inline;
+}
+
+.innerHull, .outerHull > * {
+  position: relative;
+  overflow: auto;
+  clip: 0 0 0 0
+}

Reply via email to