<?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'>
  <ui:with field='res' type='com.google.gerrit.client.change.Resources'/>
  <ui:style type='com.google.gerrit.client.change.ReplyBox.Styles'>
    .replyBox {
    }
    .label_name {
      font-weight: bold;
      text-align: left;
      white-space: nowrap;
    }
    .label_name input { margin-left: 0; }
    .label_help {
      padding-left: 5px;
      white-space: nowrap;
    }
    .label_value {
      text-align: center;
    }
    .cancel {
      position: absolute;
      bottom: 5px;
      right: 5px;
    }
    .comments {
      max-height: 275px;
      width: 526px;
    }
    .comments p {
      margin: 5px 0 5px 0;
    }
  </ui:style>
  <g:HTMLPanel styleName='{style.replyBox}'>
    <div class='{res.style.section}'>
      <g:TextArea
         visibleLines='5'
         characterWidth='70'
         ui:field='message'/>
    </div>
    <div class='{res.style.section}' ui:field='labelsParent'>
      <g:Grid ui:field='labelsTable'/>
    </div>
    <g:ScrollPanel ui:field='commentsPanel'
        styleName='{style.comments}'
        addStyleNames='{res.style.section}'>
      <g:FlowPanel ui:field='comments'/>
    </g:ScrollPanel>
    <div class='{res.style.section}' style='position: relative'>
      <g:Button ui:field='post'
          title='Post reply (Shortcut: Ctrl-Enter)'
          styleName='{res.style.button}'>
        <ui:attribute name='title'/>
        <div><ui:msg>Post</ui:msg></div>
      </g:Button>

      <g:Button ui:field='cancel'
          title='Close reply form (Shortcut: Esc)'
          styleName='{res.style.button}'
          addStyleNames='{style.cancel}'>
        <ui:attribute name='title'/>
        <div><ui:msg>Cancel</ui:msg></div>
      </g:Button>
    </div>
  </g:HTMLPanel>
</ui:UiBinder>
