@@ -0,0 +1,1520 @@
+/*%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.seaglass.state;%0A%0Aimport java.awt.Component;%0A%0Aimport javax.swing.JComponent;%0Aimport javax.swing.JFrame;%0A%0A/**%0A */%0Apublic class TitlePaneCloseButtonWindowModifiedState extends State %7B%0A    public TitlePaneCloseButtonWindowModifiedState() %7B%0A        super(%22WindowModified%22);%0A    %7D%0A%0A    private static final String WINDOW_DOCUMENT_MODIFIED = %22Window.documentModified%22;%0A%0A    protected boolean isInState(JComponent c) %7B%0A        Component parent = c;%0A        while (parent.getParent() != null) %7B%0A            if (parent instanceof JFrame) %7B%0A                break;%0A            %7D%0A            parent = parent.getParent();%0A        %7D%0A        if (parent instanceof JFrame) %7B%0A            return ((JFrame) parent).getRootPane().getClientProperty(WINDOW_DOCUMENT_MODIFIED) == Boolean.TRUE;%0A        %7D%0A        return false;%0A    %7D%0A%7D%0A

Test for "window modifed" state.