001    package org.apache.myfaces.tobago.facelets;
002    
003    /*
004     * Licensed to the Apache Software Foundation (ASF) under one or more
005     * contributor license agreements.  See the NOTICE file distributed with
006     * this work for additional information regarding copyright ownership.
007     * The ASF licenses this file to You under the Apache License, Version 2.0
008     * (the "License"); you may not use this file except in compliance with
009     * the License.  You may obtain a copy of the License at
010     *
011     *      http://www.apache.org/licenses/LICENSE-2.0
012     *
013     * Unless required by applicable law or agreed to in writing, software
014     * distributed under the License is distributed on an "AS IS" BASIS,
015     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
016     * See the License for the specific language governing permissions and
017     * limitations under the License.
018     */
019    
020    import com.sun.facelets.tag.TagHandler;
021    import com.sun.facelets.tag.TagAttribute;
022    import com.sun.facelets.tag.TagConfig;
023    
024    import com.sun.facelets.FaceletContext;
025    
026    import org.apache.myfaces.tobago.util.BundleMapWrapper;
027    
028    import javax.faces.component.UIComponent;
029    import javax.faces.FacesException;
030    import javax.faces.context.FacesContext;
031    import javax.el.ELException;
032    import java.io.IOException;
033    
034    /*
035     * User: bommel
036     * Date: 20.04.2006
037     * Time: 19:35:29
038     */
039    public class LoadBundleHandler extends TagHandler {
040      private final TagAttribute basename;
041    
042      private final TagAttribute var;
043    
044      public LoadBundleHandler(TagConfig config) {
045        super(config);
046        this.basename = getRequiredAttribute("basename");
047        this.var = getRequiredAttribute("var");
048      }
049    
050      public void apply(FaceletContext faceletContext, UIComponent parent)
051          throws IOException, FacesException, ELException {
052        String name = basename.getValue(faceletContext);
053        BundleMapWrapper map = new BundleMapWrapper(name);
054        FacesContext facesContext = faceletContext.getFacesContext();
055        // TODO find a better way
056        facesContext.getExternalContext().
057            getSessionMap().put(var.getValue(faceletContext), map);
058            //getRequestMap().put(var.getValue(faceletContext), map);
059      }
060    }