| <html> |
| <!-- |
| |
| NO NO NO NO NO! |
| |
| ==============> DO NOT EDIT ME! <====================== |
| |
| AUTOMATICALLY GENERATED FROM APICHANGES.XML, DO NOT EDIT |
| |
| SEE openide/loaders/api/apichanges.xml |
| |
| --> |
| |
| <head> |
| <META http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
| |
| <title>Change History for the Loaders API</title> |
| |
| <link rel="stylesheet" href="prose.css" type="text/css"> |
| |
| </head> |
| |
| <body> |
| |
| |
| <p class="overviewlink"> |
| <a href="overview-summary.html" shape="rect">Overview</a> |
| </p> |
| |
| |
| <h1>Introduction</h1> |
| |
| |
| <p>This document lists changes made to the <a href="" shape="rect">Loaders |
| API</a>. Please ask on the <code>dev@openide.netbeans.org</code> mailing list |
| if you have any questions about the details of a |
| change, or are wondering how to convert existing code to be compatible.</p> |
| |
| <!-- The actual lists of changes, as summaries and details: --> |
| |
| |
| <hr> |
| <h1> |
| <a name="list-all-apis">Index of APIs</a> |
| </h1> |
| <ul> |
| <li> |
| <a href="#awt">Loaders AWT Extensions</a> |
| </li> |
| <li> |
| <a href="#editor">Loaders Editor Extensions</a> |
| </li> |
| <li> |
| <a href="#loaders">Loaders API</a> |
| </li> |
| </ul> |
| <h1> |
| <a name="incompat-by-date">Incompatible changes by date</a> |
| </h1> |
| <p>Fuller descriptions of all changes can be found below (follow links).</p> |
| <p>Not all deprecations are listed here, assuming that the deprecated |
| APIs continue to essentially work. For a full deprecation list, please |
| consult the |
| <a href="deprecated-list.html">Javadoc</a>.</p> |
| <ul> |
| <li>(Oct 14 '14) <a href="#templates.separation">Separate template handling</a> |
| </li> |
| <li>(Jun 21 '11) <a href="#MultiDataObject.associateLookup">Simpler way to subclass MultiDataObject</a> |
| </li> |
| <li>(Jun 10 '11) <a href="#org.openide.loaders.FolderChildren.delayedCreation">Children for DataFolder are more effective</a> |
| </li> |
| <li>(Oct 7 '10) <a href="#removing.org.openide.loaders.DataFolder.lazy">Removed <code>org.openide.loaders.DataFolder.lazy</code></a> |
| </li> |
| <li>(Apr 7 '10) <a href="#FileEncodingQuery-from-mime-lookup">FileEncodingQuery registered per MIME type takes preceedence</a> |
| </li> |
| <li>(Jun 27 '08) <a href="#FolderLookup.dispatch">Changes in <code>FolderLookup</code> are delivered in dedicated thread</a> |
| </li> |
| <li>(May 28 '03) <a href="#issue-33750">Tighter synchronization during copy/move/rename</a> |
| </li> |
| <li>(May 16 '03) <a href="#issue-33469">Calls to DataObject constructor restricted</a> |
| </li> |
| </ul> |
| <h1> |
| <a name="all-by-date">All changes by date</a> |
| </h1> |
| <ul> |
| <li>(Oct 21 '15) <a href="#org.openide.loaders.DataFolder.SortMode.NATURAL">Introduces SortMode for natural sorting.</a> |
| </li> |
| <li>(Oct 14 '14) <a href="#templates.separation">Separate template handling</a> |
| </li> |
| <li>(Jan 29 '14) <a href="#org.netbeans.api.templates.TemplateRegistration.targetName">Introduce targetName for templates.</a> |
| </li> |
| <li>(Oct 10 '13) <a href="#org.openide.loaders.DataFolder.SortMode.EXTENSIONS">Introduces SortMode for sorting by file extension.</a> |
| </li> |
| <li>(Aug 23 '13) <a href="#org.openide.text.big.file.size">Introduces system property to change file size threshold.</a> |
| </li> |
| <li>(Jan 25 '13) <a href="#TemplateRegistration.requireProject">Allow registration of templates which do not require a Project instance</a> |
| </li> |
| <li>(Dec 21 '12) <a href="#lazymenu.properties">Control what client properties pulldown menus have</a> |
| </li> |
| <li>(Nov 23 '12) <a href="#DataShadow.findOriginal"> |
| Introduced <code>DataShadow.findOriginal</code> which extracts the original file from |
| a FileObject representing a shadow/link. |
| </a> |
| </li> |
| <li>(Jan 23 '12) <a href="#DataObjec.Registration">Introduced <code>DataObject.Registration</code> and <code>DataObject.Registrations</code></a> |
| </li> |
| <li>(Sep 3 '11) <a href="#ToolbarPool.isFinished"><code>ToolbarPool.isFinished</code></a> |
| </li> |
| <li>(Jul 25 '11) <a href="#Template">Introduced <code>Template</code></a> |
| </li> |
| <li>(Jul 11 '11) <a href="#DataEditorSupport.constr3">DataEditorSupport constructor with Lookup parameter</a> |
| </li> |
| <li>(Jun 21 '11) <a href="#MultiDataObject.associateLookup">Simpler way to subclass MultiDataObject</a> |
| </li> |
| <li>(Jun 21 '11) <a href="#FileSystemAction.no.nodes">lookup(DataObject.class) fallback</a> |
| </li> |
| <li>(Jun 10 '11) <a href="#org.openide.loaders.FolderChildren.delayedCreation">Children for DataFolder are more effective</a> |
| </li> |
| <li>(Jun 1 '11) <a href="#DataEditorSupport.create-callable">DataEditorSupport.create(...., Callable<Pane>)</a> |
| </li> |
| <li>(Oct 7 '10) <a href="#removing.org.openide.loaders.DataFolder.lazy">Removed <code>org.openide.loaders.DataFolder.lazy</code></a> |
| </li> |
| <li>(Apr 13 '10) <a href="#CreateFromTemplateHandler.FREE_FILE_EXTENSION">Added <code>CreateFromTemplateHandler.FREE_FILE_EXTENSION</code></a> |
| </li> |
| <li>(Apr 7 '10) <a href="#FileEncodingQuery-from-mime-lookup">FileEncodingQuery registered per MIME type takes preceedence</a> |
| </li> |
| <li>(Feb 20 '10) <a href="#AcceleratorBinding">Added <code>AcceleratorBinding</code></a> |
| </li> |
| <li>(Nov 9 '09) <a href="#XMLDataObject.subclass">New constructor of XMLDataObject</a> |
| </li> |
| <li>(Sep 3 '09) <a href="#DataEditorSupport.annotateName">Added <code>annotateName</code> and <code>toolTip</code> to <code>DataEditorSupport</code></a> |
| </li> |
| <li>(Nov 28 '08) <a href="#Toolbars.DnD">Deprecation of Toolbar drag and drop API</a> |
| </li> |
| <li>(Oct 30 '08) <a href="#DataFilter.FileBased">Faster Filtering based on FileObjects</a> |
| </li> |
| <li>(Jun 27 '08) <a href="#FolderLookup.dispatch">Changes in <code>FolderLookup</code> are delivered in dedicated thread</a> |
| </li> |
| <li>(Jun 11 '08) <a href="#factory">DataObjects without DataLoaders</a> |
| </li> |
| <li>(May 26 '08) <a href="#layer.registration">Loaders are registered in layer files</a> |
| </li> |
| <li>(Feb 20 '08) <a href="#xml.mimetypes">XMLDataObject no longer enforces text/xml as document mimetype</a> |
| </li> |
| <li>(Aug 14 '07) <a href="#scripting.wizard.prefix">Prefixing attributes from TemplateWizard with <code>wizard.</code></a> |
| </li> |
| <li>(Aug 1 '07) <a href="#templates.encoding">Templates may use ${encoding} and ${nameAndExt} properties</a> |
| </li> |
| <li>(Jun 16 '07) <a href="#DataFolder.position">Folders may be ordered by numeric position</a> |
| </li> |
| <li>(Mar 30 '07) <a href="#SaveAsCapable">SaveAsCapable interface defines the ability to save DataObject under a different file name and/or extension</a> |
| </li> |
| <li>(Mar 14 '07) <a href="#FileEncodingQuery.loaders">DataEditorSupport uses FileEncodingQuery to read or write document in correct encoding</a> |
| </li> |
| <li>(Feb 8 '07) <a href="#scripting">Integration with scripting and templating</a> |
| </li> |
| <li>(Nov 2 '06) <a href="#fileobject-in-lookup">DataNode.getLookup contains FileObject, DataObject has getLookup()</a> |
| </li> |
| <li>(May 30 '06) <a href="#ExternalDragAndDrop.loaders">Folders in IDE can accept files dragged from outside, |
| files and folders in IDE can be dragged and dropped to external applications.</a> |
| </li> |
| <li>(Oct 26 '05) <a href="#more-actionContexts">All standard loaders reads their data from the layer</a> |
| </li> |
| <li>(Sep 19 '05) <a href="#DataNodeLookupContructor">New <a href="org/openide/loaders/DataNode.html" shape="rect">DataNode</a> constructor that takes Lookup</a> |
| </li> |
| <li>(May 11 '05) <a href="#FolderRenameHandler">Introduction of a new interface FolderRenameHandler which allows plugging into <code>DataFolder.FolderNode.setName()</code></a> |
| </li> |
| <li>(Mar 9 '05) <a href="#DataEditorSupport.create">A factory method to simplify creation of <code>DataEditorSupport</code></a> |
| </li> |
| <li>(Feb 7 '05) <a href="#DataLoaderPool.getDefault">Added <code>DataLoaderPool.getDefault()</code></a> |
| </li> |
| <li>(Nov 23 '04) <a href="#DataLoader.actionsContext">Actions for <code>DataLoader</code> can be specified in a layer</a> |
| </li> |
| <li>(Jun 11 '04) <a href="#ChangeableDataFilter">Added <code>ChangeableDataFilter</code> interface</a> |
| </li> |
| <li>(May 18 '04) <a href="#issue-34574">Support for 24x24 icons</a> |
| </li> |
| <li>(May 12 '04) <a href="#issue-42091"><code>DataShadow</code> uses URL for storage</a> |
| </li> |
| <li>(May 3 '04) <a href="#issue-29466"><code>DataNode.getHtmlDisplayName</code> was implemented</a> |
| </li> |
| <li>(Sep 9 '03) <a href="#SortMode.LAST_MODIFIED-SIZE">Two new folder sort modes</a> |
| </li> |
| <li>(May 28 '03) <a href="#issue-33750">Tighter synchronization during copy/move/rename</a> |
| </li> |
| <li>(May 16 '03) <a href="#issue-33469">Calls to DataObject constructor restricted</a> |
| </li> |
| <li>(Apr 18 '03) <a href="#issue-32937">Separated out from the openide</a> |
| </li> |
| <li>(Jul 15 '02) <a href="#version-3.2">Enhanced the <code>org.openide.awt.MenuBar</code> |
| to understand <code>Component</code>s.</a> |
| </li> |
| </ul> |
| <h1> |
| <a name="all-by-version">Changes by version</a> |
| </h1> |
| <p> |
| These API specification versions may be used to indicate that a module |
| requires a certain API feature in order to function. For example, if you |
| see here a feature you need which is labelled <samp>1.20</samp>, your |
| manifest should contain in its main attributes the line: |
| </p> |
| <pre>OpenIDE-Module-Module-Dependencies: org.openide.loaders > 1.20</pre> |
| <ul> |
| <li> |
| (7.65) <a href="#org.openide.loaders.DataFolder.SortMode.NATURAL">Introduces SortMode for natural sorting.</a> |
| </li> |
| <li> |
| (7.59) <a href="#templates.separation">Separate template handling</a> |
| </li> |
| <li> |
| (7.56) <a href="#org.netbeans.api.templates.TemplateRegistration.targetName">Introduce targetName for templates.</a> |
| </li> |
| <li> |
| (7.54) <a href="#org.openide.loaders.DataFolder.SortMode.EXTENSIONS">Introduces SortMode for sorting by file extension.</a> |
| </li> |
| <li> |
| (7.51) <a href="#org.openide.text.big.file.size">Introduces system property to change file size threshold.</a> |
| </li> |
| <li> |
| (7.46) <a href="#TemplateRegistration.requireProject">Allow registration of templates which do not require a Project instance</a> |
| </li> |
| <li> |
| (7.44) <a href="#lazymenu.properties">Control what client properties pulldown menus have</a> |
| </li> |
| <li> |
| (7.42) <a href="#DataShadow.findOriginal"> |
| Introduced <code>DataShadow.findOriginal</code> which extracts the original file from |
| a FileObject representing a shadow/link. |
| </a> |
| </li> |
| <li> |
| (7.36) <a href="#DataObjec.Registration">Introduced <code>DataObject.Registration</code> and <code>DataObject.Registrations</code></a> |
| </li> |
| <li> |
| (7.30) <a href="#ToolbarPool.isFinished"><code>ToolbarPool.isFinished</code></a> |
| </li> |
| <li> |
| (7.29) <a href="#Template">Introduced <code>Template</code></a> |
| </li> |
| <li> |
| (7.28) <a href="#DataEditorSupport.constr3">DataEditorSupport constructor with Lookup parameter</a> |
| </li> |
| <li> |
| (7.27) <a href="#MultiDataObject.associateLookup">Simpler way to subclass MultiDataObject</a> |
| </li> |
| <li> |
| (7.26) <a href="#FileSystemAction.no.nodes">lookup(DataObject.class) fallback</a> |
| </li> |
| <li> |
| (7.25) <a href="#org.openide.loaders.FolderChildren.delayedCreation">Children for DataFolder are more effective</a> |
| </li> |
| <li> |
| (7.23) <a href="#DataEditorSupport.create-callable">DataEditorSupport.create(...., Callable<Pane>)</a> |
| </li> |
| <li> |
| (7.19) <a href="#removing.org.openide.loaders.DataFolder.lazy">Removed <code>org.openide.loaders.DataFolder.lazy</code></a> |
| </li> |
| <li> |
| (7.16) <a href="#CreateFromTemplateHandler.FREE_FILE_EXTENSION">Added <code>CreateFromTemplateHandler.FREE_FILE_EXTENSION</code></a> |
| </li> |
| <li> |
| (7.14) <a href="#FileEncodingQuery-from-mime-lookup">FileEncodingQuery registered per MIME type takes preceedence</a> |
| </li> |
| <li> |
| (7.13) <a href="#AcceleratorBinding">Added <code>AcceleratorBinding</code></a> |
| </li> |
| <li> |
| (7.10) <a href="#XMLDataObject.subclass">New constructor of XMLDataObject</a> |
| </li> |
| <li> |
| (7.7) <a href="#DataEditorSupport.annotateName">Added <code>annotateName</code> and <code>toolTip</code> to <code>DataEditorSupport</code></a> |
| </li> |
| <li> |
| (7.5) <a href="#Toolbars.DnD">Deprecation of Toolbar drag and drop API</a> |
| </li> |
| <li> |
| (7.4) <a href="#DataFilter.FileBased">Faster Filtering based on FileObjects</a> |
| </li> |
| <li> |
| (7.2) <a href="#FolderLookup.dispatch">Changes in <code>FolderLookup</code> are delivered in dedicated thread</a> |
| </li> |
| <li> |
| (7.1) <a href="#factory">DataObjects without DataLoaders</a> |
| </li> |
| <li> |
| (7.0) <a href="#layer.registration">Loaders are registered in layer files</a> |
| </li> |
| <li> |
| (6.9) <a href="#xml.mimetypes">XMLDataObject no longer enforces text/xml as document mimetype</a> |
| </li> |
| <li> |
| (6.7) <a href="#scripting.wizard.prefix">Prefixing attributes from TemplateWizard with <code>wizard.</code></a> |
| </li> |
| <li> |
| (6.6) <a href="#templates.encoding">Templates may use ${encoding} and ${nameAndExt} properties</a> |
| </li> |
| <li> |
| (6.5) <a href="#DataFolder.position">Folders may be ordered by numeric position</a> |
| </li> |
| <li> |
| (6.3) <a href="#SaveAsCapable">SaveAsCapable interface defines the ability to save DataObject under a different file name and/or extension</a> |
| </li> |
| <li> |
| (6.3) <a href="#scripting">Integration with scripting and templating</a> |
| </li> |
| <li> |
| (6.2) <a href="#FileEncodingQuery.loaders">DataEditorSupport uses FileEncodingQuery to read or write document in correct encoding</a> |
| </li> |
| <li> |
| (6.0) <a href="#fileobject-in-lookup">DataNode.getLookup contains FileObject, DataObject has getLookup()</a> |
| </li> |
| <li> |
| (5.11) <a href="#ExternalDragAndDrop.loaders">Folders in IDE can accept files dragged from outside, |
| files and folders in IDE can be dragged and dropped to external applications.</a> |
| </li> |
| <li> |
| (5.8) <a href="#more-actionContexts">All standard loaders reads their data from the layer</a> |
| </li> |
| <li> |
| (5.6) <a href="#DataNodeLookupContructor">New <a href="org/openide/loaders/DataNode.html" shape="rect">DataNode</a> constructor that takes Lookup</a> |
| </li> |
| <li> |
| (5.4) <a href="#FolderRenameHandler">Introduction of a new interface FolderRenameHandler which allows plugging into <code>DataFolder.FolderNode.setName()</code></a> |
| </li> |
| <li> |
| (5.2) <a href="#DataEditorSupport.create">A factory method to simplify creation of <code>DataEditorSupport</code></a> |
| </li> |
| <li> |
| (5.1) <a href="#DataLoaderPool.getDefault">Added <code>DataLoaderPool.getDefault()</code></a> |
| </li> |
| <li> |
| (5.0) <a href="#DataLoader.actionsContext">Actions for <code>DataLoader</code> can be specified in a layer</a> |
| </li> |
| <li> |
| (4.16) <a href="#ChangeableDataFilter">Added <code>ChangeableDataFilter</code> interface</a> |
| </li> |
| <li> |
| (4.15) <a href="#issue-34574">Support for 24x24 icons</a> |
| </li> |
| <li> |
| (4.14) <a href="#issue-42091"><code>DataShadow</code> uses URL for storage</a> |
| </li> |
| <li> |
| (4.13) <a href="#issue-29466"><code>DataNode.getHtmlDisplayName</code> was implemented</a> |
| </li> |
| <li> |
| (4.10) <a href="#SortMode.LAST_MODIFIED-SIZE">Two new folder sort modes</a> |
| </li> |
| <li> |
| (4.9) <a href="#issue-33750">Tighter synchronization during copy/move/rename</a> |
| </li> |
| <li> |
| (4.7) <a href="#issue-33469">Calls to DataObject constructor restricted</a> |
| </li> |
| <li> |
| (4.5) <a href="#issue-32937">Separated out from the openide</a> |
| </li> |
| <li> |
| (3.2) <a href="#version-3.2">Enhanced the <code>org.openide.awt.MenuBar</code> |
| to understand <code>Component</code>s.</a> |
| </li> |
| </ul> |
| <h1> |
| <a name="all-by-class">Changes by affected class</a> |
| </h1> |
| <h2> |
| <a name="org.openide.awt.AcceleratorBinding"><code><span style="color:gray">org.openide.awt.</span>AcceleratorBinding</code></a> |
| </h2><ul><li>(Feb 20 '10) <a href="#AcceleratorBinding">Added <code>AcceleratorBinding</code></a> |
| </li></ul><h2> |
| <a name="org.openide.loaders.ChangeableDataFilter"><code><span style="color:gray">org.openide.loaders.</span>ChangeableDataFilter</code></a> |
| </h2><ul><li>(Jun 11 '04) <a href="#ChangeableDataFilter">Added <code>ChangeableDataFilter</code> interface</a> |
| </li></ul><h2> |
| <a name="org.openide.loaders.CreateFromTemplateAttributesProvider"><code><span style="color:gray">org.openide.loaders.</span>CreateFromTemplateAttributesProvider</code></a> |
| </h2><ul><li>(Oct 14 '14) <a href="#templates.separation">Separate template handling</a> |
| </li> |
| <li>(Feb 8 '07) <a href="#scripting">Integration with scripting and templating</a> |
| </li></ul><h2> |
| <a name="org.openide.loaders.CreateFromTemplateHandler"><code><span style="color:gray">org.openide.loaders.</span>CreateFromTemplateHandler</code></a> |
| </h2><ul><li>(Oct 14 '14) <a href="#templates.separation">Separate template handling</a> |
| </li> |
| <li>(Apr 13 '10) <a href="#CreateFromTemplateHandler.FREE_FILE_EXTENSION">Added <code>CreateFromTemplateHandler.FREE_FILE_EXTENSION</code></a> |
| </li> |
| <li>(Feb 8 '07) <a href="#scripting">Integration with scripting and templating</a> |
| </li></ul><h2> |
| <a name="org.openide.text.DataEditorSupport"><code><span style="color:gray">org.openide.text.</span>DataEditorSupport</code></a> |
| </h2><ul><li>(Aug 23 '13) <a href="#org.openide.text.big.file.size">Introduces system property to change file size threshold.</a> |
| </li> |
| <li>(Jul 11 '11) <a href="#DataEditorSupport.constr3">DataEditorSupport constructor with Lookup parameter</a> |
| </li> |
| <li>(Jun 1 '11) <a href="#DataEditorSupport.create-callable">DataEditorSupport.create(...., Callable<Pane>)</a> |
| </li> |
| <li>(Sep 3 '09) <a href="#DataEditorSupport.annotateName">Added <code>annotateName</code> and <code>toolTip</code> to <code>DataEditorSupport</code></a> |
| </li> |
| <li>(Mar 30 '07) <a href="#SaveAsCapable">SaveAsCapable interface defines the ability to save DataObject under a different file name and/or extension</a> |
| </li> |
| <li>(Mar 14 '07) <a href="#FileEncodingQuery.loaders">DataEditorSupport uses FileEncodingQuery to read or write document in correct encoding</a> |
| </li> |
| <li>(Mar 9 '05) <a href="#DataEditorSupport.create">A factory method to simplify creation of <code>DataEditorSupport</code></a> |
| </li></ul><h2> |
| <a name="org.openide.loaders.DataFilter"><code><span style="color:gray">org.openide.loaders.</span>DataFilter</code></a> |
| </h2><ul><li>(Oct 30 '08) <a href="#DataFilter.FileBased">Faster Filtering based on FileObjects</a> |
| </li></ul><h2> |
| <a name="org.openide.loaders.DataFolder"><code><span style="color:gray">org.openide.loaders.</span>DataFolder</code></a> |
| </h2><ul><li>(Oct 21 '15) <a href="#org.openide.loaders.DataFolder.SortMode.NATURAL">Introduces SortMode for natural sorting.</a> |
| </li> |
| <li>(Oct 10 '13) <a href="#org.openide.loaders.DataFolder.SortMode.EXTENSIONS">Introduces SortMode for sorting by file extension.</a> |
| </li> |
| <li>(Jun 10 '11) <a href="#org.openide.loaders.FolderChildren.delayedCreation">Children for DataFolder are more effective</a> |
| </li> |
| <li>(Oct 7 '10) <a href="#removing.org.openide.loaders.DataFolder.lazy">Removed <code>org.openide.loaders.DataFolder.lazy</code></a> |
| </li> |
| <li>(May 30 '06) <a href="#ExternalDragAndDrop.loaders">Folders in IDE can accept files dragged from outside, |
| files and folders in IDE can be dragged and dropped to external applications.</a> |
| </li> |
| <li>(Sep 9 '03) <a href="#SortMode.LAST_MODIFIED-SIZE">Two new folder sort modes</a> |
| </li></ul><h2> |
| <a name="org.openide.loaders.DataLoader"><code><span style="color:gray">org.openide.loaders.</span>DataLoader</code></a> |
| </h2><ul><li>(May 26 '08) <a href="#layer.registration">Loaders are registered in layer files</a> |
| </li> |
| <li>(Nov 23 '04) <a href="#DataLoader.actionsContext">Actions for <code>DataLoader</code> can be specified in a layer</a> |
| </li></ul><h2> |
| <a name="org.openide.loaders.DataLoaderPool"><code><span style="color:gray">org.openide.loaders.</span>DataLoaderPool</code></a> |
| </h2><ul><li>(Jun 11 '08) <a href="#factory">DataObjects without DataLoaders</a> |
| </li> |
| <li>(Oct 26 '05) <a href="#more-actionContexts">All standard loaders reads their data from the layer</a> |
| </li> |
| <li>(Feb 7 '05) <a href="#DataLoaderPool.getDefault">Added <code>DataLoaderPool.getDefault()</code></a> |
| </li></ul><h2> |
| <a name="org.openide.loaders.DataNode"><code><span style="color:gray">org.openide.loaders.</span>DataNode</code></a> |
| </h2><ul><li>(Nov 2 '06) <a href="#fileobject-in-lookup">DataNode.getLookup contains FileObject, DataObject has getLookup()</a> |
| </li> |
| <li>(May 30 '06) <a href="#ExternalDragAndDrop.loaders">Folders in IDE can accept files dragged from outside, |
| files and folders in IDE can be dragged and dropped to external applications.</a> |
| </li> |
| <li>(Sep 19 '05) <a href="#DataNodeLookupContructor">New <a href="org/openide/loaders/DataNode.html" shape="rect">DataNode</a> constructor that takes Lookup</a> |
| </li> |
| <li>(May 3 '04) <a href="#issue-29466"><code>DataNode.getHtmlDisplayName</code> was implemented</a> |
| </li></ul><h2> |
| <a name="org.openide.loaders.DataObject"><code><span style="color:gray">org.openide.loaders.</span>DataObject</code></a> |
| </h2><ul><li>(Jan 23 '12) <a href="#DataObjec.Registration">Introduced <code>DataObject.Registration</code> and <code>DataObject.Registrations</code></a> |
| </li> |
| <li>(May 26 '08) <a href="#layer.registration">Loaders are registered in layer files</a> |
| </li> |
| <li>(Mar 30 '07) <a href="#SaveAsCapable">SaveAsCapable interface defines the ability to save DataObject under a different file name and/or extension</a> |
| </li> |
| <li>(Feb 8 '07) <a href="#scripting">Integration with scripting and templating</a> |
| </li> |
| <li>(Nov 2 '06) <a href="#fileobject-in-lookup">DataNode.getLookup contains FileObject, DataObject has getLookup()</a> |
| </li> |
| <li>(May 28 '03) <a href="#issue-33750">Tighter synchronization during copy/move/rename</a> |
| </li> |
| <li>(May 16 '03) <a href="#issue-33469">Calls to DataObject constructor restricted</a> |
| </li></ul><h2> |
| <a name="org.openide.loaders.DataShadow"><code><span style="color:gray">org.openide.loaders.</span>DataShadow</code></a> |
| </h2><ul><li>(Nov 23 '12) <a href="#DataShadow.findOriginal"> |
| Introduced <code>DataShadow.findOriginal</code> which extracts the original file from |
| a FileObject representing a shadow/link. |
| </a> |
| </li></ul><h2> |
| <a name="org.openide.actions.FileSystemAction"><code><span style="color:gray">org.openide.actions.</span>FileSystemAction</code></a> |
| </h2><ul><li>(Jun 21 '11) <a href="#FileSystemAction.no.nodes">lookup(DataObject.class) fallback</a> |
| </li></ul><h2> |
| <a name="org.openide.loaders.FolderLookup"><code><span style="color:gray">org.openide.loaders.</span>FolderLookup</code></a> |
| </h2><ul><li>(Jun 27 '08) <a href="#FolderLookup.dispatch">Changes in <code>FolderLookup</code> are delivered in dedicated thread</a> |
| </li></ul><h2> |
| <a name="org.openide.loaders.FolderRenameHandler"><code><span style="color:gray">org.openide.loaders.</span>FolderRenameHandler</code></a> |
| </h2><ul><li>(May 11 '05) <a href="#FolderRenameHandler">Introduction of a new interface FolderRenameHandler which allows plugging into <code>DataFolder.FolderNode.setName()</code></a> |
| </li></ul><h2> |
| <a name="org.openide.awt.MenuBar"><code><span style="color:gray">org.openide.awt.</span>MenuBar</code></a> |
| </h2><ul><li>(Dec 21 '12) <a href="#lazymenu.properties">Control what client properties pulldown menus have</a> |
| </li> |
| <li>(Jul 15 '02) <a href="#version-3.2">Enhanced the <code>org.openide.awt.MenuBar</code> |
| to understand <code>Component</code>s.</a> |
| </li></ul><h2> |
| <a name="org.openide.loaders.MultiDataObject"><code><span style="color:gray">org.openide.loaders.</span>MultiDataObject</code></a> |
| </h2><ul><li>(Jun 21 '11) <a href="#MultiDataObject.associateLookup">Simpler way to subclass MultiDataObject</a> |
| </li></ul><h2> |
| <a name="org.openide.loaders.SaveAsCapable"><code><span style="color:gray">org.openide.loaders.</span>SaveAsCapable</code></a> |
| </h2><ul><li>(Mar 30 '07) <a href="#SaveAsCapable">SaveAsCapable interface defines the ability to save DataObject under a different file name and/or extension</a> |
| </li></ul><h2> |
| <a name="org.netbeans.api.templates.TemplateRegistration"><code><span style="color:gray">org.netbeans.api.templates.</span>TemplateRegistration</code></a> |
| </h2><ul><li>(Jan 29 '14) <a href="#org.netbeans.api.templates.TemplateRegistration.targetName">Introduce targetName for templates.</a> |
| </li> |
| <li>(Jan 25 '13) <a href="#TemplateRegistration.requireProject">Allow registration of templates which do not require a Project instance</a> |
| </li> |
| <li>(Jul 25 '11) <a href="#Template">Introduced <code>Template</code></a> |
| </li></ul><h2> |
| <a name="org.netbeans.api.templates.TemplateRegistrations"><code><span style="color:gray">org.netbeans.api.templates.</span>TemplateRegistrations</code></a> |
| </h2><ul><li>(Jul 25 '11) <a href="#Template">Introduced <code>Template</code></a> |
| </li></ul><h2> |
| <a name="org.openide.loaders.TemplateWizard"><code><span style="color:gray">org.openide.loaders.</span>TemplateWizard</code></a> |
| </h2><ul><li>(Aug 14 '07) <a href="#scripting.wizard.prefix">Prefixing attributes from TemplateWizard with <code>wizard.</code></a> |
| </li></ul><h2> |
| <a name="org.openide.awt.Toolbar"><code><span style="color:gray">org.openide.awt.</span>Toolbar</code></a> |
| </h2><ul><li>(Nov 28 '08) <a href="#Toolbars.DnD">Deprecation of Toolbar drag and drop API</a> |
| </li> |
| <li>(May 18 '04) <a href="#issue-34574">Support for 24x24 icons</a> |
| </li></ul><h2> |
| <a name="org.openide.awt.ToolbarPool"><code><span style="color:gray">org.openide.awt.</span>ToolbarPool</code></a> |
| </h2><ul><li>(Sep 3 '11) <a href="#ToolbarPool.isFinished"><code>ToolbarPool.isFinished</code></a> |
| </li> |
| <li>(Nov 28 '08) <a href="#Toolbars.DnD">Deprecation of Toolbar drag and drop API</a> |
| </li> |
| <li>(May 18 '04) <a href="#issue-34574">Support for 24x24 icons</a> |
| </li></ul><h2> |
| <a name="org.openide.loaders.XMLDataObject"><code><span style="color:gray">org.openide.loaders.</span>XMLDataObject</code></a> |
| </h2><ul><li>(Nov 9 '09) <a href="#XMLDataObject.subclass">New constructor of XMLDataObject</a> |
| </li> |
| <li>(Feb 20 '08) <a href="#xml.mimetypes">XMLDataObject no longer enforces text/xml as document mimetype</a> |
| </li></ul><hr> |
| <h1> |
| <a name="details-by-api">Details of all changes by API and date</a> |
| </h1> |
| <hr style="width:50%"> |
| <h2> |
| <a name="awt">Loaders AWT Extensions</a> |
| </h2> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="lazymenu.properties">Control what client properties pulldown menus have</a> |
| </h3> |
| <em>Dec 21 '12; API spec. version: 7.44; affected top-level classes: <a href="./org/openide/awt/MenuBar.html"><code>MenuBar</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=222138"> |
| #222138</a></em> |
| <br> |
| |
| <p>Layer declaration of a menu can influence what client properties |
| the actual <a href="http://download.oracle.com/javase/8/docs/api/javax/swing/JMenu.html" shape="rect">JMenu</a> |
| instances will have. More |
| <a href="architecture-summary.html#layer-Menu" shape="rect">details</a>. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="ToolbarPool.isFinished"><code>ToolbarPool.isFinished</code></a> |
| </h3> |
| <em>Sep 3 '11; API spec. version: 7.30; affected top-level classes: <a href="./org/openide/awt/ToolbarPool.html"><code>ToolbarPool</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=192207"> |
| #192207</a></em> |
| <br> |
| |
| <p> |
| One can find out if <code>ToolbarPool</code> is initialized. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="FileSystemAction.no.nodes">lookup(DataObject.class) fallback</a> |
| </h3> |
| <em>Jun 21 '11; API spec. version: 7.26; affected top-level classes: <a href="./org/openide/actions/FileSystemAction.html"><code>FileSystemAction</code></a>; made by: tstupka</em> |
| <br> |
| |
| <p> |
| In FileSystemAction.createMenu(boolean popUp, Lookup lookup) |
| fallback on .lookup(DataObject.class) in case the given lookup |
| contains no nodes. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="FileEncodingQuery-from-mime-lookup">FileEncodingQuery registered per MIME type takes preceedence</a> |
| </h3> |
| <em>Apr 7 '10; API spec. version: 7.14; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=102629"> |
| #102629</a></em> |
| <br> |
| |
| <p> |
| FileEncodingQuery implementations registered in |
| <code>Editors/text/mime/</code> folders are queried |
| even before the actual DataObject has been created |
| from template. This allows data loaders with static |
| encoding to register such FileEncodingQuery implementation |
| there and be active while the object is being constructed. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="AcceleratorBinding">Added <code>AcceleratorBinding</code></a> |
| </h3> |
| <em>Feb 20 '10; API spec. version: 7.13; affected top-level classes: <code>org.openide.awt.AcceleratorBinding</code>; made by: jglick; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=180543"> |
| #180543</a></em> |
| <br> |
| |
| <p> |
| Added a new class to help with action accelerators. |
| Should not be used by typical modules. |
| </p> |
| |
| <p> |
| (Moved into the org.openide.awt module as of 7.34.) |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="Toolbars.DnD">Deprecation of Toolbar drag and drop API</a> |
| </h3> |
| <em>Nov 28 '08; API spec. version: 7.5; affected top-level classes: <a href="./org/openide/awt/Toolbar.html"><code>Toolbar</code></a> <a href="./org/openide/awt/ToolbarPool.html"><code>ToolbarPool</code></a>; made by: saubrecht; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=59242"> |
| #59242</a></em> |
| <br> |
| |
| <p> |
| Deprecated methods related to Toolbar drag and drop. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="version-3.2">Enhanced the <code>org.openide.awt.MenuBar</code> |
| to understand <code>Component</code>s.</a> |
| </h3> |
| <em>Jul 15 '02; API spec. version: 3.2; affected top-level classes: <a href="./org/openide/awt/MenuBar.html"><code>MenuBar</code></a>; made by: pnejedly</em> |
| <br> |
| This is not the Java API change but rather a change in treating |
| of the content of the folder from which the <code>MenuBar</code> |
| is built. Prevoiusly only folders were recognized and turned into |
| top-level menus. Now also <code>Component</code> instances found |
| in the folder are directly added to the resulting <code>MenuBar</code> |
| and <code>Presenter.Toolbar</code> instances are asked for |
| the presentation component and added to the <code>MenuBar</code>. |
| <hr style="width:50%"> |
| <h2> |
| <a name="editor">Loaders Editor Extensions</a> |
| </h2> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="org.openide.text.big.file.size">Introduces system property to change file size threshold.</a> |
| </h3> |
| <em>Aug 23 '13; API spec. version: 7.51; affected top-level classes: <a href="./org/openide/text/DataEditorSupport.html"><code>DataEditorSupport</code></a>; made by: igor_nikiforov; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=213882"> |
| #213882</a></em> |
| <br> |
| |
| <p>We need a way to replace hardcoded "1024 * 1024" constant for file size, as |
| in native space 1Mb file is rather common situation. So org.openide.text.big.file.size |
| system property is introduced, which allows to set this threshhold in megabytes. |
| The default threshold is 1Mb. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="DataEditorSupport.constr3">DataEditorSupport constructor with Lookup parameter</a> |
| </h3> |
| <em>Jul 11 '11; API spec. version: 7.28; affected top-level classes: <a href="./org/openide/text/DataEditorSupport.html"><code>DataEditorSupport</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=199416"> |
| #199416</a></em> |
| <br> |
| |
| <p> |
| One can control what |
| <a href="../org-openide-util-lookup/org/openide/util/Lookup.html" shape="rect"> |
| Lookup</a> will be associated with |
| <a href="org/openide/text/DataEditorSupport.html" shape="rect"> |
| DataEditorSupport</a>. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="DataEditorSupport.create-callable">DataEditorSupport.create(...., Callable<Pane>)</a> |
| </h3> |
| <em>Jun 1 '11; API spec. version: 7.23; affected top-level classes: <a href="./org/openide/text/DataEditorSupport.html"><code>DataEditorSupport</code></a>; made by: jtulach</em> |
| <br> |
| |
| <p> |
| New <code>create</code> factory method to allow creation |
| of different <code>CloneableEditorSupport.Pane</code> implementations |
| than the default <code>CloneableEditor</code>. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="DataEditorSupport.annotateName">Added <code>annotateName</code> and <code>toolTip</code> to <code>DataEditorSupport</code></a> |
| </h3> |
| <em>Sep 3 '09; API spec. version: 7.7; affected top-level classes: <a href="./org/openide/text/DataEditorSupport.html"><code>DataEditorSupport</code></a>; made by: jglick; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=171428"> |
| #171428</a></em> |
| <br> |
| |
| <p> |
| Added two convenience methods permitting modules with nonstandard |
| editor-like windows to use the regular modified and read-only status |
| annotations. |
| </p> |
| |
| <br> |
| <strong>Compatibility: </strong> |
| |
| <p> |
| Overrides of <code>messageHtmlName</code> should be reconsidered. |
| Calls to <code>messageName</code> should be paired with calls to |
| <code>messageHtmlName</code> and <code>messageToolTip</code>. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="DataEditorSupport.create">A factory method to simplify creation of <code>DataEditorSupport</code></a> |
| </h3> |
| <em>Mar 9 '05; API spec. version: 5.2; affected top-level classes: <a href="./org/openide/text/DataEditorSupport.html"><code>DataEditorSupport</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=17081"> |
| #17081</a></em> |
| <br> |
| |
| <p> |
| Many people subclass <code>DataEditorSupport</code> to provide editing ability for data |
| objects. The great majority of them wish to provide an editor cookie |
| and with standard semantics for open, modify, save, undo, |
| close, reload, etc. By using the |
| <code>DataEditorSupport.create</code> factory |
| method this task is simplified to two lines of code. |
| </p> |
| |
| <hr style="width:50%"> |
| <h2> |
| <a name="loaders">Loaders API</a> |
| </h2> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="org.openide.loaders.DataFolder.SortMode.NATURAL">Introduces SortMode for natural sorting.</a> |
| </h3> |
| <em>Oct 21 '15; API spec. version: 7.65; affected top-level classes: <a href="./org/openide/loaders/DataFolder.html"><code>DataFolder</code></a>; made by: jhavlin; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=242226"> |
| #242226</a></em> |
| <br> |
| |
| <p> |
| Added support for natural sorting of DataObjects. This means |
| that the sort is case insensitive and number sequences are |
| sorted by value rather than lexicographically. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="templates.separation">Separate template handling</a> |
| </h3> |
| <em>Oct 14 '14; API spec. version: 7.59; affected top-level classes: <a href="./org/openide/loaders/CreateFromTemplateAttributesProvider.html"><code>CreateFromTemplateAttributesProvider</code></a> <a href="./org/openide/loaders/CreateFromTemplateHandler.html"><code>CreateFromTemplateHandler</code></a>; made by: sdedic; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id="> |
| #</a></em> |
| <br> |
| Template handling need not depend on Data System APIs, should be available |
| for clients that only know FileSystems. Relevant interfaces moved to |
| <code>openide.filesystems.templates</code> module; see javadoc for |
| <a href="../org-netbeans-api-templates/org/netbeans/api/templates/FileBuilder.html" shape="rect"> |
| FileBuilder</a> for details. |
| <br> |
| <em><a href="http://wiki.netbeans.org/VersioningPolicy#Compatible_change_on_the_trunk">Binary-compatible</a></em> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="org.netbeans.api.templates.TemplateRegistration.targetName">Introduce targetName for templates.</a> |
| </h3> |
| <em>Jan 29 '14; API spec. version: 7.56; affected top-level classes: <code>org.netbeans.api.templates.TemplateRegistration</code>; made by: jhavlin; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=239028"> |
| #239028</a></em> |
| <br> |
| |
| <p> |
| By default, files created from templates have name |
| preinitialized to "new" + template name. |
| TemplateRegistration.targetName can be used to customize how |
| the file name will be preinitialized. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="org.openide.loaders.DataFolder.SortMode.EXTENSIONS">Introduces SortMode for sorting by file extension.</a> |
| </h3> |
| <em>Oct 10 '13; API spec. version: 7.54; affected top-level classes: <a href="./org/openide/loaders/DataFolder.html"><code>DataFolder</code></a>; made by: jhavlin; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=230821"> |
| #230821</a></em> |
| <br> |
| |
| <p>It's possible to sort files using sort mode "By Type", which |
| means using SortMode.CLASS. It may be confusing, as users |
| expect that the files will be sorted by file type, i.e. by |
| extension. "By Type" was renamed to "By Class" and new |
| sort mode "By Extension" (SortMode.EXTENSIONS) was added. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="TemplateRegistration.requireProject">Allow registration of templates which do not require a Project instance</a> |
| </h3> |
| <em>Jan 25 '13; API spec. version: 7.46; affected top-level classes: <code>org.netbeans.api.templates.TemplateRegistration</code>; made by: 280Z28; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=186943"> |
| #186943</a></em> |
| <br> |
| |
| <p>Templates may be registered with <code>requireProject = false</code> |
| in the annotation to indicate the template does not require a Project |
| instance to be created. These templates show in the New File dialog |
| even when no project is open in the IDE. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="DataShadow.findOriginal"> |
| Introduced <code>DataShadow.findOriginal</code> which extracts the original file from |
| a FileObject representing a shadow/link. |
| </a> |
| </h3> |
| <em>Nov 23 '12; API spec. version: 7.42; affected top-level classes: <a href="./org/openide/loaders/DataShadow.html"><code>DataShadow</code></a>; made by: sdedic</em> |
| <br> |
| Target FileObject can be obtained, instead of DataObject. The target may be invalid, |
| or otherwise unsuitable for DataObject creation. Use this method to just dereference |
| the shadow file. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="DataObjec.Registration">Introduced <code>DataObject.Registration</code> and <code>DataObject.Registrations</code></a> |
| </h3> |
| <em>Jan 23 '12; API spec. version: 7.36; affected top-level classes: <a href="./org/openide/loaders/DataObject.html"><code>DataObject</code></a>; made by: skygo; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=207219"> |
| #207219</a> <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=208670"> |
| #208670</a></em> |
| <br> |
| |
| <p> |
| Introduced a new annotation for registering DataObject. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="Template">Introduced <code>Template</code></a> |
| </h3> |
| <em>Jul 25 '11; API spec. version: 7.29; affected top-level classes: <code>org.netbeans.api.templates.TemplateRegistration</code> <code>org.netbeans.api.templates.TemplateRegistrations</code>; made by: jglick; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=200175"> |
| #200175</a></em> |
| <br> |
| |
| <p> |
| Introduced a new annotation for registering (file or project) templates. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="MultiDataObject.associateLookup">Simpler way to subclass MultiDataObject</a> |
| </h3> |
| <em>Jun 21 '11; API spec. version: 7.27; affected top-level classes: <a href="./org/openide/loaders/MultiDataObject.html"><code>MultiDataObject</code></a>; made by: jtulach</em> |
| <br> |
| |
| <p> |
| New way to subclass <code>MultiDataObject</code>: override |
| <a href="org/openide/loaders/MultiDataObject.html#associateLookup--" shape="rect"> |
| int associateLookup() |
| </a> to return <code>1</code>. In constructor call |
| <a href="org/openide/loaders/MultiDataObject.html#registerEditor-java.lang.String-boolean-" shape="rect"> |
| registerEditor("your/mimetype", ...)</a> to get default |
| editor support. No need to override any other methods to get |
| well performing <code>MultiDataObject</code>. |
| </p> |
| |
| <br> |
| <strong>Compatibility: </strong> |
| Added <code>registerEditor</code> method which might clash |
| with some existing method in subclasses, although it is |
| hopefully not very likely. |
| <br> |
| <em><a href="http://wiki.netbeans.org/VersioningPolicy#Compatible_change_on_the_trunk">Binary-compatible</a></em> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="org.openide.loaders.FolderChildren.delayedCreation">Children for DataFolder are more effective</a> |
| </h3> |
| <em>Jun 10 '11; API spec. version: 7.25; affected top-level classes: <a href="./org/openide/loaders/DataFolder.html"><code>DataFolder</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=199391"> |
| #199391</a></em> |
| <br> |
| |
| <p> |
| The nodes view over a <code>DataFolder</code> now creates |
| real nodes in background which provides better performance |
| on slow, remote filesystems. |
| </p> |
| |
| <br> |
| <strong>Compatibility: </strong> |
| Not fully compatible. In case your application desperately |
| needs the original mode, use the |
| <a href="architecture-summary.html#systemproperty-org.openide.loaders.FolderChildren.delayedCreation" shape="rect"> |
| org.openide.loaders.FolderChildren.delayedCreation |
| </a> property. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="removing.org.openide.loaders.DataFolder.lazy">Removed <code>org.openide.loaders.DataFolder.lazy</code></a> |
| </h3> |
| <em>Oct 7 '10; API spec. version: 7.19; affected top-level classes: <a href="./org/openide/loaders/DataFolder.html"><code>DataFolder</code></a>; made by: jtulach</em> |
| <br> |
| |
| <p> |
| The private API to honor |
| <code>org.openide.loaders.DataFolder.lazy</code> property |
| has been removed, as being obsolete. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="CreateFromTemplateHandler.FREE_FILE_EXTENSION">Added <code>CreateFromTemplateHandler.FREE_FILE_EXTENSION</code></a> |
| </h3> |
| <em>Apr 13 '10; API spec. version: 7.16; affected top-level classes: <a href="./org/openide/loaders/CreateFromTemplateHandler.html"><code>CreateFromTemplateHandler</code></a>; made by: jglick; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=141886"> |
| #141886</a></em> |
| <br> |
| |
| <p> |
| Introduced a parameter that may be specified on templates |
| to permit the user to pick a file extension. |
| </p> |
| |
| <br> |
| <strong>Compatibility: </strong> |
| |
| <p> |
| Existing <code>CreateFromTemplateHandler</code> implementations |
| are encouraged to honor the parameter. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="XMLDataObject.subclass">New constructor of XMLDataObject</a> |
| </h3> |
| <em>Nov 9 '09; API spec. version: 7.10; affected top-level classes: <a href="./org/openide/loaders/XMLDataObject.html"><code>XMLDataObject</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=175750"> |
| #175750</a></em> |
| <br> |
| |
| <p> |
| New constructor for subclasses of <code>XMLDataObject</code>. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="DataFilter.FileBased">Faster Filtering based on FileObjects</a> |
| </h3> |
| <em>Oct 30 '08; API spec. version: 7.4; affected top-level classes: <a href="./org/openide/loaders/DataFilter.html"><code>DataFilter</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=150747"> |
| #150747</a></em> |
| <br> |
| |
| <p> |
| |
| <a href="org/openide/loaders/DataFilter.html" shape="rect">DataFilter</a> |
| interface used to support filtering based on |
| <a href="org/openide/loaders/DataObject.html" shape="rect">DataObject</a>s. |
| With the introduction of more |
| <a href="../org-openide-nodes/apichanges.html#Children.Keys.lazy" shape="rect">effective nodes</a>, |
| this is slowing down the visualization of folders significantly. |
| That is why we introduce new |
| <a href="org/openide/loaders/DataFilter.FileBased.html" shape="rect">pre-filter</a> |
| which can operate |
| on <a href="../org-openide-filesystems/org/openide/filesystems/FileObject.html" shape="rect">FileObject</a>s, |
| whithout the need to instantiate |
| <a href="org/openide/loaders/DataObject.html" shape="rect">DataObject</a>s. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="FolderLookup.dispatch">Changes in <code>FolderLookup</code> are delivered in dedicated thread</a> |
| </h3> |
| <em>Jun 27 '08; API spec. version: 7.2; affected top-level classes: <a href="./org/openide/loaders/FolderLookup.html"><code>FolderLookup</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=134297"> |
| #134297</a></em> |
| <br> |
| |
| <p> |
| Changes found in <code>FolderLookup</code> are delivered in their own |
| thread. This is a change to previous behaviour which used the |
| <q>Folder recognizer</q> thread for event delivery. That could |
| cause deadlocks, if malicious code decided to do something wild |
| in the <code>resultChanged</code> method. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="factory">DataObjects without DataLoaders</a> |
| </h3> |
| <em>Jun 11 '08; API spec. version: 7.1; affected top-level classes: <a href="./org/openide/loaders/DataLoaderPool.html"><code>DataLoaderPool</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=91665"> |
| #91665</a></em> |
| <br> |
| |
| <p> |
| There is new method to register new DataObject types without |
| the need to write own DataLoader. Use |
| <a href="org/openide/loaders/DataLoaderPool.html#factory-java.lang.Class-java.lang.String-java.awt.Image-" shape="rect"> |
| DataLoaderPool.factory</a> method. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="layer.registration">Loaders are registered in layer files</a> |
| </h3> |
| <em>May 26 '08; API spec. version: 7.0; affected top-level classes: <a href="./org/openide/loaders/DataObject.html"><code>DataObject</code></a> <a href="./org/openide/loaders/DataLoader.html"><code>DataLoader</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=91665"> |
| #91665</a></em> |
| <br> |
| |
| <p> |
| There is new |
| <a href="org/openide/loaders/doc-files/api.html#register" shape="rect">registration |
| scheme</a> for <code>DataLoader</code>s. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="xml.mimetypes">XMLDataObject no longer enforces text/xml as document mimetype</a> |
| </h3> |
| <em>Feb 20 '08; API spec. version: 6.9; affected top-level classes: <a href="./org/openide/loaders/XMLDataObject.html"><code>XMLDataObject</code></a>; made by: mkleint</em> |
| <br> |
| |
| <p> |
| Whenever possible the editor support and editor components will |
| use the underlying FileObject's mimetype (as resolved by the mimetype resolvers). |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="scripting.wizard.prefix">Prefixing attributes from TemplateWizard with <code>wizard.</code></a> |
| </h3> |
| <em>Aug 14 '07; API spec. version: 6.7; affected top-level classes: <a href="./org/openide/loaders/TemplateWizard.html"><code>TemplateWizard</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=109569"> |
| #109569</a></em> |
| <br> |
| |
| <p> |
| When <a href="org/openide/loaders/TemplateWizard.html" shape="rect">TemplateWizard</a> invokes |
| <a href="org/openide/loaders/DataObject.html" shape="rect">DataObject</a>.createFromTemplate, |
| it passes as argument all its <a href="../org-openide-dialogs/org/openide/WizardDescriptor.html#getProperties--" shape="rect">properties</a> |
| to it with <code>wizard.</code> as a prefix. That way they are available to |
| underlying <a href="architecture-summary.html#script" shape="rect">scripting and templating |
| engines</a>. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="templates.encoding">Templates may use ${encoding} and ${nameAndExt} properties</a> |
| </h3> |
| <em>Aug 1 '07; API spec. version: 6.6; made by: mfukala; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=110910"> |
| #110910</a></em> |
| <br> |
| |
| <p> |
| Templates may use ${encoding} and ${nameAndExt} properties in their |
| bodies to be substituted |
| to the real encoding of the template instance file as well |
| as the actual name (with extension) of the file, being created. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="DataFolder.position">Folders may be ordered by numeric position</a> |
| </h3> |
| <em>Jun 16 '07; API spec. version: 6.5; made by: jglick; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=103187"> |
| #103187</a></em> |
| <br> |
| |
| <p> |
| Folders may now be ordered by setting the <code>position</code> attribute |
| on files within the folder, which should have a numeric value. |
| The original relative ordering constraints are now deprecated but still work. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="SaveAsCapable">SaveAsCapable interface defines the ability to save DataObject under a different file name and/or extension</a> |
| </h3> |
| <em>Mar 30 '07; API spec. version: 6.3; affected top-level classes: <a href="./org/openide/loaders/SaveAsCapable.html"><code>SaveAsCapable</code></a> <a href="./org/openide/loaders/DataObject.html"><code>DataObject</code></a> <a href="./org/openide/text/DataEditorSupport.html"><code>DataEditorSupport</code></a>; made by: saubrecht; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=20147"> |
| #20147</a></em> |
| <br> |
| |
| <p> |
| The DataEditorSupport adds default implementation of SaveAsCapable interface to the CookieSet |
| of DataObjects created by UniFileLoaders. The default implementation calls copyRename method |
| on the DataObject. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="FileEncodingQuery.loaders">DataEditorSupport uses FileEncodingQuery to read or write document in correct encoding</a> |
| </h3> |
| <em>Mar 14 '07; API spec. version: 6.2; affected top-level classes: <a href="./org/openide/text/DataEditorSupport.html"><code>DataEditorSupport</code></a>; made by: tzezula; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=42638"> |
| #42638</a></em> |
| <br> |
| |
| <p> |
| The DataEditorSupport overides the loadFromStreamToKit and saveFromKitToStream methods. |
| In these methods it uses FileEncodingQuery to find out the encoding of the file, creates |
| the Reader or Writer with obtained encoding and calls EditorKit.read or EditorKit.write. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="scripting">Integration with scripting and templating</a> |
| </h3> |
| <em>Feb 8 '07; API spec. version: 6.3; affected top-level classes: <a href="./org/openide/loaders/DataObject.html"><code>DataObject</code></a> <a href="./org/openide/loaders/CreateFromTemplateHandler.html"><code>CreateFromTemplateHandler</code></a> <a href="./org/openide/loaders/CreateFromTemplateAttributesProvider.html"><code>CreateFromTemplateAttributesProvider</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=13250"> |
| #13250</a></em> |
| <br> |
| |
| <p> |
| Two new interfaces - <code>CreateFromTemplateHandler</code> and |
| <code>CreateFromTemplateAttributesProvider</code> to enhance the abilities |
| of data object to be created with parametrized values. Also new method |
| <code>createFromTemplate</code> taking extra map of named arguments |
| has been added, so users can pass the data object additional info |
| that can be processed during instantiation of the template. |
| </p> |
| |
| <p> |
| This is particallary useful when using <a href="architecture-summary.html#script" shape="rect">scripting and templating |
| languages</a> during create from template operation. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="fileobject-in-lookup">DataNode.getLookup contains FileObject, DataObject has getLookup()</a> |
| </h3> |
| <em>Nov 2 '06; API spec. version: 6.0; affected top-level classes: <a href="./org/openide/loaders/DataNode.html"><code>DataNode</code></a> <a href="./org/openide/loaders/DataObject.html"><code>DataObject</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=62707"> |
| #62707</a></em> |
| <br> |
| |
| <p> |
| Since now, each DataNode constructed without using own lookup, |
| shall have <code>FileObject</code>(s) associated with its |
| <a href="org/openide/loaders/DataObject.html#files--" shape="rect">DataObject</a> |
| available in its own lookup. |
| Also a |
| <a href="org/openide/loaders/DataObject.html" shape="rect">DataObject</a> |
| has been retrofitted to implement a |
| <a href="../org-openide-util-lookup/org/openide/util/Lookup.Provider.html" shape="rect">Lookup.Provider</a> |
| interface and thus have its |
| <a href="org/openide/loaders/DataObject.html#getLookup--" shape="rect">getLookup</a> |
| method that can be used instead of the old <code>getCookie</code> one. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="ExternalDragAndDrop.loaders">Folders in IDE can accept files dragged from outside, |
| files and folders in IDE can be dragged and dropped to external applications.</a> |
| </h3> |
| <em>May 30 '06; API spec. version: 5.11; affected top-level classes: <a href="./org/openide/loaders/DataNode.html"><code>DataNode</code></a> <a href="./org/openide/loaders/DataFolder.html"><code>DataFolder</code></a>; made by: saubrecht; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=35228"> |
| #35228</a></em> |
| <br> |
| |
| <p> |
| Class <code>DataNode</code> add additional <code>DataFlavor</code>s |
| to its <code>Transferable</code> which means that any file or folder |
| can be dragged from the IDE and dropped to any external application |
| that supports file drag and drop operations. The same functionality |
| applies to Copy/Cut and Paste operations. |
| </p> |
| |
| <p> |
| Class <code>DataFolder.FolderNode</code> now supports file-type |
| <code>DataFlavor</code>s so when a file(s) is dropped to a folder node |
| in the IDE then the file is copied into that folder. If the file is |
| a Java source file then the appropriate refactoring will fire up as well. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="more-actionContexts">All standard loaders reads their data from the layer</a> |
| </h3> |
| <em>Oct 26 '05; API spec. version: 5.8; affected top-level classes: <a href="./org/openide/loaders/DataLoaderPool.html"><code>DataLoaderPool</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=64200"> |
| #64200</a></em> |
| <br> |
| |
| <p> |
| Default loaders, default XML loader and instances loader read their |
| actions from <code>Loaders/content/unknown/Actions</code>, |
| <code>Loaders/text/xml/Actions</code> and <code>Loaders/application/x-nbsettings/Actions</code>. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="DataNodeLookupContructor">New <a href="org/openide/loaders/DataNode.html" shape="rect">DataNode</a> constructor that takes Lookup</a> |
| </h3> |
| <em>Sep 19 '05; API spec. version: 5.6; affected top-level classes: <a href="./org/openide/loaders/DataNode.html"><code>DataNode</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=61824"> |
| #61824</a></em> |
| <br> |
| It was not possible to use <a href="org/openide/loaders/DataNode.html" shape="rect">DataNode</a> with own Lookup as the |
| constructor that takes it was available only on <a href="../org-openide-nodes/org/openide/nodes/Node.html" shape="rect">Node</a> |
| and there was no way to pass it thru <a href="org/openide/loaders/DataNode.html" shape="rect">DataNode</a>. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="FolderRenameHandler">Introduction of a new interface FolderRenameHandler which allows plugging into <code>DataFolder.FolderNode.setName()</code></a> |
| </h3> |
| <em>May 11 '05; API spec. version: 5.4; affected top-level classes: <a href="./org/openide/loaders/FolderRenameHandler.html"><code>FolderRenameHandler</code></a>; made by: jbecicka; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=53295"> |
| #53295</a></em> |
| <br> |
| Refactoring needs to handle rename of DataFolder's Node. It is allowed through FolderRenameHandler. |
| Any client can put it's FolderRenameHandler into Lookup (only one instance is allowed). |
| Implementation of FolderNode.setName() will use this instance to handle rename request. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="DataLoaderPool.getDefault">Added <code>DataLoaderPool.getDefault()</code></a> |
| </h3> |
| <em>Feb 7 '05; API spec. version: 5.1; affected top-level classes: <a href="./org/openide/loaders/DataLoaderPool.html"><code>DataLoaderPool</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=41650"> |
| #41650</a></em> |
| <br> |
| |
| <p> |
| |
| <code>DataLoaderPool</code> now has a new method <code>getDefault()</code> |
| to allow simple access to the default system loader pool. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="DataLoader.actionsContext">Actions for <code>DataLoader</code> can be specified in a layer</a> |
| </h3> |
| <em>Nov 23 '04; API spec. version: 5.0; affected top-level classes: <a href="./org/openide/loaders/DataLoader.html"><code>DataLoader</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=45137"> |
| #45137</a></em> |
| <br> |
| |
| <p> |
| |
| <code>DataLoader</code> now has a new method <code>protected String actionsContext()</code> |
| which by default returns <code>null</code> but can be overriden to identify name |
| of a place on default file system where layers can store instances of <code>javax.swing.Action</code> |
| that will then be used as a return value of <code>DataNode.getActions(boolean)</code>. |
| This allows smooth extensibility of one data object's node with actions |
| from other modules. |
| </p> |
| |
| <p> |
| The change is compatible, as if one does not override this method, |
| the behaviour remains the same as it used to be. If the method is overridden |
| and returns non-null value, |
| the <code>DataLoader.setActions</code> uses the given context to |
| store the actions into it. |
| </p> |
| |
| <p> |
| The standard loader for folder use <code>Loaders/folder/any/Actions</code> |
| as its context, so any module who wishes to add anything to its |
| popup menu, may register actions layer file like |
| <a href="../org-openide-actions/org/openide/actions/doc-files/api.html#adv-install" shape="rect"> |
| any regular actions</a> just into the folder <code>Loaders/folder/any/Actions</code>. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="ChangeableDataFilter">Added <code>ChangeableDataFilter</code> interface</a> |
| </h3> |
| <em>Jun 11 '04; API spec. version: 4.16; affected top-level classes: <a href="./org/openide/loaders/ChangeableDataFilter.html"><code>ChangeableDataFilter</code></a>; made by: phrebejk; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=44368"> |
| #44368</a></em> |
| <br> |
| |
| <p> |
| The class <code>FolderChildren</code> was able to filter the children |
| using <code>DataFilter</code>. But the data filter was constant for the |
| entire life of the <code>FolderChildren</code> instance. <code>ChangeableDataFilter</code> |
| class adds the ability to change the filtering strategy, where |
| the change is reflected immediatley in the folder children. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="issue-34574">Support for 24x24 icons</a> |
| </h3> |
| <em>May 18 '04; API spec. version: 4.15; affected top-level classes: <a href="./org/openide/awt/Toolbar.html"><code>Toolbar</code></a> <a href="./org/openide/awt/ToolbarPool.html"><code>ToolbarPool</code></a>; made by: mslama; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=34574"> |
| #34574</a></em> |
| <br> |
| |
| <code>Toolbar.getBasicHeight()</code> was added to replace <code>Toolbar.BASIC_HEIGHT</code>. |
| <code>ToolbarPool.getPreferredIconSize()</code> and <code>ToolbarPool.setPreferredIconSize(int)</code> |
| were added. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="issue-42091"><code>DataShadow</code> uses URL for storage</a> |
| </h3> |
| <em>May 12 '04; API spec. version: 4.14; made by: dkonecny; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=42091"> |
| #42091</a></em> |
| <br> |
| Two changes in DataShadow. The implementation was changed to |
| store link as URL instead of FileSystem + Path pair. DataShadow |
| declaration was extended and "originalFile" attribute can be |
| defined not only as stringvalue but also as urlvalue. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="issue-29466"><code>DataNode.getHtmlDisplayName</code> was implemented</a> |
| </h3> |
| <em>May 3 '04; API spec. version: 4.13; affected top-level classes: <a href="./org/openide/loaders/DataNode.html"><code>DataNode</code></a>; made by: tboudreau; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=29466"> |
| #29466</a></em> |
| <br> |
| |
| <code>DataNode</code> now implements <code>getHtmlDisplayName()</code> as follows: If the |
| underlying filesystem implements the new <code>FileSystem.HtmlStatus</code>, it will |
| call <code>FileSystem.HtmlStatus.annotateNameHtml()</code> and return the result. |
| This enables, for example, CVS annotations to be shown with a different |
| font color. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="SortMode.LAST_MODIFIED-SIZE">Two new folder sort modes</a> |
| </h3> |
| <em>Sep 9 '03; API spec. version: 4.10; affected top-level classes: <a href="./org/openide/loaders/DataFolder.html"><code>DataFolder</code></a>; made by: jglick; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=26667"> |
| #26667</a></em> |
| <br> |
| Two new folder sort modes, <code>LAST_MODIFIED</code> and |
| <code>SIZE</code>, were added. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="issue-33750">Tighter synchronization during copy/move/rename</a> |
| </h3> |
| <em>May 28 '03; API spec. version: 4.9; affected top-level classes: <a href="./org/openide/loaders/DataObject.html"><code>DataObject</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=33750"> |
| #33750</a></em> |
| <br> |
| In previous version of Loaders a thread can access |
| unfinished files copied/moved/createFromTemplated |
| by another Thread. This change prevent such accidental |
| access and provides more robust behaviour to writers |
| of own <code>DataObjects</code> and <code>DataLoaders</code>. |
| <p></p> |
| This change has been introduced to make the behaviour |
| safer and more predicatable. Its goal is not to introduce |
| new deadlocks, but everybody writing its own loaders has |
| to keep in mind that it is dangerous to perform a long |
| running operation in the handleCopy, handleMove, |
| handleRename, handleCreateFromTemplate methods. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="issue-33469">Calls to DataObject constructor restricted</a> |
| </h3> |
| <em>May 16 '03; API spec. version: 4.7; affected top-level classes: <a href="./org/openide/loaders/DataObject.html"><code>DataObject</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=33469"> |
| #33469</a></em> |
| <br> |
| In order to fix timing issues in <code>org.openide.loaders</code> package |
| the possibility to invoke <code>DataObject</code>'s constructor has been |
| restricted. |
| <p></p> |
| There is an <code>OperationListener</code> class in the org.openide.loaders |
| package that shall be notified about every created DataObject. It is easy |
| to be notified when the DataObject is being created, but the notification |
| shall be done when its constructor finishes otherwise magic race |
| conditions can happen, see for example |
| <a href="http://www.netbeans.org/issues/show_bug.cgi?id=20022" shape="rect">issue 20022</a>. |
| The previous solution was to wait 500ms after the start of DataObject's |
| constructor and notifying the creation than, but of course it means |
| that if the constructor takes longer time, we were in the same problem again. |
| <p></p> |
| Because DataObjects shall be created only by DataLoaders in method |
| <code>DataLoader.handleFindDataObject</code>, we can notify each data |
| object when the execution is returning from DataLoader.handleFindDataObject, |
| but in order for the system to work correctly we shall prevent creation |
| of DataObjects outside of this place. |
| <p></p> |
| DataObject constructor will throw an exception if invoked outside of |
| <code>DataLoader.handleFindDataObject</code> or <code>MultiFileLoader.createDataObject</code> |
| methods. This is incompatible change, but nobody should really be affected, |
| as creating data objects outside of DataLoader has no real |
| meaning. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="issue-32937">Separated out from the openide</a> |
| </h3> |
| <em>Apr 18 '03; API spec. version: 4.5; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=32937"> |
| #32937</a></em> |
| <br> |
| Classes of <code>org.openide.loaders</code> package were separated |
| out from the whole openide.jar into their own openide-loaders.jar. |
| |
| |
| <hr> |
| <p><span class="footnote">Built on September 14 2018. | Copyright © 2017-2018 Apache Software Foundation. All Rights Reserved.</span></p> |
| |
| |
| </body> |
| |
| </html> |