<!--
  Copyright 2011 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
  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. 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'>
  <gwt:VerticalPanel ui:field='verticalPanel'>
    <gwt:cell horizontalAlignment='ALIGN_RIGHT'>
      <gwt:HTMLPanel>
        <gwt:LazyPanel ui:field="generated">
          <gwt:Anchor text='Refresh' ui:field='refresh'
            href='javascript:void(0)' />
        </gwt:LazyPanel>
        |
        <gwt:LazyPanel ui:field="provided"/>
      </gwt:HTMLPanel>
    </gwt:cell>
  </gwt:VerticalPanel>
</ui:UiBinder>
