| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| |
| --> |
| <!DOCTYPE apichanges PUBLIC "-//NetBeans//DTD API changes list 1.0//EN" "../../nbbuild/javadoctools/apichanges.dtd"> |
| <apichanges> |
| <apidefs> |
| <apidef name="util">Utilities API</apidef> |
| <apidef name="xml">XML API</apidef> |
| <apidef name="actions">Actions API</apidef> |
| </apidefs> |
| <changes> |
| <change id="propertyURL"> |
| <api name="util"/> |
| <summary>Declaration of long-used URL image property</summary> |
| <version major="9" minor="24"/> |
| <date year="2021" month="1" day="15"/> |
| <author login="sdedic"/> |
| <compatibility addition="yes" binary="compatible" source="compatible" semantic="compatible"/> |
| <description> |
| The property <code>url</code> is documented in Javadoc <b>since 8.12</b> but the key string was not |
| added to the API. <a href="@TOP@/org/openide/util/ImageUtilities.html#PROPERTY_URL">It is now</a>, along with a |
| <a href="@TOP@/org/openide/util/ImageUtilities.html#findImageBaseURL-java.awt.Image-">convenience method</a>, which should be used in preference. |
| </description> |
| <class package="org.openide.util" name="ImageUtilities"/> |
| </change> |
| <change id="SVGLoader"> |
| <api name="util"/> |
| <summary>Support loading of SVG icons for scalable rendering on HiDPI displays.</summary> |
| <version major="9" minor="15"/> |
| <date year="2019" month="11" day="24"/> |
| <author login="ebakke"/> |
| <compatibility addition="yes" binary="compatible" source="compatible" semantic="compatible"/> |
| <description> |
| <p> |
| As a part of the effort to make NetBeans look better on HiDPI displays, the |
| ImageUtilities class has now been completely updated to support scalable implementations |
| of the java.awt.Icon interface, and to support loading of icons and images from SVG |
| files. If an SVG file resource exists with the same base name as an existing bitmap |
| icon, the SVG file will be loaded instead (e.g. "icon.svg" will be loaded instead of |
| "icon.png"). SVG file resources can also be loaded explicitly. |
| </p> |
| <p> |
| To avoid bloating the core platform modules with large JAR libraries, the actual loading |
| and parsing of SVG files is implemented in a separate, optional module, which is lazily |
| loaded the first time that an SVG file is encountered for loading. A new interface |
| SVGLoader has been added to serve as an SPI for said module to implement. Furthermore, |
| the CachedHiDPIIcon helper class has been made public to assist in the implementation of |
| this and other scalable Icon implementations. |
| </p> |
| </description> |
| <issue number="NETBEANS-2604"/> |
| </change> |
| <change id="VectorIcon"> |
| <api name="util"/> |
| <summary>Added abstract class VectorIcon to support creation of custom-painted HiDPI icons.</summary> |
| <version major="9" minor="12"/> |
| <date year="2018" month="9" day="29"/> |
| <author login="ebakke"/> |
| <compatibility addition="yes" binary="compatible" source="compatible" semantic="compatible"/> |
| <description> |
| <p> |
| It is now increasingly common for NetBeans to run on Windows, Linux, or MacOS machines with |
| so-called "HiDPI" screens, aka. "retina" screens in the Apple world. These screens have about |
| twice the physical pixel density of traditional screens, making it necessary to scale GUI |
| graphics up by some amount, e.g. 150% or 200% (depending on OS and OS-level user settings), in |
| order to remain readable. Since Java 9, this scaling is done automatically by AWT by means of a |
| scaling default transform in each Component's Graphics2D instances. This makes text sharp on |
| HiDPI screens, but leaves bitmap icons blurry. |
| </p> |
| <p> |
| This change introduces a new abstract class VectorIcon, which can be extended to create |
| custom-painted Icon instances that will look sharp on HiDPI screens, regardless of scaling level. |
| See VectorIcon's Javadoc for a discussion of appropriate use cases. |
| </p> |
| </description> |
| <class package="org.openide.util" name="VectorIcon"/> |
| <issue number="NETBEANS-1238"/> |
| </change> |
| <change id="DeprecateBooleanStateAction"> |
| <api name="util"/> |
| <summary><code>BooleanStateAction</code> deprecated in favour of <code>Actions</code> API and <code>@ActionState</code> annotation.</summary> |
| <version major="9" minor="11"/> |
| <date day="1" month="8" year="2018"/> |
| <author login="sdedic"/> |
| <compatibility deprecation="yes"/> |
| <description> |
| <p> |
| The <a href="@TOP@/org/openide/util/actions/BooleanStateAction.html">BooleanStateAction</a> base class was deprecated, as |
| there's a programatic API in <a href="@org-openide-awt@/org/openide/awt/Actions.html">Actions</a> |
| and a declarative <a href="@org-openide-awt@/org/openide/awt/ActionState.html">@ActionState</a> annotation which fully supersede the deprecated class. |
| </p> |
| </description> |
| <class package="org.openide.util.actions" name="BooleanStateAction"/> |
| </change> |
| <change id="GetAuthenticationPassword"> |
| <api name="util"/> |
| <summary>API <code>NetworkSettings.getAuthenticationPassword</code> added</summary> |
| <version major="9" minor="8"/> |
| <date day="11" month="11" year="2016"/> |
| <author login="tstupka"/> |
| <compatibility addition="yes"/> |
| <description> |
| <p> |
| The SPI <a href="@TOP@/org/openide/util/NetworkSettings.ProxyCredentialsProvider.html"> |
| NetworkSettings.ProxyCredentialsProvider</a> allows NetBeans Platform |
| users to provide proxy and network credentials, but the according API should also provide |
| the password, not only the username. |
| </p> |
| </description> |
| <class package="org.openide.util" name="NetworkSettings"/> |
| <issue number="268803"/> |
| </change> |
| <change id="server.is.free"> |
| <api name="util"/> |
| <summary>Desktop independent utilities extracted</summary> |
| <version major="9" minor="0"/> |
| <date day="20" month="3" year="2014"/> |
| <author login="sdedic"/> |
| <compatibility modification="yes" addition="yes"> |
| <p> |
| Runtime compatibility remains, compile time compatibility is |
| mostly preserved too. It is however recommended to upgrade |
| dependencies of client modules. Try running |
| <code>ant fix-dependencies</code> in your Ant module. |
| </p> |
| </compatibility> |
| <description> |
| <p> |
| The following classes were spinned of into |
| <a href="@org-openide-util@/overview-summary.html">org.openide.util.base module</a>: |
| </p> |
| <ul> |
| <li><a href="@org-openide-util@/org/openide/util/Cancellable.html">Cancellable</a></li> |
| <li><a href="@org-openide-util@/org/openide/util/ChangeSupport.html">ChangeSupport</a></li> |
| <li><a href="@org-openide-util@/org/openide/util/CharSequences.html">CharSequences</a></li> |
| <li><a href="@org-openide-util@/org/openide/util/Enumerations.html">Enumerations</a></li> |
| <li><a href="@org-openide-util@/org/openide/util/Exceptions.html">Exceptions</a></li> |
| <li><a href="@org-openide-util@/org/openide/util/MapFormat.html">MapFormat</a></li> |
| <li><a href="@org-openide-util@/org/openide/util/Mutex.html">Mutex</a></li> |
| <li><a href="@org-openide-util@/org/openide/util/MutexException.html">MutexException</a></li> |
| <li><a href="@org-openide-util@/org/openide/util/NbBundle.html">NbBundle</a></li> |
| <li><a href="@org-openide-util@/org/openide/util/NbCollections.html">NbCollections</a></li> |
| <li><a href="@org-openide-util@/org/openide/util/NotImplementedException.html">NotImplementedExcepion</a></li> |
| <li><a href="@org-openide-util@/org/openide/util/Pair.html">Pair</a></li> |
| <li><a href="@org-openide-util@/org/openide/util/Parameters.html">Parameters</a></li> |
| <li><a href="@org-openide-util@/org/openide/util/RequestProcessor.html">RequestProcessor</a></li> |
| <li><a href="@org-openide-util@/org/openide/util/Task.html">Task</a></li> |
| <li><a href="@org-openide-util@/org/openide/util/TaskListener.html">TaskListener</a></li> |
| <!--<li><a href="@org-openide-util@/org/openide/util/TimedSoftReference.html">TimedSoftReference</a></li>--> |
| <li><a href="@org-openide-util@/org/openide/util/TopologicalSortException.html">TopologicalSortException</a></li> |
| <li><a href="@org-openide-util@/org/openide/util/Union2.html">Union2</a></li> |
| <li><a href="@org-openide-util@/org/openide/util/WeakListeners.html">WeakListeners</a></li> |
| <li><a href="@org-openide-util@/org/openide/util/WeakSet.html">WeakSet</a></li> |
| </ul> |
| <p> |
| The class <a href="@TOP@/org/openide/util/Utilities.html">Utilities</a> was also split and the |
| client desktop indepenent parts landed in <a href="@org-openide-util@/org/openide/util/BaseUtilities.html">BaseUtilities</a>. |
| Although all the constants and methods are still available through Utilities class, it is advised to change the dependencies |
| and reference them through BaseUtilities. |
| </p> |
| </description> |
| <issue number="243100"/> |
| </change> |
| <change id="disabled-action-beep"> |
| <api name="util"/> |
| <summary>Platform dependent sound when invoking a disabled action.</summary> |
| <version major="8" minor="39"/> |
| <date year="2014" month="7" day="9"/> |
| <author login="saubrecht"/> |
| <compatibility addition="yes" binary="compatible" source="compatible"/> |
| <description> |
| <p> |
| Only some platforms provide an audible notification when user |
| tries to invoke a disabled action. So instead of Toolkit.beep() |
| which always plays a sound a new method |
| <code>Utilities.disabledActionSound()</code> shoud be used instead. |
| </p> |
| </description> |
| <class package="org.openide.util" name="Utilities"/> |
| <issue number="203979"/> |
| </change> |
| <change id="try-lock"> |
| <api name="util"/> |
| <summary>Try to lock a Mutex</summary> |
| <version major="8" minor="37"/> |
| <date year="2014" month="1" day="20"/> |
| <author login="jtulach"/> |
| <compatibility addition="yes" binary="compatible" source="compatible"/> |
| <description> |
| <p> |
| Two new methods, <code>tryReadAccess</code> and <code>tryWriteAccess</code>, |
| added to <a href="@org-openide-util@/org/openide/util/Mutex.Privileged.html">Mutex.Privileged</a> |
| to allow better control when waiting for a lock. |
| </p> |
| </description> |
| <class package="org.openide.util" name="Mutex" link="no"/> |
| <issue number="240442"/> |
| </change> |
| <change id="darklaf"> |
| <api name="util"/> |
| <summary>Added an option to load different images and icons when using a dark look and feel.</summary> |
| <version major="8" minor="35"/> |
| <date year="2013" month="12" day="6"/> |
| <author login="saubrecht"/> |
| <compatibility addition="yes" binary="compatible" source="compatible"/> |
| <description> |
| <p> |
| When the IDE is running under a dark look and feel (<code>UIManager.getBoolean("nb.dark.theme")</code>) |
| then <code>ImageUtilities</code> will try to load an image or on icon with a "_dark" suffix. |
| For example "org/netbeans/modulename/toolbaricon<b>_dark</b>.png" or |
| "org/netbeans/modulename/imagewithoutextension<b>_dark</b>". If such |
| resource exists it will be used instead of the default one. |
| </p> |
| </description> |
| <class package="org.openide.util" name="ImageUtilities"/> |
| <issue number="233959"/> |
| </change> |
| <change id="pair"> |
| <api name="util"/> |
| <summary>Added a type safe Pair of 2 elements</summary> |
| <version major="8" minor="32"/> |
| <date year="2013" month="5" day="1"/> |
| <author login="tzezula"/> |
| <compatibility addition="yes" binary="compatible" source="compatible"/> |
| <description> |
| <p> |
| Added a type safe Pair of 2 elements. |
| </p> |
| </description> |
| <class package="org.openide.util" name="Pair" link="no"/> |
| <issue number="228994"/> |
| </change> |
| <change id="automatic-uqe"> |
| <api name="util"/> |
| <summary>Automatic support for UserQuestionException</summary> |
| <version major="8" minor="29"/> |
| <date year="2012" month="11" day="14"/> |
| <author login="jtulach"/> |
| <compatibility addition="yes" binary="compatible" source="compatible"/> |
| <description> |
| <p> |
| The default NetBeans Platform infrastructure knows how to |
| display dialog when a <code>UserQuestionException</code> is |
| reported. |
| </p> |
| </description> |
| <class package="org.openide.util" name="Exceptions" link="no"/> |
| <class package="org.openide.util" name="UserQuestionException"/> |
| <issue number="57748"/> |
| </change> |
| <change id="File.URI"> |
| <api name="util"/> |
| <summary>UNC-safe File / URI interconversion</summary> |
| <version major="8" minor="25"/> |
| <date year="2012" month="6" day="11"/> |
| <author login="jglick"/> |
| <compatibility addition="yes"> |
| <p> |
| Use the Jackpot-format upgrade hint. |
| </p> |
| </compatibility> |
| <description> |
| <p> |
| <code>Utilities</code> gets new methods <code>toURI(File)</code> |
| and <code>toFile(URI)</code> which offer the UNC safety of NIO.2 |
| even on JDK 6. |
| </p> |
| </description> |
| <class package="org.openide.util" name="Utilities"/> |
| <issue number="213562"/> |
| </change> |
| <change id="exit-code"> |
| <api name="util"/> |
| <summary>Exit with status code</summary> |
| <version major="8" minor="23"/> |
| <date year="2012" month="3" day="8"/> |
| <author login="jtulach"/> |
| <compatibility addition="yes" binary="compatible" source="compatible"/> |
| <description> |
| <p> |
| <a href="@TOP@/org/openide/LifecycleManager.html">LifecycleManager</a> |
| has new <code>exit</code> method allowing callers to specify |
| the exit code. |
| </p> |
| </description> |
| <class package="org.openide" name="LifecycleManager"/> |
| <issue number="209018"/> |
| </change> |
| <change id="Messages.fields"> |
| <api name="util"/> |
| <summary><code>@NbBundle.Messages</code> available on fields</summary> |
| <version major="8" minor="22"/> |
| <date year="2012" month="1" day="3"/> |
| <author login="jglick"/> |
| <compatibility addition="yes"> |
| <p> |
| Existing annotations made on classes but only used from a field |
| within that class will continue to work, but for clarity should |
| be moved onto the field. |
| </p> |
| </compatibility> |
| <description> |
| <p> |
| <code>@NbBundle.Messages</code> may now be used on fields, useful |
| in case the field initializer involves some complex construction |
| requiring a localized message. (Merely storing a localized message |
| in a String constant is poor practice; inline the field instead.) |
| </p> |
| </description> |
| <class package="org.openide.util" name="NbBundle" link="no"/> |
| <issue number="206543"/> |
| </change> |
| <change id="HelpCtx.display"> |
| <api name="util"/> |
| <summary><code>HelpCtx.display</code> added</summary> |
| <version major="8" minor="21"/> |
| <date year="2011" month="12" day="13"/> |
| <author login="jglick"/> |
| <compatibility binary="compatible"> |
| <p> |
| Modules calling <code>org.netbeans.api.javahelp.Help.showHelp</code> |
| via reflection should use this new API instead. |
| </p> |
| </compatibility> |
| <description> |
| <p> |
| To permit modules to display help pages where available without |
| a direct dependency on the JavaHelp API, <code>HelpCtx.display()</code> |
| was added together with a matching SPI. |
| </p> |
| </description> |
| <class package="org.openide.util" name="HelpCtx"/> |
| <issue number="205992"/> |
| </change> |
| <change id="rp.cancel"> |
| <api name="util"/> |
| <summary>RequestProcessor tweaks</summary> |
| <version major="8" minor="19"/> |
| <date day="12" month="10" year="2011"/> |
| <author login="jtulach"/> |
| <compatibility binary="compatible" semantic="incompatible"> |
| The changes are supposed to be as compatible as possible. The only |
| desirable change is that calling <code>cancel(); cancel()</code> on |
| the same task returns <code>false</code> on the second call now. |
| In spite of that the changes caused bunch of regressions and it took |
| a week to stabilize them. That is why they deserve a warning note |
| in compatibility section. |
| </compatibility> |
| <description> |
| <p> |
| In order to deal with bug #202354 there were some minor tweaks |
| inside <code>RequestProcessor</code> implementation. |
| </p> |
| </description> |
| <class package="org.openide.util" name="RequestProcessor" link="no"/> |
| <issue number="202354"/> |
| </change> |
| <change id="ProxyCredentialsProvider"> |
| <api name="util"/> |
| <summary>SPI <code>NetworkSettings.ProxyCredentialsProvider</code> added</summary> |
| <version major="8" minor="17"/> |
| <date day="20" month="9" year="2011"/> |
| <author login="jrechtacek"/> |
| <compatibility addition="yes"/> |
| <description> |
| <p> |
| Most of the proxy and network credentials are currently read |
| from a default NetBeans storage. This may not be ideal |
| for other Platform aplications storing the settings in a different |
| way or computing them dynamically. |
| A SPI <a href="@TOP@/org/openide/util/NetworkSettings.ProxyCredentialsProvider.html"> |
| NetworkSettings.ProxyCredentialsProvider</a> allows NetBeans Platform |
| users to provide proxy and network credentials separately. |
| See <a href="http://wiki.netbeans.org/Authenticator">http://wiki.netbeans.org/Authenticator</a> |
| </p> |
| </description> |
| <class package="org.openide.util" name="NetworkSettings"/> |
| <issue number="201662"/> |
| </change> |
| <change id="SuppressAuthentication"> |
| <api name="util"/> |
| <summary><code>NetworkSettings.suppressAuthenticationDialog</code> added</summary> |
| <version major="8" minor="17"/> |
| <date day="20" month="9" year="2011"/> |
| <author login="jrechtacek"/> |
| <compatibility addition="yes"/> |
| <description> |
| <p> |
| Some plugins needs a way to suppress <a href="@JDK@/java/net/Authenticator.html"><code>java.net.Authenticator</code></a> without asking |
| user a question about the credentials. |
| Invoke <a href="@TOP@/org/openide/util/NetworkSettings.html#suppressAuthenticationDialog-java.util.concurrent.Callable-"> |
| suppressAuthenticationDialog</a> with a block of code where authentication dialog will be suppressed. |
| See <a href="http://wiki.netbeans.org/Authenticator">http://wiki.netbeans.org/Authenticator</a> |
| </p> |
| </description> |
| <class package="org.openide.util" name="NetworkSettings"/> |
| <issue number="201662"/> |
| </change> |
| <change id="NetworkSettings"> |
| <api name="util"/> |
| <summary><code>NetworkSettings</code> added</summary> |
| <version major="8" minor="13"/> |
| <date day="1" month="2" year="2011"/> |
| <author login="jrechtacek"/> |
| <compatibility addition="yes"/> |
| <description> |
| <p> |
| Added new useful methods for getting Network Proxy for specified URI. |
| </p> |
| </description> |
| <class package="org.openide.util" name="NetworkSettings"/> |
| <issue number="194530"/> |
| </change> |
| <change id="ImageUtilities.URL"> |
| <api name="util"/> |
| <summary>ImageUtilities support "url" attribute</summary> |
| <version major="8" minor="12"/> |
| <date day="10" month="1" year="2011"/> |
| <author login="jtulach"/> |
| <compatibility addition="yes"/> |
| <description> |
| <p> |
| Images loaded by <a href="@TOP@/org/openide/util/ImageUtilities.html#loadImage-java.lang.String-boolean-"> |
| ImageUtilities.loadImage</a> now |
| respond to <code>getProperty("url", null)</code> calls. |
| </p> |
| </description> |
| <class package="org.openide.util" name="ImageUtilities"/> |
| <issue number="193944"/> |
| </change> |
| <change id="WeakSet.putIfAbsent"> |
| <api name="util"/> |
| <summary>New implementation of WeakSet with two new methods <code>putIfAbsent</code> and <code>resize</code> |
| </summary> |
| <version major="8" minor="11"/> |
| <date day="22" month="12" year="2010"/> |
| <author login="vv159170"/> |
| <compatibility addition="yes"/> |
| <description> |
| <p> |
| New method putIfAbsent gives access to key already stored in Set. Method resize allows to change capacity of internal hash map. |
| </p> |
| </description> |
| <class package="org.openide.util" name="WeakSet" link="no"/> |
| <issue number="192759"/> |
| </change> |
| <change id="NbBundle.Messages"> |
| <api name="util"/> |
| <summary>Added <code>@NbBundle.Messages</code></summary> |
| <version major="8" minor="10"/> |
| <date day="8" month="12" year="2010"/> |
| <author login="jglick"/> |
| <compatibility addition="yes"/> |
| <description> |
| <p> |
| A new annotation makes it easier to produce localizable strings. |
| </p> |
| </description> |
| <class package="org.openide.util" name="NbBundle" link="no"/> |
| <issue number="192750"/> |
| </change> |
| <change id="Exceptions.attachSeverity"> |
| <api name="util"/> |
| <summary>Supress logging of not important exceptions</summary> |
| <version major="8" minor="9"/> |
| <date day="8" month="9" year="2010"/> |
| <author login="jtulach"/> |
| <compatibility addition="yes"/> |
| <description> |
| <p> |
| New method <code>Exceptions.attachSeverity</code> allows |
| everyone to thrown an exception, which later will not be |
| logged. |
| </p> |
| </description> |
| <class package="org.openide.util" name="Exceptions" link="no"/> |
| <issue number="190079"/> |
| </change> |
| <change id="RequestProcessorForClass"> |
| <api name="util"/> |
| <summary>Simplified constructor for RequestProcessor</summary> |
| <version major="8" minor="6"/> |
| <date day="13" month="4" year="2010"/> |
| <author login="jtulach"/> |
| <compatibility addition="yes"/> |
| <description> |
| <p> |
| Simpler constructor for RequestProcessor. |
| </p> |
| </description> |
| <class package="org.openide.util" name="RequestProcessor" link="no"/> |
| <issue number="180458"/> |
| </change> |
| <change id="CharSequences"> |
| <api name="util"/> |
| <summary>Added <code>CharSequences</code></summary> |
| <version major="8" minor="3"/> |
| <date day="2" month="4" year="2010"/> |
| <author login="vv159170"/> |
| <compatibility addition="yes"/> |
| <description> |
| <p> |
| <code>CharSequences.create</code> can now be used |
| to create memory-efficient implementations of <code>CharSequence</code> for ASCII strings. |
| </p> |
| </description> |
| <class package="org.openide.util" name="CharSequences" link="no"/> |
| <issue number="183162"/> |
| </change> |
| <change id="ActionInvoker-ActionPresenterProvider"> |
| <api name="actions"/> |
| <summary>Action SPI interfaces added</summary> |
| <version major="8" minor="1"/> |
| <date day="21" month="1" year="2010"/> |
| <author login="jglick"/> |
| <compatibility addition="yes"/> |
| <description> |
| <p> |
| Added some internal SPI interfaces. |
| </p> |
| </description> |
| <class package="org.openide.util.actions" name="ActionInvoker"/> |
| <class package="org.openide.util.actions" name="ActionPresenterProvider"/> |
| <issue number="179289"/> |
| </change> |
| <change id="NbPreferences.Provider"> |
| <api name="util"/> |
| <summary><code>NbPreferences.Provider</code> added</summary> |
| <version major="8" minor="1"/> |
| <date day="21" month="1" year="2010"/> |
| <author login="jglick"/> |
| <compatibility addition="yes"/> |
| <description> |
| <p> |
| Added an internal SPI interface. |
| </p> |
| </description> |
| <class package="org.openide.util" name="NbPreferences" link="no"/> |
| <issue number="179289"/> |
| </change> |
| <change id="lookup.is.free"> |
| <api name="util"/> |
| <summary>Lookup API extracted</summary> |
| <version major="8" minor="0"/> |
| <date day="20" month="12" year="2009"/> |
| <author login="jtulach"/> |
| <compatibility modification="yes"> |
| <p> |
| Runtime compatibility remains, compile time compatibility is |
| mostly preserved too. It is however recommended to upgrade |
| dependencies of your modules. Try running |
| <code>ant fix-dependencies</code> in your Ant module. |
| </p> |
| </compatibility> |
| <description> |
| <p> |
| <a href="@org-openide-util-lookup@/org/openide/util/Lookup.html">Lookup</a> |
| and its associated interfaces are now available as a |
| <a href="@org-openide-util-lookup@/overview-summary.html">separate module</a>. |
| </p> |
| </description> |
| <issue number="170056"/> |
| </change> |
| <change id="URLStreamHandlerRegistration"> |
| <api name="util"/> |
| <summary>Added <code>@URLStreamHandlerRegistration</code></summary> |
| <version major="7" minor="31"/> |
| <date day="30" month="10" year="2009"/> |
| <author login="jglick"/> |
| <compatibility addition="yes"> |
| <p> |
| Modules registering <code>URLStreamHandlerFactory</code>s into |
| global lookup will still work but are advised to switch to this |
| annotation, which is both easier to use and more efficient. |
| </p> |
| </compatibility> |
| <description> |
| <p> |
| Introduced an annotation to register URL protocols. |
| </p> |
| </description> |
| <class package="org.openide.util" name="URLStreamHandlerRegistration" link="no"/> |
| <issue number="20838"/> |
| </change> |
| <change id="ImageUtilities.createDisabled"> |
| <api name="util"/> |
| <summary><code>ImageUtilities.createDisabledIcon</code> and <code>ImageUtilities.createDisabledImage</code> added.</summary> |
| <version major="7" minor="28"/> |
| <date day="10" month="9" year="2009"/> |
| <author login="t_h"/> |
| <compatibility addition="yes"/> |
| <description> |
| <p> |
| <code>ImageUtilities.createDisabledIcon</code> now can be used |
| to create low color saturation icon for disabled buttons. Also |
| <code>ImageUtilities.createDisabledImage</code> was added. |
| </p> |
| </description> |
| <class package="org.openide.util" name="ImageUtilities"/> |
| <issue number="171400"/> |
| </change> |
| <change id="NbBundle.varargs"> |
| <api name="util"/> |
| <summary><code>NbBundle.getMessage</code> can take arbitrarily many format arguments</summary> |
| <version major="7" minor="27"/> |
| <date day="5" month="8" year="2009"/> |
| <author login="jglick"/> |
| <compatibility addition="yes"/> |
| <description> |
| <p> |
| <code>NbBundle.getMessage</code> now has a varargs overload that |
| permits you to specify four or more format arguments without |
| explicitly constructing an array. |
| </p> |
| </description> |
| <class package="org.openide.util" name="NbBundle" link="no"/> |
| </change> |
| <change id="EditableProperties"> |
| <api name="util"/> |
| <summary>Copied API from <code>project.ant</code> for <code>EditableProperties</code>.</summary> |
| <version major="7" minor="26"/> |
| <date day="29" month="7" year="2009"/> |
| <author login="jglick"/> |
| <compatibility addition="yes"/> |
| <description> |
| <p> |
| <code>EditableProperties</code> now available in Utilities API |
| so it can be used more broadly. |
| </p> |
| </description> |
| <class package="org.openide.util" name="EditableProperties" link="no"/> |
| <issue number="66577"/> |
| </change> |
| <change id="LifecycleManager.markForRestart"> |
| <api name="util"/> |
| <summary>Added way to request that the platform restart.</summary> |
| <version major="7" minor="25"/> |
| <date day="14" month="7" year="2009"/> |
| <author login="jglick"/> |
| <compatibility addition="yes"/> |
| <description> |
| <p> |
| Can now use <code>LifecycleManager.markForRestart</code> to cause |
| the application to restart after exiting. Formerly needed to |
| create special files in the userdir or use similar tricks. |
| </p> |
| </description> |
| <class package="org.openide" name="LifecycleManager"/> |
| <issue number="168257"/> |
| </change> |
| <change id="enableStackTraces"> |
| <api name="util"/> |
| <summary>Added constructor <code>RequestProcessor(String name, int throughput, boolean interruptThread, boolean enableStackTraces)</code></summary> |
| <version major="7" minor="24"/> |
| <date day="8" month="6" year="2009"/> |
| <author login="rmichalsky"/> |
| <compatibility addition="yes"/> |
| <description> |
| <p> |
| Newly added constructor allows to disable (slow) filling stack traces before posting each task. |
| </p> |
| </description> |
| <class package="org.openide.util" name="RequestProcessor" link="no"/> |
| <issue number="165862"/> |
| </change> |
| <change id="ImageUtilities.loadImageIcon"> |
| <api name="util"/> |
| <summary>Added <code>loadImageIcon(String resource, boolean localized)</code></summary> |
| <version major="7" minor="22"/> |
| <date day="26" month="1" year="2009"/> |
| <author login="t_h"/> |
| <compatibility addition="yes"/> |
| <description> |
| <p> |
| Convenient method for loading icons. |
| </p> |
| </description> |
| <class package="org.openide.util" name="ImageUtilities"/> |
| <issue number="157254"/> |
| </change> |
| <change id="Utilities.keyToString"> |
| <api name="util"/> |
| <summary>Added <code>keyToString(KeyStroke stroke, boolean portable)</code></summary> |
| <version major="7" minor="21"/> |
| <date day="8" month="1" year="2009"/> |
| <author login="msauer"/> |
| <compatibility addition="yes"/> |
| <description> |
| <p> |
| <code>keyToString(KeyStroke stroke, boolean portable)</code> |
| provides cross-platform compitable keystroke textual representation |
| instead of hardcoding Ctrl, Meta or Alt key. |
| </p> |
| </description> |
| <class package="org.openide.util" name="Utilities"/> |
| <issue number="110492"/> |
| </change> |
| <change id="Utilities.OS_OPENBSD"> |
| <api name="util"/> |
| <summary>Added <code>OS_OPENBSD</code> and <code>OS_UNIX_OTHER</code> fields</summary> |
| <version major="7" minor="18"/> |
| <date day="16" month="9" year="2008"/> |
| <author login="jskrivanek"/> |
| <compatibility addition="yes"/> |
| <description> |
| <p> |
| Added a new <code>Utilities.OS_OPENBSD</code> and <code>OS_UNIX_OTHER</code> |
| fields. Deprecated <code>OS_WINDOWS_MASK</code> and <code>OS_UNIX_MASK</code>. |
| </p> |
| </description> |
| <class package="org.openide.util" name="Utilities"/> |
| <issue number="145462"/> |
| </change> |
| <change id="Utilities.OS_WINVISTA"> |
| <api name="util"/> |
| <summary>Added <code>OS_WINVISTA</code> field</summary> |
| <version major="7" minor="17"/> |
| <date day="8" month="8" year="2008"/> |
| <author login="jskrivanek"/> |
| <compatibility addition="yes"/> |
| <description> |
| <p> |
| Added a new <code>Utilities.OS_WINVISTA</code> field to be able |
| to recognize Windows Vista operating system. |
| </p> |
| </description> |
| <class package="org.openide.util" name="Utilities"/> |
| <issue number="142629"/> |
| </change> |
| <change id="XMLUtil.validate"> |
| <api name="xml"/> |
| <summary>Added <code>XMLUtil.validate</code></summary> |
| <version major="7" minor="17"/> |
| <date day="11" month="7" year="2008"/> |
| <author login="jglick"/> |
| <compatibility addition="yes"/> |
| <description> |
| <p> |
| Added a new method to validate XML documents against schemas. |
| </p> |
| </description> |
| <class package="org.openide.xml" name="XMLUtil" link="no"/> |
| <issue number="42686"/> |
| </change> |
| <change id="RequestProcessor.Executor"> |
| <api name="util"/> |
| <summary>RequestProcessor implements Executor interface</summary> |
| <version major="7" minor="16"/> |
| <date day="27" month="6" year="2008"/> |
| <author login="jtulach"/> |
| <compatibility addition="yes"/> |
| <description> |
| <p> |
| In order to align <code>RequestProcessor</code> closer to standard |
| Java 5 concurrency utilities, the class now implements |
| <a href="@JDK@/java/util/concurrent/Executor.html">Executor</a> |
| interfaces and its <code>execute(Runnable)</code> method. |
| </p> |
| </description> |
| <class package="org.openide.util" name="RequestProcessor" link="no"/> |
| <issue number="134297"/> |
| </change> |
| <change id="Utilities.toolTips"> |
| <api name="util"/> |
| <summary>ImageUtilities class (with additional methods) was created as |
| replacement for "image methods" in Utilities. </summary> |
| <version major="7" minor="15"/> |
| <date day="6" month="6" year="2008"/> |
| <author login="t_h"/> |
| <compatibility addition="yes"/> |
| <description> |
| <p> |
| Image methods were separated to <a href="@TOP@/org/openide/util/ImageUtilities.html">ImageUtilities</a> |
| (renamed IconManager) as replacement for methods in Utilities. |
| There are some additional methods for image tool tips manipulation. |
| </p> |
| <p> |
| New methods for tool tips manipulation: |
| <code>Image assignToolTipToImage(Image image, String text)</code>; |
| <code>String getImageToolTip(Image image)</code>; |
| <code>Image addToolTipToImage(Image image, String text)</code>; |
| </p> |
| <p> |
| New method for conversion from Image to Icon: |
| <code>Icon image2Icon(Image image)</code>; |
| </p> |
| <p> |
| "Moved" methods from <a href="@TOP@/org/openide/util/Utilities.html">Utilities</a>: |
| <code>Image icon2Image(Icon icon)</code>; |
| <code>Image loadImage(String resourceID)</code>; |
| <code>Image loadImage(String resource, boolean localized)</code>; |
| <code>Image mergeImages(Image image1, Image image2, int x, int y)</code>; |
| </p> |
| </description> |
| <class package="org.openide.util" name="Utilities"/> |
| <class package="org.openide.util" name="ImageUtilities"/> |
| <issue number="123469"/> |
| </change> |
| <change id="Mutex.Wrapper"> |
| <api name="util"/> |
| <summary>Mutex made pluggable</summary> |
| <version major="7" minor="12"/> |
| <date day="3" month="1" year="2008"/> |
| <author login="jtulach"/> |
| <compatibility addition="yes"/> |
| <description> |
| <p> |
| Added new constructor |
| <a href="@org-openide-util@/org/openide/util/Mutex.html">Mutex(Privileged, Executor)</a> |
| that allows creators of the mutex to intercept and wrap all actions running |
| inside the mutex with custom code. |
| </p> |
| </description> |
| <class package="org.openide.util" name="Mutex" link="no"/> |
| <issue number="123832"/> |
| </change> |
| <change id="Utilities.isLargeFrameIcons"> |
| <api name="util"/> |
| <summary>Obsolete method <code>Utilities.isLargeFrameIcons</code> deprecated.</summary> |
| <version major="7" minor="10"/> |
| <date day="23" month="10" year="2007"/> |
| <author login="mslama"/> |
| <compatibility addition="no" deprecation="yes"/> |
| <description> |
| <p> |
| Javadoc says: Test whether the operating system supports icons on frames (windows). |
| But window system used this method to decide if small 16x16 or bigger 32x32 icon |
| should be used for frame (main window). So usage and Javadoc is inconsistent. |
| All OS support small icon in frame. From JDK 6 it is possible to set multiple size |
| icons for frame so OS WM selects appropriate size. |
| I removed useless usage of this method from window system code and this method is |
| not used elsewhere. |
| </p> |
| </description> |
| <class package="org.openide.util" name="Utilities"/> |
| <issue number="119069"/> |
| </change> |
| |
| <change id="ChangeSupport"> |
| <api name="util"/> |
| <summary>Added <code>ChangeSupport</code></summary> |
| <version major="7" minor="8"/> |
| <date day="26" month="3" year="2007"/> |
| <author login="abadea"/> |
| <compatibility addition="yes"/> |
| <description> |
| <p> |
| Added a <code>ChangeSupport</code> class to simplify |
| the management of <code>ChangeListener</code>s and the |
| firing of <code>ChangeEvent</code>s. |
| </p> |
| </description> |
| <class package="org.openide.util" name="ChangeSupport" link="no"/> |
| <issue number="95885"/> |
| </change> |
| |
| <change id="Utilities.isMac"> |
| <api name="util"/> |
| <summary>Added <code>Utilities.isMac()</code> method</summary> |
| <version major="7" minor="7"/> |
| <date day="11" month="1" year="2007"/> |
| <author login="rkubacki"/> |
| <compatibility addition="yes"/> |
| <description> |
| <p> |
| Added a <code>Utilities.isMac()</code> method for checking |
| if current platform is Mac. |
| </p> |
| </description> |
| <class package="org.openide.util" name="Utilities"/> |
| <issue number="61044"/> |
| </change> |
| |
| <change id="Parameters"> |
| <api name="util"/> |
| <summary>Added <code>Parameters</code></summary> |
| <version major="7" minor="6"/> |
| <date day="8" month="12" year="2006"/> |
| <author login="abadea"/> |
| <compatibility addition="yes"/> |
| <description> |
| <p> |
| Added a <code>Parameters</code> class for checking the |
| values of method parameters. |
| </p> |
| </description> |
| <class package="org.openide.util" name="Parameters" link="no"/> |
| <issue number="89768"/> |
| </change> |
| |
| <change id="NbCollections.iterable"> |
| <api name="util"/> |
| <summary>Added <code>NbCollections.iterable(...)</code> methods</summary> |
| <version major="7" minor="5"/> |
| <date day="13" month="11" year="2006"/> |
| <author login="jglick"/> |
| <compatibility addition="yes"/> |
| <description> |
| <p> |
| Added two new methods to make enhanced for-loops easier to use |
| with legacy APIs returning <code>Iterator</code> or <code>Enumeration</code>. |
| </p> |
| </description> |
| <class package="org.openide.util" name="NbCollections" link="no"/> |
| <issue number="88606"/> |
| </change> |
| |
| <change id="nbpreferences"> |
| <api name="util"/> |
| <summary>Added <code>NbPreferences.forModule(Class cls)</code> and |
| <code>NbPreferences.root()</code> methods as static factory methods |
| for getting preference node from NetBeans preference tree.</summary> |
| <version major="7" minor="4"/> |
| <date day="10" month="11" year="2006"/> |
| <author login="rmatous"/> |
| <compatibility addition="yes" deprecation="no"/> |
| <description> |
| <p> |
| NetBeans preference tree is provided by NetBeans implementation of preferences |
| which uses userdir as a storage. Both newly added methods return |
| preferences node from NetBeans preference tree. |
| Method <code>NbPreferences.root()</code> returns root preference |
| node. |
| Method <code>NbPreferences.forModule(Class cls)</code> returns |
| preference node whose |
| path depends whether class provided as a parameter |
| was loaded as a part of any module or not. If so, then absolute path corresponds to slashified |
| code name base of module. If not, then absolute path corresponds to class's package. |
| See document |
| <a href="@org-openide-util@/org/openide/util/doc-files/preferences.html">Preferences in NetBeans</a> |
| to learn more about preferences in NetBeans. |
| </p> |
| </description> |
| <class package="org.openide.util" name="NbPreferences" link="no"/> |
| <issue number="73474"/> |
| </change> |
| |
| <change id="icon2image"> |
| <api name="util"/> |
| <summary>Added <code>Utilities.icon2Image</code> method to perform conversion from <code>Icon</code> to Image</summary> |
| <version major="7" minor="3"/> |
| <date day="4" month="7" year="2006"/> |
| <author login="rkubacki"/> |
| <compatibility addition="yes" deprecation="no"/> |
| <description> |
| <p> |
| Conversion from <code>Icon</code> to <code>Image</code> is done |
| at various places and newly introduced method avoids the need to |
| duplicate the same code. |
| </p> |
| </description> |
| <class package="org.openide.util" name="Utilities"/> |
| <issue number="52562"/> |
| </change> |
| |
| <change id="Exceptions"> |
| <api name="util"/> |
| <summary>Added <code>Exceptions</code> class as a replacement for <code>ErrorManager</code></summary> |
| <version major="7" minor="2"/> |
| <date day="20" month="6" year="2006"/> |
| <author login="jtulach"/> |
| <compatibility addition="yes" deprecation="yes"/> |
| <description> |
| <p> |
| <code>ErrorManager</code> is now deprecated and its replacement |
| is either <a href="@JDK@/java/util/logging/Logger.html">Logger</a> |
| or <code>Exceptions</code>. |
| </p> |
| </description> |
| <class package="org.openide.util" name="Exceptions" link="no"/> |
| <issue number="35067"/> |
| </change> |
| |
| <change id="NbCollections"> |
| <api name="util"/> |
| <summary>Added <code>NbCollections</code> and <code>Union2</code></summary> |
| <version major="7" minor="1"/> |
| <date day="5" month="6" year="2006"/> |
| <author login="jglick"/> |
| <compatibility addition="yes"/> |
| <description> |
| <p> |
| Added two new classes useful for transitioning to JDK 5 generics. |
| </p> |
| </description> |
| <class package="org.openide.util" name="NbCollections" link="no"/> |
| <class package="org.openide.util" name="Union2" link="no"/> |
| <issue number="73637"/> |
| </change> |
| |
| <change id="use-logging" > |
| <api name="util"/> |
| <summary>Do not use ErrorManager for logging</summary> |
| <version major="7" minor="0"/> |
| <date day="15" month="4" year="2006"/> |
| <author login="jtulach"/> |
| <compatibility addition="yes" modification="yes" binary="compatible" source="compatible" semantic="incompatible" deprecation="no" deletion="no"/> |
| <description> |
| <a href="@TOP@/org/openide/ErrorManager.html">ErrorManager</a> |
| is no longer the recommended way to do logging in NetBeans based |
| application. Instead NetBeans now fully support logging two JDK's |
| standard <a href="@JDK@/java/util/logging/Logger.html">Logger</a>. |
| See the |
| <a href="@org-openide-util@//org/openide/util/doc-files/logging.html">NetBeans logging guide</a> |
| to learn the best practises for logging in NetBeans. |
| <br/> |
| <a href="@TOP@/org/openide/ErrorManager.html">ErrorManager</a> |
| is still kept around for annotating exceptions with localized |
| messages and advanced manipulation and its behaviour is fully |
| backward compatible. However modules are adviced to migrate to |
| <a href="@JDK@/java/util/logging/Logger.html">logging</a> whereever |
| possible. |
| <br/> |
| To migrate your modules you can install Jackpot modules from |
| autoupdate (if they are not yet part of your IDE) and apply |
| precreate <a href="http://www.netbeans.org/source/browse/openide/util/Attic/ErrorManagerJackpot.rules"> |
| javapot error manager rule</a>. |
| <br/> |
| There is one possible incompatibility from end user point of view. |
| The way to <em>enable logging</em> for certain components when |
| running inside the whole NetBeans container has changed: |
| If there is |
| <a href="@JDK@/java/util/logging/Logger.html">Logger</a> or |
| <a href="@TOP@/org/openide/ErrorManager.html">ErrorManager</a> |
| named <q>org.mymodule.MyComponent</q> then the correct way |
| to turn the logging is now to invoke NetBeans with |
| <code>-J-Dorg.mymodule.MyComponent<b>.level</b>=100</code> |
| (where the possible constants are taken form |
| a JDK's definition of <a href="@JDK@/java/util/logging/Level.html">level</a>). |
| There is however a certain benefit in this change, the value |
| of the property (like <q>org.mymodule.MyComponent.level</q>) |
| can be changed during runtime and thus the logging can be |
| enabled or disabled dynamically (after changing the value, it is |
| necessary to call |
| <a href="@JDK@/java/util/logging/LogManager.html">LogManager.readConfiguration()</a>). |
| </description> |
| <class package="org.openide" name="ErrorManager"/> |
| <issue number="56311"/> |
| </change> |
| <change id="rp-create-true" > |
| <api name="util"/> |
| <summary>Ability to create finished RequestProcessor task</summary> |
| <version major="6" minor="8"/> |
| <date day="22" month="11" year="2005"/> |
| <author login="jtulach"/> |
| <compatibility addition="yes" modification="no" binary="compatible" source="compatible" semantic="compatible" deprecation="no" deletion="no"/> |
| <description> |
| <a href="@org-openide-util@/org/openide/util/RequestProcessor.html">RequestProcessor.create(Runnable, boolean)</a> |
| has been added to allow creation of |
| <a href="@org-openide-util@/org/openide/util/RequestProcessor.Task.html">Task</a> |
| that has not executed its runnable yet, but looks like it is finished. |
| </description> |
| <class package="org.openide.util" name="RequestProcessor" link="no"/> |
| <issue number="68031"/> |
| </change> |
| |
| <change> |
| <api name="util"/> |
| <summary>DynamicMenuContent interface added</summary> |
| <version major="6" minor="4"/> |
| <date day="12" month="6" year="2005"/> |
| <author login="mkleint"/> |
| <compatibility addition="no" modification="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" deletion="no"/> |
| <description> |
| In order to support MacOSX top menus and to fix problems with deprecated JInlineMenu, this new |
| interface was added that allows to handle dynamic content in |
| <a href="@TOP@/org/openide/util/actions/Presenter.Menu.html">Presenter.Menu</a> |
| and <a href="@TOP@/org/openide/util/actions/Presenter.Popup.html">Presenter.Popup</a>. |
| If the instance returned by Presenter.Menu/Popup is an instance of |
| <a href="@org-openide-awt@/org/openide/awt/DynamicMenuContent.html">DynamicMenuContent</a>, it's methods are |
| consulted when creating/updating the menu. |
| </description> |
| <class package="org.openide.util.actions" name="Presenter"/> |
| <issue number="35827"/> |
| </change> |
| |
| |
| |
| <change> |
| <api name="util"/> |
| <summary>Support for interruption of RequestProcessor tasks</summary> |
| <version major="6" minor="3"/> |
| <date day="10" month="6" year="2005"/> |
| <author login="jtulach"/> |
| <compatibility addition="yes" modification="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" deletion="no"/> |
| <description> |
| When one calls <a href="@org-openide-util@/org/openide/util/RequestProcessor.Task.html">RequestProcessor.Task</a>.cancel(), |
| the running thread gets interrupted if the |
| <a href="@org-openide-util@/org/openide/util/RequestProcessor.html#RequestProcessor-java.lang.String-int-boolean-"> |
| RequestProcessor(string, int, boolean) |
| </a> |
| constructor is used. |
| There always was a way how to cancel not yet running Task, |
| but if the task was already running, one was out of luck. Since now |
| the thread running the task is interrupted and the Runnable can check |
| for that and terminate its execution sooner. In the runnable one shall |
| check for thread interruption and |
| if true, return immediatelly as in this example: |
| <pre> |
| public void run () { |
| while (veryLongTimeLook) { |
| doAPieceOfIt (); |
| |
| if (Thread.interrupted ()) return; |
| } |
| } |
| </pre> |
| </description> |
| <class package="org.openide.util" name="RequestProcessor" link="no"/> |
| <issue number="33467"/> |
| </change> |
| <change id="textual-icons-for-actions" > |
| <api name="actions"/> |
| <summary>Can create textual icons for actions</summary> |
| <date day="23" month="3" year="2000"/> |
| <author login="jglick"/> |
| <compatibility addition="yes" modification="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" deletion="no"/> |
| <description> |
| <code>iconResource</code> may now return <code>null</code> to indicate no |
| icon. <code>getIcon(true)</code> may be used to get an icon created from |
| the label if there is no icon specified. |
| </description> |
| <class package="org.openide.util.actions" name="SystemAction"/> |
| </change> |
| <change id="use-icon-instead-of-imageicon" > |
| <api name="actions"/> |
| <summary> |
| <code>SystemAction</code> refers to <code>Icon</code> rather than <code>ImageIcon</code> |
| </summary> |
| <date day="11" month="4" year="2000"/> |
| <author login="jglick"/> |
| <compatibility modification="yes" binary="compatible" source="incompatible" semantic="compatible" deprecation="no" addition="no" deletion="no"> |
| First broken, later restored binary compatibility in trunk and |
| <code>boston</code>. Any code explicitly using this calls before may break |
| (source code may be compatible in many cases; binary compatibility has |
| been preserved). These calls were known to be used only for |
| <code>Actions</code> to create presenters; normal code which constructs |
| <code>SystemAction</code>s and implements <code>iconResource</code> should |
| be unaffected. Actions using the "grouping action" template should check |
| their <code>getMenuPresenter</code> method which may be |
| binary-incompatible; it is easy to replace the code with safer code such |
| as: |
| <pre xml:space="preserve"> |
| <span class="comment">// .... |
| </span> |
| <span class="keyword">private</span> <span class="keyword">static</span> <span class="type">Icon</span> <span class="variable-name">icon</span> = <span class="constant">null</span>; |
| <span class="comment">// .... |
| </span> |
| <span class="keyword">public</span> <span class="type">JMenuItem</span> <span class="function-name">getMenuPresenter</span>() { |
| <span class="type">JMenu</span> <span class="variable-name">menu</span> = <span class="keyword">new</span> <span class="type">JMenu</span>(getName ()); |
| <span class="keyword">if</span> (icon == <span class="constant">null</span>) { |
| icon = <span class="keyword">new</span> <span class="type">ImageIcon</span>(MyAction.<span class="keyword">class</span>.getResource(iconResource())); |
| } |
| menu.setIcon(icon); |
| <span class="comment">// ....</span> |
| </pre> |
| </compatibility> |
| <description> |
| <code>getIcon</code> and <code>setIcon</code> now use the interface |
| <code>Icon</code> rather than the particular implementation |
| <code>ImageIcon</code>. This corrects an API bug (excessive specificity). |
| </description> |
| <class package="org.openide.util.actions" name="SystemAction"/> |
| </change> |
| <change> |
| <api name="actions"/> |
| <summary>New Actions system - part I.</summary> |
| <version major="3" minor="29"/> |
| <date day="8" month="1" year="2003"/> |
| <author login="jtulach"/> |
| <author login="pzavadsky"/> |
| <compatibility deprecation="yes" addition="yes" modification="yes" binary="compatible" source="compatible" semantic="compatible" deletion="no"/> |
| <description> |
| <p> |
| Introduction of new action system, which generally means |
| move from usage of <code>SystemAction</code> to <code>Action</code> instances. |
| That document also focuses on declarative actions |
| usage which is not subject of current change, it will be part of later changes. |
| </p> |
| </description> |
| <class package="org.openide.util" name="ContextAwareAction"/> |
| <class package="org.openide.util" name="Utilities"/> |
| <class package="org.openide.util.actions" name="CallbackSystemAction"/> |
| <issue number="27868"/> |
| </change> |
| |
| <change id="Task-waitFinished-timeout"> |
| <api name="util"/> |
| <summary>New method <code>task.waitFinished(timeout)</code> added</summary> |
| <version major="5" minor="0"/> |
| <date day="2" month="11" year="2004"/> |
| <author login="jtulach"/> |
| <compatibility addition="yes" binary="compatible" semantic="compatible" source="compatible" deprecation="no" deletion="no" modification="no"/> |
| <description> |
| <p>It is not possible to wait for a limited amount of time for |
| completion of any task. The <code>RequestProcessor.Task</code> |
| version is optimized, the <code>Task</code> version ensures that |
| the sematics will be compatible for all subclasses, even they did |
| not know about the method at all. |
| </p> |
| </description> |
| <class package="org.openide.util" name="Task" link="no"/> |
| <class package="org.openide.util" name="RequestProcessor" link="no"/> |
| <issue number="16849"/> |
| </change> |
| <change id="add-detection-of-FreeBSD-OS"> |
| <api name="util"/> |
| <summary>Added field <code>OS_FREEBSD</code> to <code>Utilities</code> |
| </summary> |
| <version major="4" minor="50"/> |
| <date day="29" month="10" year="2004"/> |
| <author login="jrechtacek"/> |
| <compatibility addition="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/> |
| <description> |
| <p>FreeBSD was not recognized as Unix OS. <code>Utilities</code> has been |
| enlarged with new field <code>OS_FREEBSD</code>, part of OS Unix mask. <code>Utilities.isUnix()</code> |
| now returns <code>true</code> for applications run on FreeBSD. |
| </p> |
| </description> |
| <class package="org.openide.util" name="Utilities"/> |
| </change> |
| <change id="Mutex.isReadWriteAccess"> |
| <api name="util"/> |
| <summary>Added <code>Mutex.isReadAccess()</code> and <code>Mutex.isWriteAcess()</code> |
| </summary> |
| <version major="4" minor="48"/> |
| <date day="30" month="9" year="2004"/> |
| <author login="jtulach"/> |
| <compatibility addition="yes" binary="compatible" semantic="compatible" source="compatible" deprecation="no" deletion="no" modification="no"/> |
| <description> |
| A thread can now check whether read or write access on a <code>Mutex</code> |
| has already been |
| granted to it and use it to decide whether it is safe to perform |
| certain operations or delay them. |
| </description> |
| <class package="org.openide.util" name="Mutex" link="no"/> |
| <issue number="49459"/> |
| </change> |
| <change id="SharedClassObject.reset"> |
| <api name="util"/> |
| <summary>Added <code>SharedClassObject.reset</code> method to allow subclasses to implement reset correctly</summary> |
| <version major="4" minor="46"/> |
| <date day="2" month="9" year="2004"/> |
| <author login="jtulach"/> |
| <compatibility addition="yes" binary="compatible" semantic="compatible" source="compatible" deprecation="no" deletion="no" modification="no"/> |
| <description> |
| The new <code>SharedClassObject.reset</code> method is called |
| by the infrastructure in moments when an original (at the time |
| of start) state of an option or any other <code>SharedClassObject</code> |
| is requested. Interested subclasses are free to implement any kind of clean |
| they need. The <code>SystemOption</code> provides a default |
| implementation based on fired property changed events, so |
| its correctly written subclasses do not need |
| to do anything. |
| </description> |
| <class package="org.openide.util" name="SharedClassObject"/> |
| <issue number="20962"/> |
| </change> |
| <change> |
| <api name="util"/> |
| <summary>enum package deprecated and replaced by Enumerations factory class</summary> |
| <version major="4" minor="37"/> |
| <date day="7" month="6" year="2004"/> |
| <author login="jtulach"/> |
| <compatibility deprecation="yes" addition="yes" binary="compatible" source="compatible" semantic="compatible" deletion="no" modification="no"/> |
| <description> |
| enum is a keyword in JDK 1.5 and as such it should not be used. |
| That is the reason why we had to deprecated our |
| <code>org.openide.util.enum</code> package. We are providing |
| replacements of the original classes in form of factory methods |
| <code>org.openide.util.Enumerations</code>. |
| </description> |
| <class package="org.openide.util" name="Enumerations" link="no"/> |
| <issue number="41166"/> |
| </change> |
| <change> |
| <api name="util"/> |
| <summary>Support for complicated listeners</summary> |
| <version major="4" minor="12"/> |
| <date day="2" month="9" year="2003"/> |
| <author login="jtulach"/> |
| <compatibility addition="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/> |
| <description> |
| Improved support for hierarchic listeners (aka NamingListener vs. ObjectChangeListener from |
| javax.naming.event package). |
| </description> |
| <class package="org.openide.util" name="WeakListeners" link="no"/> |
| <issue number="35726"/> |
| </change> |
| <change id="Utilities.actionsGlobalContext"> |
| <api name="util"/> |
| <summary>Global action context as <code>Lookup</code> |
| </summary> |
| <version major="4" minor="10"/> |
| <date day="12" month="8" year="2003"/> |
| <author login="jtulach"/> |
| <compatibility addition="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/> |
| <description> |
| As part of the work on separation of openide.jar into smaller parts |
| a new interface <code>ContextGlobalProvider</code> and new method |
| in utilities <code>Utilities.actionsGlobalContext()</code> had to be |
| added in order to separate the implementation of actions like |
| <code>CallbackSystemAction</code> and <code>NodeAction</code> from |
| their dependency on window system. |
| </description> |
| <class package="org.openide.util" name="ContextGlobalProvider"/> |
| <class package="org.openide.util" name="Utilities"/> |
| <issue number="34758"/> |
| </change> |
| <change id="WeakListeners"> |
| <api name="util"/> |
| <summary>Old <code>WeakListener</code> replaced by <code>WeakListeners</code> class</summary> |
| <version major="4" minor="10"/> |
| <date day="12" month="8" year="2003"/> |
| <author login="jtulach"/> |
| <compatibility deprecation="yes" addition="yes" binary="compatible" source="compatible" semantic="compatible" deletion="no" modification="no"/> |
| <description> |
| <p> |
| As part of the work on separation of openide.jar into smaller parts |
| the <code>WeakListener</code> had to be deprecated as it referenced too |
| many classes around and replaced by more general <code>WeakListeners</code> |
| factory class that provides a generic <code>create</code> method and |
| specialized factory methods just for JDK own interfaces. |
| </p> |
| <p> |
| Also few factory methods were spread into appropriate packages like |
| <code>FileUtil.weakFileChangeListener</code> and |
| <code>NodeOp.weakNodeListener</code>. |
| </p> |
| </description> |
| <class package="org.openide.util" name="WeakListeners" link="no"/> |
| <issue number="34758"/> |
| </change> |
| <change id="HelpCtx.findHelp"> |
| <api name="util"/> |
| <summary>New method to find HelpCtx</summary> |
| <version major="4" minor="3"/> |
| <date day="2" month="4" year="2003"/> |
| <author login="jtulach"/> |
| <compatibility addition="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/> |
| <description> |
| A new method for finding HelpCtx (<code>HelpCtx.findHelp(Object)</code>) |
| has been added to replace |
| the old <code>InstanceSupport.findHelp</code> that has been |
| separated out from the openide.jar. |
| </description> |
| <class package="org.openide.util" name="HelpCtx"/> |
| <issue number="32143"/> |
| </change> |
| <change> |
| <api name="util"/> |
| <summary>Retrofit of interface Cancellable into RequestProcessor.Task</summary> |
| <version major="4" minor="1"/> |
| <date day="14" month="3" year="2003"/> |
| <author login="dsimonek"/> |
| <compatibility modification="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" addition="no" deletion="no"/> |
| <description> |
| RequestProcessor.Task was made to implement util.Cancellable interface. |
| No change of implementation at all, RP.Task already had method from |
| interface implemented, this is just a logical retrofit. |
| </description> |
| <class package="org.openide.util" name="RequestProcessor" link="no"/> |
| </change> |
| <change> |
| <api name="util"/> |
| <summary>Support for asynchronous init of UI components</summary> |
| <version major="3" minor="36"/> |
| <date day="5" month="2" year="2003"/> |
| <author login="dsimonek"/> |
| <compatibility deprecation="no" addition="yes" binary="compatible" source="compatible" semantic="compatible" deletion="no" modification="no"/> |
| <description> |
| <p> |
| Performance related API addition, allows clients to write asynchronous |
| initialization of UI components easily by providing <code>AsyncGUIJob</code> |
| implementation. Also introduced <code>Cancellable</code> ability. |
| <code>Utilities.attachInitJob</code> couples init job with target |
| UI component. |
| </p> |
| </description> |
| <class package="org.openide.util" name="AsyncGUIJob"/> |
| <class package="org.openide.util" name="Cancellable" link="no"/> |
| <class package="org.openide.util" name="Utilities"/> |
| <issue number="30604"/> |
| </change> |
| <change> |
| <api name="util"/> |
| <summary>org.openide.util.Utilities.createProgressCursor added</summary> |
| <version major="3" minor="23"/> |
| <date day="2" month="12" year="2002"/> |
| <author login="dsimonek"/> |
| <compatibility addition="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/> |
| <description> |
| Method java.awt.Cursor createProgressCursor(java.awt.Component comp) was |
| added into Utilities class. Method creates mouse cursor suitable for |
| components which are busy, but still reacts to the input events. (don't |
| block UI). |
| </description> |
| <class package="org.openide.util" name="Utilities"/> |
| </change> |
| <change> |
| <api name="util"/> |
| <summary>Added interface HelpCtx.Provider</summary> |
| <version major="3" minor="20"/> |
| <date day="11" month="11" year="2002"/> |
| <author login="pnejedly"/> |
| <compatibility addition="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/> |
| <description> |
| An interface HelpCtx.Provider with one method getHelpCtx was added |
| and the logic in HelpCtx.findHelp and InstanceSupport.findHelp |
| was extended to take this interface into accout. |
| Various classes with existing getHelpCtx method were retrofitted |
| to implement this interface. |
| </description> |
| <class package="org.openide.util" name="HelpCtx"/> |
| <class package="org.openide" name="ServiceType"/> |
| <class package="org.openide.util.actions" name="SystemAction"/> |
| <class package="org.openide.util.datatransfer" name="NewType"/> |
| <class package="org.openide.util.datatransfer" name="PasteType"/> |
| </change> |
| <change> |
| <api name="util"/> |
| <summary>Can load localized cached images</summary> |
| <version major="3" minor="24"/> |
| <date day="15" month="12" year="2002"/> |
| <author login="jglick"/> |
| <compatibility addition="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/> |
| <description> |
| Added method <code>Utilities.loadImage(String, boolean)</code> |
| which works like <code>Utilities.loadImage(String)</code> except |
| that it will search for localized images. Also |
| <code>SystemAction.getIcon()</code> will load a localized image now |
| if there is one. |
| </description> |
| <class package="org.openide.util" name="Utilities"/> |
| <class package="org.openide.util.actions" name="SystemAction"/> |
| <issue number="22156"/> |
| </change> |
| <change> |
| <api name="util"/> |
| <summary>Utilities.activeReferenceQueue()</summary> |
| <version major="3" minor="11"/> |
| <date day="7" month="10" year="2002"/> |
| <author login="jtulach"/> |
| <compatibility addition="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/> |
| <description> |
| Active java.util.ref.ReferenceQueue that polls for all |
| enqued instances (that should implement Runnable) and |
| invokes their run method to do actual cleanup. |
| </description> |
| <class package="org.openide.util" name="Utilities"/> |
| <issue number="27238"/> |
| </change> |
| <change> |
| <api name="util"/> |
| <summary>Deprecation of parts of MouseUtils.PopupMenuAdapter</summary> |
| <version major="3" minor="4"/> |
| <date day="6" month="8" year="2002"/> |
| <author login="dsimonek"/> |
| <compatibility deprecation="yes" binary="compatible" source="compatible" semantic="compatible" addition="no" deletion="no" modification="no"/> |
| <description> |
| Constructor MouseUtils.PopupMenuAdapter(int) and public static field |
| DEFAULT_THESHOLD are now obsoleted, performs no action. |
| PopupMenuAdapter now delegates to isPopupTrigger crossplatform call, |
| should be constructed via default constructor. |
| </description> |
| </change> |
| <change> |
| <api name="util"/> |
| <summary> |
| <code>Utilities.toFile</code> and <code>toURL</code> added</summary> |
| <version major="3" minor="26"/> |
| <date day="24" month="12" year="2002"/> |
| <author login="jglick"/> |
| <compatibility addition="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"> |
| Existing code which uses the JDK 1.3 method <code>File.toURL</code> should be |
| examined, as it may be better to call <code>Utilities.toURL</code>. |
| Similarly, code which gets the path from a URL and calls the <code>File</code> |
| constructor may need to be changed to call <code>Utilities.toFile</code>. |
| Such changes should improve robustness of code when used in strangely |
| named directories. |
| </compatibility> |
| <description> |
| Two new utility methods were added which permit easy interconversion between |
| files and URLs using the <code>file</code> protocol. This task is easy and |
| safe under JDK 1.4, yet JDK 1.3 lacks a single call to do these tasks which |
| will handle unusual characters in file names, especially hash marks. The |
| utility methods use the JDK 1.4 variants when possible, else use specially |
| coded versions of the JDK 1.3 variants which handle hash marks. |
| </description> |
| <class package="org.openide.util" name="Utilities"/> |
| <issue number="29711"/> |
| </change> |
| <change> |
| <api name="util"/> |
| <summary>Added RequestProcessor.getDefault(), deprecated static methods in RequestProcessor</summary> |
| <version major="2" minor="12"/> |
| <date day="15" month="4" year="2002"/> |
| <author login="pnejedly"/> |
| <compatibility addition="yes" deprecation="yes" binary="compatible" source="compatible" semantic="compatible" deletion="no" modification="no"/> |
| <description>Sharing of singlethreaded |
| <code>RequestProcessor.DEFAULT</code> |
| through the static methods is inherently deadlock-prone, |
| so the methods are deprecated and their usage should phase out |
| in the favor of using private <code>RequestProcessor</code>s |
| or the shared multithreaded instance available through the new |
| static method <code>RequestProcessor.getDefault()</code>. |
| </description> |
| <class package="org.openide.util" name="RequestProcessor" link="no"/> |
| </change> |
| <change> |
| <api name="util"/> |
| <summary>Added helper methods to aid module developers to write code which works correctly with multiple monitors</summary> |
| <version major="2" minor="5"/> |
| <date day="26" month="2" year="2002"/> |
| <author login="ttran"/> |
| <compatibility addition="yes" deprecation="yes" binary="compatible" source="compatible" semantic="compatible" deletion="no" modification="no"/> |
| <description> |
| The added methods are |
| <pre xml:space="preserve"> |
| <span class="keyword">public</span> <span class="keyword">static</span> <span class="type">Rectangle</span> <span class="function-name">getUsableScreenBounds</span>(); |
| <span class="keyword">public</span> <span class="keyword">static</span> <span class="type">Rectangle</span> <span class="function-name">getUsableScreenBounds</span>(<span class="type">GraphicsConfiguration</span> <span class="variable-name">gconf</span>); |
| <span class="keyword">public</span> <span class="keyword">static</span> <span class="type">Rectangle</span> <span class="function-name">findCenterBounds</span>(<span class="type">Dimension</span> <span class="variable-name">componentSize</span>); |
| </pre> |
| One should use these methods instead of calling |
| <code>Toolkit.getScreenSize()</code>. For the same reason |
| <code>Utilities.getScreenSize()</code> is now deprecated. |
| </description> |
| <class package="org.openide.util" name="Utilities"/> |
| <issue number="20882"/> |
| </change> |
| <change id="ErrorManager.getDefault"> |
| <api name="util"/> |
| <summary>Added accessibility method ErrorManager.getDefault () that always returns non-null values</summary> |
| <version major="2" minor="1"/> |
| <date day="17" month="1" year="2002"/> |
| <author login="jtulach"/> |
| <compatibility addition="yes" modification="yes" deprecation="yes" binary="compatible" source="compatible" semantic="compatible" deletion="no"/> |
| <description> |
| <p> |
| This method allows independent libraries (nodes, filesystems, utilities) to use the ErrorManager without |
| testing if it is really present. Just call <code>ErrorManager.getDefault ()</code> and you can be sure |
| that a valid instance will be returned. |
| </p> |
| <p> |
| Also <code>TopManager.getErrorManager</code> is no longer useful (<a href="#ErrorManager.getDefault" shape="rect">see change</a>) and is now deprecated. |
| It is also not abstract as it just delegates. |
| <code>notifyException</code> is similarly deprecated. |
| </p> |
| </description> |
| <class package="org.openide" name="ErrorManager"/> |
| <issue number="16854"/> |
| </change> |
| <change id="logging-added-to-error-manager" > |
| <api name="util"/> |
| <summary> |
| <code>ErrorManager.isLoggable</code> added</summary> |
| <date day="2" month="12" year="2000"/> |
| <compatibility addition="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/> |
| <description> |
| <code>isLoggable(int severity)</code> added to <code>ErrorManager</code>. |
| </description> |
| <class package="org.openide" name="ErrorManager"/> |
| </change> |
| <change> |
| <api name="util"/> |
| <summary>Logging and hierarchy support added to <code>ErrorManager</code> |
| </summary> |
| <date day="18" month="8" year="2000"/> |
| <compatibility addition="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/> |
| <description> |
| <code>getInstance(String name)</code>, <code>log(int severity, String s)</code>, and |
| <code>log(String s)</code> added to <code>ErrorManager</code>. |
| </description> |
| <class package="org.openide" name="ErrorManager"/> |
| </change> |
| <change> |
| <api name="xml"/> |
| <summary>Can register entity resolvers</summary> |
| <date day="20" month="12" year="2000"/> |
| <compatibility addition="yes" deprecation="yes" binary="compatible" source="compatible" semantic="compatible" deletion="no" modification="no"> |
| Subsequently deprecated on <date day="3" month="3" year="2001"/> by |
| <a href="#created-XMLUtil" shape="rect"> |
| <code>EntityCatalog</code> |
| </a>. |
| </compatibility> |
| <description> |
| <code>addEntityResolver</code> and <code>removeEntityResolver</code> |
| added. These methods allow a user to develop own implementation of |
| functionality similar to <code>registerCatalogEntry</code>. E.g. a user |
| can register <code>EntityResolver</code> that reads data from persistent |
| catalog avoiding bunch of calls to the register method in module |
| <code>restore</code> code. |
| </description> |
| <class package="org.openide.xml" name="EntityCatalog" link="no"/> |
| </change> |
| <change> |
| <api name="xml"/> |
| <summary>Updated DOM to level 2 and added document writability</summary> |
| <date day="26" month="1" year="2001"/> |
| <author login="pkuzel"/> |
| <compatibility modification="yes" binary="incompatible" source="incompatible" deprecation="yes" semantic="compatible" addition="no" deletion="no"> |
| Any code implementing DOM interfaces could be broken by the level 2 |
| interfaces. Clients of the DOM API should be unaffected. |
| </compatibility> |
| <description> |
| <ul> |
| <li>All level 1 <code>Document</code>s interfaces became level 2 ones.</li> |
| <li>Deprecated <code>write(Document, Writer)</code> |
| <p>A conflict between encoding declared in document and |
| actual Writer encoding can cause data loss. Suitable |
| just for UTF-8 and UTF-16 writers. |
| </p> |
| </li> |
| <li>introduced <code>write(Document, OutputStream, String encoding)</code> |
| <p> |
| The write method is supposed to be used as an implementation |
| independent way for writing DOM documents until self-writable |
| documents specification will be introduced. The self-writability |
| is considered to be a part of DOM level 3 specs. |
| </p> |
| <p> |
| Nowadays it is implemented that it can handle following DOM implementations: |
| </p> |
| <ul> |
| <li>Crimson</li> |
| <li>JAXP 1.0 reference implementation</li> |
| <li>All others using Apache's serializers if available.</li> |
| </ul> |
| </li> |
| </ul> |
| </description> |
| <class package="org.openide.xml" name="XMLUtil" link="no"/> |
| </change> |
| <change id="Utilities.topologicalSort"> |
| <api name="util"/> |
| <summary>Improved method for topological sort</summary> |
| <version major="3" minor="30"/> |
| <date day="10" month="1" year="2003"/> |
| <author login="jglick"/> |
| <compatibility deprecation="yes" addition="yes" binary="compatible" source="compatible" semantic="compatible" deletion="no" modification="no"/> |
| <description> |
| The method <code>Utilities.topologicalSort</code> was added. It should be |
| faster and probably more robust than the older <code>partialSort</code> |
| method, which required a <code>Comparator</code>; the new method requires |
| a list of ordering constraints, which should be <i>O(n + m)</i> |
| rather than <i>O(n<sup>2</sup>)</i> (where <i>n</i> is the number of |
| nodes to sort and <i>m</i> the number of edges). If the graph is |
| not a DAG a <code>TopologicalSortException</code> is thrown containing |
| description of unsortable parts of the graph and the best partitial sort |
| that fullfils as much of ordering constraints as possible. These |
| information can be used for error reporting and recovery. |
| </description> |
| <class package="org.openide.util" name="Utilities"/> |
| <class package="org.openide.util" name="TopologicalSortException" link="no"/> |
| <issue number="27286"/> |
| </change> |
| <change> |
| <api name="xml"/> |
| <summary>Moved XML static methods into separate inner class</summary> |
| <date day="16" month="2" year="2001"/> |
| <author login="pkuzel"/> |
| <compatibility addition="yes" deprecation="yes" binary="compatible" source="compatible" semantic="compatible" deletion="no" modification="no"> |
| <code>XMLDataObject.Util</code> itself deprecated on |
| <date day="3" month="3" year="2001"/> in favor of |
| <a href="#created-XMLUtil" shape="rect"> |
| <code>XMLUtil</code> |
| </a>. |
| </compatibility> |
| <description> |
| <ul> |
| <li> |
| Deprecated all static: <code>write()</code>s, <code>parse()</code>s, |
| <code>createDocument()</code>, <code>createInputSource()</code> and |
| <code>createParser()</code>s methods. |
| </li> |
| <li> |
| Introduced public static inner class named <code>Util</code> providing |
| utility methods replacing deprecated ones. |
| </li> |
| </ul> |
| </description> |
| <class package="org.openide.xml" name="XMLUtil" link="no"/> |
| </change> |
| <change id="Mutex.Privileged"> |
| <api name="util"/> |
| <summary>Permit privileged access to mutexes to avoid inner classes</summary> |
| <version major="1" minor="17"/> |
| <date day="27" month="6" year="2001"/> |
| <compatibility addition="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/> |
| <description> |
| Added a new inner class and a constructor that takes an instance of that |
| inner class as a parameter. The inner class is <code>Privileged</code>. |
| Through its public methods one can enter internal states of the |
| <code>Mutex</code> to which it was passed. |
| </description> |
| <class package="org.openide.util" name="Mutex" link="no"/> |
| </change> |
| <change id="Task.notifyRunning"> |
| <api name="util"/> |
| <summary>More flexibility in controlling running of tasks</summary> |
| <version major="1" minor="5"/> |
| <date day="27" month="4" year="2001"/> |
| <compatibility addition="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/> |
| <description> |
| <code>Task</code> has new protected constructor for subclasses and |
| methods <code>notifyRunning ()</code> and also non-final version of |
| <code>waitFinished ()</code>. |
| </description> |
| <class package="org.openide.util" name="Task" link="no"/> |
| </change> |
| <change> |
| <api name="util"/> |
| <summary> |
| <code>ErrorManager.isNotifiable</code> added</summary> |
| <version major="3" minor="18"/> |
| <date day="3" month="11" year="2002"/> |
| <author login="jglick"/> |
| <compatibility addition="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"> |
| Existing code which assumes (incorrectly) that <code>isLoggable</code> |
| can be used for this purpose, or which calls <code>notify</code> at a low |
| level such as <code>INFORMATIONAL</code> without first checking |
| <code>isNotifiable</code> for efficiency, should be revised. |
| </compatibility> |
| <description> |
| The method <code>ErrorManager.isNotifiable</code> was added to capture |
| the fact that an error manager implementation might be more aggressive |
| about displaying stack traces than log messages. |
| </description> |
| <class package="org.openide" name="ErrorManager"/> |
| <issue number="24056"/> |
| </change> |
| <change id="clone-service-type" > |
| <api name="util"/> |
| <summary> |
| <code>ServiceType.createClone</code> added</summary> |
| <date day="30" month="11" year="2000"/> |
| <compatibility addition="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no">Subclasses are encouraged to implement <code>Cloneable</code>.</compatibility> |
| <description> |
| <code>public final ServiceType createClone()</code> added. |
| </description> |
| <class package="org.openide" name="ServiceType"/> |
| </change> |
| <change> |
| <api name="util"/> |
| <summary>Icon & image cache manager added</summary> |
| <date day="9" month="3" year="2001"/> |
| <compatibility addition="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/> |
| <description> |
| Loading icons and images can be done through |
| <code>Utilities.loadImage()</code> that uses cache to avoid duplicate |
| loading of images. <code>mergeImages</code> uses the cache, too, for the |
| results of merge. |
| </description> |
| <class package="org.openide.util" name="Utilities"/> |
| </change> |
| <change> |
| <api name="util"/> |
| <summary>Updated DEC -> Compaq OS names</summary> |
| <date day="15" month="12" year="2000"/> |
| <compatibility modification="yes" deprecation="yes" binary="compatible" source="compatible" semantic="compatible" addition="no" deletion="no"/> |
| <description> |
| Operating system <code>OS_DEC</code> changed to <code>OS_TRU64</code>, |
| and added <code>OS_VMS</code>. |
| </description> |
| <class package="org.openide.util" name="Utilities"/> |
| </change> |
| <change> |
| <api name="util"/> |
| <summary>Proper break iterators used when wrapping text strings</summary> |
| <date day="11" month="8" year="2000"/> |
| <compatibility modification="yes" deprecation="yes" binary="compatible" source="compatible" semantic="compatible" addition="no" deletion="no"> |
| Deprecated version first removed, later re-added with deprecation in the |
| trunk. |
| </compatibility> |
| <description> |
| Added method <code>wrapString</code> which uses |
| <code>BreakIterator</code> instead of a flag and a heuristic solution. |
| <code>wrapString(String,int,boolean,boolean)</code> deprecated. |
| </description> |
| <class package="org.openide.util" name="Utilities"/> |
| </change> |
| <change> |
| <api name="util"/> |
| <summary>Support for merging icons added</summary> |
| <date day="25" month="1" year="2001"/> |
| <compatibility addition="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/> |
| <description> |
| Added method <code>mergeImages(Image image1, Image image2, int x, int |
| y)</code> for merging images. |
| </description> |
| <class package="org.openide.util" name="Utilities"/> |
| </change> |
| <change> |
| <api name="util"/> |
| <summary>Can get a list of localizing suffixes</summary> |
| <date day="1" month="1" year="2001"/> |
| <author login="jglick"/> |
| <compatibility addition="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/> |
| <description> |
| <code>getLocalizingSuffixes</code> added. |
| </description> |
| <class package="org.openide.util" name="NbBundle" link="no"/> |
| </change> |
| <change> |
| <api name="util"/> |
| <summary>Can find localized variants of extensionless resources</summary> |
| <date day="6" month="10" year="2000"/> |
| <author login="jglick"/> |
| <compatibility modification="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" addition="no" deletion="no"/> |
| <description> |
| <code>getLocalizedFile</code> now accepts <code>null</code> extensions |
| to suppress the addition of a dot to the resource name. |
| </description> |
| <class package="org.openide.util" name="NbBundle" link="no"/> |
| </change> |
| <change> |
| <api name="util"/> |
| <summary>Added search for branded variants as part of locale lookup</summary> |
| <date day="20" month="7" year="2000"/> |
| <author login="jglick"/> |
| <compatibility addition="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/> |
| <description> |
| Added methods <code>getBranding</code> and <code>setBranding</code>. |
| Normally these should only be called by the core implementation during |
| startup, not module authors. All methods to look up localized objects |
| may now also search for branded variants, if applicable. |
| </description> |
| <class package="org.openide.util" name="NbBundle" link="no"/> |
| </change> |
| <change> |
| <api name="util"/> |
| <summary>Classloader finder for <code>NbBundle</code> is obsolete</summary> |
| <date day="11" month="4" year="2000"/> |
| <compatibility deletion="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" addition="no" modification="no"> |
| First removed, later re-added but deprecated in trunk and |
| <code>boston</code>. No one outside of <code>NbBundle</code> and the |
| core implementation should have been using these classes to begin with. |
| </compatibility> |
| <description> |
| <code>NbBundle.ClassLoaderFinder</code> and |
| <code>NbBundle.setClassLoaderFinder</code> have been deprecated; they |
| were quite obsolete. |
| </description> |
| <class package="org.openide.util" name="NbBundle" link="no"/> |
| </change> |
| <change> |
| <api name="util"/> |
| <summary>Special exception thrown to request interaction with user</summary> |
| <date day="5" month="3" year="2001"/> |
| <compatibility addition="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/> |
| <description> |
| Added the first revision. This exception is thrown when a process is |
| about to perform some action that requires user confirmation. |
| </description> |
| <class package="org.openide.util" name="UserQuestionException"/> |
| </change> |
| <change> |
| <api name="util"/> |
| <summary> |
| <code>SafeException</code> is a <code>FoldingIOException</code> |
| </summary> |
| <date day="9" month="3" year="2000"/> |
| <compatibility modification="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" addition="no" deletion="no"/> |
| <description> |
| Now extends <code>FoldingIOException</code>, meaning that it should |
| delegate the detail message, etc. to the original. |
| </description> |
| <class package="org.openide.util.io" name="SafeException" link="no"/> |
| </change> |
| <change id="created-XMLUtil"> |
| <api name="xml"/> |
| <summary>Independent XML API created</summary> |
| <date day="3" month="3" year="2001"/> |
| <author login="pkuzel"/> |
| <compatibility addition="yes" deprecation="yes" binary="compatible" source="compatible" semantic="compatible" deletion="no" modification="no"/> |
| <description> |
| <code>XMLUtil</code> utility class introduced. The class provides set of |
| static methods useful for XML processing. <code>EntityCatalog</code> |
| class introduced. It provides access to entity mapping registrations |
| provided by installed modules. |
| </description> |
| <class package="org.openide.xml" name="XMLUtil" link="no"/> |
| <class package="org.openide.xml" name="EntityCatalog" link="no"/> |
| <package name="org.openide.xml" link="no"/> |
| </change> |
| <change id="XMLUtil-1.29"> |
| <api name="xml"/> |
| <summary>XML attribute and hexadecimal utilities added</summary> |
| <version major="1" minor="29"/> |
| <date day="8" month="8" year="2001"/> |
| <compatibility addition="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/> |
| <description> |
| <code>toAttribute(String, char, boolean)</code>, <code>toContent(String, |
| boolean)</code>, <code>toHex(byte[], int, int)</code> and |
| <code>fromHex(char[], int, int)</code> methods added. |
| </description> |
| <class package="org.openide.xml" name="XMLUtil" link="no"/> |
| </change> |
| <change> |
| <api name="xml"/> |
| <summary>XML attribute and hexadecimal utilities modified</summary> |
| <version major="1" minor="40"/> |
| <date day="18" month="10" year="2001"/> |
| <compatibility binary="incompatible" source="incompatible" modification="yes" semantic="compatible" deprecation="no" addition="no" deletion="no"> |
| The original versions of these methods were not in any public release. |
| </compatibility> |
| <description> |
| <code>toAttribute(String, char, boolean)</code> method replaced by |
| <code>toAttributeValue(String)</code> |
| and |
| <code>toContent(String, boolean)</code> method replaced by |
| <code>toElementContent(String)</code>. These new simplified |
| signatures and particular semantics should cover 99% usage of |
| previous ones. See the original <a href="#XMLUtil-1.29" shape="rect">additions</a>. |
| </description> |
| <class package="org.openide.xml" name="XMLUtil" link="no"/> |
| <issue number="16629"/> |
| </change> |
| <change id="refactored-methods-into-XMLUtil"> |
| <api name="xml"/> |
| <summary>Refactored XML methods from various modules to be added |
| to <code>XMLUtil</code>. Seven new methods added.</summary> |
| <version major="8" minor="4"/> |
| <date day="7" month="4" year="2010"/> |
| <author login="mvfranz"/> |
| <compatibility addition="yes"/> |
| <description> |
| <p> |
| Refactored XML related methods into XMLUtil. |
| </p> |
| </description> |
| <class package="org.openide.xml" name="XMLUtil" link="no"/> |
| <issue number="136595"/> |
| </change> |
| </changes> |
| <htmlcontents> |
| <head> |
| <title>Change History for the Utilities API</title> |
| <link rel="stylesheet" href="prose.css" type="text/css"/> |
| </head> |
| <body> |
| <p class="overviewlink"> |
| <a href="overview-summary.html">Overview</a> |
| </p> |
| <h1>Introduction</h1> |
| <h2>What do the Dates Mean?</h2> |
| <p>The supplied dates indicate when the API change was made, on the CVS |
| trunk. From this you can generally tell whether the change should be |
| present in a given build or not; for trunk builds, simply whether it |
| was made before or after the change; for builds on a stabilization |
| branch, whether the branch was made before or after the given date. In |
| some cases corresponding API changes have been made both in the trunk |
| and in an in-progress stabilization branch, if they were needed for a |
| bug fix; this ought to be marked in this list.</p> |
| <ul> |
| <li>The <code>release41</code> branch was made on Apr 03 '05 for use in the NetBeans 4.1 release. |
| Specification versions: 6.0 begins after this point.</li> |
| <li>The <code>release40</code> branch was made on Nov 01 '04 for use in the NetBeans 4.0 release. |
| Specification versions: 5.0 begins after this point.</li> |
| </ul> |
| <hr/> |
| <standard-changelists module-code-name="$codebase"/> |
| <hr/> |
| <p>@FOOTER@</p> |
| </body> |
| </htmlcontents> |
| </apichanges> |