<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<!--
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you 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.
-->
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
	  xmlns:h="http://java.sun.com/jsf/html"
	  xmlns:f="http://java.sun.com/jsf/core">
   <head><title>IGNORED</title></head>
   <body>
      <ui:composition>
         <div class="header">
		 <h1 align = "center">Converter-A Facelets and AJAX Example In JSF2.0 </h1>
		 </div>
		 
		 <div id="top" class="top"><ui:insert name="top"></ui:insert>
	</div>
	<div id="left"><ui:insert name="left">
	<h:form id="form1">
		<h:commandButton id="button1" value="Show Exchange Rate"
			onclick="jsf.ajax.request(this, event, {execute: '@this', render: 'pg1'}); return false;"
			actionListener="#{ConverterBean.toggle}" />
	</h:form>		
		<h:panelGroup id="pg1">
			<h:dataTable id="out1" value="#{ConverterBean.currencyList}" var="item"
				rendered="#{ConverterBean.render}">
				<h:column>
					<f:facet name="header">
						<h:outputText value="Currency" />
					</f:facet>
					<h:outputText value="#{item.name}" />
				</h:column>
				<h:column>
					<f:facet name="header">
						<h:outputText value="Rate" />
					</f:facet>
					<h:outputText value="#{item.rate}" />
				</h:column>
			</h:dataTable>
		</h:panelGroup>		
	</ui:insert>
	</div>
      </ui:composition>
   </body>
</html>