<?xml version="1.0"?>
<!DOCTYPE faces-config PUBLIC
        "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN"
        "http://java.sun.com/dtd/web-facesconfig_1_1.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.
-->

<faces-config>
    <application>
        <!-- trinidad -->
        <default-render-kit-id>
            org.apache.myfaces.trinidad.core
        </default-render-kit-id>

    </application>

    <managed-bean>
        <managed-bean-name>registrationPage</managed-bean-name>
        <managed-bean-class>org.apache.myfaces.extensions.validator.demo.gui.beans.RegistrationPage</managed-bean-class>
        <managed-bean-scope>request</managed-bean-scope>

        <managed-property>
            <property-name>person</property-name>
            <value>#{person}</value>
        </managed-property>
    </managed-bean>

    <managed-bean>
        <managed-bean-name>person</managed-bean-name>
        <managed-bean-class>org.apache.myfaces.extensions.validator.demo.domain.Person</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
    </managed-bean>

    <navigation-rule>
        <from-view-id>/pages/home.xhtml</from-view-id>
        <navigation-case>
            <from-outcome>addUser</from-outcome>
            <to-view-id>/pages/registration.xhtml</to-view-id>
        </navigation-case>
        <navigation-case>
            <from-outcome>changeNickName</from-outcome>
            <to-view-id>/pages/change_nickName.xhtml</to-view-id>
        </navigation-case>
        <navigation-case>
            <from-outcome>changePassword</from-outcome>
            <to-view-id>/pages/change_password.xhtml</to-view-id>
        </navigation-case>
    </navigation-rule>
    <navigation-rule>
        <from-view-id>*</from-view-id>
        <navigation-case>
            <from-outcome>home</from-outcome>
            <to-view-id>/pages/home.xhtml</to-view-id>
        </navigation-case>
    </navigation-rule>
</faces-config>