<?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:c='urn:import:com.google.gwtexpui.globalkey.client'
    xmlns:g='urn:import:com.google.gwt.user.client.ui'>
  <ui:with field='res' type='com.google.gerrit.client.change.Resources'/>
  <ui:style>
    .openAdd {
      cursor: pointer;
      float: right;
      padding: 0;
      margin: 0;
      border: 0;
      background-color: transparent;
    }

    .suggestBox {
      margin-bottom: 2px;
    }

    .error {
      color: #D33D3D;
      font-weight: bold;
    }

    .cancel {
      float: right;
    }
  </ui:style>
  <g:HTMLPanel>
    <div>
      <span ui:field='ccText'/>
      <g:Button ui:field='openForm'
         title='Add reviewers to this change'
         styleName='{style.openAdd}'
         visible='false'>
       <ui:attribute name='title'/>
       <div>[+]</div>
      </g:Button>
    </div>
    <div ui:field='form' style='display: none' aria-hidden='true'>
      <g:SuggestBox ui:field='suggestBox' styleName='{style.suggestBox}'/>
      <div ui:field='error'
           class='{style.error}'
           style='display: none' aria-hidden='true'/>
      <div>
        <g:Button ui:field='add' styleName='{res.style.button}'>
          <div>Add</div>
        </g:Button>
        <g:Button ui:field='cancel'
            styleName='{res.style.button}'
            addStyleNames='{style.cancel}'>
          <div>Cancel</div>
        </g:Button>
      </div>
    </div>
   </g:HTMLPanel>
  </ui:UiBinder>
