@@ -0,0 +1,2156 @@
+/*%0A * Copyright (c) 2009 Kathryn Huxtable and Kenneth Orr.%0A *%0A * This file is part of the SeaGlass Pluggable Look and Feel.%0A *%0A * Licensed under the Apache License, Version 2.0 (the %22License%22);%0A * you may not use this file except in compliance with the License.%0A * You may obtain a copy of the License at%0A *%0A *     http://www.apache.org/licenses/LICENSE-2.0%0A *%0A * Unless required by applicable law or agreed to in writing, software%0A * distributed under the License is distributed on an %22AS IS%22 BASIS,%0A * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.%0A * See the License for the specific language governing permissions and%0A * limitations under the License.%0A * %0A * $Id$%0A */%0Apackage com.seaglasslookandfeel.state;%0A%0Aimport java.awt.Component;%0A%0Aimport javax.swing.JComponent;%0Aimport javax.swing.JInternalFrame;%0Aimport javax.swing.JRootPane;%0Aimport javax.swing.JToolBar;%0A%0A/**%0A * Is the window for this toolbar active?%0A */%0Apublic class ToolBarHasNorthToolBarState extends State %7B%0A%0A    private static final State isNorthState = new ToolBarNorthState();%0A%0A    public ToolBarHasNorthToolBarState() %7B%0A        super(%22HasNorthToolBar%22);%0A    %7D%0A%0A    public boolean isInState(JComponent c) %7B%0A        Component parent = c.getParent();%0A        while (parent.getParent() != null) %7B%0A            if (parent instanceof JInternalFrame %7C%7C parent instanceof JRootPane) %7B%0A                break;%0A            %7D%0A            parent = parent.getParent();%0A        %7D%0A        Component%5B%5D cArray = null;%0A        if (parent != null) %7B%0A            if (parent instanceof JInternalFrame) %7B%0A                cArray = ((JInternalFrame) parent).getContentPane().getComponents();%0A            %7D else if (parent instanceof JRootPane) %7B%0A                cArray = ((JRootPane) parent).getContentPane().getComponents();%0A            %7D%0A        %7D%0A%0A        if (cArray != null) %7B%0A            for (Component comp : cArray) %7B%0A                if (comp instanceof JToolBar) %7B%0A                    if (comp != c && isNorthState.isInState((JComponent) comp)) %7B%0A                        return true;%0A                    %7D%0A                %7D%0A            %7D%0A        %7D%0A%0A        return false;%0A    %7D%0A%7D%0A

Determine whether a toolbar is in a pane with a north toolbar that is not itself.