<!--
  Copyright 2010 Google Inc.
 
  Licensed 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.aria.Aria"/>
  <inherits name="com.google.gwt.cell.Cell"/>
  <inherits name="com.google.gwt.editor.Editor"/>
  <inherits name="com.google.gwt.view.View"/>
  <inherits name="com.google.gwt.user.UserAgent"/>
  <source path="client"/>
  <public path="public" />

  <!-- Standard CellBasedWidgetImpl implementation. -->
  <replace-with class="com.google.gwt.user.cellview.client.CellBasedWidgetImplStandard">
    <when-type-is class="com.google.gwt.user.cellview.client.CellBasedWidgetImpl"/>
    <any>
      <when-property-is name="user.agent" value="gecko1_8"/>
    </any>
  </replace-with>

  <!-- StandardBase CellBasedWidgetImpl implementation. -->
  <replace-with class="com.google.gwt.user.cellview.client.CellBasedWidgetImplStandardBase">
    <when-type-is class="com.google.gwt.user.cellview.client.CellBasedWidgetImpl"/>
    <any>
      <when-property-is name="user.agent" value="safari"/>
    </any>
  </replace-with>

  <!-- Mozilla-specific CellTable implementation. -->
  <replace-with class="com.google.gwt.user.cellview.client.AbstractCellTable.ImplMozilla">
    <when-type-is class="com.google.gwt.user.cellview.client.AbstractCellTable.Impl"/>
    <any>
      <when-property-is name="user.agent" value="gecko1_8"/>
    </any>
  </replace-with>
</module>
