<!--                                                                        -->
<!-- Copyright 2011 Google Inc.                                             -->
<!-- Licensed under the Apache License, Version 2.0 (the "License"); you    -->
<!-- may not use this file except in compliance with the License. You may   -->
<!-- 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. License for the specific language governing permissions and   -->
<!-- limitations under the License.                                         -->
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'>
  <ui:with field='values' />
  <div>
    <a ui:field='jsAnchorFromSafeUri' href='{values.aSafeUri}'>JavaScript anchor from SafeUri</a> |
    <a ui:field='jsAnchorFromString' href='{values.anUnsafeUri}'>JavaScript anchor from String</a> |
    <a ui:field='jsAnchorFromStringControl' href='#'>JavaScript anchor from String</a> |
    <a ui:field='httpAnchorFromString' href='{values.aUrl}'>Http anchor from String</a> |

    <a ui:field='inlineHttpAnchor' href='http://www.google.com/images/logo_sm.gif'>inline http anchor</a> |
    <a ui:field='inlineJavascriptAnchor' href='javascript:void(0)'>inline javascript anchor</a> |

    <a ui:field='httpAnchorFromConstructedString' href='{values.aSelector}{values.aGifPath}'>http anchor from constructed string</a>

    <img src="{values.aUrl}" ui:field='myImage'/>
  </div>
</ui:UiBinder>
