<?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:u='urn:import:com.google.gerrit.client.ui'
    xmlns:g='urn:import:com.google.gwt.user.client.ui'>
  <ui:with field='res' type='com.google.gerrit.client.change.Resources'/>
  <ui:style>
    .cancel { float: right; }
  </ui:style>
  <g:HTMLPanel>
    <div class='{res.style.section}'>
      <ui:msg>Path: <u:RemoteSuggestBox ui:field='path' visibleLength='86'/></ui:msg>
    </div>
    <div class='{res.style.section}'>
      <g:Button ui:field='open'
          title='Open file in editor'
          styleName='{res.style.button}'>
        <ui:attribute name='title'/>
        <div><ui:msg>Open</ui:msg></div>
      </g:Button>
      <g:Button ui:field='cancel'
          styleName='{res.style.button}'
          addStyleNames='{style.cancel}'>
          <div>Cancel</div>
      </g:Button>
    </div>
  </g:HTMLPanel>
</ui:UiBinder>
