    001    // Copyright 2010 The Apache Software Foundation
    002    //
    003    // Licensed under the Apache License, Version 2.0 (the "License");
    004    // you may not use this file except in compliance with the License.
    005    // You may obtain a copy of the License at
    006    //
    007    //     http://www.apache.org/licenses/LICENSE-2.0
    008    //
    009    // Unless required by applicable law or agreed to in writing, software
    010    // distributed under the License is distributed on an "AS IS" BASIS,
    011    // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    012    // See the License for the specific language governing permissions and
    013    // limitations under the License.
    014
    015    package org.apache.tapestry5.services;
    016
    017    import java.io.IOException;
    018
    019    /**
    020     * Filter contributed into the {@link ComponentRequestHandler} pipeline to set the
    021     * {@link RequestGlobals#getActivePageName() activePageName property}.
    022     *
    023     * @since 5.2.0
    024     */
    025    public class InitializeActivePageName implements ComponentRequestFilter
    026    {
    027        private final RequestGlobals globals;
    028
    029        public InitializeActivePageName(RequestGlobals globals)
    030        {
    031            this.globals = globals;
    032        }
    033
    034        public void handleComponentEvent(ComponentEventRequestParameters parameters,
    035                ComponentRequestHandler handler) throws IOException
    036        {
    037            globals.storeActivePageName(parameters.getActivePageName());
    038
    039            handler.handleComponentEvent(parameters);
    040        }
    041
    042        public void handlePageRender(PageRenderRequestParameters parameters,
    043                ComponentRequestHandler handler) throws IOException
    044        {
    045            globals.storeActivePageName(parameters.getLogicalPageName());
    046
    047            handler.handlePageRender(parameters);
    048        }
    049
    050    }