|
|
|
List of the main features:
The library part is located under editor/lib/src folder.
It depends on the following classes from openide:
org.openide.DialogDescriptor org.openide.DialogDisplayer org.openide.ErrorManager org.openide.NotifyDescriptor org.openide.util.Lookup org.openide.util.LookupListener org.openide.util.LookupEvent org.openide.util.NbBundle org.openide.util.RequestProcessor org.openide.util.Task
The above classes should remain to be isolated in a sense that they operate without loading other openide classes (if they need an implementation class they get it from Lookup).
org.netbeans.lib.editor.hyperlink.spi
allows the editors for a particular mime-type to respond to the situation
when a user hovers over the text with a Ctrl key pressed.
HyperlinkProvider
class that contains a javadoc with instructions
about how to register the implementation in the xml layer for the given
mime-type (mentioned in the layer section here as well).
Question (arch-usecases):
Describe the main
use cases of the new API. Who will use it under
what circumstances? What kind of code would typically need to be written
to use the module?
Answer:
No answer
Question (arch-time):
What are the time estimates of the work?
Answer:
No answer
Question (arch-quality):
How will the quality
of your code be tested and
how are future regressions going to be prevented?
Answer:
No answer
Question (arch-where):
Where one can find sources for your module?
Answer:
The sources for the module are in the Apache Git repositories or in the GitHub repositories.
org-netbeans-modules-editor-lib.jar
- NetBeans editor library independent of the rest of the NetBeans APIs depending on the JRE only.
Question (deploy-nbm):
Can you deploy an NBM via the Update Center?
Answer:
Yes.
Question (deploy-shared):
Do you need to be installed in the shared location only, or in the user directory only,
or can your module be installed anywhere?
Answer:
Module can be installed anywhere.
Question (deploy-packages):
Are packages of your module made inaccessible by not declaring them
public?
Answer:
Description of public packages:
org.netbeans.editor
- core of the editor generic infrastructure; indenpendent of the NetBeans IDE.
org.netbeans.editor.ext
- extra (non-essential) generic editor infrastructure; indenpendent of the NetBeans IDE.
org.netbeans.editor.ext.html
- HTML editor infrastructure; independent of the NetBeans IDE.
org.netbeans.editor.ext.html.dtd
- DTD parsing support for determining of the valid input at particular place of a HTML source (offered by code completion); independent of the NetBeans IDE.
org.netbeans.editor.ext.java
- Java editor infrastructure; independent of the NetBeans IDE.
org.netbeans.editor.ext.plain
- Plain text editor infrastructure; independent of the NetBeans IDE.
org.netbeans.editor.view.spi
- A rudiment of a generic view architecture SPI though now it is only used privately in the editor module; independent of the NetBeans IDE.
XXX no answer for compat-deprecation
java.io.File
directly?
Answer:
No.
Question (resources-layer):
Does your module provide own layer? Does it create any files or
folders in it? What it is trying to communicate by that and with which
components?
Answer:
Question (resources-read):
Does your module read any resources from layers? For what purpose?
Answer:
No.
Question (resources-mask):
Does your module mask/hide/override any resources provided by other modules in
their layers?
Answer:
No.
Question (resources-preferences):
Does your module uses preferences via Preferences API? Does your module use NbPreferences or
or regular JDK Preferences ? Does it read, write or both ?
Does it share preferences with other modules ? If so, then why ?
Answer:
XXX no answer for resources-preferences
org.openide.util.Lookup
or any similar technology to find any components to communicate with? Which ones?
Answer:
Question (lookup-register):
Do you register anything into lookup for other code to find?
Answer:
Question (lookup-remove):
Do you remove entries of other modules from lookup?
Answer:
No.
System.getProperty
) property?
On a similar note, is there something interesting that you
pass to java.util.logging.Logger
? Or do you observe
what others log?
Answer:
java.io.Reader
by an EditorKit
.
netbeans.debug.editor.document.undo
-
System property to debug undoing/redoing of the modifications done in the document.
java.awt.Graphics
of the component being rendered.
javax.swing.text.Document.getProperty()
)
that influence the document execution:
org.openide.text
package.
DataObject
or FileObject
from which the Document
content was loaded.
org.openide.text
package.
java.io.Reader
by an EditorKit.read()
.
IntUnaryOperator
which is invoked with a document offset and returns a minimum caret width.
This overrides a constant 2 minimum caret width.
Question (exec-ant-tasks):
Do you define or register any ant tasks that other can use?
Answer:
No.
Question (exec-classloader): Does your code create its own class loader(s)? Answer: No. Question (exec-reflection): Does your code use Java Reflection to execute other code? Answer: Reflection is used for:instanceof
,
work with java.lang.Class
, etc.)?
Answer:
No.
Question (exec-threading):
What threading models, if any, does your module adhere to? How the
project behaves with respect to threading?
Answer:
Threading model of the document model adheres to javax.swing.text.Document interface. There can be multiple reader threads accessing the document simultaneously but only one mutating thread at the time.
Document.render(Runnable) must be used for all the readonly operations accessing the document. The editor fully supports org.openide.text.NbDocument.runAtomic() and NbDocument.runAtomicAsUser() extensions that allow transactions on top of the document.
All the UI-related tasks adhere to Swing/AWT conventions i.e. they must be performed in EQ thread.
Question (security-policy): Does your functionality require modifications to the standard policy file? Answer:XXX no answer for security-policy
Question (security-grant): Does your code grant additional rights to some other code? Answer:XXX no answer for security-grant
java.awt.datatransfer.Transferable
?
Answer: