<?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='ico' type='com.google.gerrit.client.GerritResources'/>
  <ui:with field='res' type='com.google.gerrit.client.change.Resources'/>
  <ui:style>
    .show { cursor: pointer; }
    .edit, .cancel { float: right; }
  </ui:style>
  <g:HTMLPanel>
    <g:FlowPanel ui:field='show'
        styleName='{style.show}'
        title='Click to edit topic (Shortcut: t)'>
      <ui:attribute name='title'/>
      <g:InlineLabel ui:field='text'/>
      <g:Image ui:field='editIcon'
          resource='{ico.edit}'
          styleName='{style.edit}'/>
    </g:FlowPanel>

    <div ui:field='form' style='display: none' aria-hidden='true'>
      <div>
        <c:NpTextBox ui:field='input' visibleLength='55'/>
      </div>
      <div>
        <c:NpTextArea ui:field='message'
            visibleLines='3'
            characterWidth='45'/>
      </div>
      <div>
        <g:Button ui:field='save' styleName='{res.style.button}'>
          <div>Update</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>
