The
<api type="export" name="ExplorerAPI" group="java" category="official" url="@org-openide-explorer@/org/openide/explorer/doc-files/api.html"
/>
is build around Explorer - solely a user-interface device: it has no particular knowledge
of the structure of the IDE. Rather, it provides the physical user interface for
the Node hierarchy, as described in the
<api type="import" name="NodesAPI" group="java" category="official" url="@org-openide-nodes@/org/openide/nodes/doc-files/api.html"
/>.
A given Explorer instance will be some visual component (such as a Swing panel)
displaying some representation of a subtree of the complete Node hierarchy;
the topmost node being displayed is said to be the root of the Explorer.
Be careful not to confuse the root of a particular Explorer instance, which is
selected according to what the user wishes to see, with the root(s) of
the entire Node hierarchy, which generally are fixed.
</answer>
<answer id="arch-usecases">
<p>
<a onclick="target='_blank'"href="https://leanpub.com/nbp4beginners">
<img src="http://wiki.apidesign.org/images/0/03/NetBeansPlatformForBeginners.jpg"
style="float: right"
width="60" height="70" alt="Cover of NetBeans Platform for Beginners book"/>
</a>
For general overview of the concepts related to <a href="@org-openide-nodes@/overview-summary.html">nodes</a> and explorers,
together with code samples, see chapter 7,
of <a onclick="target='_blank'"href="https://leanpub.com/nbp4beginners">NetBeans Platform for Beginners</a>
by Jason Wexbridge and Walter Nyland.
</p>
</answer>
<!-- <questionid="compat-i18n"> Isyourmodulecorrectlyinternationalized? <hint> Correctinternationalizationmeansthatitobeysinstuctions at<ahref="http://www.netbeans.org/devhome/docs/i18n/index.html"> NetBeansI18Npages</a>. </hint> </question>
-->
<answer id="compat-i18n">
The module is fully internationalized.
</answer>
<!-- <questionid="compat-standards"> Doesthemoduleimplementordefineanystandards?Isthe implementationexactordoesitdeviatesomehow? </question>
-->
<answer id="compat-standards">
The explorer does not implement any standards.
</answer>
<!-- <questionid="compat-version"> Canyourmodulecoexistwithearlierandfuture versionsofitself?Canyoucorrectlyreadalloldsettings?Willfuture versionsbeabletoreadyourcurrentsettings?Canyouread orpolitelyignoresettingsstoredbyafutureversion? <hint> Veryhelpfulforreadingsettingsistostoreversionnumber there,sofutureversionscandecidewhetherhowtoread/convert thesettingsandolderversionscanignorethenewones. </hint> </question>
-->
<answer id="compat-version">
The only serializable object that might be part of some settings
is <a href="@org-openide-explorer@/org/openide/explorer/ExplorerManager.html">ExplorerManager</a>
which serialization is backward compatible.
</answer>
<!-- <questionid="dep-jre"> WhichversionofJREdoyouneed(1.2,1.3,1.4,etc.)? <hint> Itisexpectedthatifyourmodulerunson1.xthatitwillrun on1.x+1ifno,statethatplease.Alsodescribeherecaseswhere yourundifferentcodeondifferentversionsofJREandwhy. </hint> </question>
-->
<answer id="dep-jre">
Runs on JDK1.3 and higher.
</answer>
<!-- <questionid="dep-nb"> WhatotherNetBeansprojectsdoesthisonedependon? <hint> Ifyouwant,describesuchprojectsasimportedAPIusing the<code><apiname="identification"type="importorexport"category="stable"url="whereisthedescription"/></code> </hint> </question>
-->
<answer id="dep-nb">
The project needs <a href="#java-NodesAPI">Nodes API</a> and
<api type="import" group="java" name="UtilitiesAPI" category="official" url="@org-openide-util-ui@/org/openide/util/doc-files/api.html"
/>
which are essential for it to run. Beyond that it uses runtime
checks for presence of other APIs (PENDING) to use their
features for backward compatibility.
</answer>
<!-- <questionid="dep-non-nb"> WhatotherprojectsoutsideNetBeansdoesthisonedependon? <hint> Somenon-NetBeansprojectsarepackagedasNetBeansmodules (see<ahref="http://libs.netbeans.org">libraries</a>)and itispreferedtousethisapproachwhenmoremodulesmay dependonsuchthird-partylibrary. </hint> </question>
-->
<answer id="dep-non-nb">
No other dependencies.
</answer>
<!-- <questionid="dep-platform"> Onwhichplatformsdoesyourmodulerun?Doesitruninthesame wayoneach? <hint> IfyourmoduleisusingJNIordealswithspecialdifferencesof OSeslikefilesystems,etc.pleasedescribeherewhattheyare. </hint> </question>
-->
<answer id="dep-platform">
The module is platform independent.
</answer>
<!-- <questionid="deploy-jar"> DoyoudeployjustmoduleJARfile(s)orotherfilesaswell? <hint> IfyourmoduleconsistsofjustonemoduleJARfile,justconfirmthat. IfitusesmorethanoneJAR,describewheretheyarelocated,how theyrefertoeachother. IfitconsistofmoduleJAR(s)andotherfiles,pleasedescribe whatistheirpurpose,whyotherfilesarenecessary.Please makesurethatinstallation/deinstallationleavesthesystem instateasitwasbeforeinstallation. </hint> </question>
-->
<answer id="deploy-jar">
Right now the module is part of <code>openide.jar</code>.
</answer>
<!-- <questionid="deploy-nbm"> CanyoudeployanNBMviatheUpdateCenter? <hint> Ifnotwhy? </hint> </question>
-->
<answer id="deploy-nbm">
The whole openide.jar and core.jar can be updated as nbm file.
</answer>
<!-- <questionid="deploy-packages"> Arepackagesofyourmodulemadeinaccessiblebynotdeclaringthem public? <hint> NetBeansmodulesystemallowsrestrictionofaccessrightsto publicclassesofyourmodulefromothermodules.Thisprevents unwanteddependenciesofothersonyourcodeandshouldbeused wheneverpossible(<ahref="http://www.netbeans.org/download/apis/org/openide/doc-files/upgrade.html#3.4-public-packages"> publicpackages </a>). </hint> </question>
-->
<answer id="deploy-packages">
Both packages (<code>org.openide.explorer</code> and <code>org.openide.explorer.view</code>) are
part of API, so there is no need to make them unaccessible.
</answer>
<!-- <questionid="deploy-shared"> Doyouneedtobeinstalledinthesharedlocationonly,orintheuserdirectoryonly, orcanyourmodulebeinstalledanywhere? <hint> Installationlocationshallnotmatter,ifitdoesexplainwhy. Consideralsowhether<code>InstalledFileLocator</code>canhelp. </hint> </question>
-->
<answer id="deploy-shared">
As part of openide.jar it needs to be in shared location.
</answer>
<!-- <questionid="exec-component"> Isexecutionofyourcodeinfluencedbyany(string)property ofanyofyourcomponents? <hint> Often<code>JComponent.getClientProperty</code>,<code>Action.getValue</code> or<code>PropertyDescriptor.getValue</code>,etc.areusedtoinfluence abehaviourofsomecode.Thisofcourseformsaninterfacethatshould bedocumented.Alsoifonedependsonsomeinterfacethatanobject implements(<code>componentinstanceofRunnable</code>)thatformsan APIaswell. </hint> </question>
-->
<answer id="exec-component">
<api type="export" group="systemproperty" name="org.openide.explorer.VisualizerNode.prefetchCount" category="private">
Setting this property to integer number controls prefetching of nodes
when VisualizerChildren are constructed (prefetchCount = 0 disables
prefetching).
The prefetching should eliminate "bounce" effect (see #144718) in lazy
implementation which is caused by the fact that there exist keys without
nodes. In such case "dummy" nodes are created and remove event is fired.
This undesirable effect is eliminated by prefetching selected number of
nodes so "dummy" nodes are detected and removed in advance before any
visualization occurs.
</api>
</answer>
<!-- <questionid="exec-introspection"> Doesyourmoduleuseanykindofruntimetypeinformations(instanceof, workwithjava.lang.Class,etc.)? <hint> CheckforcaseswhenyouhaveanobjectoftypeAandyoualso expectitto(possibly)beoftypeBanddosomespecialaction.That shouldbedocumented.Thesameappliesonoperationsinmeta-level (Class.isInstance(...),Class.isAssignableFrom(...),etc.). </hint> </question>
-->
<answer id="exec-introspection">
Also <code>TreeTableView</code> offers sort by the values of explored properties if type
of value implements <code>Comparable</code> interface, it's based on semi-private API
<api group="java" name="TreeTableViewSortingAPI"type="export" category="friend"/>.
</answer>
<!-- <questionid="exec-property"> Isexecutionofyourcodeinfluencedbyanyenvironmentor Javasystem(<code>System.getProperty</code>)property? <hint> Ifthereisapropertythatcanchangethebehaviourofyour code,somebodywilllikelyuseit.Youshoulddescribewhatitdoes andthestabilitycategoryofthisAPI.Youmayuse <pre> <propertyname="id"category="private"> descriptionoftheproperty,whereitisused,whatitinfluence,etc. </property> </pre> </hint> </question>
-->
<answer id="exec-property">
<api name="netbeans.dnd.enabled" group="systemproperty" category="private"type="export">
Checks by Drag & Drop support for views. True is regard as default
(no matter what jdk's version). False value disallows Drag & Drop in
all views.
</api>
<api name="customDelete" group="property" category="devel"type="export">
Nodes returing Boolean.TRUE from getValue("customDelete") are assumed to
provide their own confirmation dialog for delete action and explorer will not show
default one when they are deleted.
</api>
<api name="slowRename" group="property" category="devel"type="export">
Nodes returing Boolean.TRUE from getValue("slowRename") are expected
to have potentially slow implemenation of <code>setName</code>. Explorer views
rather process in-place rename in background for such nodes.
</api>
</answer>
<!-- <questionid="exec-reflection"> DoesyourcodeuseJavaReflectiontoexecuteothercode? <hint> ThisusuallyindicatesamissingorunsufficientAPIintheother partofthesystem.Iftheothersideisnotawareofyourdependency thiscontractcanbeeasilybroken. </hint> </question>
-->
<answer id="exec-reflection">
Yes, <code>TreeView</code> calls via reflection to openide's Window System API
and to Actions API to allow use Explorer API as standalone library.
</answer>
<!-- <questionid="format-clipboard"> Whichdataflavors(ifany)doesyourcodereadfromorinsertto theclipboard? </question>
-->
<answer id="format-clipboard">
The module servers as a bridge between nodes and the clipboard. It takes what
Nodes provide
(<a href="@org-openide-nodes@/org/openide/nodes/Node.html#clipboardCopy()">Node.clipboardCopy</a>,
<a href="@org-openide-nodes@/org/openide/nodes/Node.html#clipboardCut()">Node.clipboardCut</a>) and
inserts them into clipboard (as part of Copy/Cut action) and also retrive the
content of clipboard and pases it to
<a href="@org-openide-nodes@/org/openide/nodes/Node.html#getPasteTypes(java.awt.datatransfer.Transferable)">Node.getPasteTypes(Transferable)</a>)
during paste action.
</answer>
<!-- <questionid="format-dnd"> Whichprotocols(ifany)doesyourcodeunderstandduringDrag&Drop? </question>
-->
<answer id="format-dnd">
Same formats as during clipboard access.
</answer>
<!-- <questionid="lookup-lookup"> Doesyourmoduleuse<code>org.openide.util.Lookup</code> tofindanycomponentstocommunicatewith?Whichones? <hint> Pleasedescribetheinterfacesyouaresearchingfor,where aredefined,whetheryouaresearchingforjustoneormoreofthem, iftheorderisimportant,etc.Alsoclasifythestabilityofsuch APIcontract. </hint> </question>
-->
<answer id="lookup-lookup">
Yes, it does. There is searched for <code>java.awt.datatransfer.Clipboard.class</code>
(to obtain clipboard for cut/cope/paste operations),
for <code>org.openide.actions.ActionManager</code> (to process an action in separate
thread) and for registry of all top components.
A presence these object are not forced, system can work w/o them.
</answer>
<!-- <questionid="perf-huge_dialogs"> Doesyourmodulecontainanydialogsorwizardswithalargenumberof GUIcontrolssuchascomboboxes,lists,trees,ortextareas? </question>
-->
<answer id="perf-huge_dialogs">
No, only the small dialogs, e.g. Rename, Navigator, etc.
</answer>
<!-- <questionid="security-grant"when="final"> Doesyourcodegrantadditionalrightstosomeothercode? <hint>Avoidusingaclassloaderthataddsextra permissionstoloadedcodeunlessreallynecessary. AlsonotethatyourAPIimplementation canalsoexposeunneededpermissionstoenemycodeby callingAccessController.doPrivileged().</hint> </question>
-->
<answer id="security-grant">
<p>
XXX no answer for security-grant
</p>
</answer>
<!-- <questionid="security-policy"when="final"> Doesyourfunctionalityrequiremodificationstothestandardpolicyfile? <hint>Yourcodemightpasscontroltothird-partycodenot comingfromtrusteddomains.Thiscouldbecodedownloadedoverthe networkorcodecomingfromlibrariesthatarenotbundled withNetBeans.Whichpermissionsneedtobegrantedtowhichdomains?</hint> </question>
-->
<answer id="security-policy">
<p>
XXX no answer for security-policy
</p>
</answer>
</api-answers>
Messung V0.5 in Prozent
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.23Bemerkung:
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.