<!--                                                                        -->
<!-- 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'
  xmlns:gwt='urn:import:com.google.gwt.user.client.ui'
  xmlns:demo='urn:import:com.google.gwt.uibinder.test.client'
  >
  <ui:with field='values' type='com.google.gwt.uibinder.test.client.FakeBundle'/>
  <gwt:RenderablePanel>

  <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'/>

  <demo:HasUri ui:field='jsAnchorFromSafeUriObj' uri='{values.aSafeUri}'/>
  <demo:HasUri ui:field='inlineHttpAnchorObj' uri='http://www.google.com/images/logo_sm.gif'/>
  <demo:HasUri ui:field='inlineJavascriptAnchorObj' uri='javascript:void(0)'/>
  </gwt:RenderablePanel>
</ui:UiBinder>
