<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2013 The Android Open Source Project

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.
-->
<ui:UiBinder
    xmlns:ui='urn:ui:com.google.gwt.uibinder'
    xmlns:g='urn:import:com.google.gwt.user.client.ui'
    xmlns:x='urn:import:com.google.gwtexpui.progress.client'>
  <ui:style type='com.google.gerrit.client.change.RelatedChanges.Style'>
    .subject {
      width: 355px;
      overflow: hidden;
      text-overflow: ellipsis;
      display: inline-block;
    }
    .header, .subject {
      white-space: nowrap;
    }
  </ui:style>

  <g:HTMLPanel>
    <div ui:field='header' class='{style.header}'
         title='Same branch changes connected by Git history'>
      <ui:attribute name='title'/>
      <ui:msg>Related Changes</ui:msg>
    </div>
    <g:ScrollPanel ui:field='scroll' visible='false'/>
    <x:ProgressBar ui:field='progress'/>
    <div ui:field='error' aria-hidden='true' style='display: NONE' class='{style.header}'/>
    <div ui:field='none' aria-hidden='true' style='display: NONE' class='{style.header}'>
      <ui:msg>No Related Changes</ui:msg>
    </div>
  </g:HTMLPanel>
</ui:UiBinder>
