diff --git a/openide.windows/apichanges.xml b/openide.windows/apichanges.xml --- a/openide.windows/apichanges.xml +++ b/openide.windows/apichanges.xml @@ -50,6 +50,21 @@ Window System API + + + Added optional role parameter to TopComponent Registration annotation. + + + + + + Since the window system now supports multiple window layouts - roles - + the annotation for TopComponent registration needs an optional parameter + to specify the role the window should belong to. + + + + Added more attributes to Mode DTD to support new winsys features. diff --git a/openide.windows/manifest.mf b/openide.windows/manifest.mf --- a/openide.windows/manifest.mf +++ b/openide.windows/manifest.mf @@ -1,6 +1,6 @@ Manifest-Version: 1.0 OpenIDE-Module: org.openide.windows -OpenIDE-Module-Specification-Version: 6.43 +OpenIDE-Module-Specification-Version: 6.45 OpenIDE-Module-Localizing-Bundle: org/openide/windows/Bundle.properties AutoUpdate-Essential-Module: true diff --git a/openide.windows/src/org/netbeans/modules/openide/windows/TopComponentProcessor.java b/openide.windows/src/org/netbeans/modules/openide/windows/TopComponentProcessor.java --- a/openide.windows/src/org/netbeans/modules/openide/windows/TopComponentProcessor.java +++ b/openide.windows/src/org/netbeans/modules/openide/windows/TopComponentProcessor.java @@ -84,13 +84,20 @@ Description info = findInfo(e); String id = info.preferredID().replace('.', '-'); + String role = reg.role(); + if( role.trim().isEmpty() ) + role = null; + String rootFolder = "Windows2"; + if( null != role ) + rootFolder += "/Roles/" + role; + File settingsFile = layer(e). - file("Windows2/Components/" + id + ".settings"). + file(rootFolder+"/Components/" + id + ".settings"). contents(settingsFile(e)); settingsFile.write(); File modeFile = layer(e). - file("Windows2/Modes/" + reg.mode() + "/" + id + ".wstcref"). + file(rootFolder+"/Modes/" + reg.mode() + "/" + id + ".wstcref"). position(reg.position()). contents(modeFile(info.preferredID(), reg.openAtStartup())); modeFile.write(); diff --git a/openide.windows/src/org/openide/windows/TopComponent.java b/openide.windows/src/org/openide/windows/TopComponent.java --- a/openide.windows/src/org/openide/windows/TopComponent.java +++ b/openide.windows/src/org/openide/windows/TopComponent.java @@ -1430,6 +1430,12 @@ int position() default Integer.MAX_VALUE; /** Shall the component be opened at start */ boolean openAtStartup(); + /** + * Window layout role or an empty string for the default layout + * @see WindowManager#setRole(java.lang.String) + * @since 6.45 + */ + String role() default ""; } /** Creates an action that can open the component.