<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2010 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'
  xmlns:my='urn:import:com.google.gerrit.client.ui'
  ui:generateFormat='com.google.gwt.i18n.rebind.format.PropertiesFormat'
  ui:generateKeys='com.google.gwt.i18n.rebind.keygen.MD5KeyGenerator'
  ui:generateLocales='default,en'
  >
<ui:style>
  @external .gwt-TextBox;
  @external .gwt-ListBox;

  @def fontSize 8pt;

  .controls {
    border: none;
    border-collapse: separate;
    border-spacing: 0;
  }

  .controls td {
    font-size: fontSize;
    padding: 0;
    white-space: nowrap;
  }

  .controls .gwt-TextBox {
    font-size: fontSize;
    padding: 0;
    text-align: right;
  }

  .controls .gwt-ListBox {
    font-size: fontSize;
    padding: 0;
    margin-right: 1em;
  }

  .updateButton {
    margin-left: 1em;
    margin-right: 1em;
    font-size: fontSize;
  }
</ui:style>

<g:HTMLPanel>
<table class='{style.controls}'>
  <tr valign='top'>
    <ui:msg>
      <td align='right'>Ignore Whitespace:</td>
      <td align='right'>
        <g:ListBox
          ui:field='ignoreWhitespace'
          visibleItemCount='1'
          tabIndex='1'/>
      </td>
    </ui:msg>

    <td align='right'>
      <ui:msg>Tab Width:
      <my:NpIntTextBox
        ui:field='tabWidth'
        width='2em'
        visibleLength='2'
        maxLength='2'
        tabIndex='3'/>
      </ui:msg>
    </td>

    <td rowspan='2'>
      <g:CheckBox
          ui:field='syntaxHighlighting'
          text='Syntax Coloring'
          tabIndex='5'>
        <ui:attribute name='text'/>
      </g:CheckBox>
      <br/>
      <g:CheckBox
          ui:field='intralineDifference'
          text='Intraline Difference'
          tabIndex='6'>
        <ui:attribute name='text'/>
      </g:CheckBox>
    </td>

    <td rowspan='2'>
      <g:CheckBox
          ui:field='whitespaceErrors'
          text='Whitespace Errors'
          tabIndex='7'>
        <ui:attribute name='text'/>
      </g:CheckBox>
      <br/>
      <g:CheckBox
          ui:field='showLineEndings'
          text='Show Line Endings'
          tabIndex='8'>
        <ui:attribute name='text'/>
      </g:CheckBox>
    </td>

    <td rowspan='2'>
      <g:CheckBox
          ui:field='showTabs'
          text='Show Tabs'
          tabIndex='9'>
        <ui:attribute name='text'/>
      </g:CheckBox>
      <br/>
      <g:CheckBox
          ui:field='expandAllComments'
          text='Expand All Comments'
          tabIndex='10'>
        <ui:attribute name='text'/>
      </g:CheckBox>
    </td>

    <td rowspan='2'>
      <g:CheckBox
          ui:field='retainHeader'
          text='Retain Header On File Switch'
          tabIndex='11'>
        <ui:attribute name='text'/>
      </g:CheckBox>
      <br/>
      <g:CheckBox
          ui:field='skipUncommented'
          text='Skip Uncommented Files'
          tabIndex='12'>
        <ui:attribute name='text'/>
      </g:CheckBox>
    </td>

    <td valign='bottom' rowspan='2'>
      <g:CheckBox
          ui:field='skipDeleted'
          text='Skip Deleted Files'
          tabIndex='13'>
        <ui:attribute name='text'/>
      </g:CheckBox>
      <br/>
      <g:CheckBox
          ui:field='manualReview'
          text='Manual Review'
          tabIndex='14'>
        <ui:attribute name='text'/>
      </g:CheckBox>
    </td>

    <td rowspan='2'>
      <br/>
      <g:Button
          ui:field='update'
          text='Update'
          styleName='{style.updateButton}'
          tabIndex='15'>
        <ui:attribute name='text'/>
      </g:Button>
      <g:Button
          ui:field='save'
          text='Save'
          styleName='{style.updateButton}'
          tabIndex='16'>
        <ui:attribute name='text'/>
      </g:Button>
    </td>
  </tr>

  <tr valign='top'>
    <ui:msg>
      <td align='right'>Context:</td>
      <td align='right'>
        <g:ListBox
            ui:field='context'
            visibleItemCount='1'
            tabIndex='2'/>
      </td>
    </ui:msg>

    <td align='right'>
      <ui:msg>Columns:
      <my:NpIntTextBox
        ui:field='colWidth'
        width='2.5em'
        visibleLength='3'
        maxLength='3'
        tabIndex='4'/>
      </ui:msg>
    </td>
  </tr>
</table>
</g:HTMLPanel>
</ui:UiBinder>
