--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ 175139ef7a61 Tue May 24 17:21:46 2011 +0200 @@ -0,0 +1,216 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + --- a/openide.windows/apichanges.xml Mon May 23 16:04:00 2011 +0200 +++ a/openide.windows/apichanges.xml Tue May 24 17:21:46 2011 +0200 @@ -50,6 +50,31 @@ Window System API + + + Support multiple window system layouts. + + + + + + It is possible to define multiple window system layouts and switch between + them either at startup or at runtime. +
+ The default window system layout is defined in
Windows2
folder in XML layer. + Additional layouts - roles or perspectives - are defined + in
Windows2/Roles
folder. Each role has its own sub-folder. + The name of that folder is role's unique name. The content of role folder + is merged with Windows2 folder when the window system loads. Within a role + it is possible to add new TopComponents, add TopComponent groups, docking + modes, change the location of docking modes etc. To hide a file which + is present in Windows2 folder and which isn't part of a role, add an empty + file with the same name into role's sub-folder. +
+ User settings are stored separately for each role. +
+ +
Allow custom painted background in the main IDE window. --- a/openide.windows/manifest.mf Mon May 23 16:04:00 2011 +0200 +++ a/openide.windows/manifest.mf Tue May 24 17:21:46 2011 +0200 @@ -1,6 +1,6 @@ Manifest-Version: 1.0 OpenIDE-Module: org.openide.windows -OpenIDE-Module-Specification-Version: 6.41 +OpenIDE-Module-Specification-Version: 6.42 OpenIDE-Module-Localizing-Bundle: org/openide/windows/Bundle.properties AutoUpdate-Essential-Module: true --- a/openide.windows/src/org/openide/windows/WindowManager.java Mon May 23 16:04:00 2011 +0200 +++ a/openide.windows/src/org/openide/windows/WindowManager.java Tue May 24 17:21:46 2011 +0200 @@ -637,6 +637,21 @@ this.activeComponent = new WeakReference(activeComponent); } + /** + * Register window system listener to receive notifications when the window + * system loads or saves. + * @since 6.42 + */ + public void addWindowSystemListener( WindowSystemListener listener ) { + } + + /** + * Remove window system listener. + * @since 6.42 + */ + public void removeWindowSystemListener( WindowSystemListener listener ) { + } + /** A manager that handles operations on top components. * It is always attached to a {@link TopComponent}. * @deprecated Do not use anymore. This interface is replaced by bunch of protected methods --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ 175139ef7a61 Tue May 24 17:21:46 2011 +0200 @@ -0,0 +1,79 @@ +/* + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + * + * Copyright 2011 Oracle and/or its affiliates. All rights reserved. + * + * Oracle and Java are registered trademarks of Oracle and/or its affiliates. + * Other names may be trademarks of their respective owners. + * + * The contents of this file are subject to the terms of either the GNU + * General Public License Version 2 only ("GPL") or the Common + * Development and Distribution License("CDDL") (collectively, the + * "License"). You may not use this file except in compliance with the + * License. You can obtain a copy of the License at + * http://www.netbeans.org/cddl-gplv2.html + * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the + * specific language governing permissions and limitations under the + * License. When distributing the software, include this License Header + * Notice in each file and include the License file at + * nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the GPL Version 2 section of the License file that + * accompanied this code. If applicable, add the following below the + * License Header, with the fields enclosed by brackets [] replaced by + * your own identifying information: + * "Portions Copyrighted [year] [name of copyright owner]" + * + * If you wish your version of this file to be governed by only the CDDL + * or only the GPL Version 2, indicate your decision by adding + * "[Contributor] elects to include this software in this distribution + * under the [CDDL or GPL Version 2] license." If you do not indicate a + * single choice of license, a recipient has the option to distribute + * your version of this file under either the CDDL, the GPL Version 2 or + * to extend the choice of license to its licensees as provided above. + * However, if you add GPL Version 2 code and therefore, elected the GPL + * Version 2 license, then the option applies only if the new code is + * made subject to such option by the copyright holder. + * + * Contributor(s): + * + * Portions Copyrighted 2011 Sun Microsystems, Inc. + */ +package org.openide.windows; + +import java.util.EventObject; + +/** + * Configuration of window system. Use this class to change the window system behavior. + * The configuration must be adjusted before window system loads. + * + * @see WindowSystemListener#beforeLoad(org.openide.windows.WindowSystemConfiguration) + * + * @author S. Aubrecht + * @since 6.42 + */ +public final class WindowSystemConfiguration extends EventObject { + + private String roleName; + + public WindowSystemConfiguration( Object source ) { + super( source ); + } + + /** + * @return Name of current window system role or null when using the default + * window system settings. + */ + public String getRoleName() { + return roleName; + } + + /** + * Set + * @param roleName Name of the role to use when window system loads. Or null + * value to use default window system settings. + */ + public void setRoleName( String roleName ) { + this.roleName = roleName; + } +} --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ 175139ef7a61 Tue May 24 17:21:46 2011 +0200 @@ -0,0 +1,83 @@ +/* + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + * + * Copyright 2011 Oracle and/or its affiliates. All rights reserved. + * + * Oracle and Java are registered trademarks of Oracle and/or its affiliates. + * Other names may be trademarks of their respective owners. + * + * The contents of this file are subject to the terms of either the GNU + * General Public License Version 2 only ("GPL") or the Common + * Development and Distribution License("CDDL") (collectively, the + * "License"). You may not use this file except in compliance with the + * License. You can obtain a copy of the License at + * http://www.netbeans.org/cddl-gplv2.html + * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the + * specific language governing permissions and limitations under the + * License. When distributing the software, include this License Header + * Notice in each file and include the License file at + * nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the GPL Version 2 section of the License file that + * accompanied this code. If applicable, add the following below the + * License Header, with the fields enclosed by brackets [] replaced by + * your own identifying information: + * "Portions Copyrighted [year] [name of copyright owner]" + * + * If you wish your version of this file to be governed by only the CDDL + * or only the GPL Version 2, indicate your decision by adding + * "[Contributor] elects to include this software in this distribution + * under the [CDDL or GPL Version 2] license." If you do not indicate a + * single choice of license, a recipient has the option to distribute + * your version of this file under either the CDDL, the GPL Version 2 or + * to extend the choice of license to its licensees as provided above. + * However, if you add GPL Version 2 code and therefore, elected the GPL + * Version 2 license, then the option applies only if the new code is + * made subject to such option by the copyright holder. + * + * Contributor(s): + * + * Portions Copyrighted 2011 Sun Microsystems, Inc. + */ +package org.openide.windows; + +import java.util.EventListener; +import java.util.EventObject; + +/** + * Window system listener to receive notifications when the window system loads + * or saves its state to disk. + * + * @see WindowManager#addWindowSystemListener(WindowSystemListener) + * + * @author S. Aubrecht + * @since 6.42 + */ +public interface WindowSystemListener extends EventListener { + + /** + * Invoked from EDT before the window system loads. + * @param config Current window system configuration. Use it to change the + * default window system behavior. + */ + void beforeLoad( WindowSystemConfiguration config ); + + /** + * Invoked from EDT after the window system finished loading and is about + * to show the main window and its content. + * @param event + */ + void afterLoad( EventObject event ); + + /** + * Invoked from EDT before the window system starts saving its state to disk. + * @param event + */ + void beforeSave( EventObject event ); + + /** + * Invoked from EDT when the window system finished saving its state to disk. + * @param event + */ + void afterSave( EventObject event ); +}