001    /*
002     * Copyright 2006 Mat Gessel <mat.gessel@gmail.com>
003     * 
004     * Licensed under the Apache License, Version 2.0 (the "License"); you may not
005     * use this file except in compliance with the License. You may obtain a copy of
006     * the License at
007     * 
008     * http://www.apache.org/licenses/LICENSE-2.0
009     * 
010     * Unless required by applicable law or agreed to in writing, software
011     * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
012     * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
013     * License for the specific language governing permissions and limitations under
014     * the License.
015     */
016    package asquare.gwt.tk.client.ui.behavior.impl;
017    
018    import com.google.gwt.user.client.Event;
019    import com.google.gwt.user.client.ui.Widget;
020    
021    import asquare.gwt.tk.client.ui.behavior.GlassPanelController;
022    import asquare.gwt.tk.client.util.DomUtil;
023    
024    public class GlassPanelControllerIE6 implements GlassPanelController
025    {
026            /*
027             * Originally, the implementation was selected via a deferred binding rule.
028             * However, adding an additional rule for strict/quirks mode increased
029             * compile time by 40%.
030             */
031            private final GlassPanelController s_impl;
032            
033            public GlassPanelControllerIE6()
034            {
035                    s_impl = createImpl();
036            }
037            
038            protected GlassPanelController createImpl()
039            {
040                    if (DomUtil.isQuirksMode())
041                    {
042                            return new GlassPanelControllerIE6ImplQuirks();
043                    }
044                    else
045                    {
046                            return new GlassPanelControllerIE6ImplStrict();
047                    }
048            }
049    
050            public int getEventBits()
051            {
052                    return s_impl.getEventBits();
053            }
054    
055            public Class getId()
056            {
057                    return s_impl.getId();
058            }
059    
060            public void onBrowserEvent(Widget widget, Event event)
061            {
062                    s_impl.onBrowserEvent(widget, event);
063            }
064    
065            public void plugIn(Widget widget)
066            {
067                    s_impl.plugIn(widget);
068            }
069    
070            public void unplug(Widget widget)
071            {
072                    s_impl.unplug(widget);
073            }
074    }