<?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.gerrit.client'
    xmlns:e='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.diff.Resources'/>
  <ui:style gss='false'>
    .draft {
      width: 45px;
      text-align: center;
      color: #fff;
      background-color: #aaa;
      -webkit-border-radius: 2px;
    }
    .editArea { max-width: 637px; }
    button.button div {
      width: 35px;
    }
    button.discard {
      color: #d14836;
      background-color: #d14836;
      background-image: -webkit-linear-gradient(top, #d14836, #d14836);
      position: absolute;
      left: 150px;
    }
  </ui:style>

  <g:HTMLPanel styleName='{res.style.commentBox}'>
    <div class='{res.style.contents}'>
      <g:HTMLPanel ui:field='header' styleName='{res.style.header}'>
        <div class='{style.draft}'>Draft</div>
        <div ui:field='summary' class='{res.style.summary}'/>
        <div ui:field='date' class='{res.style.date}'/>
      </g:HTMLPanel>
      <div ui:field='p_view' aria-hidden='true' style='display: NONE'>
        <g:HTML ui:field='message' styleName='{res.style.message}'/>
        <div style='position: relative'>
          <g:Button ui:field='edit'
              title='Edit this draft comment'
              styleName='{style.button}'>
            <ui:attribute name='title'/>
            <div><ui:msg>Edit</ui:msg></div>
          </g:Button>
          <g:Button ui:field='discard1'
              title='Discard this draft comment'
              styleName='{style.button}'
              addStyleNames='{style.discard}'>
            <ui:attribute name='title'/>
            <div><ui:msg>Discard</ui:msg></div>
          </g:Button>
        </div>
      </div>
      <div ui:field='p_edit' aria-hidden='true' style='display: NONE'>
        <e:NpTextArea ui:field='editArea'
            characterWidth='60'
            visibleLines='5'
            spellCheck='true'
            styleName='{style.editArea}'/>
        <div style='position: relative'>
          <g:Button ui:field='save'
              title='Save this draft comment'
              styleName='{style.button}'>
            <ui:attribute name='title'/>
            <div><ui:msg>Save</ui:msg></div>
          </g:Button>
          <g:Button ui:field='cancel' styleName='{style.button}'>
            <div><ui:msg>Cancel</ui:msg></div>
          </g:Button>
          <g:Button ui:field='discard2'
              title='Discard this draft comment'
              styleName='{style.button}'
              addStyleNames='{style.discard}'>
            <ui:attribute name='title'/>
            <div><ui:msg>Discard</ui:msg></div>
          </g:Button>
        </div>
      </div>
    </div>
  </g:HTMLPanel>
</ui:UiBinder>
